summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Windows: Respect geometry set before native window creationGabriel de Dietrich2013-05-271-4/+8
| | | | | | | Task-number: QTBUG-31071 Change-Id: Idab21c5996d1dc31b0a6fab4960c3c48a50d4966 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Need to register dbus metatypes to have them work correctly.Lorn Potter2013-05-261-0/+2
| | | | | Change-Id: Ic994a0747c692fffe8a986eba6f754a6c0eddfa8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* iOS: don't activate non-toplevel windowsRichard Moe Gustavsen2013-05-241-1/+1
| | | | | | | | | | | | | | Parts of the code seems to assume that all QWindows are top-level windows. This will be false when not using alien, as then, each widget will be wrapped inside a QWidgetWindow. In that case, we should not tell QPA to activate the "window". This bug caused focus handling (and text input) to fall apart for e.g graphicsview when using a QGLWidget as viewport. Change-Id: I579db7a84d718973e02e96ed535fe6e25baf4bd5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* QNX: fix buffer creationMatt Hoosier2013-05-241-1/+2
| | | | | | | | | | | | | During some coding style cleanup in 02311c07 ("QNX: normalize braces") some braces which were actually necessary got removed. The result was an spurious report of a fatal error when no underlying error condition had occurred. This change restores the braces to preserve the prior behavior. Change-Id: Ic32fbd5961ce59f6c01476fd2cef6fec0bdae93e Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Fix crash in QCococaWindow::childWindowAt().Friedemann Kleint2013-05-231-9/+5
| | | | | | | | Task-number: QTBUG-31297 Change-Id: I96f4652e410334fae54a0012ed917a965becfe5c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* QNX: support underlain foreign windowsMatt Hoosier2013-05-232-13/+60
| | | | | | | | | | | | | | | Previously, any foreign window was treated as an overlay, with its z-order being forcibly set above the native Qt windows. This change adjusts the strategy to treat foreign windows whose initial z-order is less than -1 (the default z-order used by mmrender for its overlay surfaces) as underlays; otherwise the foreign window is treated as an overlay. Change-Id: Ifbcfd3a956965fa1a347076e9845afa50a81edfd Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* QNX: Support window translucencyMatt Hoosier2013-05-233-5/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few tactical changes were necessary to do this: * The root window's buffer must be the full size of the window in order for transparency to work. We now transition this buffer to full-size upon first request of some QWindow to be translucent. At the same time the root window is transitioned to being full- screen, we also set its alpha blending mode to Source-Over in order to permit lower z-ordered apps to show through. * Set the root window's buffer position to (0, 0) to avoid a momentary flicker of unpainted pixels on the far right-hand border as a translucent window comes on-screen. * Use Source-Over alpha blending for normal child windows too. The QtGui core logic for setting the backing surface pixel format to something with an alpha channel if Qt::WA_TranslucentBackground is set on the toplevel QWidget already accomplished the remainder of the work. Change-Id: I1c2b31aa6323b4555fa194313f0f5e06ada494fc Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
* Cocoa: Amend 5d07a4d9448f60 to avoid an assert in QWidget::mapTo()Gabriel de Dietrich2013-05-231-1/+2
| | | | | | | | For now, we only call 'flushWindowSystemEvents()' for top-level QWindows. Change-Id: Ie6f6d3f9b70241820d9c38bcc0caf832d521268b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Windows: Fix toplevel window flags for Qt::Dialogs/Qt::Tool.Friedemann Kleint2013-05-231-4/+21
| | | | | | | Task-number: QTBUG-31111 Change-Id: I58dcf8101077f18c7867cae914026c692735fc15 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Improve error message in GL context creation.Friedemann Kleint2013-05-231-2/+6
| | | | | | | | Output format, glGetError(), shared context as well. Task-number: QTBUG-30077 Change-Id: Ibc4a7f9ad99bdcdcb439e719394d2532445c3fbe Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QNX: normalize bracesRafael Roquetto2013-05-2310-195/+106
| | | | | Change-Id: I05f140a0626e543535cc74c6f737be9be1e27a5d Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* Process initial expose events immediately.Morten Johan Sørvig2013-05-231-0/+1
| | | | | | | | | | | | Required to prevent qmlscene flicker on startup. Also brings back that qWait() in tst_QGL::graphicsViewClipping() that seems necessary after all. Amended-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Change-Id: I14ba6e18ac98e5df1ce8ecbc263b30176b67d111 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Windows: Pass auto-fixed window flags to shouldShowMaximizeButton().Friedemann Kleint2013-05-231-4/+3
| | | | | | | | Task-number: QTBUG-28407 Task-number: QTBUG-31258 Change-Id: Ie918fddbeb6adee4ccbfffb2fab62b3d1842d272 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Suppress "Click to focus" for widget windows.Friedemann Kleint2013-05-231-2/+2
| | | | | | | | | | | | | | Calling requestActivate() on native child widgets can cause focus problems (keyboard input going to widgets that don't handle it,etc). Breakage introduced by: 4675681b5e88b178adbdef775ac6a4b1e573458 . Task-number: QTBUG-30922 Change-Id: I4efdfef6bffc89fe62156d248f05ed99c58bf794 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Observe initial screen for fullscreen windows.Friedemann Kleint2013-05-232-4/+8
| | | | | | | | | | | | | | | Introduce flag to determine "create" state and do not try to determine the screen from the geometry. Fixes breakage introduced by ded4613ae43842d4b960137843eb83a7472adc65. Task-number: QTBUG-31166 Task-number: QTBUG-30724 Change-Id: Ibe8df95e0ea84be070fdd06b158a6a10c76d42be Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Make QWindow update its screen when moved to a different oneGabriel de Dietrich2013-05-233-1/+26
| | | | | | | | Also implements the Cocoa backend for that. Change-Id: I32977e12a04e1cf48b12333442482746c69ce133 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Made the X11 eglfs hooks provide mouse input.Samuel Rødal2013-05-232-3/+159
| | | | | | | Makes the X11 hooks slightly more useful for testing eglfs. Change-Id: I53652cef7b9fc6830ee72e44c153fe281bc1bd7d Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Cocoa: Make sure main window gets focus after closing modal dialogGabriel de Dietrich2013-05-231-3/+15
| | | | | | | | | | As explained in the code, this is due to our event dispatcher. This could also make applications crash due to the way we bind windows to the menubar in the Cocoa QPA plugin. Task-number: QTBUG-30451 Change-Id: I6dd190d5b3b83f1216caec0b14414efa771634a5 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Cocoa: Remove "Incomplete implementation" compilation warningGabriel de Dietrich2013-05-231-1/+1
| | | | | Change-Id: I1db62c2504b55ef1451cb147d745c19cbef7de1e Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* A Dialog should not hide when the application is deactivatedShawn Rutledge2013-05-231-1/+3
| | | | | | | | To get this behavior, use Qt::Tool. Task-number: QTBUG-31133 Change-Id: I4811b5fe7e180a63bcdfe8018b35a56b370d9b61 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fixed XCB build with -no-openglSamuel Rødal2013-05-221-1/+3
| | | | | | Task-number: QTBUG-30115 Change-Id: I1651a1cdda2a5370e23fabe631b0742a617631c0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QNX: Fixed build of QPA pluginBernd Weimer2013-05-221-1/+1
| | | | | | | | | | | Added private core and gui includes to project file. Those were implicitly included in the past, but removed with commit 289302e. Removed redundant module, as well. Change-Id: I878d9acabc5497702dc282e25d6fdd9016ae2ad6 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Ignore mouse enter/leave on non-exposed windowsShawn Rutledge2013-05-221-1/+2
| | | | | | | | | | | | | | | If you put two OpenGL widgets in two tabs, you will have several QNSViews on the Mac (because using OpenGL forces a lot of the widgets to be non-alien). The GL widget on the non-visible tab will not be exposed, but QCocoaWindow::childWindowAt is recursive and was returning the last window found which contained the mouse location; but the children are not reordered when switching tabs. It should ignore the invisible windows and report that the mouse entered the one which is visible. Task-number: QTBUG-30934 Change-Id: Iae28db56e15815671bf39e1b1f382c8c285532bd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Fix linuxfb plugin when fb offset is present.Michael Brasser2013-05-201-4/+5
| | | | | | | Task-number: QTBUG-30994 Change-Id: Ic9e80f5bfaf54e89e9a9187f3e73e57015ed8c3d Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* iOS: fix bug when reporting the screen position of touch eventsRichard Moe Gustavsen2013-05-201-8/+8
| | | | | | | | | | | | | | | | | The way we reported screen position (and normalized position) for touch events was just wrong. The old implementation did not take into account that a view could be anything else than a direct child of the window, which fails for many cases (e.g when using QGLWidgets). Nor did it take into account the status bar, which made it hard to push small buttons since the touch would always be slightly offset. This patch calculates the screen pos by converting the touch pos to window pos, and then subtract the application frame (that contains the size of the status bar). Change-Id: Ib7f5f6dcea3a611e1ed75d57fb4a4718564752f0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Never show EGLFS mouse cursor in Qt for Android platform pluginEskil Abrahamsen Blomfeldt2013-05-203-8/+11
| | | | | | | | | | | | | The hack to use the environment variable for turning off the mouse cursor is broken when running against Ministro, because Ministro does not pass the environment on. A better solution is to make it possible to turn the cursor in the EGLFS plugin off in the hooks instead. Task-number: QTBUG-30553 Change-Id: Id09b48c350d2c95de9bb174f7480cf0cd2bf8145 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix ambiguity in shortcut matchingGatis Paeglis2013-05-201-10/+13
| | | | | | | | | | | Comparing to the Qt4 implementation, possibleKeys() should skip records where qtKeys are equal. Task-number: QTBUG-31132 Change-Id: I2fb073b4dc7291f909cce616f40f7c2491e7cf26 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* xcb: fallback to gtk cursor themesJørgen Lind2013-05-202-24/+98
| | | | | | | | | When Xcursor LoadCursor fails to find a cursor Task-number: QTBUG-27537 Change-Id: I46086c78c3d5bea3c39187dcc55b4774e58f5749 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Add QXcbConnectionGrabber classJørgen Lind2013-05-203-2/+30
| | | | | | | Inspired by QMutexLocker Change-Id: I66e31091d2a006db3272b627567d95d3e0b1c4f9 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Introduce QXcbXSettingsJørgen Lind2013-05-207-2/+372
| | | | | | | | | | | | | This allows you to easily retrieve properties in the XSETTINGS specification. It is also possible to add listeners to get notified when a specific property changes. XSETTINGS is lazy initialized, so it will not be instansiated before someone uses it. For now the intended use is a fallback for finding cursor theme Change-Id: Id47f0613f5876424cd47d721b40da17d3f63429e Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Prevent windows from jumping when changing geometry on OS XTor Arne Vestbø2013-05-151-2/+1
| | | | | | | | | | | | | | | We were setting the frame origin and content size as two separate steps. The frame origin was asynchronous, while the content size was synchronous. This resulted in the window visually jumping/moving, instead of applying the new geometry in one single step. We now set both in one go using setFrame, by manually calculating the frameRectForContentRect. This makes the whole process asynchronous. Task-number: QTBUG-31039 Change-Id: Iaba46106b9f200c707507f330fa801c99e2e7d89 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Cocoa: Fix Open GL resolution in high-dpiGabriel de Dietrich2013-05-152-12/+10
| | | | | | | | | | | | We permanently enable 'wantsBestResolutionOpenGLSurface' when creating an Open GL window/surface. We were enabling it once we would detect a high-dpi Cocoa backend, whitout ever turning it off. Leaving it 'on' on non-high-dpi displays should not change anything. Task-number: QTBUG-31000 Change-Id: I3d0c77f7b36f3c22dacd04a50fcc5a7d88af32c0 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix breakage of tst_qquickwindow::grab(invisible)Andy Nichols2013-05-142-12/+9
| | | | | | | | | | | | Instead of waiting for -drawRect to call -setView on the NSOpenGLContext, we go ahead and attempt to set the context as soon as possible. If it is indeed required that we call -drawRect first then will try to call -setView again during -drawRect with the new NSOpenGLContext. Change-Id: I33d9f2ba241b49e8cfa6c9156dd5bf5e4cc6b164 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Cocoa DND: respect QDropEvent::setDropAction()J-P Nurmi2013-05-131-2/+5
| | | | | | Task-number: QTBUG-31061 Change-Id: Id3275a0510bfa619a52d17cf48a3e48b3bae5354 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix HTML data transferring through the Clipboard on WindowsGatis Paeglis2013-05-131-10/+9
| | | | | | | | | | | | | | | | When transferring html formated data through the clipboard some of the html markup was lost when converting from Windows clipboard native mimedata to Qt mimedata type. On X11 we are sending everything - inluding <!DOCTYPE ...><html> .. </html>. This patch enables the same behavior on Windows. Task-number: QTBUG-30984 (cherry picked from commit 9e28245da1580e25e77a665b7738c59eb298c422) Change-Id: Ic0e339ad53955f1d31e8dff92ccf38b6eeec369a Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* QWindowsFontEngine: Fix warnings about GetGlyphOutline() failures.Friedemann Kleint2013-05-131-7/+11
| | | | | | | | | | | | | tst_qglthreads::painterOnPixmapInThread reports QWinFontEngine: unable to query transformed glyph metrics... (Desktop OpenGL only). Task-number: QTBUG-28264 Change-Id: Ib456905a13a95037ec13dfc4cb828f830076ee89 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Ensure the hovered signal is emitted for the action and menu for CocoaAndy Shaw2013-05-131-0/+10
| | | | | | | | | | In the Cocoa platform plugin the hovered signal() was not being emitted for the corresponding QMenu. This now ensures it is emitted for the action itself and its QMenu. Task-number: QTBUG-30841 Change-Id: I3cfe634a71de7b55550e2561eb1c6a939536216d Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Restore cursor before sending QDropEventGatis Paeglis2013-05-131-1/+0
| | | | | | | | | When users created a modal window in a dropEvent(QDropEvent* event), the cursor was not restored to its original shape until after the modal window had been dismissed. Change-Id: Id4723e3cb66b36a3ca18ff097a3993563816d9e1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Don't send QMouseEvent events from the QXcbDrag::timerEvent()Gatis Paeglis2013-05-132-21/+1
| | | | | | | | | | | | | | | | | | This is not needed. The DnD initiated scrolling is done by installing an eventFilter which forwards all MouseMove events to the QGuiApplicationPrivate::processDrag which creates and forwards all the necessary QDrag* events. QAbstractScrollArea has its own logic in the timerEvent() to make the view scroll when the pointer is standing still on the edge and the drag process is still ongoing. With the current implementation, widgets (during the DnD) were receiving DragMove events even when the pointer was standing still outside auto scroll areas. Task-number: QTBUG-28171 Change-Id: I355d88f3eab0ad39f916f84d66f5d0af7c0ff93e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix transformed raster fonts on WindowsEskil Abrahamsen Blomfeldt2013-05-132-0/+7
| | | | | | | | | | | | | | | | | | We removed all Q_WS_WIN code when going to Qt 5. One of the things removed was the condition that we do painter path text rendering for transformed, non-ttf fonts, since the GDI engine does not support transforming those. This has now been reintroduced and adapted to the QPA way of doing things, by checking for it in the font engine subclass. Then there was the problem that QStaticText only supports cases where the font engine can transform the glyphs. Thus we need to fall back to regular text drawing in drawStaticText() for unsupported cases, and we need to skip the optimized path in the raster engine (which goes to drawStaticTextItem) Task-number: QTBUG-30932 Change-Id: I17ba7355ee127811b0e77bb3a9b9db092e99893b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* XCB: Handle new enum value in switchThiago Macieira2013-05-131-0/+1
| | | | | | | | The new enum value was introduced in f3612f39ff5fb07f83b89732e8b7a643ee6d5cd3 Change-Id: I9ab5d8fba459408246e9a6f40c5c086af5abbf82 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QNX: Add support for WindowDoesNotAcceptFocus flagAndreas Holzammer2013-05-111-0/+9
| | | | | | | | Set SCREEN_PROPERTY_SENSITIVITY to SCREEN_SENSITIVITY_NO_FOCUS of the screen window when the Qt::WindowDoesNotAcceptFocus window flag is set. Change-Id: Iac0764a84186c382dcd3f4bdd31dd24ac15df768 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix Invalid Drawable error for QGLWidget on MacAndy Nichols2013-05-102-1/+19
| | | | | | | | | | You are not supposed to call NSOpenGLContext -setView: for a view that has not yet called drawRect. We we attempted to do this, we would get the invalid drawable error, leading to QGLWidgets just drawing garbage. Task-number: QTBUG-28175 Change-Id: I47aef07b4676f2db8591f98fc1661f6f447bdef9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Revert "OSX: obey the Qt::WindowTransparentForInput flag"Gabriel de Dietrich2013-05-081-2/+0
| | | | | | | | | | | | | This reverts commit 79e729e111dd799ddbe281aaddfbc0e1ec0e7bc0, which partially fixed QTBUG-30122 and will need to be reopened. On the Creator side, we think using the Qt::ToolTip flag is a bit unsafe since tooltips are supposed to have very limited interactivity. We would like to propose to use a similar pattern as in QComboBox instead. Task-number: QTBUG-30702 Change-Id: I245b7d8b16ac870564ea44f24f481ebfec8ca9a1 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Cocoa: Add support for ForeignWindow window typeGabriel de Dietrich2013-05-082-2/+10
| | | | | | | Necessary to make QWindow::fromWinId() work on Mac. Change-Id: I0dc3a1b0d63cff61d484693aee711dc54fea6b2f Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* iOS: don't send ended touch events to QPARichard Moe Gustavsen2013-05-072-75/+35
| | | | | | | | | | | | | | | | | | | The current implementation kept a list of TouchPoints that was reused when sending active touces to QPA. This list was never cleaned up, so if you pressed three fingers, and released one, we would still continue to sendt three touches to QPA. Especially, since this list was not cleaned up when receiving a touch cancel, mouse events sometimes stopped working when trigging a system gesture (like a four finger swipe). This can be seen by using the fingerpaint example. Since we cannot rely on TouchPoints having IDs that corresponds to their index in the touch point list, it ends up being simpler (and results in less code) to rewrite the implementation to use a hash table of UITouch to TouchPoints instead. Change-Id: I5b32f57a8d72a0b8759a64ac7cdfa6700109d2b3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Make access to xkbcommon_workaround.h more genericGatis Paeglis2013-05-075-107/+36
| | | | | | | | | | It makes more sense to keep this workaround header together with the other libxkbcommon files for a better access point since it's used by several *.pro files. Change-Id: I63d4eb58f6e7f3852834e41c4b6e058a2c962233 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Use X11 core protocol when xkb not availableGatis Paeglis2013-05-074-20/+236
| | | | | | | | | | | | | | | | | | | | To have a properly working key input in the xcb plugin in the case when xcb-xkb library is not available we can update the xkb_state struct with the keyboard state information available in the X11 core events. The current modifier state is reported to clients in a number of core protocol events and can be determined using the QueryPointer request. This is how it is done in Weston, Wayland's reference implementation. Note: In case the X server doesn't have a xkb support on it (which is very unlikely), then xkbcommon will only pick up the user's primary layout. The X server with the xkb support stuffs unused bits (13 and 14) of 'state' in the core events with the effective keyboard group, which we can use to determine layout changes. Change-Id: I9f1ef635109870e7412ef1157ca592f3c8f9271c Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Added possibleKeys(QKeyEvent *) to QXcbIntegrationGatis Paeglis2013-05-074-0/+90
| | | | | | | | | | | | | | This is required for a modifier+key shortcut support. Also fixes old Qt bug when keymap group changes were not handled properly for shortcut functionality. Task-number: QTBUG-26902 Task-number: QTBUG-4845 Change-Id: I04d2c2ad7049df7420999816154605848fa670e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Utilize libxkbcommon API for the keyboard backend on X11Gatis Paeglis2013-05-076-445/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | libxkbcommon is a keymap compiler [1] which utilizes xkb keyboard configuration database [2]. xkbcommon simplifies keyboard state handling by providing xkb_state object which holds the current state of all modifiers, groups, LEDs, etc, relating to the provided keymap. Detecting modifier mapping should become simpler once it gets supported in libxkbcommon. Also with xinput2 we could get rid of the XkbStateNotify events, because xinput2 key press/release already include all the mod/group info. [1] http://xkbcommon.org/ [2] http://www.freedesktop.org/wiki/Software/XKeyboardConfig This patch: - Removes a dependency to -lxcb-keysyms - Removes a dependency to XLib call - XLookupString - Enables required functionality to fix QTBUG-27681 Task-number: QTBUG-27680 Change-Id: I10e10f873821ee02f6df72238e215a541150f38f Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>