aboutsummaryrefslogtreecommitdiffstats
path: root/x11-toolkits
diff options
context:
space:
mode:
authoralonso <alonso@FreeBSD.org>2015-02-18 03:36:29 +0800
committeralonso <alonso@FreeBSD.org>2015-02-18 03:36:29 +0800
commitf4d13d0cfa15b152c691ffecf6ce8b5182d2d304 (patch)
tree2f1a5dbe34a5f2dba08f51f3228209c43f82f3aa /x11-toolkits
parentd4c9221350f940a15648cbc7399cb2db9a64682f (diff)
downloadfreebsd-ports-gnome-f4d13d0cfa15b152c691ffecf6ce8b5182d2d304.tar.gz
freebsd-ports-gnome-f4d13d0cfa15b152c691ffecf6ce8b5182d2d304.tar.zst
freebsd-ports-gnome-f4d13d0cfa15b152c691ffecf6ce8b5182d2d304.zip
Fix QSystemTray
Add a patch found by PCBSD's Kris Moore <kris@pcbsd.org> that fixes QSystemTrayIcons on Desktops other than KDE. Provided by Kris via mailing list on 2015-01-29. Approved by: rakuco (mentor) MFH: 2015Q1
Diffstat (limited to 'x11-toolkits')
-rw-r--r--x11-toolkits/qt5-gui/files/patch-src_plugins_platforms_xcb_qxcbwindow.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/x11-toolkits/qt5-gui/files/patch-src_plugins_platforms_xcb_qxcbwindow.cpp b/x11-toolkits/qt5-gui/files/patch-src_plugins_platforms_xcb_qxcbwindow.cpp
new file mode 100644
index 000000000000..6b9e50bc9afe
--- /dev/null
+++ b/x11-toolkits/qt5-gui/files/patch-src_plugins_platforms_xcb_qxcbwindow.cpp
@@ -0,0 +1,23 @@
+--- src/plugins/platforms/xcb/qxcbwindow.cpp.orig 2015-01-29 15:05:03.094563565 -0500
++++ src/plugins/platforms/xcb/qxcbwindow.cpp 2015-01-29 15:08:10.219554046 -0500
+@@ -701,6 +701,9 @@
+ if (connection()->time() != XCB_TIME_CURRENT_TIME)
+ updateNetWmUserTime(connection()->time());
+
++ if (window()->objectName() == QLatin1String("QSystemTrayIconSysWindow"))
++ return; // defer showing until XEMBED_EMBEDDED_NOTIFY
++
+ Q_XCB_CALL(xcb_map_window(xcb_connection(), m_window));
+
+ if (QGuiApplication::modalWindow() == window())
+@@ -2130,7 +2133,10 @@
+ switch (event->data.data32[1]) {
+ case XEMBED_WINDOW_ACTIVATE:
+ case XEMBED_WINDOW_DEACTIVATE:
++ break;
+ case XEMBED_EMBEDDED_NOTIFY:
++ Q_XCB_CALL(xcb_map_window(xcb_connection(), m_window));
++ m_screen->windowShown(this);
+ break;
+ case XEMBED_FOCUS_IN:
+ Qt::FocusReason reason;