diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-07-02 03:03:53 +0200 |
---|---|---|
committer | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2019-07-04 15:53:12 +0200 |
commit | 2857223212ef56810b61ea97fb977573700ab1e0 (patch) | |
tree | 689174ad3f7daea1263b1c5ac6d7cd8b773a9986 | |
parent | 9822df545cf1aaad684cb6179b214952a4027b71 (diff) | |
parent | bd5c03712cc0c3049479ee3636f0d795014d3f04 (diff) |
Merge "Merge remote-tracking branch 'origin/5.13' into dev"
-rw-r--r-- | dist/changes-5.13.0 | 112 | ||||
-rw-r--r-- | src/client/qwaylanddatadevice.cpp | 5 | ||||
-rw-r--r-- | src/client/qwaylandinputdevice.cpp | 7 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandxdgdecorationv1.cpp | 2 |
4 files changed, 124 insertions, 2 deletions
diff --git a/dist/changes-5.13.0 b/dist/changes-5.13.0 new file mode 100644 index 000000000..2aa76ba85 --- /dev/null +++ b/dist/changes-5.13.0 @@ -0,0 +1,112 @@ +Qt 5.13 introduces many new features and improvements as well as bugfixes +over the 5.12.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.13 series is binary compatible with the 5.12.x series. +Applications compiled for 5.12 will continue to run with 5.13. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* General * +**************************************************************************** + + - libwayland 1.8.0 is now required. + - Code generated by qtwaylandscanner now includes wayland-client-core.h + and wayland-server-core.h instead of wayland-client.h and + wayland-server.h. This might break source compatibility for code using + custom wayland extensions. + +**************************************************************************** +* Compositor * +**************************************************************************** + + - [QTBUG-70662] Added QWaylandQuickItem::mapFromSurface which converts + points in Wayland surface coordinates to points in QQuickItem + coordinates. + - Fixed a bug where xdg-shell popups were misplaced when devicePixelRatio + was not 1. + - QWaylandSurface::destinationSize has been added which returns the size + of the surface that will be displayed on the screen in surface + coordinates. + - Fixed a bug where QWaylandSurface::inputRegionContains would return true + for some points outside surfaces with buffer scale > 1. + - Fixed a bug which caused ShellSurfaceItems for surfaces with buffer + scale > 1 to move too much when resizing interactively. + - QWaylandSurface::size has been deprecated. Use bufferSize or + destinationSize instead. + - Added support for linux-dmabuf-unstable-v1. + - Added support for the viewporter Wayland extension. + - Added a missing change signal for WaylandQuickItem.compositor. + - Added deprecated support for the deprecated the wl_scaler extension. + - Fixed a bug where virtual keyboard did not send Enter event to clients. + +**************************************************************************** +* QPA plugin * +**************************************************************************** + + - The environment variables, QT_WAYLAND_CLIENT_BUFFER_INTEGRATION and + QT_WAYLAND_SERVER_BUFFER_INTEGRATION, now takes precedence over what is + communicated through the qt_hardware_integration wayland interface. + - The private window decoration API method, + QWaylandAbstractDecoration::startResize, now takes Qt::Edges argument + instead of a wl_shell_surface_resize enum. This will break window + decoration plugins written for older versions of Qt Wayland. + - Shell integrations are now features that can be enabled or disabled at + build time. + - Clients now follow the keyboard key repeat delay and interval configured + by the compositor. + - Added support for fullscreen-shell unstable v1. + - A window menu is now shown when the window decorations are right-clicked + (if supported by the compositor). + - Minimum and maximum window size is now supported with the xdg-shell and + xdg-shell-v6 shell integrations. + - xdg-shell (stable and v6) window geometry is now sent every time the + window is resized. + - Fixed a bug where window decorations were to small for for the content + when QT_SCALE_FACTOR was set. + - [QTBUG-54786] Fixed a bug where pasting from the clipboard would prefer + ASCII over UTF-8, causing loss of special characters. + - [QTBUG-68571] Fixed a bug where the DPI of bitmap cursors were not sent + to the compositor, leading to the compositor incorrectly scaling the + cursor up or down. + - [QTBUG-68571] Fixed a bug where bitmap cursor hotspots were off when the + screen scale factor was different from the bitmap cursor device pixel + ratio. + - Fixed a leak of wl_data_offers. + - Cursors on high DPI screens are now scaled up if the cursor theme does + not have an appropriate high resolution version. + - Fixed a bug where QGuiApplication::screens() and primaryScreen() would + return initial screens in the reverse order they were added by the + compositor. QGuiApplication::primaryScreen() will now return the first + output added by the compositor. + - Fixed a bug where windows with an OpenGL Core context and window + decorations didn't work. + - Fixed a build issue where the platform plugin would not be built if the + compositor wasn't build. + - The non-blocking version of eglSwapBuffers is now used, if supported. + This fixed a bug where minimized windows would block the event loop. + - Windows that don't get frame callbacks from the compositor within 100 ms + are now set as not exposed. This should stop most clients from rendering + unnecessary frames to minimized or hidden windows. + - Improved startup time by moving key Compose table parsing from startup + to the first use (a key was pressed). + - Selecting a module via QT_IM_MODULE now works as documented. + - Fixed a bug where Ctrl + <some letter> did not work with non-latin + keyboard layouts. Other shortcut sequences with non-latin keys not + working also have been fixed now. + - Fixed a bug where shortcuts with modifiers that change resulting key + would not work as expected. + - Added support for xdg-output-unstable-v1 version 2. This means + QScreen::name(), will now typically return "VGA-1", "WL-1", "DP-2", + "HDMI-A-1" and similar instead of "Screen25", "Screen26", "Screen27" + etc. (on supported compositors). + - Fixed a crash when closing multiple popups at once. diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp index 9dbef8d5b..e7afc3ca8 100644 --- a/src/client/qwaylanddatadevice.cpp +++ b/src/client/qwaylanddatadevice.cpp @@ -113,7 +113,10 @@ void QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon) if (!origin) origin = seat->touchFocus(); - start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial()); + if (origin) + start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial()); + else + qCDebug(lcQpaWayland) << "Couldn't start a drag because the origin window could not be found."; } void QWaylandDataDevice::cancelDrag() diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp index 6ebc3bed7..19e36ccba 100644 --- a/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp @@ -279,6 +279,10 @@ void QWaylandInputDevice::Pointer::updateCursorTheme() int pixelSize = cursorSize() * scale; auto *display = seat()->mQDisplay; mCursor.theme = display->loadCursorTheme(cursorThemeName(), pixelSize); + + if (!mCursor.theme) + return; // A warning has already been printed in loadCursorTheme + if (auto *arrow = mCursor.theme->cursorImage(Qt::ArrowCursor)) { int arrowPixelSize = qMax(arrow->width, arrow->height); // Not all cursor themes are square while (scale > 1 && arrowPixelSize / scale < cursorSize()) @@ -317,6 +321,9 @@ void QWaylandInputDevice::Pointer::updateCursor() if (!mCursor.theme || idealCursorScale() != mCursor.themeBufferScale) updateCursorTheme(); + if (!mCursor.theme) + return; + // Set from shape using theme uint time = seat()->mCursor.animationTimer.elapsed(); if (struct ::wl_cursor_image *image = mCursor.theme->cursorImage(shape, time)) { diff --git a/src/compositor/extensions/qwaylandxdgdecorationv1.cpp b/src/compositor/extensions/qwaylandxdgdecorationv1.cpp index 2d283ddf9..a58601cd4 100644 --- a/src/compositor/extensions/qwaylandxdgdecorationv1.cpp +++ b/src/compositor/extensions/qwaylandxdgdecorationv1.cpp @@ -75,7 +75,7 @@ QT_BEGIN_NAMESPACE } \endqml - \sa XdgToplevel::decorationMode + \sa QWaylandXdgToplevel::decorationMode */ /*! |