summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylandwindow.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
| | * 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>
* | | Fix FramelessWindowHintPaul Olav Tvete2016-09-181-2/+7
|/ / | | | | | | | | | | | | | | | | setFlags() works just like setWindowState(): we have to use the supplied parameter because the window's state hasn't been updated yet. Change-Id: I223e01ef192f30911697e449669e745f0ad59d99 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
* | Merge remote-tracking branch 'qt/5.6' into 5.7Paul Olav Tvete2016-08-261-0/+5
|\| | | | | | | Change-Id: I6784a53fcc2f0f68b8e916181cb8cdef263782b8
| * Client: Fix keyboard focus logic and crashJohan Klokkhammer Helsing2016-08-261-0/+5
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-191-1/+1
|\| | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/wayland/qml-compositor/qml-compositor.pro examples/wayland/server-buffer/compositor/compositor.pro Change-Id: Ie6fa21dfbdb71f33e0a4d29d34a824048cf00864
| * 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>
* | Move drag icon relative the cursor hotspot positionErik Larsson2016-04-211-0/+5
| | | | | | | | | | | | | | | | | | | | Instead of placing the drag icons top-left corner at the cursors hotspot the drag icon is moved so it will be placed correct relative the cursor hotspot. This will makes the drag feeling more realistic. Change-Id: I8d60ae1b7788accb9034575983417abae4c58c1a Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-081-3/+22
|\| | | | | | | Change-Id: I31f4c29c985301d28d5c8d0501761c7d4fb7fda6
| * Client: Don't create shell surfaces for QShapedPixmapWindowJohan Klokkhammer Helsing2016-03-311-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Implement the QPlatformWindow::requestUpdate() virtual method.Giulio Camuffo2016-04-041-14/+29
| | | | | | | | | | | | | | | | | | The implementation will wait for the frame callback before firing the update event. Change-Id: Ieea748fda7c2aeb62cc40f35dbd122864c09f7cd Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-221-6/+6
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/compositor/compositor_api/qwaylandcompositor.h src/compositor/compositor_api/qwaylandquickcompositor.h src/compositor/compositor_api/qwaylandsurfaceitem.h src/compositor/windowmanagerprotocol/waylandwindowmanagerintegration_p.h Change-Id: I094128be314d2c3d4fe350fa7a162e37da34ae10
| * Add support for bitmap cursorsMartin Gräßlin2016-03-171-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'qt/5.6' into 5.7Paul Olav Tvete2016-03-081-12/+3
|\| | | | | | | Change-Id: Iada0e076ee33e8d39ecc4f40edfd9764ba610c03
| * Fix SHM drawing logicGiulio Camuffo2016-03-071-12/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-191-3/+4
|\| | | | | | | | | | | | | | | Conflicts: .qmake.conf src/compositor/compositor_api/qwaylandquicksurface.cpp Change-Id: Ic5e4217549c6c08740dba5ac1794d0a8e53f3a47
| * Fix freeze when using BypassWindowManagerHintJohan Klokkhammer Helsing2016-02-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shell surfaces are now created for windows with BypassWindowManager set, unless the environment variable QT_WAYLAND_USE_BYPASSWINDOWMANAGERHINT is also set. This means that in case you need a window to not create a wayland shell_surface (perhaps because you do not want to use wl_shell or xdg_shell), you can set the environment variable and get the same behavior as before. Meaning the surfaces of windows with the flag set will not be assigned a role. Task-number: QTBUG-49272 Change-Id: Idf969540497d6b4e54395b97472d99d2e068be93 Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
| * Don't create wl_surface for desktop widgetsv5.6.0-rc1Paul Olav Tvete2016-01-111-2/+2
| | | | | | | | | | Change-Id: I3ebcb49a4acf230b9515c0317aab2307dcb9270b Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Updated license headersAntti Kokko2016-01-201-14/+20
| | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I76ae5d3e64f096eb3163d6163a38d68c7c1ca756 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Set appId according to QGuiApplication::desktopFileName()Pier Luigi Fiorini2016-01-111-15/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since qtbase 61ad604ad41607be97efea5a18cd4d9fb7ddca73, QGuiApplication has got a new property: desktopFileName. Applications can now specify the desktop file name. In that case we have a reliable information: use it for the appId removing the ".desktop" suffix. Otherwise, just use the logic we previously established. Change-Id: I03c89009620b33bc68ee97ed414cfee1c1794632 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* | Merge branch 'qt/5.6' into wip-compositor-apiPaul Olav Tvete2015-10-131-13/+17
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/wayland/pure-qml/main.cpp examples/wayland/pure-qml/qml/Chrome.qml examples/wayland/pure-qml/qml/main.qml src/client/qwaylanddnd_p.h src/compositor/compositor_api/qwaylandquicksurface.cpp src/compositor/compositor_api/qwaylandsurface_p.h src/compositor/compositor_api/qwaylandsurfaceitem.cpp src/compositor/extensions/qwlinputmethodcontext_p.h src/compositor/hardware_integration/qwlclientbufferintegration_p.h src/compositor/hardware_integration/qwlclientbufferintegrationfactory_p.h src/compositor/hardware_integration/qwlclientbufferintegrationplugin_p.h src/compositor/hardware_integration/qwlhwintegration_p.h src/compositor/hardware_integration/qwlserverbufferintegrationfactory_p.h src/compositor/hardware_integration/qwlserverbufferintegrationplugin_p.h src/compositor/wayland_wrapper/qwlcompositor_p.h src/compositor/wayland_wrapper/qwldatadevice_p.h src/compositor/wayland_wrapper/qwldatadevicemanager_p.h src/compositor/wayland_wrapper/qwldatasource_p.h src/compositor/wayland_wrapper/qwlextendedsurface_p.h src/compositor/wayland_wrapper/qwlinputdevice_p.h src/compositor/wayland_wrapper/qwlinputmethod_p.h src/compositor/wayland_wrapper/qwlinputpanel_p.h src/compositor/wayland_wrapper/qwlinputpanelsurface_p.h src/compositor/wayland_wrapper/qwlkeyboard.cpp src/compositor/wayland_wrapper/qwlkeyboard_p.h src/compositor/wayland_wrapper/qwloutput_p.h src/compositor/wayland_wrapper/qwlpointer_p.h src/compositor/wayland_wrapper/qwlregion_p.h src/compositor/wayland_wrapper/qwlshellsurface_p.h src/compositor/wayland_wrapper/qwlsubsurface_p.h src/compositor/wayland_wrapper/qwlsurface.cpp src/compositor/wayland_wrapper/qwlsurface_p.h src/compositor/wayland_wrapper/qwltextinput_p.h src/compositor/wayland_wrapper/qwltextinputmanager_p.h src/compositor/wayland_wrapper/qwltouch_p.h src/compositor/windowmanagerprotocol/waylandwindowmanagerintegration_p.h src/imports/compositor/WaylandCursorItem.qml Change-Id: I4e63ef295b297022d4970b3c68b3d565843086bd
| * Merge remote-tracking branch 'origin/5.5' into 5.6v5.6.0-alpha1Liang Qi2015-08-281-13/+17
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylandwindow.cpp Change-Id: I80ead87f3e1f36299b1bf9cc9c7db6cd48c0e86f
| | * Fix tooltips without a transient parentGiulio Camuffo2015-07-041-13/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | QToolTip has the same problems as QMenu, that is you can create one without a parent and with a global position. Use the same trick and use the window that last received an input event as the parent. Change-Id: I093c8da0d54110903f35670b01dea6fa96abecf4 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | Fix sending exposeevents on all swapbuffersJørgen Lind2015-09-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | In Change-Id: I2d4a5f6dd357d84df43acc0082f9621fb6609768 I extracted a call to handleExposeEvent from a if statement. I failed to see that the else condition also had an if statement. Change-Id: Ie51c5f918a4e4ddaec9e75c9c3afffa962d2bd06 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | | Set default size if a QWindow has no geometryJørgen Lind2015-09-041-3/+5
|/ / | | | | | | | | | | also extract two lines out of conditional branches Change-Id: I2d4a5f6dd357d84df43acc0082f9621fb6609768
* / Use standard wl_subsurface interface to set a window as a child of another oneGiulio Camuffo2015-07-221-46/+80
|/ | | | | Change-Id: I52628f87dbea5383db06468f9748a9bacdec3179 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Fix wheel events when the decorations are enabledGiulio Camuffo2015-06-091-0/+6
| | | | | | | | | We must offset the wheel events' position, as we do with the other types of mouse events. Change-Id: If85e93ffe95304c7dee4c2a3ff195a73243a8182 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-7/+22
|\ | | | | | | | | | | | | | | Conflicts: src/client/qwaylandshmbackingstore.cpp src/client/qwaylandwindow.cpp Change-Id: I795fd08f0fc5d3cb5ed55bf16e724f66b7567723
| * Remove .desktop suffix to appIdPier Luigi Fiorini2015-04-101-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The appId is the desktop entry identifier. According to the desktop entry specifications [1], for applications the part of the name should follow the reverse DNS convention (see [2]). To do this we use the application domain if available, otherwise for lack of information we fall back to the executable base name like other toolkits such as Gtk+ do. [1] http://standards.freedesktop.org/desktop-entry-spec/latest/ [2] http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s02.html Change-Id: I181ad23a9736844e07e8060d78e756a943c27f67 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Don't handle mouse events in decos if buttons were pressed in the content areaGiulio Camuffo2015-04-081-1/+2
| | | | | | | | | | | | | | | | This fixes the decorations stealing the mouse events when going outside the content area. Change-Id: I8f3592fbda6b9c1da6498d74820a73be11c6999d Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Make QWaylandShellSurface a QObject to allow build without RTTIOlivier Blin2015-03-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | dynamic_cast can not be used when RTTI is disabled, so make QWaylandShellSurface a QObject. QWaylandWlShellSurface and QWaylandXdgSurface must also inherit from QWaylandShellSurface first, to properly inherit from QObject. Change-Id: I2addb8105a0fe61615d4bc905414f7ee7277029f Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Update copyright headersJani Heikkinen2015-02-171-22/+14
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I5a74d32515c3f1fe7aa1916f4241c92832510f8c Reviewed-by: Antti Kokko <antti.kokko@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-02-161-16/+13
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylanddataoffer.cpp src/client/qwaylanddisplay.cpp src/client/qwaylandinputdevice.cpp src/client/qwaylandwindow.cpp src/compositor/compositor_api/qwaylandsurfaceitem.cpp Change-Id: I2eae0fd43a71fbfd7c907ca715707a26f3c134c5
| * Sanitize popup behavior.Laszlo Agocs2015-02-131-16/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Popups are pretty important for widget apps. Menus, combobox dropdows and such are all popups. Currently they are completely borked when activated via keyboard or touch. This is because of the bizarre set_popup request in the protocol, and Weston's current implementation, that ignore the fact that a popup can be opened as a result of a keyboard event too or may not originate from an input event at all. Pass the last input device and serial we have seen, regardless of the type, by tracking it globally in the QWaylandDisplay. With this patch menus and such will not freeze the application anymore when activated with keyboard or touch without sending a mouse event to the window first. The behavior is still broken in some ways, especially with keyboard due to immediately getting a popup_done, but at least applications remain usable. Task-number: QTBUG-41142 Task-number: QTBUG-41147 Change-Id: I18de501004ae8a62ff8667e72225d08c2d3ba491 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Fix popup menus with no parent windowsGiulio Camuffo2015-02-111-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The QMenu API doesn't play well with Wayland. You can do: QMenu menu; menu.popup(someGlobalPos); which is completely broken on wayland. If some popup window doesn't have a transient parent use the current focus window for that. Fixes right-click popups in qdbusviewer and other apps. Change-Id: I3227f4ec27431ca8ec156971cbfdbf1e848a0527 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Make sure we send a valid initial resizeGiulio Camuffo2015-01-271-2/+2
| | | | | | | | | | Change-Id: Ib9a0152f83af433354d32ef4a8a233e5551ded8c Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Namespace the platform pluginsGiulio Camuffo2015-01-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | There currently is a QWaylandInputDevice class both in the wayland QPA plugin and in the QtCompositor API. This causes the qwindow-compositor example to crash when running nested in a wayland session due to a mismatch between the two classes. By namespacing all the plugin code we make sure that name clashes will not happen anymore. Change-Id: I17497cff697599200bea68bf01dfde474526390f Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Send proper mouse enter eventsGiulio Camuffo2015-01-131-21/+33
| | | | | | | | | | | | | | | | The wl_pointer.event carries the surface local position of the pointer. Notify Qt of it, without pretending it to be a motion event. Change-Id: Ibbe1d125a93b478f9c350a50bfea25b01f628178 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Implement high-dpi supportMorten Johan Sorvig2014-12-171-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wayland 1.2 added support for display scaling, where wl_output has a "scale" event informing the the client that the compositor will scale the output surfaces by the given factor. The client then has the option of providing large surfaces to match the target pixel densety and bypass the compositor's scaling. This is done by calling wl_surface::set_buffer_scale. Re-use the current high-dpi support in Qt by implementing devicePixelRatio() for QWaylandScreen and QWaylandWindow. Provide high resolution buffers both for raster and OpenGL graphics. Introduce a new coordinate system: buffer coordinates, which is related to the window coordinate system via an "int scale" scale factor. This scale factor corresponds to Qts qreal devicePixelRatio, but we keep the name and the type in the QtWayland implementation. Change-Id: Ie10d7e5b4833480a9a25d96a26ad02150eb6e83f Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Merge branch '5.4' into devGiulio Camuffo2014-11-151-14/+46
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge done by Giulio Camuffo Conflicts: src/client/client.pro src/client/qwaylanddisplay.cpp src/client/qwaylandinputdevice.cpp src/client/qwaylandinputdevice_p.h src/client/qwaylandwindow.cpp src/compositor/compositor_api/qwaylandsurface.cpp src/compositor/compositor_api/qwaylandsurface_p.h src/compositor/wayland_wrapper/qwlsurface.cpp Change-Id: I1df878bb54f49d953c51215a2772869e261ebe81
| * Be compatible with older compositorsGiulio Camuffo2014-10-131-0/+3
| | | | | | | | | | | | | | | | When binding globals take care of the version the compositor provides and don't call requests that the compositor doesn't implement. Change-Id: Iea0c534fb9e005720857e2778e380b6a9c22a6f3 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * Fix shm windows sometimes not showing after being hiddenGiulio Camuffo2014-10-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWaylandShmBackingStore installs a frame callback on flush, and subsequent flushes will not attach a new buffer until the callback is fired. If the window is hidden while we're waiting for the callback, we attach a NULL buffer, so the compositor will not redraw the surface and will not fire the frame callback. When showing the window again the backing store's flush() will wait indefinitely for the frame callback to attach its buffer. To fix it destroy the frame callback when the window is hidden. This was easily noticeable when fast switching between popup menus. Change-Id: Ic0c71ed79e2fab9faf452f63b05bc4576ea9a3ba Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * Support the creation of >= 3.x OpenGL contextsGiulio Camuffo2014-09-301-1/+0
| | | | | | | | | | | | | | | | | | Use the EGL_KHR_create_context extension if available to create modern gl contexts. We disable window decorations on core profiles because that mandates a VAO to be used. Change-Id: Id6044e64f6736244ae9d593af4d68c4000a31de6 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * decorations: Remove strange set dance between QWaylandWindow & ↵Robin Burchell2014-09-231-9/+3
| | | | | | | | | | | | | | | | | | QWaylandAbstractDecoration. This makes absolutely no sense. Just do things inline. Change-Id: Ic6d4e62bc9b3c0a4533f63740f2608a0be201047 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
| * QtWaylandClient: Pluginize window decorations.Robin Burchell2014-09-231-3/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert to a D-pointer, split between abstract base class and an implementation. Also move implementation of the current built-in decoration to the "bradient" plugin, named in glorious memory of the programmer-designed blue gradient that will forever sear our eyeballs. The decoration plugin may be specified using the environment variable QT_WAYLAND_DECORATION. Change-Id: Idc99ab06ae138ad299bad2b62b9595379bd007ab Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
| * Rename QWaylandDecoration => QWaylandAbstractDecorationRobin Burchell2014-09-231-4/+4
| | | | | | | | | | | | | | This is in preparation for decoration plugins. Change-Id: Idb322a7a5cbc2eb5bf2cce019073f9f4fb46297f Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-09-191-14/+36
|\| | | | | | | | | | | | | Conflicts: src/compositor/wayland_wrapper/qwlcompositor.cpp Change-Id: Ica26e33eb2b77ed5be0e84e8f4256d2e85abfaf5
| * Fix window decorations for GL appsLaszlo Agocs2014-09-061-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | You cannot have rounded corners with an alpha-less config. To make OpenGL applications appearing with the correct decoration, alpha must be enabled. With this fix the OpenGL apps' decoration will now look identical to the SHM apps'. Change-Id: I24431ddab63146f7f697c85277f00f41e5c55e85 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
| * DataOffer not invalidated when client loses keyboard focusLi Qiu2014-09-041-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The data_offer object should be invalidated when client loses keyboard focus. Otherwise in following scenario, it will become zombie object: start app1 -> copy text -> start app2 -> paste text -> close app1 -> paste again in app2 -> seg fault in qtwayland. The root cause is that when app2 takes focus the first time, data_device.data_offer event was sent to it from DataDevice::setFocus. When app1 is closed, the data source reference in data offer becomes invalid. so when trying to paste again in app2, segmentation faults Change-Id: I16a584e80fddaadd269b00cdf39eb405dd95b622 Task-number: QTBUG-41005 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Wayland: can drag a window by its titlebar using the touchscreenShawn Rutledge2014-09-011-0/+7
| | | | | | | | | | | | | | | | It was already possible to drag it via the mouse but not via touch. Task-number: QTBUG-41085 Change-Id: Ia52c7124fb2f1aa0331897bd072fcf09fb78aa1a Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Indicate from the client buffer integration if decorations are supportedLaszlo Agocs2014-08-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Custom client buffer integrations may not care about window decorations. Setting QT_WAYLAND_DISABLE_WINDOWDECORATION is tedious and error-prone. And it cannot be omitted since things like input events will be off if the common client code thinks decorations are in use but the client buffer integration does not render them at all. Therefore add a supportsWindowDecoration() virtual in addition to the environment variable. Change-Id: If8f621182d5c230f4d8d679c050f5d27aed6c2fb Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>