Commit Graph

2737 Commits (423ee63b7be093abd047e0a35d02ecf371e92b3a)

Author SHA1 Message Date
Frederik Gladhorn ff4ad44b69 Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	configure

Change-Id: I0d31f23483ea67c4cac5af16014366e1ba5ac093
2013-11-20 17:16:59 +01:00
Gatis Paeglis 486889523c Workaround source compatibility issue introduced by xcb 1.9.3
Previous version of the struct:

typedef struct {
    uint8_t  response_type;  /**< Type of the response */
    uint8_t  pad0;           /**< Padding */
    uint16_t sequence;       /**< Sequence number */
    uint32_t length;
    uint16_t event_type;
    uint16_t pad1;
    uint32_t pad[5];         /**< Padding */
    uint32_t full_sequence;  /**< full sequence */
} xcb_ge_event_t;

New version of it:

typedef struct xcb_ge_event_t {
    uint8_t  response_type; /**<  */
    uint8_t  extension; /**<  */
    uint16_t sequence; /**<  */
    uint32_t length; /**<  */
    uint16_t event_type; /**<  */
    uint8_t  pad0[22]; /**<  */
    uint32_t full_sequence; /**<  */
} xcb_ge_event_t;

Changes are:
- "pad0" became "extension"
- "pad1" and "pad" became "pad0"

More details in https://bugs.freedesktop.org/show_bug.cgi?id=71502

Task-number: QTBUG-34748
Change-Id: Ibd801c11510f75fa82d5c14346b95236142487ac
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-20 16:09:28 +01:00
Tor Arne Vestbø f1268d137e Allow platform to decide default behavior for show() based on window flags
The ShowIsMaximized and ShowIsFullscreen style hints were not granular
enough to build a default behavior from that would be correct for all
platforms. The recent Android patch that excluded dialogs from being
shown maximized (Ia249e93dbbea1) has now been moved into a platform
override in the Android integration plugin, leaving other platforms
to the default behavior of using the style-hints. We still special
case popup-windows though, as that behavior has been there for a
while.

Task-number: QTBUG-34969
Change-Id: Id36346d71bfc46171383ffe334592ca0b94e456f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-11-20 16:09:28 +01:00
Frederik Gladhorn 982da20cf2 Remove empty QAccessible2 header
Change-Id: Ia5e9b1adf9280e6b7d7aaf8cb5b5167b694a6070
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-11-20 15:11:24 +01:00
Tor Arne Vestbø 16ad93af49 iOS: Don't use auto resizing masks to deal with maximized/fullscreen
It breaks down when the view-controller is fullscreen and we want to
take statusbar height into account as well. Unfortunately we can't
use constraints either, as it's iOS6+.

The approach of managing the geometry manually is closer to what
Android does as well.

Change-Id: Ib521ba0f50b110c440ab68aacef5a524d5d41154
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 14:10:18 +01:00
Tor Arne Vestbø ce6fd574b4 iOS: Report native orientation of QScreen in relation to size
Instead of hard-coding it to assume the properties of the main/device
screen.

Change-Id: I94c978d4334cae5be9d1094a0c315031e54e8e1f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 14:10:18 +01:00
Tor Arne Vestbø 2e2c7327dd iOS: Prepare platform screen for reacting to dynamic updates to properties
Change-Id: Idb378416da2b559ed88eb5a764cacff149264f70
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 14:10:18 +01:00
Tor Arne Vestbø c3e949ac7d iOS: Allow non-top-level windows to be activated
As tested and assumed by tst_QWindow::isActive().

Change-Id: I8d09263ce0acc9c3390a70b4089396257197a1be
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 14:10:18 +01:00
Tor Arne Vestbø 837228151d iOS: Don't keep around reference to a single QIOSViewController
We might have more of them in a multi-screen setup or when implementing
support for modal windows using sub-viewcontrollers.

Change-Id: Ibe98273a13af981fffe2704a2c05bfd9d3f3e9e0
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 14:10:18 +01:00
Tor Arne Vestbø 0c012b6470 iOS: Send expose events in the window's coordinate system, not the parent's
Change-Id: I4aa1a354ca14864bd9898ebd331871d7b32d3ae0
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-20 14:10:18 +01:00
Frederik Gladhorn c83c08d84f Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-11-20 12:18:23 +01:00
Arvid Nilsson 711d0a1658 Add QQnxNativeInterface::nativeResourceForContext
This mechanism is used by QtWebEngine to extract the platform GL
context. In the QNX case, the platform context is an EGL context, so
the resource you need to ask for is the "eglcontext". Compare to the
xcb native interface which has a similar implementation already.

Change-Id: I873eaadf96898abb24de347ac624c88cd54254cb
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2013-11-20 10:33:04 +01:00
Andy Shaw f3a4bc17ab Keep the dockwidget with the mouse when moving to another screen
When you move a dockwidget from one screen to another then it needs to
be kept at the same position on the new screen, i.e. with the mouse
pointer. This fix ensures that this is happening including when the
screens may not 100% align up with each other.

Task-number: QTBUG-33369

