154cc92f96
- Update to 5.3.1 * Bugfix release, for more details please see: http://blog.qt.digia.com/blog/2014/06/25/qt-5-3-1-released/ - Drop libqt5-fix-the-modal-dialogs-can-go-behind.patch, merged upstream - Added patches from upstream: 0001-Do-not-overwrite-existing-event-mask-of-root-window.patch -- QTBUG-39648 0002-Properly-check-which-OpenGL-features-are-supported.patch -- QTBUG-39730 0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch -- Fix data race on QLoggingCategory 0004-QDBus-fix-data-race-on-isDebugging-bool.patch -- fix data race on isDebugging bool 0005-Translate-Super-Hyper-keys-to-MetaModifier.patch -- QTBUG-38428 OBS-URL: https://build.opensuse.org/request/show/238711 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=22
51 lines
2.2 KiB
Diff
51 lines
2.2 KiB
Diff
From 075c36e39beedb33ec4b239d57075f54acb21acf Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <mgraesslin@kde.org>
|
|
Date: Mon, 16 Jun 2014 14:20:05 +0200
|
|
Subject: [PATCH 1/1] Do not overwrite existing event mask of root window
|
|
|
|
QXcbScreen installs its own event mask on the screen's root window.
|
|
This overwrites any existing event mask already set and by that
|
|
breaks applications when a new screen is added.
|
|
|
|
By first fetching the existing event mask and adding it to the newly
|
|
installed event mask, Qt does no longer break applications also
|
|
installing an event mask on the root window.
|
|
|
|
Task-number: QTBUG-39648
|
|
Change-Id: I8686dd6ae49d0e807c6fe1ea4a231ff728bfcf25
|
|
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
|
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
|
Reviewed-by: Uli Schlachter <psychon@znc.in>
|
|
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
|
|
---
|
|
src/plugins/platforms/xcb/qxcbscreen.cpp | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
index 9f19841..01e7846 100644
|
|
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
@@ -106,6 +106,11 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, xcb_screen_t *scr,
|
|
qDebug(" root ID........: %x", screen()->root);
|
|
#endif
|
|
|
|
+ QScopedPointer<xcb_get_window_attributes_reply_t, QScopedPointerPodDeleter> rootAttribs(
|
|
+ xcb_get_window_attributes_reply(xcb_connection(),
|
|
+ xcb_get_window_attributes_unchecked(xcb_connection(), screen()->root), NULL));
|
|
+ const quint32 existingEventMask = rootAttribs.isNull() ? 0 : rootAttribs->your_event_mask;
|
|
+
|
|
const quint32 mask = XCB_CW_EVENT_MASK;
|
|
const quint32 values[] = {
|
|
// XCB_CW_EVENT_MASK
|
|
@@ -113,6 +118,7 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, xcb_screen_t *scr,
|
|
| XCB_EVENT_MASK_LEAVE_WINDOW
|
|
| XCB_EVENT_MASK_PROPERTY_CHANGE
|
|
| XCB_EVENT_MASK_STRUCTURE_NOTIFY // for the "MANAGER" atom (system tray notification).
|
|
+ | existingEventMask // don't overwrite the event mask on the root window
|
|
};
|
|
|
|
xcb_change_window_attributes(xcb_connection(), screen()->root, mask, values);
|
|
--
|
|
1.9.3
|
|
|