From: Ivailo Monev Date: Sun, 9 Aug 2020 14:07:02 +0000 (+0300) Subject: add _NET_SYSTEM_TRAY_OPCODE and MANAGER to pre-defined X11 atoms table X-Git-Tag: 4.12.0~3595 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=33f49e795c6484c620aa02587239f718f9ebc137;p=kde%2FKatie.git add _NET_SYSTEM_TRAY_OPCODE and MANAGER to pre-defined X11 atoms table Signed-off-by: Ivailo Monev --- diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index 9af08821c..eb0c1eab3 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -209,6 +209,8 @@ static const char* X11AtomsTbl[QX11Data::NPredefinedAtoms] = { "_NET_WM_CM_S0\0", "_NET_SYSTEM_TRAY_VISUAL\0", + "_NET_SYSTEM_TRAY_OPCODE\0", + "MANAGER\0", "_NET_ACTIVE_WINDOW\0", diff --git a/src/gui/kernel/qt_x11_p.h b/src/gui/kernel/qt_x11_p.h index 15999aa09..7fc65371a 100644 --- a/src/gui/kernel/qt_x11_p.h +++ b/src/gui/kernel/qt_x11_p.h @@ -388,6 +388,8 @@ struct QX11Data _NET_WM_CM_S0, _NET_SYSTEM_TRAY_VISUAL, + _NET_SYSTEM_TRAY_OPCODE, + MANAGER, _NET_ACTIVE_WINDOW, diff --git a/src/gui/util/qsystemtrayicon_x11.cpp b/src/gui/util/qsystemtrayicon_x11.cpp index 9baf6e01b..05ece5767 100644 --- a/src/gui/util/qsystemtrayicon_x11.cpp +++ b/src/gui/util/qsystemtrayicon_x11.cpp @@ -132,9 +132,8 @@ bool QSystemTrayIconSys::sysTrayTracker(void *message, long *result) } retval = true; } else if (ev->type == ClientMessage && sysTrayWindow == XNone) { - static Atom manager_atom = XInternAtom(display, "MANAGER", False); XClientMessageEvent *cm = (XClientMessageEvent *)message; - if ((cm->message_type == manager_atom) && ((Atom)cm->data.l[1] == sysTraySelection)) { + if (cm->message_type == ATOM(MANAGER) && (Atom)cm->data.l[1] == sysTraySelection) { sysTrayWindow = cm->data.l[2]; memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); XSelectInput(display, sysTrayWindow, StructureNotifyMask); @@ -231,13 +230,12 @@ void QSystemTrayIconSys::addToTray() } // GNOME, NET WM Specification - static Atom netwm_tray_atom = XInternAtom(display, "_NET_SYSTEM_TRAY_OPCODE", False); long l[5] = { CurrentTime, SYSTEM_TRAY_REQUEST_DOCK, static_cast(winId()), 0, 0 }; XEvent ev; memset(&ev, 0, sizeof(ev)); ev.xclient.type = ClientMessage; ev.xclient.window = sysTrayWindow; - ev.xclient.message_type = netwm_tray_atom; + ev.xclient.message_type = ATOM(_NET_SYSTEM_TRAY_OPCODE); ev.xclient.format = 32; memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l)); XSendEvent(display, sysTrayWindow, False, 0, &ev);