Change-Id: If414effdd0e0415629ca31a86f8bbe382dd29f80
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 10:33:04 +01:00
Alberto Mardegan 911cfc4e90 XCB: do not assume that sizeof(long)==4
The code was using the "long" type when a 32 bit type was actually
needed. This can cause bugs in those systems where "long" is 64 bits
wide, such as Linux x86-64 (which is LP64).

Task-number: QTBUG-34861
Change-Id: Iab289b2af3847dd62d8b4ecea51896936ca4c7a2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-11-19 14:31:08 +01:00
Roger Maclean ac6b9be9b3 BB10: Clean up IMF session code
Be more rigorous about checking if we're in a session before invoking IMF functions.  In
particular the code would call initEvent if a key was received while no text field had focus
leading to a crash.

Also closeSession is now always called when a session is terminated rather than just
setting sInputSession to 0 and hasSession is always called to check for a valid session.

Change-Id: I22ce1c9bcdf8dd130f05ae319c4cc1e01afc4456
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-11-19 14:18:53 +01:00
Friedemann Kleint dcd71a0897 Android: Remove usage of QObject::tr()
Change-Id: I948d9fc36aa52d2d247a84b5d9b2cf949b93387d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-11-19 10:39:20 +01:00
Jorgen Lind f087ffdc53 Remove the GLES 2 dependency for eglfs and kms
Change-Id: If7b80487e01db726367f5a67d2860073f60a0844
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-19 10:14:30 +01:00
Tor Arne Vestbø eccd365ac5 iOS: Don't enable kEAGLDrawablePropertyRetainedBacking
We report our swap-behavior as QSurfaceFormat::DoubleBuffer, which means
there's no point in using retained backing. This was a left-over from
when we reported single-buffered swaps, which didn't work to well as
clients would wrongly assume swap was not needed at all.

Change-Id: Id26df2f8b282892c720d48cfe85eb9e010f1500d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-18 19:26:56 +01:00
Sérgio Martins cd93a2c0e1 Windows: Fix bug where windows stopped painting after a restore.
This is an improvement over 6800728d where we only fixed it if
the window was in "normal" state (Qt::WindowNoState) before
minimizing.

With this patch, if the window was previously maximized or
full-screen it will also get the expose events when being
restored.

Change-Id: I4a30423145e0999c5d0a5ee2a989730b83f4e3f2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-11-18 10:14:30 +01:00
Andy Shaw be405c86f8 Fix the window flags for Cocoa windows
This ensures that the possible window flag combinations are respected
where possible in Cocoa.

Task-number: QTBUG-34645
Task-number: QTBUG-31616
Change-Id: I6be8ca666b7cbc397575e97cd95ea298f52a7113
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-16 16:39:23 +01:00
Erik Verbruggen 81f2d6eaac Fix compiler warning for cast from int to id.
qcocoaapplication.mm:118:61: warning: cast to 'id' from smaller integer type 'int' [-Wint-to-pointer-cast]
    id a1 = ([args->arg1 isKindOfClass:[NSNumber class]]) ? (id)[args->arg1 intValue] : args->arg1;
                                                            ^
qcocoaapplication.mm:119:61: warning: cast to 'id' from smaller integer type 'int' [-Wint-to-pointer-cast]
    id a2 = ([args->arg2 isKindOfClass:[NSNumber class]]) ? (id)[args->arg2 intValue] : args->arg2;

Change-Id: Ibcf3d5d5698ff863f3c9bd65e0388ccca147f419
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-15 16:44:28 +01:00
Shawn Rutledge e3383ab646 GTK theme should not claim to provide a native MessageDialog yet
It was providing all possible types, but now MessageDialog is a new
native dialog type, and only on Android at the moment.

Task-number: QTBUG-34784
Change-Id: I2fb288c8d5e176ca4dafbbc310de2f29bbcfc000
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-11-15 16:44:03 +01:00
Lars Knoll 3e88ebc43d Remove stray debug output
This was actually causing test failures in qtdeclarative
and blocking the CI there.

Change-Id: I4538342f16b6468ad60b283c19948863b20ad5d4
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-15 13:02:40 +01:00
Uli Schlachter 7e468353c3 xcb: Only create listener window when needed
The xcb QPA plugin uses a separate thread for getting events from the
X11 server in a race-free manner. This thread has to be stopped when
shutting down.  This is done by causing the X11 server to send a special
event that causes the thread to exit when it sees it. (Also, the thread
exits if the xcb connection goes into an error state, but that does not
matter here)

So this event listener window is only needed when Qt is sending events
to itself. This means that it does not have to be kept around and
instead can be created only when needed.

Since this window does not stay around for long, it does not need a
name. However, it does need the list of screens to find the correct root
window, so destroy screens later.

Change-Id: Ib4104cbc3f372fa5d1391bcf5a633a158409862f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-11-15 08:11:56 +01:00
Bernd Weimer 00b13e6388 QNX: Fixed touch event positions
Touch positions reported by libscreen have to be adjusted relative to
the window position to be properly interpreted by Qt.

