summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-02 03:03:53 +0200
committerJohan Klokkhammer Helsing <johan.helsing@qt.io>2019-07-04 15:53:12 +0200
commit2857223212ef56810b61ea97fb977573700ab1e0 (patch)
tree689174ad3f7daea1263b1c5ac6d7cd8b773a9986
parent9822df545cf1aaad684cb6179b214952a4027b71 (diff)
parentbd5c03712cc0c3049479ee3636f0d795014d3f04 (diff)
Merge "Merge remote-tracking branch 'origin/5.13' into dev"
-rw-r--r--dist/changes-5.13.0112
-rw-r--r--src/client/qwaylanddatadevice.cpp5
-rw-r--r--src/client/qwaylandinputdevice.cpp7
-rw-r--r--src/compositor/extensions/qwaylandxdgdecorationv1.cpp2
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
*/
/*!