Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libqt5-qtwayland for
openSUSE:Factory checked in at 2021-12-21 18:40:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtwayland (Old)
and /work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtwayland"
Tue Dec 21 18:40:18 2021 rev:41 rq:941642 version:5.15.2+kde37
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtwayland/libqt5-qtwayland.changes
2021-10-31 22:56:06.727719921 +0100
+++
/work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.2520/libqt5-qtwayland.changes
2021-12-21 18:40:21.877859461 +0100
@@ -1,0 +2,11 @@
+Sun Dec 19 14:47:20 UTC 2021 - Fabian Vogt <[email protected]>
+
+- Update to version 5.15.2+kde37:
+ * Fix backport, context destruction was omitted
+ * Client: do not empty clipboard when a new popup/window is opened
+ * Wayland client: use wl_keyboard to determine active state
+- Add patch to fix crashes triggered by unintentional actions when
+ showing a window (kde#421700):
+ * 0001-Client-Avoid-processing-of-events-when-showing-windo.patch
+
+-------------------------------------------------------------------
Old:
----
qtwayland-everywhere-src-5.15.2+kde34.obscpio
New:
----
0001-Client-Avoid-processing-of-events-when-showing-windo.patch
qtwayland-everywhere-src-5.15.2+kde37.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt5-qtwayland.spec ++++++
--- /var/tmp/diff_new_pack.hWF92G/_old 2021-12-21 18:40:22.749860243 +0100
+++ /var/tmp/diff_new_pack.hWF92G/_new 2021-12-21 18:40:22.753860247 +0100
@@ -26,7 +26,7 @@
%define so_version 5.15.2
%define tar_version qtwayland-everywhere-src-%{version}
Name: libqt5-qtwayland
-Version: 5.15.2+kde34
+Version: 5.15.2+kde37
Release: 0
Summary: Qt 5 Wayland Addon
# The wayland compositor files are GPL-3.0-or-later
@@ -37,9 +37,11 @@
Source1: baselibs.conf
# PATCH-FIX-OPENSUSE
Patch1: 0001-Revert-Bump-version.patch
+# PATCH-FIX-UPSTREAM
+Patch2: 0001-Client-Avoid-processing-of-events-when-showing-windo.patch
BuildRequires: fdupes
-BuildRequires: libqt5-qtbase-private-headers-devel >= %{version}
-BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{version}
+BuildRequires: libqt5-qtbase-private-headers-devel >= %{real_version}
+BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{real_version}
BuildRequires: pkgconfig
BuildRequires: xz
BuildRequires: pkgconfig(egl)
++++++ 0001-Client-Avoid-processing-of-events-when-showing-windo.patch ++++++
>From 68e9002161e2d0e3f33258887541de7abf4c507f Mon Sep 17 00:00:00 2001
From: David Edmundson <[email protected]>
Date: Sun, 14 Nov 2021 13:54:19 +0000
Subject: [PATCH] Client: Avoid processing of events when showing windows
The only time we want to dispatch events from the wayland socket is when
the application is waiting for external events. Doing so at any other
time will cause unpredictable behavior in client code.
This caused a crash downstream where we had outputs get altered whilst
itterating through outputs, which shouldn't happen.
There is no benefit to flushing here, it won't make anything appear
faster as we haven't attached the buffer yet.
Change-Id: Ie13eae4012dab96a93d8810f468d1343402b8c28
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Aleix Pol Gonzalez <[email protected]>
(cherry picked from commit 46ed85a80b28d519cf5887bbdce55d1bf57886c3)
---
src/client/qwaylandwindow.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index ba881cb3..1597f67e 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -436,7 +436,6 @@ void QWaylandWindow::setVisible(bool visible)
if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip)
activePopups << this;
initWindow();
- mDisplay->flushRequests();
setGeometry(windowGeometry());
// Don't flush the events here, or else the newly visible window may
start drawing, but since
--
2.33.1
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.hWF92G/_old 2021-12-21 18:40:22.805860294 +0100
+++ /var/tmp/diff_new_pack.hWF92G/_new 2021-12-21 18:40:22.809860297 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://invent.kde.org/qt/qt/qtwayland.git</param>
- <param
name="changesrevision">02f9585ca19c17ae0978b864195533dc527d825e</param></service></servicedata>
+ <param
name="changesrevision">eb422ab5e07498a7a8d086f6a942ee35ab3c9776</param></service></servicedata>
(No newline at EOF)
++++++ qtwayland-everywhere-src-5.15.2+kde34.obscpio ->
qtwayland-everywhere-src-5.15.2+kde37.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylanddisplay.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylanddisplay.cpp
--- old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylanddisplay.cpp
2021-10-15 18:55:33.000000000 +0200
+++ new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylanddisplay.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -575,14 +575,10 @@
if (mLastKeyboardFocus == keyboardFocus)
return;
- if (mWaylandIntegration->mShellIntegration) {
-
mWaylandIntegration->mShellIntegration->handleKeyboardFocusChanged(keyboardFocus,
mLastKeyboardFocus);
- } else {
- if (keyboardFocus)
- handleWindowActivated(keyboardFocus);
- if (mLastKeyboardFocus)
- handleWindowDeactivated(mLastKeyboardFocus);
- }
+ if (keyboardFocus)
+ handleWindowActivated(keyboardFocus);
+ if (mLastKeyboardFocus)
+ handleWindowDeactivated(mLastKeyboardFocus);
mLastKeyboardFocus = keyboardFocus;
}
@@ -601,6 +597,19 @@
QWindow *activeWindow = mActiveWindows.empty() ? nullptr :
mActiveWindows.last()->window();
if (activeWindow != QGuiApplication::focusWindow())
QWindowSystemInterface::handleWindowActivated(activeWindow);
+
+ if (!activeWindow) {
+ if (lastInputDevice()) {
+#if QT_CONFIG(clipboard)
+ if (auto *dataDevice = lastInputDevice()->dataDevice())
+ dataDevice->invalidateSelectionOffer();
+#endif
+#if QT_CONFIG(wayland_client_primary_selection)
+ if (auto *device = lastInputDevice()->primarySelectionDevice())
+ device->invalidateSelectionOffer();
+#endif
+ }
+ }
}
const wl_callback_listener QWaylandDisplay::syncCallbackListener = {
@@ -627,6 +636,13 @@
return mInputDevices.isEmpty() ? 0 : mInputDevices.first();
}
+bool QWaylandDisplay::isKeyboardAvailable() const
+{
+ return std::any_of(
+ mInputDevices.constBegin(), mInputDevices.constEnd(),
+ [this](const QWaylandInputDevice *device) { return
device->keyboard() != nullptr; });
+}
+
#if QT_CONFIG(cursor)
QWaylandCursor *QWaylandDisplay::waylandCursor()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylanddisplay_p.h
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylanddisplay_p.h
--- old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylanddisplay_p.h
2021-10-15 18:55:33.000000000 +0200
+++ new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylanddisplay_p.h
2021-12-09 17:38:43.000000000 +0100
@@ -215,6 +215,7 @@
void destroyFrameQueue(const FrameQueue &q);
void dispatchQueueWhile(wl_event_queue *queue, std::function<bool()>
condition, int timeout = -1);
+ bool isKeyboardAvailable() const;
public slots:
void blockingReadEvents();
void flushRequests();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylandinputdevice.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylandinputdevice.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylandinputdevice.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylandinputdevice.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -1300,14 +1300,6 @@
void QWaylandInputDevice::Keyboard::handleFocusLost()
{
mFocus = nullptr;
-#if QT_CONFIG(clipboard)
- if (auto *dataDevice = mParent->dataDevice())
- dataDevice->invalidateSelectionOffer();
-#endif
-#if QT_CONFIG(wayland_client_primary_selection)
- if (auto *device = mParent->primarySelectionDevice())
- device->invalidateSelectionOffer();
-#endif
mParent->mQDisplay->handleKeyboardFocusChanged(mParent);
mRepeatTimer.stop();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylandwindow.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylandwindow.cpp
--- old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylandwindow.cpp
2021-10-15 18:55:33.000000000 +0200
+++ new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylandwindow.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -96,7 +96,6 @@
QWaylandWindow::~QWaylandWindow()
{
mDisplay->destroyFrameQueue(mFrameQueue);
- mDisplay->handleWindowDestroyed(this);
delete mWindowDecoration;
@@ -266,6 +265,8 @@
mMask = QRegion();
mQueuedBuffer = nullptr;
+
+ mDisplay->handleWindowDestroyed(this);
}
QWaylandWindow *QWaylandWindow::fromWlSurface(::wl_surface *surface)
@@ -1083,10 +1084,18 @@
return true;
}
+Qt::WindowStates QWaylandWindow::windowStates() const
+{
+ return mLastReportedWindowStates;
+}
+
void QWaylandWindow::handleWindowStatesChanged(Qt::WindowStates states)
{
createDecoration();
- QWindowSystemInterface::handleWindowStateChanged(window(), states,
mLastReportedWindowStates);
+ Qt::WindowStates statesWithoutActive = states & ~Qt::WindowActive;
+ Qt::WindowStates lastStatesWithoutActive = mLastReportedWindowStates &
~Qt::WindowActive;
+ QWindowSystemInterface::handleWindowStateChanged(window(),
statesWithoutActive,
+ lastStatesWithoutActive);
mLastReportedWindowStates = states;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylandwindow_p.h
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylandwindow_p.h
--- old/qtwayland-everywhere-src-5.15.2+kde34/src/client/qwaylandwindow_p.h
2021-10-15 18:55:33.000000000 +0200
+++ new/qtwayland-everywhere-src-5.15.2+kde37/src/client/qwaylandwindow_p.h
2021-12-09 17:38:43.000000000 +0100
@@ -148,6 +148,7 @@
void setWindowState(Qt::WindowStates states) override;
void setWindowFlags(Qt::WindowFlags flags) override;
void handleWindowStatesChanged(Qt::WindowStates states);
+ Qt::WindowStates windowStates() const;
void raise() override;
void lower() override;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/shellintegration/qwaylandshellintegration_p.h
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/shellintegration/qwaylandshellintegration_p.h
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/client/shellintegration/qwaylandshellintegration_p.h
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/client/shellintegration/qwaylandshellintegration_p.h
2021-12-09 17:38:43.000000000 +0100
@@ -73,11 +73,10 @@
return true;
}
virtual QWaylandShellSurface *createShellSurface(QWaylandWindow *window) =
0;
+ // kept for binary compat with layer-shell-qt
virtual void handleKeyboardFocusChanged(QWaylandWindow *newFocus,
QWaylandWindow *oldFocus) {
- if (newFocus)
- m_display->handleWindowActivated(newFocus);
- if (oldFocus)
- m_display->handleWindowDeactivated(oldFocus);
+ Q_UNUSED(newFocus);
+ Q_UNUSED(oldFocus);
}
virtual void *nativeResourceForWindow(const QByteArray &resource, QWindow
*window) {
Q_UNUSED(resource);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -407,6 +407,7 @@
{
delete m_blitter;
m_blitter = nullptr;
+ eglDestroyContext(m_eglDisplay, m_context);
if (m_decorationsContext != EGL_NO_CONTEXT)
eglDestroyContext(m_eglDisplay, m_decorationsContext);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -67,11 +67,6 @@
QWaylandXdgSurface::Toplevel::~Toplevel()
{
- if (m_applied.states & Qt::WindowActive) {
- QWaylandWindow *window = m_xdgSurface->window();
- window->display()->handleWindowDeactivated(window);
- }
-
// The protocol spec requires that the decoration object is deleted before
xdg_toplevel.
delete m_decoration;
m_decoration = nullptr;
@@ -85,16 +80,15 @@
if (!(m_applied.states & (Qt::WindowMaximized|Qt::WindowFullScreen)))
m_normalSize = m_xdgSurface->m_window->windowFrameGeometry().size();
- if ((m_pending.states & Qt::WindowActive) && !(m_applied.states &
Qt::WindowActive))
+ if ((m_pending.states & Qt::WindowActive) && !(m_applied.states &
Qt::WindowActive)
+ && !m_xdgSurface->m_window->display()->isKeyboardAvailable())
m_xdgSurface->m_window->display()->handleWindowActivated(m_xdgSurface->m_window);
- if (!(m_pending.states & Qt::WindowActive) && (m_applied.states &
Qt::WindowActive))
+ if (!(m_pending.states & Qt::WindowActive) && (m_applied.states &
Qt::WindowActive)
+ && !m_xdgSurface->m_window->display()->isKeyboardAvailable())
m_xdgSurface->m_window->display()->handleWindowDeactivated(m_xdgSurface->m_window);
- // TODO: none of the other plugins send WindowActive either, but is it on
purpose?
- Qt::WindowStates statesWithoutActive = m_pending.states &
~Qt::WindowActive;
-
- m_xdgSurface->m_window->handleWindowStatesChanged(statesWithoutActive);
+ m_xdgSurface->m_window->handleWindowStatesChanged(m_pending.states);
if (m_pending.size.isEmpty()) {
// An empty size in the configure means it's up to the client to
choose the size
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -69,20 +69,6 @@
return m_xdgShell->getXdgSurface(window);
}
-void QWaylandXdgShellIntegration::handleKeyboardFocusChanged(QWaylandWindow
*newFocus, QWaylandWindow *oldFocus)
-{
- if (newFocus) {
- auto *xdgSurface = qobject_cast<QWaylandXdgSurface
*>(newFocus->shellSurface());
- if (xdgSurface && !xdgSurface->handlesActiveState())
- m_display->handleWindowActivated(newFocus);
- }
- if (oldFocus && qobject_cast<QWaylandXdgSurface
*>(oldFocus->shellSurface())) {
- auto *xdgSurface = qobject_cast<QWaylandXdgSurface
*>(oldFocus->shellSurface());
- if (xdgSurface && !xdgSurface->handlesActiveState())
- m_display->handleWindowDeactivated(oldFocus);
- }
-}
-
}
QT_END_NAMESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
2021-12-09 17:38:43.000000000 +0100
@@ -65,7 +65,6 @@
QWaylandXdgShellIntegration() {}
bool initialize(QWaylandDisplay *display) override;
QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;
- void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow
*oldFocus) override;
private:
QScopedPointer<QWaylandXdgShell> m_xdgShell;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -85,13 +85,6 @@
return m_xdgShell->createXdgSurface(window);
}
-void QWaylandXdgShellV5Integration::handleKeyboardFocusChanged(QWaylandWindow
*newFocus, QWaylandWindow *oldFocus) {
- if (newFocus && qobject_cast<QWaylandXdgPopupV5
*>(newFocus->shellSurface()))
- m_display->handleWindowActivated(newFocus);
- if (oldFocus && qobject_cast<QWaylandXdgPopupV5
*>(oldFocus->shellSurface()))
- m_display->handleWindowDeactivated(oldFocus);
-}
-
}
QT_END_NAMESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
2021-12-09 17:38:43.000000000 +0100
@@ -67,7 +67,6 @@
QWaylandXdgShellV5Integration() {}
bool initialize(QWaylandDisplay *display) override;
QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;
- void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow
*oldFocus) override;
private:
QScopedPointer<QWaylandXdgShellV5> m_xdgShell;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -68,20 +68,6 @@
return m_xdgShell->getXdgSurface(window);
}
-void QWaylandXdgShellV6Integration::handleKeyboardFocusChanged(QWaylandWindow
*newFocus, QWaylandWindow *oldFocus)
-{
- if (newFocus) {
- auto *xdgSurface = qobject_cast<QWaylandXdgSurfaceV6
*>(newFocus->shellSurface());
- if (xdgSurface && !xdgSurface->handlesActiveState())
- m_display->handleWindowActivated(newFocus);
- }
- if (oldFocus && qobject_cast<QWaylandXdgSurfaceV6
*>(oldFocus->shellSurface())) {
- auto *xdgSurface = qobject_cast<QWaylandXdgSurfaceV6
*>(oldFocus->shellSurface());
- if (xdgSurface && !xdgSurface->handlesActiveState())
- m_display->handleWindowDeactivated(oldFocus);
- }
-}
-
}
QT_END_NAMESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
---
old/qtwayland-everywhere-src-5.15.2+kde34/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
2021-12-09 17:38:43.000000000 +0100
@@ -65,7 +65,6 @@
QWaylandXdgShellV6Integration() {}
bool initialize(QWaylandDisplay *display) override;
QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;
- void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow
*oldFocus) override;
private:
QScopedPointer<QWaylandXdgShellV6> m_xdgShell;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtwayland-everywhere-src-5.15.2+kde34/tests/auto/client/xdgshell/tst_xdgshell.cpp
new/qtwayland-everywhere-src-5.15.2+kde37/tests/auto/client/xdgshell/tst_xdgshell.cpp
---
old/qtwayland-everywhere-src-5.15.2+kde34/tests/auto/client/xdgshell/tst_xdgshell.cpp
2021-10-15 18:55:33.000000000 +0200
+++
new/qtwayland-everywhere-src-5.15.2+kde37/tests/auto/client/xdgshell/tst_xdgshell.cpp
2021-12-09 17:38:43.000000000 +0100
@@ -31,6 +31,7 @@
#include <QtGui/QOpenGLWindow>
#include <QtGui/qpa/qplatformnativeinterface.h>
#include <QtWaylandClient/private/wayland-wayland-client-protocol.h>
+#include <QtWaylandClient/private/qwaylandwindow_p.h>
using namespace MockCompositor;
@@ -155,9 +156,12 @@
// Toplevel windows don't know their position on xdg-shell
// QCOMPARE(window.frameGeometry().topLeft(), QPoint()); // TODO: this
doesn't currently work when window decorations are enabled
-// QEXPECT_FAIL("", "configure has already been acked, we shouldn't have to
wait for isActive", Continue);
-// QVERIFY(window.isActive());
- QTRY_VERIFY(window.isActive()); // Just make sure it eventually get's set
correctly
+ // window.windowstate() is driven by keyboard focus, however for
decorations we want to follow
+ // XDGShell this is internal to QtWayland so it is queried directly
+ auto waylandWindow = static_cast<QtWaylandClient::QWaylandWindow
*>(window.handle());
+ Q_ASSERT(waylandWindow);
+ QTRY_VERIFY(waylandWindow->windowStates().testFlag(
+ Qt::WindowActive)); // Just make sure it eventually get's set
correctly
const QSize screenSize(640, 480);
const uint maximizedSerial = exec([=] {
++++++ qtwayland-everywhere-src.obsinfo ++++++
--- /var/tmp/diff_new_pack.hWF92G/_old 2021-12-21 18:40:23.105860563 +0100
+++ /var/tmp/diff_new_pack.hWF92G/_new 2021-12-21 18:40:23.109860567 +0100
@@ -1,6 +1,6 @@
name: qtwayland-everywhere-src
-version: 5.15.2+kde34
-mtime: 1634316933
-commit: 02f9585ca19c17ae0978b864195533dc527d825e
+version: 5.15.2+kde37
+mtime: 1639067923
+commit: eb422ab5e07498a7a8d086f6a942ee35ab3c9776