Task-number: QTBUG-34812
Change-Id: I68744dc9da95fb1d0d1704d12154fb24c148fe03
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-11-15 06:37:29 +01:00
Eskil Abrahamsen Blomfeldt 63824d2e00 Android: Support popup menus
This is used by QML comboboxes, menu buttons, etc.

Task-number: QTBUG-31420
Change-Id: I6d3f32fd80ce91c4be34eae636d1b95a4e251a49
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-11-15 06:36:00 +01:00
Laszlo Agocs f3f25b1469 Avoid using GLX pbuffers on fglrx
Task-number: QTBUG-34427
Change-Id: Ief4fe2fe2ab099d4ec61b6bfb2272724dfb2a800
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-11-14 21:15:35 +01:00
Sean Harmer 9f75292a60 Remove side effects of QGLXContext::queryDummyContext()
Task-number: QTBUG-34782

Change-Id: I411c89238b3002a118b1750af0157ccff5c78712
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-14 21:15:35 +01:00
Sean Harmer 038b0dae83 Update QSurfaceFormat when creating a GL context in the cocoa qpa
Task-number: QTBUG-34471
Change-Id: I99f643280b8a4aaa8d63329232c0c3f4b2faed4b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-14 21:15:35 +01:00
Paul Olav Tvete b8c93d4592 Android: work around input method cursor position bug
Since the Qt input method queries only give us information
on the position within the block, moving to the same position
in a different block will be interpreted as not moving.

The quick fix is to send a fake position before the real one in
this case.

Task-number: QTBUG-34845
Change-Id: I5d62bdffc283e41d0384c60a0b69c01811caa629
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-11-14 21:15:35 +01:00
BogDan Vatra 2828072d50 Android: Initialize mWindowState
Use the same variable in QAndroidPlatformWindow.

Task-number: QTBUG-34764

Change-Id: Idf33707e81cf7306663196f3c17735d8dc1dde5d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-14 21:15:35 +01:00
Gunnar Sletta bcf5dbc8a0 Fix jerky animations in Qt Quick for iOS.
This will make Qt Quick use consistent timing which
prepares animation frames for the time they go to
screen, rather than the current time at the time of the
animation tick, which can be quite jerky in many situations.

Change-Id: I1bbd4394db0c757553ee406d416fccb3ef937db8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-14 21:15:35 +01:00
Paul Olav Tvete 3ebcbdd322 Android: fix crash on exit
Let's not try to dereference the null pointer.

Task-number: QTBUG-34746
Change-Id: Iee79b711bd81614e36af4ab3612f9a87053a39f2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-14 19:26:20 +01:00
Tor Arne Vestbø d160f19507 iOS: Enable clipping of subviews when QWindow has child windows
QWindow::setParent() is documented to imply that the geometry of the
window is in the parent's coordinate system and that the window is
clipped to the parent.

Instead of always enabling clipping of subviews for our UIView subclass
we dynamically detect if we have QWindow children and enable/disable it
on the fly.

Change-Id: If83de94c55cbd19de401ab835e86bb7be5999d71
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-14 19:26:20 +01:00
Tor Arne Vestbø 3a7104420c iOS: Remove background color for UIWindow and UIViewController's root view
They were handy while debugging the iOS platform plugin, but should not
affect users who link against debug libraries, so let's just remove them.

Change-Id: I61b157e81130e5d951c22892e00f71e593082b1d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-14 19:26:20 +01:00
Tor Arne Vestbø 2afbd92274 iOS: Get rid of separate release pool for QIOSScreen
We don't use separate pools anwyhere else, and this was copied straight
from the UIKit plugin. Unless there's a good reason for having it in this
particular place we should keep things consistent.

Change-Id: I9a3f83bcc5894a2cdfd9af7818b46d6c0f8448da
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-14 19:26:20 +01:00
Tor Arne Vestbø bb1225f5ba iOS: Tie QIOSContext FBOs to corresponding QPlatformWindow, not QWindow
A QWindow may be created() and destroyed() multiple times in the lifetime
of the window, each time resulting in a new platform window (QIOSWindow)
being created. This QIOSWindow is backed by a new UIView each time, hence
it needs a new FBO and renderbuffer-mapping, since the previous
renderbuffer was mapped to the old UIView.

This fixes a bug where a QWindow would not render after a destroy()
unless it was resized (which triggered new FBO/renderbuffers).

We need to inherit QObject so that we can watch the destroyed() signal.

Change-Id: I93172dd6280b86b49755bf7abddf061d7e6b66f1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-14 19:26:20 +01:00
Tor Arne Vestbø 18182a6275 iOS: Handle key window as part of QWindow activation
The default UIWindow may not be the only UIWindow around in a multi
screen setup.

Change-Id: Ia7243190321a1416e577634bf5e010dd67d482e6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-14 19:26:20 +01:00
Tor Arne Vestbø e6eadd6f61 iOS: Flesh out device-pixel-ratio handling in QIOSWindow
We don't need to cache the device-pixel-ratio, as we can ask the UIView
directly. We do need to set it though, as the default behavior of
matching the screen scale does not apply for EAGL-backed views,
but the ratio needs to match the current screen the view is on.

