summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bump version5.6Oswald Buddenhagen2017-09-211-1/+1
| | | | Change-Id: I69f4d36c0779e730fadcccc8f6b474a5721c1056
* Add change file for Qt 5.6.3v5.6.3Johan Klokkhammer Helsing2017-09-061-0/+31
| | | | | | | Task-number: QTBUG-62701 Change-Id: Ia56244d29c1c60f74f736ac091fdfae68b25eae7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit bde5619e2090efdc16823de21ff5cb76805204bd)
* Bump versionOswald Buddenhagen2016-11-281-1/+1
| | | | Change-Id: I8d94853cb5bffcf7f41946afb6ecebaf91c2278a
* Client: Cleanup mouse state after dragJohan Klokkhammer Helsing2016-11-102-0/+12
| | | | | | | | | | | | Fixes an issue where dragging with the mouse would cause the next touch event to not generate a synthesized mouse press event. The touchDrag test can now be run directly after the mouseDrag test without failing. Task-number: QTBUG-56187 Change-Id: I53cc5f90fc8d8672936b23f54a017687d41c31fc Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Client: Fix touch getting stuck after drag-and-dropJohan Klokkhammer Helsing2016-11-093-1/+19
| | | | | | | | | wl_touch.up is not sent by compositors when dragging, so release all touch points when the drag ends. Task-number: QTBUG-56187 Change-Id: I1c3d03c72e75a551355c50bb5d82433f5e2e35f0 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Don't create new xdg surfaces in updateTransientParentJohan Klokkhammer Helsing2016-11-091-1/+3
| | | | | Change-Id: I1644a75269fec40644f02eeb275d9e6b98995c0e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix build when some features are disabledPaul Olav Tvete2016-11-0720-13/+69
| | | | | | | | | | Make QtWaylandClient compile when Qt is configured with: -no-opengl -no-accessibility -D QT_NO_CLIPBOARD -D QT_NO_DRAGANDDROP -D QT_NO_SESSIONMANAGER Task-number: QTBUG-56192 Change-Id: Idc6aae6b36a35515109a27bed31a22e3e909ef27 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* remove dependencies from sync.profileOswald Buddenhagen2016-11-061-11/+0
| | | | | | | the CI obtains them from the qt5 super repo nowadays. Change-Id: I93b3231e94c15b93544b53bcfe72a18e4309903c Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* Client: Call parent requestUpdate after changing subsurface positionJohan Klokkhammer Helsing2016-10-261-0/+3
| | | | | | | | | | Calling setPosition on a child window would not send the appropriate commit request after the wl_subsurface.set_position request. Task-number: QTBUG-52118 Change-Id: I792016ce7e0a5a2efd3a32a98727b43ee0275b0e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Client: Remove windows from keyboard focus list when destroyedJohan Klokkhammer Helsing2016-10-243-1/+10
| | | | | | | | | | | | | This fixes the undefined behavior in tst_WaylandClient::touchDrag and mouseDrag Note: The test still fails if run twice in a row, but it appears to be deterministic. Task-number: QTBUG-56187 Change-Id: Ib45d82224f004d1324f2ce4d6b7df05ee36c04f5 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 0049240a2b7d8691f09224e1542919ddbbb0d864) Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Don't return a null QMimeData from the clipboardGiulio Camuffo2016-10-172-3/+5
| | | | | | | | | | The documentation for QClipboard::mimeData() doesn't say that the returned value can be null, and some clients just dereference that without checking. So instead return an empty QMimeData. Change-Id: Ieec3140af4e7f33cde98ed96fd96b2674d0d0f9f Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Merge remote-tracking branch 'origin/5.6.2' into 5.6Liang Qi2016-09-161-0/+30
|\ | | | | | | Change-Id: I011101285c6aa594aea81271c86887c669a41e9e
| * Add changes file for 5.6.2v5.6.2Antti Kokko2016-09-131-0/+30
| | | | | | | | | | | | Change-Id: Ibb98081ddd226187212936949ca70bf1339c05aa Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Fix build with QT_NO_ACCESSIBILITYSamuli Piippo2016-09-162-2/+6
| | | | | | | | | | | | | | | | The accessibility() function is ifdef'd in the base class, which makes build fail when Q_DECL_OVERRIDE is used here. Change-Id: Ic3d800ccf32b39f5bc8d3f94d222bc0d34457057 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Remove or add window decorations when toggling fullscreenJohan Klokkhammer Helsing2016-09-051-0/+1
|/ | | | | | Task-number: QTBUG-55343 Change-Id: I38e94a70585ba93d40de22698fda80530cf2156d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Merge remote-tracking branch 'qt/5.6.2' into 5.6Paul Olav Tvete2016-08-263-7/+17
|\ | | | | | | Change-Id: Ie6ec1ae90396619214cf1f29ae9595c5f1915e10
| * Client: Fix keyboard focus logic and crashJohan Klokkhammer Helsing2016-08-263-7/+17
| | | | | | | | | | | | | | | | | | | | The previous solution did not check for nullptr before dereferencing, which caused a crash. Furthermore, it checked the new ShellSurface's shellManagesActiveState before deciding whether to unfocus the old one. Task-number: QTBUG-55526 Change-Id: I410b6200a5b7b86806f70970730045a4a25f21db Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Pass TRANSIENT_INACTIVE flag for windows with WA_ShowWithoutActivatingMartin Gräßlin2016-08-261-1/+9
|/ | | | | | | | | | | When setting a transient window also evaluate the state of the window attribute WA_ShowWithoutActivating. If that flag is set the transient should get the inactive flag as well. Task-number: QTBUG-55403 Change-Id: I757e5527e78f730a440e26abb52e84c9b2bb2f3a Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Fix autotest directory structurePaul Olav Tvete2016-08-1926-57/+69
| | | | | | | | | The client and server parts are separate modules, so they need separate top-level directories under tests/auto. This also makes it easier to add new tests later. Change-Id: I393341b6f4e8fc3afa480653f3482192e002e425 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Fix crash on client exitWieland Hagen2016-08-181-4/+13
| | | | | | | | | | This is a backported fix from the 5.7 branch. Original patches: 93ca929fb9caf347150 and d6fe7b6165859e17f03 Change-Id: Iaec5acb314d3bbc199e962a5dc27a70f0d2df655 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Client: Fix popup position for xdg shellJohan Klokkhammer Helsing2016-08-106-1/+163
| | | | | | | | | | | | | Popups used xdg_surface instead of xdg_popup. It's not possible to set a position for an xdg_surface, because it's supposed to be a top level window (in xdg shell v5). Consequently, popups were treated as top level windows and positioned randomly on Weston. Using xdg_popup instead solves the problem. Task-number: QTBUG-55063 Change-Id: I223348677ef8a1ef1eee6a4c389276a6c802bcb5 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Make wl_shell and xdg_shell use the QWaylandShellIntegration interfaceJohan Klokkhammer Helsing2016-08-0913-40/+337
| | | | | | | | This simplifies the code in QWaylandDisplay and hopefully makes it easier to implement a prioritized shell selection mechanism later. Change-Id: I2bb3a13f8acedb60a6606cb3a8b5b228095eadf9 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Client: Refactor window active stateJohan Klokkhammer Helsing2016-08-084-8/+4
| | | | | | | | Let shell surface implementations decide if they manage activated state. Moves the logic out of QWaylandDisplay. Change-Id: I75c86df68a1a93f9b1d2bf378b6603215d0b0128 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix crash when dragging with touch without first having pointer focusJohan Klokkhammer Helsing2016-08-026-0/+285
| | | | | | | | Also add drag-and-drop tests for both touch and mouse. Task-number: QTBUG-54756 Change-Id: Ibfff48b1f2377022a8624e28e9f638076187ddca Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Client tests: Unlock mutex while processing compositor commandsJohan Klokkhammer Helsing2016-08-021-4/+14
| | | | | | | | Only lock the client autotest compositor mutex when necessary. This allows compositor commands to be queued while a command is being processed. Change-Id: Ib2ca6b4942f57f56f56a055cbe6ce6d876695529 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Remove logging of drag-and-drop dataJohan Klokkhammer Helsing2016-08-011-4/+0
| | | | | Change-Id: Ic66faf02f7d4eb82aa898a2858a0271a007460a0 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
* Also test touch in client events testJohan Klokkhammer Helsing2016-08-015-1/+164
| | | | | | | Following the same pattern as for mouse and keyboard, also test touch events. Change-Id: Ie84aa0ffe0b0f4f66e9f40207c63d94e32f6dbaf Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix high-DPI scaling of window decorations for shared memory buffersJohan Klokkhammer Helsing2016-07-111-10/+18
| | | | | Change-Id: I6833ab86ffdb4e37dad5108baddb7a54cfb5e9fa Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Use xdg_shell configure events to determine active windowJohan Klokkhammer Helsing2016-07-046-36/+100
| | | | | | | | | | | | | | | | | | | | | | According to the xdg_shell protocol, the compositor is allowed to set multiple active windows. Qt's model, however, allows only a single active window. In order to map between the models, a list of the compositor's active windows is kept in QWaylandDisplay in the order they were activated. Hence, the front of this list will always be the most recently activated window, and it will be mapped as Qt's active window. Previously keyboard focus was used to determine the active window, this method has been disabled for xdg_shell. Functionality for delaying the call to QWindowSystemInterface::handleWindowActivated has been moved from QWaylandInputDevice::Keyboard to QWaylandDisplay so the implementations can share the workaround. Task-number: QTBUG-53702 Change-Id: I878151f9c52ed09a8d6571c6208920436c3ca8fc Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Remove unused method QWaylandDisplay::lastKeyboardFocusInputDeviceJohan Klokkhammer Helsing2016-06-293-16/+0
| | | | | Change-Id: Iee19b36ae2032112e0097dc6eb2e4592697c2a1c Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
* Add missing Q_DECL_OVERRIDEs to client classes.Johan Klokkhammer Helsing2016-06-2724-101/+101
| | | | | | Change-Id: I10e550a25ce498bbeedc242ac73059cc6fdcef30 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Only resize when the cursor is actually on the window frameJohan Klokkhammer Helsing2016-06-201-4/+4
| | | | | | | | | The previous code seems to have been written under the impression that QWindow::width() included frame margins, causing the resizing areas of the window decoration to be too large. Change-Id: Ia13f12afd88a4017d01853798226455b84290d01 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit"Sze Howe Koh2016-06-173-3/+3
| | | | | | | See http://comments.gmane.org/gmane.comp.lib.qt.devel/25771 Change-Id: Ie9bd394e87f58eb1049e004fd13a80a62e7ab6ff Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Client: Fix incorrect size when maximizing using xdg_shellJohan Klokkhammer Helsing2016-06-162-14/+11
| | | | | | | | | | | | | | | | | | | | | | When maximizing xdg_shell clients, the clients would call QPlatformWindow::setGeometry() with frame margins included, resulting in a window that was bigger than what was requested by the compositor. The reason for this, was that QWaylandXdgSurface would subtract the frame margins from the width and height only when the resizing state was set, not when the maximized state was set. Later, margins were added again before QWaylandWindow::configure was called. This resulted in margins being subtracted and then added back for the resizing state, while for the maximized state margins were only added and never subtracted. This behavior has now been simplified so only size including window frame is tracked. This is what we receive in the XdgSurface::configure event anyway, and also what QWaylandWindow::configure expects. Change-Id: I0629e7e79a5367fa872743c6d025bfab8a4f2866 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Set device pixel ratio for window decorations on scaled windowsJohan Klokkhammer Helsing2016-06-091-1/+4
| | | | | Change-Id: I40d96362131124effd9405cdad4e3dea79e6ebe3 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Fix content positioning relative to decoration on scaled outputsJohan Klokkhammer Helsing2016-06-081-1/+1
| | | | | | | | | Only the width and height were scaled previously, causing an incorrect offset from the lower left corner, resulting in a small transparent gap to form between the decoration and the content on the right and top. Change-Id: I0b253c05c9b260d9ff3a6ab5f8aea42370561959 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* client: Always accept the DnD data offerGiulio Camuffo2016-06-031-18/+16
| | | | | | | | | | | Weston stopped sending the wl_data_device.drop event if the data offer was not accepted, which was the case when it was coming from the same client that was receiving the offer. So now always accept the offer even if we will bypass the offer when retrieving the data. Change-Id: If825f4dbc962a7812e379f36a42ceabe3eb3096f Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Bump versionOswald Buddenhagen2016-05-191-1/+1
| | | | Change-Id: Idd975dc68f9f924cf89bfb9cbc1e476032ce6c23
* fix example installsv5.6.1-1v5.6.1Oswald Buddenhagen2016-04-285-8/+21
| | | | | | | | | this actually includes removing the install targets for the sources - this is automated now. Change-Id: I736958d70baabfa4db816abbfc50acacbf2ee23c Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Fix checking the Qt::BypassWindowManagerHint flagGiulio Camuffo2016-04-211-1/+1
| | | | | | | Change-Id: I24ca4854aa6756f4cea4f4f5a471ffd9bf33c620 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Erik Larsson <erik@ortogonal.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Destroy the subsurface protocol objectsGiulio Camuffo2016-04-191-0/+1
| | | | | | | | | This fixes a protocol error the compositor would send when a window changes its parent, because we were creating a new subsurface without destroying the old one. Change-Id: I0855d0582153e0aff37be508d9fb43d22c9ad0b5 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* fix namespaced buildOswald Buddenhagen2016-04-061-0/+2
| | | | | Change-Id: I69c8fa49baebc29d8a22426394ce0a72627b9ad6 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Client: Don't create shell surfaces for QShapedPixmapWindowJohan Klokkhammer Helsing2016-03-312-3/+24
| | | | | | | | | | | | | | | QShapedPixmapWindow is used as a drag-and-drop icon. This caused two roles (wl_data_device-icon and wl_shell_surface) to be assigned to the same surface, resulting in a protocol error. This bug hasn't been encountered before because QShapedPixmapWindow sets X11BypassWindowManagerHint, which was previously used to determine whether to create a shell surface or not. Task-number: QTBUG-52052 Change-Id: I1d79f3ec8ad08e0be1551c39df6232876dc2ac2e Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Erik Larsson <erik@ortogonal.com>
* Remove attached() definition from header.Erik Larsson2016-03-291-1/+0
| | | | | | | | | The implementation of attached() method was removed in commit 'Fix SHM drawing logic' (19260d9846861212881e374229798b3863d1a78d) but the definition in the header file was not. Change-Id: Ib850bc7101a661882078be95011d75660f621622 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Make public headers compile with -Wzero-as-null-pointer-constantMarc Mutz2016-03-224-5/+5
| | | | | | | | | | | | ... or equivalent. QtBase 5.6 headers already compile that way, so let the other modules follow suit. Change-Id: Iddf561087189ece6dd34b42605842dfafdbd8b4e Task-number: QTBUG-45291 Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Merge remote-tracking branch 'origin/5.6.0' into 5.6Frederik Gladhorn2016-03-171-0/+2
|\ | | | | | | Change-Id: If2caca2463ef6815d2cc9a8f05ccd78c867c95d2
| * Fix failure to build from sources: missing #includev5.6.0Thiago Macieira2016-03-031-0/+2
| | | | | | | | | | | | | | qwaylandinputdeviceintegration_p.h:64:85: error: ‘uint32_t’ has not been declared Change-Id: Ic747cc2ab45e4dc6bb70ffff143843d1ed4a341b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Add support for bitmap cursorsMartin Gräßlin2016-03-177-11/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far QtWayland did not support custom bitmap/pixmap QCursors. This change adds support for them by creating a QWaylandShmBuffer and copying the pixmap data into that buffer. The internal API to set cursors images is changed to not only rely on wl_cursor_image, but also allow to just set the buffer with a specific size and a hot spot. The created WaylandShmBuffer is passed around as a shared pointer, so that it can be automatically cleaned up once the cursor image is no longer used on any seat. Task-number: QTBUG-51604 Change-Id: I1f1ee87f03186c3d564468d3e8ea2a3141d7e2fb Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
* | Fix client xdg_surface not handling all states from configure eventJohan Klokkhammer Helsing2016-03-151-6/+4
| | | | | | | | | | | | | | The code used sizeof(state) when it should have been sizeof(*state). Change-Id: Id1714a5e90e6c58850023424726de26719a69046 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* | Fix SHM drawing logicGiulio Camuffo2016-03-0712-112/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old logic didn't care to listen for wl_buffer.release events so it always drew in the same buffer, potentially resulting in tearing if the compositor was scanning out the buffer at the same time. Instead properly cycle between a few buffers and don't reuse the same one until the release event was received. The old code also used to throttle the redraws, unless the buffer was changing, that is unless the window was getting resized. This is now lost, and no throttling is ever done. Doing it properly, by waiting for the frame callback before committing the new buffer shows very noticeable lags with many applications when resizing, because they paint many times per resize event, so they fall behind the cursor. A proper fix will be to implement the support for requestUpdate(), and using it in the applications. Change-Id: I02732c34769a5c75a6ad68c095bae916e4b274d3 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>