From fb7aa15c2a27a9dc841806d07aee9c39aa3fb2ef Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Fri, 3 May 2019 10:14:18 +0300 Subject: Add changes file for Qt 5.13.0 Change-Id: I35b995cc2273a285b0c89be86841b5d38630b493 Reviewed-by: Johan Helsing Reviewed-by: Gatis Paeglis Reviewed-by: Paul Olav Tvete --- dist/changes-5.13.0 | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 dist/changes-5.13.0 diff --git a/dist/changes-5.13.0 b/dist/changes-5.13.0 new file mode 100644 index 000000000..1b18ed8fd --- /dev/null +++ b/dist/changes-5.13.0 @@ -0,0 +1,111 @@ +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 + 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). -- cgit v1.2.3 From 1aba2b28920229aa547470a6c3f3b443d7da6b3a Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Tue, 21 May 2019 09:06:30 +0200 Subject: Client: Don't crash when the cursor theme fails to load Fixes: QTBUG-75920 Change-Id: I29d84b487afb2a90b8a633abce2fcc39ca75adae Reviewed-by: Paul Olav Tvete Reviewed-by: Jani Heikkinen --- src/client/qwaylandinputdevice.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp index 39c02d962..7f6f01cd1 100644 --- a/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp @@ -272,6 +272,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()) @@ -310,6 +314,9 @@ void QWaylandInputDevice::Pointer::updateCursor() if (!mCursor.theme || idealCursorScale() != mCursor.themeBufferScale) updateCursorTheme(); + if (!mCursor.theme) + return; + // Set from shape using theme if (struct ::wl_cursor_image *image = mCursor.theme->cursorImage(shape)) { struct wl_buffer *buffer = wl_cursor_image_get_buffer(image); -- cgit v1.2.3 From 79037e46eeb00e20c5f3bbe7d0de4b702af86884 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Wed, 5 Jun 2019 13:10:38 +0200 Subject: Client: Don't add all windows to activePopups Neither Qt::ToolTip nor Qt::Popup are single bits in Qt::WindowFlags, and do in fact include Qt::Window. This meant that when we or'ed them and did a bitwise and with QWindow::type(), we would match more types than just Qt::Popup and Qt::ToolTip. We would for instance get any Qt::Window as well, which meant the main window would be added to activePopups, leading to strange things happening, such as crashes and the main window closing unexpectedly. [ChangeLog][QPA plugin] Fixed a crash when closing multiple popups at once. Fixes: QTBUG-76124 Change-Id: I1a6a59e161a436604a7ac8ab824396481dc99a20 Reviewed-by: Paul Olav Tvete (cherry picked from commit af9ec8a76d7e62444fadb518256fc58723fe5186) --- dist/changes-5.13.0 | 1 + src/client/qwaylandwindow.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dist/changes-5.13.0 b/dist/changes-5.13.0 index 1b18ed8fd..2aa76ba85 100644 --- a/dist/changes-5.13.0 +++ b/dist/changes-5.13.0 @@ -109,3 +109,4 @@ information about a particular change. 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/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index 4532bc236..8b2c12277 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -387,7 +387,7 @@ QWaylandScreen *QWaylandWindow::calculateScreenFromSurfaceEvents() const void QWaylandWindow::setVisible(bool visible) { if (visible) { - if (window()->type() & (Qt::Popup | Qt::ToolTip)) + if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip) activePopups << this; initWindow(); mDisplay->flushRequests(); -- cgit v1.2.3