Change-Id: I29e4a4fa4f4b767d86265ec899fb43a355b5c3a3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-14 19:26:20 +01:00
Laszlo Agocs 5dd94b75e3 Add swapInterval to QSurfaceFormat
Implement swap interval support for EGL, GLX and WGL.

The environment variable QT_QPA_EGLFS_SWAPINTERVAL is renamed to
QT_QPA_EGL_SWAPINTERVAL and can be used to override the applications'
setting of the swap interval.

Task-number: QTBUG-31939

Change-Id: I644325d5d3306b7604bffd7efccda3c00ed37d36
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-13 09:47:34 +01:00
Fabian Bumberger fd619946be Refactor QQnxWindow
This patch does following things:
* Remove the root window: First window which is created will serve as a root window
* Allow creation of more than one application window (with every app window having
  an own window group) on one screen
* Fixes a bug when reparanting an EGL window

Change-Id: I1afd64a813bc084c0893b958aa191d4a25c32b9d
Reviewed-by: Matt Hoosier <matt.hoosier@garmin.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-11-11 04:24:57 +01:00
BogDan Vatra ef6544ee27 Android native message dialog
Change-Id: Ief8c3ce3b8683c6960f046245844c1835a327d51
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-11-09 10:41:25 +01:00
Maciej Kujalowicz f45e12f91a iOS: Send expose event when a window changes the geometry.
When the EAGLView view changes its layout, it must send the expose event
along with the geometry change. It is important to notify the render loop
of the scene graph that the windows's geometry has changed. The render loop
is waiting for the WM_Expose event and updates the scene's window size accordingly.
See QSGRenderThread::event for reference.
Without this notification, the geometry of window is updated, but the scene is rendered
incorrectly, for example when the orientation of screen changes.

Change-Id: If102014313de455cb1f44d772b478d2feae6dacf
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-08 18:52:36 +01:00
Gabriel de Dietrich c934ea341e Cocoa File Dialog: Remove sandbox-ufriendly file system watcher
QFileSystemWatcher causes sandboxing errors since its backend uses
POSIX API in a relatively liberal way.

Also, Cocoa already acts as a file system watcher, and calls
-[QNSOpenSavePanelDelegate panel:shouldShowFilename:] on each
file. From a logical point of view, caching the directory content
can be replaced by testing the current file against the filter
setting. We expect Cocoa to cache results, and by using NSFileManager
things should remain relatively fast.

Task-number: QTBUG-34107
Change-Id: Ia872b9b1244f7b390d173a498011379b9309b3c6
Reviewed-by: Cyril Oblikov <munknex@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-08 11:35:29 +01:00
Tor Arne Vestbø ac7823129a iOS: Cancel any active touches when destroying a QIOSWindow
Keeps the internal state of QtGui sane when it comes to which buttons
are active, etc.

Change-Id: Ic63e74d2546469e085ec46b74f4cf159dd409b07
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-08 07:21:40 +01:00
Tor Arne Vestbø 59be0509e0 iOS: Detect/handle cancellation of subset of touch points
Change-Id: I0d345d07fe62a8c7844333bf1eed9be6d6fa432f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-08 07:21:29 +01:00
Tor Arne Vestbø 24d1f58414 iOS: Rename QIOSWindow's backing view from EAGLView to QUIView
Matches the cocoa QNSView and highlights the relation to UIView.

Change-Id: Idcdb17bff994c1e0aef099400c21915a7041e44c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-08 07:20:08 +01:00
Tor Arne Vestbø a301e868f7 iOS: Rename m_requestedGeometry to m_normalGeometry
Matches the wording using in QWidget.

Change-Id: Ifbb4e5ffa90b47a7c179cf9ec52cb46126d7bccc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-08 07:19:57 +01:00
Liang Qi b2f2636217 Cocoa: fix a crash in QCocoaFileDialogHelper
Current directory can't be nil.

Task-number: QTBUG-34561
Change-Id: I58c84da4928bd9081c916b6e5541bb86cf75ed47
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-11-08 05:29:38 +01:00
Friedemann Kleint 6ff08b7db3 Windows: Do not set transient parent on popups.
Analoguous to Window creation code.

Task-number: QTBUG-34503

Change-Id: I3cf7d58999bff5b106ca9d2e2c6f550e35f9db9a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-07 12:57:58 +01:00
Friedemann Kleint f48bc3ef40 Add a warning message when a WM_DESTROY not triggered by Qt is received.
Task-number: QTBUG-34503

Change-Id: I7a1e06b34deaf8e595f4986114701480bdcf219c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-07 12:57:58 +01:00
Bernd Weimer a94f61063a QNX: Fixed "normalPosition" of touch events
Pixel positions have to be set in relation to screen size in pixels,
not the physical size to calculate the normal position in the
range 0..1.

Change-Id: I6880fb64b7c3049d657fd081b564b945399b5865
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-11-07 10:00:19 +01:00
Tor Arne Vestbø 96d74313fe Add missing Q_INIT_RESOURCE
The library needs to do Q_INIT_RESOURCE for all resources it uses
internally, otherwise static linking will fail, and the user has
no idea how to rectify it as the name of the missing resource is
not known. The Q_INIT_RESOURCE needs to happen outside of any
namespace, hence the use of static initResources() functions.

