summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix text-input support for new APIJan Arne Petersen2016-04-1849-2071/+2678
| | | | | | | | | | | | | | | | Update text input support to upstream text-input protocol v2 from wayland-protocols. Remove support for input-method protocol for now. Map text-input protocol on compositor side to the Qt input method API, this allows to use any qt platform input method on compositor side (especially qtvirtualkeyboard). Add support for qtvirtualkeyboard to pure-qml example. Implement all missing functions of the text-input protocol. Change-Id: I597451ff65454a63dff86026b6a8d1ffbe07ce02 Done-with: Zeno Endemann <zeno.endemann@kdab.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Add API to grab a surface's contentGiulio Camuffo2016-04-188-1/+316
| | | | | | | | This patch adds a new QWaylandSurfaceGrabber class. The user can use it to grab a surface's content, and get a QImage with the data. Change-Id: I25dd72a8ba39201cd91addbfc976b93ca1e05112 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Remove unimplemented subsurface methods from extended surfacePier Luigi Fiorini2016-04-181-5/+0
| | | | | | | | These methods have no implementation for a good reason: Wayland now has official support for subsurfaces. Change-Id: I5b2fe2a66878db0bcc1c3773bacc834dbd922d44 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Update ignore listPier Luigi Fiorini2016-04-181-24/+9
| | | | | | | Glob all generated files. Change-Id: I1adf0243c08074685f76496d800840a88d608c69 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Remove unused signal QWaylandSurface::pongJohan Klokkhammer Helsing2016-04-152-2/+0
| | | | | | | | | | | | It appears to be a leftover from when QWaylandSurface::ping existed (which forwarded the ping event to the wl_shell interface for the client corresponding to the wl_surface). There is no guarantee that the wl_surface has a role that supports some form of ping, so it doesn't make much sense to keep the signal. Change-Id: I83a0ef5785dcf94d02c37b0a1535c3c0b0913709 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Update plugins.qmltypesJohan Klokkhammer Helsing2016-04-141-0/+4
| | | | | Change-Id: I698e1fb2578109190210da1bc47d699c21863a46 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Simplify ShellSurfaceItem creationv5.7.0-beta1Johan Klokkhammer Helsing2016-04-115-25/+8
| | | | | | | | | | | Use onShellSurfaceCreated instead of onCreateShellSurface. A QWaylandWlShellSurface is no longer created in QWaylandWlShellSurfaceItem::componentComplete Change-Id: I7a0dbbacddc17ab32ed0e4d16e717fcefb221947 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Erik Larsson <erik@ortogonal.com>
* Add basic tests for xdg-shell compositor APIJohan Klokkhammer Helsing2016-04-114-5/+114
| | | | | | | | | | | | Tests the following functionality: * xdg_shell can be found and bound using the registry * xdg_surfaces can be created * window geometry is handled correctly (not including subsurfaces) * app_id Change-Id: I76942da2b245f91fe567059e175fe9ceb98edb6a Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Create a fallback shellSurface in wl_shell::get_shell_surfaceJohan Klokkhammer Helsing2016-04-114-16/+28
| | | | | | | | | | | | | | | | | This makes QWaylandShellPrivate::shell_get_shell_surface behave similarly to QWaylandCompositorPrivate::compositor_create_surface. First, a signal is emitted letting a compositor implementation create its own subclass of QWaylandShellSurface if desired. If it's not created, a plain QWaylandShellSurface is created instead. It also makes the API more consistent, as the creation of shell surfaces now mimick the creation of surfaces and xdg surfaces. qwindow-compositor has been updated to take advantage of the new API Change-Id: I7c7262dd253dc37843e8e471a4ead5f6e87b0ced Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Update plugins.qmltypesPier Luigi Fiorini2016-04-091-0/+10
| | | | | | Change-Id: I61788e26134928327a0e07ddbff39eacd3573516 Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-083-4/+26
|\ | | | | | | Change-Id: I31f4c29c985301d28d5c8d0501761c7d4fb7fda6
| * 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>
* | Rename compositor Shell to WlShellJohan Klokkhammer Helsing2016-04-0520-401/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * QWaylandShell -> QWaylandWlShell * QWaylandShellSurface -> QWaylandWlShellSurface * QWaylandQuickShellSurfaceItem -> QWaylandQuickWlShellSurfaceItem * Shell -> WlShell (QML) * ShellSurface -> WlShellSurface (QML) * ShellSurfaceItem -> WlShellSurfaceItem (QML) This is done to avoid confusion with XdgShell and will hopefully help clarify that some of the examples only support wl_shell and not xdg_shell. Additionally, this makes "Shell" an available name in the compositor API, which may in turn enable the creation of a more general abstraction hiding the details of the shell backends (i.e. xdg_shell, wl_shell, and eventually ivi_shell). Change-Id: Iebac1f36505084bfaaea68838005d54db6c55e21 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | Implement the QPlatformWindow::requestUpdate() virtual method.Giulio Camuffo2016-04-042-14/+33
| | | | | | | | | | | | | | | | | | 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>
* | Set socket name for TestCompositorJohan Klokkhammer Helsing2016-04-032-1/+1
| | | | | | | | | | | | | | | | | | | | | | Tests did not pass because WAYLAND_DISPLAY only affects clients, not compositors. Compositor display name can be set either using the command line argument "--wayland-socket-name" or QWaylandCompositor::setSocketName. The latter was chosen here. Change-Id: I524b5c92ec9959486373875850b4f192b62423e0 Reviewed-by: Erik Larsson <erik@ortogonal.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Remove traces of obsolete config flag "wayland-compositor"Johan Klokkhammer Helsing2016-04-013-31/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compositor is always built regardless of this config flag. Consequently some of the documentation and configuration was contradicting and confusing. * Removes the mentions of the flag from the README * Always build compositor tests * Always build plugins Update readme Change-Id: I37b7d1f0250beb17780834928114ecefdf17684e Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Fix incorrect function signature in compositor testJohan Klokkhammer Helsing2016-03-312-3/+3
| | | | | | | | | | | | Change-Id: I64174607a48b50c8371f53699568a96474dc10c6 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Erik Larsson <erik@ortogonal.com>
* | qwindow-compositor: Fix regression when clearing popupsJohan Klokkhammer Helsing2016-03-311-3/+2
| | | | | | | | | | | | | | | | Clearing the popup list erroneously got moved inside the foreach loop. Change-Id: I8696c1c4281207230f5afa3a05d22881d93794c6 Reviewed-by: Erik Larsson <erik@ortogonal.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Add QWaylandShellSurface::fromResource()Giulio Camuffo2016-03-293-1/+21
| | | | | | | | | | | | | | | | | | | | Also make sure that the generated *::Resource::fromResource() code returns null if it doesn't own the resource or if the interface is wrong. Change-Id: I904e0dd49dd6e535ef8cab6687c6869e1000048d Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7Liang Qi2016-03-299-17/+76
|\ \
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-229-17/+76
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * 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>
* | | | Filter key events through the input method contextArnaud Vrac2016-03-251-23/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the input method to capture keys, for example to implement the Compose key or to navigate in a virtual keyboard. Change-Id: Ic0ab318e84401ac339881eadd5eb992a2d57f9e3 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | | Initial compositor support for xdg-shell wayland extensionJohan Klokkhammer Helsing2016-03-2417-32/+1641
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xdg-shell is an extension to the wayland protocol providing functionality suited towards traditional desktop environments. Most of the examples from Weston now require xdg-shell, ivi-shell or some other custom extension. In order for our compositor-api to support those examples and many real-world applications, we needed a compositor implementation of xdg-shell. This commit adds a class QWaylandXdgShell, along with QWaylandXdgSurface and QWaylandXdgPopup. These clases are used almost exactly like the corresponding QWaylandShell* variants. qwindow-compositor has been updated to use the new functionality. qwindow-compositor now only sets focus on surfaces that have a role. weston-terminal was crashing because we set keyboard focus on the cursor surface. Keyboard focus handling has been slightly changed. Most of the functionality has been moved from QWaylandKeyboard::setFocus to QWaylandInputDevice::setKeyboardFocus. This is done in order to track where the keyboard focus should have been, in case the input device (seat) does not currently have a keyboard capability. If a keyboard capability is later set on the input device, its focus will automatically be set to the value stored in QWaylandInputDevice. The reason for the change in keyboard focus handling is that we need to know if an xdgSurface has keyboard focus in order to know whether to send the Activated state in configure events. The Activated state tells the client to draw itself as having focus (i.e. title bar not grayed out). Change-Id: I1b1ca9a4223e87f5ade1e0f4c975979a400c38cb Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | | | Adjust Raspberry Pi integration to new APIDonald Carr2016-03-233-11/+4
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7ef64e5dd5e87e62ec83fc05076a5c2e93d11638 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | | Update plugins.qmltypesJohan Klokkhammer Helsing2016-03-231-5/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent changes to the QML API have not been accompanied with the corresponding auto-generated updates to plugins.qmltypes Change-Id: Ided52d2d3d3c51da1f69eacc69442c064794fa8a Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | | Compositor, drag-and-drop: Clean up drag focus when droppingJohan Klokkhammer Helsing2016-03-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: If you dragged in one client, then closed that client, opened another one and tried to drag again, the compositor would crash. Solution: Reset the drag focus when dropping or canceling the drag operation. Change-Id: I0ab78b0a3e9d2889db225b7ca45957b5148bb3a0 Reviewed-by: Erik Larsson <erik@ortogonal.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | | | Add missing overridePier Luigi Fiorini2016-03-232-3/+3
|/ / / | | | | | | | | | | | | | | | Change-Id: I17509ffbd6b87d356057d162caf866be68c10469 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
* | | Send keyboard repeat informationPier Luigi Fiorini2016-03-224-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Complete the API for keyboard rate and delay that was previously implemented sending the information to clients. Back then this wasn't possible for lack of Wayland >= 1.6 on the CI system. Change-Id: I95bab22bf4eea6549d2f8a762341c6485a24665c Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | inputdevice: map more X11 keysArnaud Vrac2016-03-211-16/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a copy of the key mapping in the XCB plugin. The only difference is the Launch* keys, which will be changed in Qt6 in the XCB plugin. Here we don't need to wait for that since the mapping is new. This also change the mapping of the following keys, which was incorrect: XKB_KEY_XF86AudioRewind: Qt::Key_MediaPrevious -> Qt::Key_AudioRewind XKB_KEY_XF86AudioForward: Qt::Key_MediaNext -> Qt::Key_AudioForward XKB_KEY_XF86Phone: Qt::Key_ToggleCallHangup -> Qt::Key_Phone Change-Id: I30308da8529dba5b139fc599314c9465573b848e Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Add automatic socket name detection in compositorErik Larsson2016-03-211-15/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compositor automatically finds a free socket name using wl_display_add_socket_auto. Also fix the order in which the compositor uses --wayland-socket-name or the content of the socketName property. The documentation states the content of the socketName property should be used before the content of --wayland-socket-name. The commit also removes the reference to the WAYLAND_DISPLAY environment variable from the docs. Change-Id: I33dff4e4627d95f5894a5a1e2f308d747f449691 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
* | | Test: Make compositor tests runnable with new APIErik Larsson2016-03-2110-136/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix compilation errors and make all compositor tests runnable with the new compositor API. Some input handling tests are reworked so they are able to function with the new compositor API. Also make sure client and cmake tests are built even if not compiled with a wayland-compositor. Change-Id: I0f03e2c04f2736860f770b6100ccfa3300ff8da4 Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Update wayland.xml to 1.6Pier Luigi Fiorini2016-03-211-28/+96
| | | | | | | | | | | | | | | | | | Change-Id: I89b1dd4f6b6f03f54a9126dd5f67b0cdc9a006ad Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Fix crash in qwindow-compositor when setting hidden cursorJohan Klokkhammer Helsing2016-03-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Clients can request null as the cursor surface in order to hide the cursor. Added a null pointer check so it doesn't crash. Change-Id: I9a0081ea9edd74c504bd55e385a6854024ab0c8a Reviewed-by: Erik Larsson <erik@ortogonal.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Encapsulate conversion from scancodes to Waylands xkb_v1 keymap formatJohan Klokkhammer Helsing2016-03-182-7/+11
| | | | | | | | | | | | | | | Change-Id: Id2126e6e0e37d0cd64c4dc8476b97e8d0d16b24b Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Simplify client-side API for Wayland extensionsErik Larsson2016-03-189-27/+310
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies the client-side API for Wayland extensions by introducing QWaylandClientExtension/QWaylandClientExtensionTemplate classes. These classes takes care of the initialization of the extension if it matches the interface name. Change-Id: I7c4fb34563563af4be072cdebda54954b79cddbe Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* | | Upgrade required Wayland version to 1.6.0Johan Klokkhammer Helsing2016-03-173-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | This makes sure QtWayland is only built if a Wayland version >= 1.6.0 is found. Upgraded from 1.4.0. Change-Id: Ibbd965f9e25ae9fd15d9367431574c5c1ff8b7ce Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | | qwindow-compositor: Fix cursor not being set for mapped surfacesJohan Klokkhammer Helsing2016-03-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a client sent a set_cursor request with a mapped surface, qwindow-compositor did not call updateCursor until the next time the surface was committed, which resulted in cursors with incorrect pixmaps and hotspots. This is solved by adding a check to see if the surface in set_cursor is already mapped, and if so, update the cursor immediately. The issue did not affect Qt clients, since commits are sent after set_cursor. Change-Id: I8b2555b68e9517e04f5bb8c5affe09d84bc97c0c Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Erik Larsson <erik@ortogonal.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* | | Merge "Merge remote-tracking branch 'qt/5.6' into 5.7" into refs/staging/5.7Liang Qi2016-03-0832-208/+232
|\ \ \
| * | | Merge remote-tracking branch 'qt/5.6' into 5.7Paul Olav Tvete2016-03-0832-208/+232
| |\| | | | | | | | | | | | | | Change-Id: Iada0e076ee33e8d39ecc4f40edfd9764ba610c03
| | * | 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>
| | * | Fix crash when pinging a surface with an invalid resource.Andrew den Exter2016-02-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check the surface hasn't been deleted before initiating the ping so that an invalid resource isn't dereferenced when printing a warning after the operation inevitably fails. Change-Id: I18c82de280d5a7a5339e3179c2bba49800626bb6 Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
| | * | don't over-expose private dependenciesOswald Buddenhagen2016-02-251-4/+4
| | | | | | | | | | | | | | | | | | | | Change-Id: If46406b4129b464e8ccfa0b4cf6ff2989402ca74 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
| | * | consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-2520-68/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: Ie9e89fa47696244e8ee478ed1a019765c835533e Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>