Change-Id: I8f7d36b440b05809d97dd489cf8789f345633cec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-07 10:00:19 +01:00
Richard Moe Gustavsen 6272a816d1 iOS: set active window upon calls to requestActiveWindow
We did not do this from before. Instead we would activate
the window when it's view became first responder. And this
would happen when the input panel was told to open.
That behavior is a fragile, since other layers higher
up (qml) would not open the input panel unless the window
was active, which also makes sense. A classic chicken and
egg problem.

So to play more along with how Qt is expected to work, we
change behavior to instead activate the window directly
when requested to do so (which also includes when the user
touches the window directly). This will also work better
for "keyboard" events like Key_VolumeUp, once implemented.

The down side is that Qt will give focus to widgets/items
(and as such, open the keyboard) whenever you touch the
window. But that is easier to fix, and will be dealt with
in later patches.

Change-Id: I9bbeb0205e7ea3c5079100c07e40ddb1c60b476b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-06 20:50:09 +01:00
Paul Olav Tvete d8f7a2ddf4 EglFS: make sure resize events are delivered
Make sure that resize events are delivered when the platform
plugin overrides the geometry set in setGeometry().

This fixes a race condition where a widget was resized to its
sizeHint() while the window was maximized, and the content was
shown scaled on the screen.

The problem is that the widget gets the wrong size from
QWidget::setWindowState() (which calls adjustSize() in order to support
normalGeometry). This size is used to resize the backingStore. When the
QWindow is resized, it calls QEglFSWindow::setGeometry() which corrects the
size to screen()->availableGeometry(), and triggers a GeometryChangeEvent
since the size was corrected.

This ends up in QGuiApplicationPrivate::processGeometryChangeEvent() which
will not send a resize event, since the size has not changed (it is always
availableGeometry()). Therefore the widget is never resized, and the
backingStore remains the wrong size.

Task-number: QTBUG-34421
Change-Id: Iee49c53cc529de36010db2695d838d8c2284edd4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-11-06 17:47:25 +01:00
BogDan Vatra 417cf3fc53 Android: Fix menu on API-11+
On API-11+ if there is no hardware menu button show the action bar.
Fix menu when using the opengl android plugin.

Task-number: QTBUG-32002

Change-Id: I45bd49107621e4cab85eb6411897229e20bb8281
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-11-06 16:09:30 +01:00
Tor Arne Vestbø 04ad4d7de5 iOS: Remove unused QIOSWindow methods for getting effective width/height
Change-Id: Ifdfd5881822bf56f2c8ab0742a0e257e2bd61533
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-06 14:21:56 +01:00
Frederik Gladhorn 49a3c87175 Remove two unused functions from QAccessibleTabBar
Change-Id: Ib3296a11b1bb9656f2b0c14106ea09f529311ccf
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-06 08:34:34 +01:00
Gunnar Sletta e7fd798af0 Disable threaded rendering for Intel HD 3000 cards.
Task-number: QTBUG-34492
Change-Id: I1848cde3fb9517679fd54a7170ed5bee40880edc
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-11-06 00:35:43 +01:00
Frederik Gladhorn 2c11a492fb Add better version checks for accessibility
We would spam the debug output on devices with api < 16 with some
warnings that the super class a11y delegate could not be found and
others.
Instead check the runtime version before trying to load the JNI code and
only load the delegate if api is new enough.

Change-Id: I52286cb99924b034b9b58c53566f15030939b0c9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-05 19:08:08 +01:00
Jan Arne Petersen 54ed14d5c6 Support native event filters for screen events
Change-Id: If0af4544191c513e64f582cece4a453c1ab5c8e7
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-11-05 19:08:08 +01:00
Gabriel de Dietrich 2eb1e28a90 Cocoa (OpenGL): If no view is attached, makeCurrent() should return false
Change-Id: Ie2869fae1549c3b0a8ef78702410e6ca0c980737
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-05 17:37:05 +01:00
Gabriel de Dietrich a199a87ad5 Cocoa: Don't hide views when reparenting
Commit a2bdda8e3b was meant for creation only. We should not
hide views on our own, particularly when Qt had not asked for that.

Task-number: QTBUG-33581
Change-Id: Ib35fc78a27be1498f80aabd385e7a2185475b949
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-11-05 17:37:05 +01:00
Tor Arne Vestbø 1b58d9acc4 Remove Q_INIT_RESOURCE_EXTERN
It's not providing any convenience over using Q_INIT_RESOURCE, which does
its own extern, were never documented, and was added back in 2010 without
any commit message justifying its existence.

Change-Id: I1ca9a042d3f4fca34007d28b140661c50064f11b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-05 15:41:54 +01:00
Friedemann Kleint d1870d9036 Clean up QWindowsSessionManager.
Fix spelling error in method name and inline simple functions.

Change-Id: I7f2a67fb1951b58874b09002ee57e15e75561727
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-11-05 15:40:14 +01:00
Maciej Kujalowicz 450d3efcb1 iOS: Enable threaded OpenGL.
This change activates ThreadedOpenGL and ThreadedPixmaps capabilities
in the iOS integration. QIOSContext is expanded with a support for
a shared context.

Change-Id: I56615c870a24e17850ad2748421c54e015de3ab2
Reviewed-by: Ian Dean <ian@mediator-software.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-05 15:40:14 +01:00
Jan Arne Petersen 6802f34bed Process screen events in the main thread
Screen events are still read in the screen event thread but are
processed in the main thread to make it possible to support
QAbstractNativeEventFilter for screen events later.

Implementation is similar to the xcb platform plugin.

Change-Id: I7bade3e13e51c6d70bb608727a93bbd3aabc5d47
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-11-05 11:27:10 +01:00
Friedemann Kleint a922b94c2f Windows: Do not detect full-screen state for child windows.
Introduced by a1db174ea9 (Fix window state
handling).

Task-number: QTBUG-34477

Change-Id: I4c92edddef346f9d7c4741f2f9784e9f686e9cda
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-11-04 19:37:57 +01:00
Andy Nichols c982fa3666 iOS: Prevent calling QWindow methods on native NSViews
UIViews can return nil when calling qwindow, so we must check before
trying to use the QWindow handle.

Change-Id: I72e9ddc58ebe10a3e7ea511f2356650402ba23f4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-04 15:56:24 +01:00
Frank Osterfeld 84a318c74f enable PPS keyboard implementation also for plain QNX
Integrating with /pps/services/input is also the way to go
for QNX.

Change-Id: If2498f2c42ed4e6e0d1cadc787cc62e80940043a
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-11-04 15:55:41 +01:00
Jan Arne Petersen c8df30682c Handle keyboard focus change
Call QWindowSystemInterface::handleWindowActivated when a
SCREEN_EVENT_PROPERTY event for he SCREEN_PROPERTY_KEYBOARD_FOCUS
property is received.

Change-Id: Ic2b10c5b793dd4451adac68691296f8265a71160
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-11-04 15:55:33 +01:00
Eskil Abrahamsen Blomfeldt 59569fd020 Android: Differ between ShowMaximized and ShowFullScreen
The default is now ShowMaximized which behaves as it did before,
i.e. each window will fill the screen but the status bar will be
visible. Calling showFullScreen() explicitly will now hide the
status bar to maximize the amount of screen real estate occupied
by the application.

Task-number: QTBUG-33135
Change-Id: If0d0a2ab72f8026e76818290e2b953dbc0dec156
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-11-01 14:52:47 +01:00
Christian Strømme efc61299bd Android: Check for null pointer before calling ANativeWindow_release()
Calling ANativeWindow_release() with a null pointer will cause
a SIGSEGV.

Task-number: QTBUG-33955
Change-Id: If7d1afa3baea04360507eec5042b4e18a0272527
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-11-01 13:16:31 +01:00
BogDan Vatra 48dcdbe510 Android: implement a simple cache mechanism for assets dirs.
AAssetManager_openDir is a pretty slow operation, so we are caching the most used dir contents.

Task-number: QTBUG-34464

Change-Id: If198f7dae0d6961291c992e6eb46839ba5455819
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-01 13:15:07 +01:00
BogDan Vatra c95e1567e9 Remove unused field.
Fix crash on Android 4.4

Change-Id: Ibee584c0154b0b116af58477302e7e8385f0290d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-01 13:15:01 +01:00
BogDan Vatra b7440536c7 Android: Handle virtual keyboard visibility changes.
emitInputPanelVisibleChanged when virtual keyboard visibility is changed.

Task-number: QTBUG-34347

Change-Id: Iab7374db42ff8ce6f33dcc793b23f84d3c8692d5
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-11-01 09:38:12 +01:00
Morten Johan Sørvig d1114669e3 Cocoa: Improve cursor setting.
Implement cursor setting in terms of [NSCursor set]
and [NSView cursorUpdate] using the window tracking
area.

Refactor cursor conversion into QCocoaCursor::
convertCursor. Rename QCoocaWindow::m_underMouseWindow
to m_enterLeaveTargetWindow since it's set according
to spesific enter/leave logic. Add m_windowUnderMouse
which tracks mouseEntered/mouseExited state.

Task-number: QTBUG-33961
Change-Id: Id5e12594f5db365e09c9926a4c08d748a9afb935
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-01 09:38:12 +01:00
Richard Moe Gustavsen fecc820c58 iOS: bugfix touch events when not using alien
It seems that 130ee40b broke touch handling for
non-alien QWindows. For those cases, a QWindow that is a
child of another QWindow will get its own UIView to
back it up. The current code did not take this into
account when calculating the global coordinates of
touch events. Instead we need to search for the
top level QWindow it might be inside before we find the
view that acts as the "desktop" for it.

Change-Id: Ie3c19bf86c92fa3f247a0764116830e91b8322d2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-01 07:30:32 +01:00
Richard Moe Gustavsen eb64c765e3 iOS: clear focus object when resigning first responder status
Instead of deactivating the window when we resign first
responder status, we now leave it focused, and
tell it to clear its focus object instead.
This will work better with the rest of Qt, which expects
a window to have focus when its in front.

Change-Id: I6fcc232467af306b791a834f4843bfd2786b206f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-01 07:30:06 +01:00
Kari P a316bdadc0 Mac: Modify Qt::SizeAllCursor to look like arrows
On Mac, Qt::SizeAllCursor showed a spreadsheet cell selection cursor.
It has been changed to look like it looks in the Qt Documentation.

Task-number: QTBUG-27577
Change-Id: I2d50ab0d813137366b56cb30b8784ecf70392d4e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-10-31 07:59:25 +01:00
Friedemann Kleint 44e68b9026 Windows: Do not use blend function for GL windows with alpha.
Task-number: QTBUG-34376

Change-Id: I81a5ee6ff14e5472eb1f3846577d86b615be34e0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-30 20:30:19 +01:00
Tor Arne Vestbø 769abe8d2f iOS: Fix logic for determining whether to exit the root event loop
Instead of trying to hook into various places where we might be in a
situation where the root event loop should exit, and then enabling the
runloop-observer, we always keep the observer active, and then do the
relevant checks whenever the run-loop exits.

The reason for checking if the event loop is running is that iOS will
enter and exit the root runloop as part of normal operation, eg due to
flicking a scroll view and switching the runloop mode, so we need to
ensure that we're actually supposed to exit the root event loop.

Change-Id: I9b84b47ee45e0c9e2b1d2ebb5a432ea92700b324
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-30 20:30:19 +01:00
Christian Strømme b280182053 Android: Don't rely on QIcon::isNull() to validate icon data.
QIcon::isNull() only checks if it has a valid d pointer and not if it
actually contains any image data. The result is that the QImage create
from the icon would be invalid, and later cause an exception to be
thrown. To avoid this we should check the QImage as well.

Task-number: QTBUG-34416
Change-Id: I9dd0a2387d73bfc2c27ceb9df247ddc186dd659f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-10-30 14:50:02 +01:00
Jørgen Lind f1927370cb xcb: Compilefix #ifdef glx code
Change-Id: I4204cab76b2621318dda909d24ceb2abab6e0ba3
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-10-30 13:09:47 +01:00
Jørgen Lind 105e228d1c xcb: Act on the _NET_ACTIVE_WINDOW event
It happens that we don't get a focus inn event for top level windows
when focus goes from a window mapped. But we do get a _NET_ACTIVE_WINDOW
event.

Task-number: QTBUG-34426
Change-Id: Id1d9eb708a968e0e8934e56dec19abe2dd203bc7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-10-30 13:09:47 +01:00
Jørgen Lind 43002e2572 Silence the _COMPIZ_DECOR_* warnings on Ubuntu
Earliest occurrence is to my knowledge in 12.04.
It is still unclear how to act on those messages

Change-Id: I7da48281c6bec973448a1d4cd800d445a80695a2
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-10-30 08:11:08 +01:00
Jørgen Lind ac693bf754 Add QGuiApplication::sync() function
This will allow applications to make sure Qt has the same state as the
window system at any given point. The use of this function is
discouraged but it is very useful for auto tests.

Change-Id: I691bff365fc391e9d7213f2607008983505bb774
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-10-30 08:11:00 +01:00
Christoph Schleifenbaum aceb854bbb Different native Cocoa menu fixes.
- Fix location of NSMenu when no NSView is given.
- Fix shortcut when given in text with tab.

Change-Id: Iec21cf3d12084db1e70c1a8779d5482c78285796
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-10-29 22:51:10 +01:00
Gunnar Sletta 9087d4ed7b Don't support threaded GL on chromium (virtual box GL)
Change-Id: I84f89450e3fce1cbbafd19dbf4509b1911e06b19
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-10-29 19:59:17 +01:00
Rafael Roquetto cf239f69e1 QNX: Manage foreign mmrenderer windows
Manage and correctly set the z-order of a foreign created mmrenderer window by
QtMultimedia

Task-number: QTBUG-33816
Change-Id: I46273b945bf10991462fa72eb1ec8d00b0648988
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-10-29 19:59:17 +01:00
Gabriel de Dietrich 5dfda7a556 Cocoa: Fix mouse event coordinates transform to window space
We pass the mouse screen coordinates that we convert to window
space instead of the other way around. This makes sure the original
mouse coordinates are not bound to any moving window.

Task-number: QTBUG-29583
Task-number: QTBUG-32221
Change-Id: I8f9ada6e8c0d20af8e85e88ee39190d23e58977f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-10-29 18:30:53 +01:00
Eskil Abrahamsen Blomfeldt 4d5bf32c20 Re-enable NonFullScreenWindows on Android
This flag was created because the eglfs plugin did not support
non-fullscreen raster windows. Now that it does, we can remove
it again. Turns out this also fixes several issues with positioning
and sizing of dialogs due to bugs in the implementation of the
flag.

Task-number: QTBUG-33846, QTBUG-33499, QTBUG-32537, QTBUG-32297, QTBUG-31457
Change-Id: I3902ae57d49d77e3c1046ec57b6f6926f70ec6a4
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-10-29 15:25:09 +01:00
Laszlo Agocs 6ea7336e4a eglfs: Make backingstore handle unexpected scenarios gracefully
On platforms other than Android eglfs does not allow having multiple
windows when one of the windows is OpenGL. On Android however this has
to be handled silently, without aborting the application. The
backingstore lacked the necessary checks so QGLWidget-based apps were
crashing. This is now corrected.

Task-number: QTBUG-34412
Change-Id: Ifb469fa9ef391b24aed3942430c0347276809ba5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-10-29 15:11:02 +01:00
BogDan Vatra 684a952edb Android: Don't crash if the screen is not yet initialized.
Change-Id: I4751c2dec5780f42b348a8a8ea628f65d548dcec
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-10-28 12:05:22 +01:00
Laszlo Agocs 076f931de5 eglfs: Perform initialization in initialize() instead of the constructor
Move (almost) everything to initialize(). Doing so allows the QEglFSScreen
constructor, the hooks' platformInit() and others to perform tasks that need
the event dispatcher.

Task-number: QTBUG-34208
Change-Id: If64e3d1691c41752c53968f8d4fb063b45345680
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-10-25 20:50:51 +02:00
Oliver Wolff a0da5290ff QWindowsKeyMapper: Added some comments about functionality + cleanup
Change-Id: Ieabdea7601ea0eba08eac701b2fdf27b4cd2ff45
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-25 20:50:51 +02:00
Roger Maclean db98b052ac Add support for BB10 input method framework
Added input method support for the BB10 variant of Qt to the extent
possible using standard Qt APIs.  This adds support for text predictions
and entry of languages such as Chinese.

Change in interface to QQnxAbstractVirtualKeyboard was made because it
is felt the new one is slightly nicer.  It doesn't appear safe to
assume the focus object has a particular property and in fact in my tests
the code failed to work.

In some cases the code uses variable and function naming at odds with
normal Qt coding standards.  This has been done for functions called
and data provided by the BB10 input system as for those of us who
need to maintain such things, it makes their meaning considerably
clearer.

While qqnxinputcontext_imf.cpp was used as an initial base for
development one can consider the new version as largely new code. I
don't believe the original version was ever complete and in any event
would not compile.

Change-Id: I09470801ffa237cee67da40c0b3d02ed5c77531e
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-10-25 20:17:21 +02:00
Juan Luis Boya García c15e8517ef Fix bug in updatePossibleKeyCodes() with dead keys and modifiers
As it was until now, QWindowsKeyMapper::updatePossibleKeyCodes() tested
using ToUnicode for which characters produce a key with every possible
combination of modifiers.

Calling ToUnicode with a dead key is dangerous, because MS Windows keeps
it in the driver buffer, so if you call ToUnicode with acute key and
then you press a, you get an á.

To prevent this, updatePossibleKeyCodes() checked if the key that was
being tested was a dead key. If true, it inserted an space and then
repeated the key in order to reset the system internal buffers to the
same state they were before the call.

The problem with this is if the dead key is really two keys (like ^ or ´
in US International keyboard layout) and you press one of those keys
without the modifier to make it a dead key (i.e. 6 in US International):
Since updatePossibleKeyCodes() only tests for the key that was pressed
it gets 6 is not a dead key, and thus it does not execute the
workaround. Thus, the next time the user presses 'a' they get 'â'
instead because updatePossibleKeyCodes() set the dead key on the
keyboard buffer and did not run the workaround.

This patch makes updatePossibleKeyCodes() run the workaround if any
possible combination of modifiers with the key being examinated makes a
dead key.

Task-number: QTBUG-33591
Change-Id: I8c0b27586f7c62798986258b1b84aa90e4c5d64c
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-25 14:51:30 +02:00
Juan Luis Boya García fcebbaeba3 Fix virtual key mapping on MS Windows
In order to map MS Windows virtual keys to Qt keys without messing with
dead keys now I use the built-in keyMap structure of QWindowsKeyMapper
and assert every cell in the keymap is properly updated.

In order to guarantee this even when the user changes the keyboard
layout, WndProc now manages the WM_INPUTLANGCHANGE message, which is
handled by QWindowsKeyMapper, resetting the layout structure.

I don't fully understand yet some things about QWindowsKeyMapper, i.e.
how QWindowsKeyMapper::updatePossibleKeyCodes workarounds the dead key
issue with ToAscii; but it seems to work fine in all the tests I've
done. Any further testing is highly appreciated, though.

[ChangeLog][[QtGui][Platform Specific Changes][Windows] Fixed virtual key
mapping on Windows.

Task-number: QTBUG-33409
Task-number: QTBUG-8764
Task-number: QTBUG-10032

Change-Id: I4f7709a90906b03f4504deea1ff5c361e9f94b3f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-25 14:51:30 +02:00
Morten Johan Sorvig c1815a7b3f Fix compile warnings on 10.6
Apple clang 3.0 complains about missing function
declarations. Add them.

Change-Id: Ib9c3c238c94e8649844cf3e67a659875ad549ecb
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-10-25 14:51:30 +02:00