Revision: 9595
http://amsn.svn.sourceforge.net/amsn/?rev=9595&view=rev
Author: lephilousophe
Date: 2008-02-22 17:34:51 -0800 (Fri, 22 Feb 2008)
Log Message:
-----------
Fix the traydock bug for KDE4
Modified Paths:
--------------
trunk/amsn/utils/linux/traydock/libtray.c
Modified: trunk/amsn/utils/linux/traydock/libtray.c
===================================================================
--- trunk/amsn/utils/linux/traydock/libtray.c 2008-02-22 13:48:42 UTC (rev 9594)
+++ trunk/amsn/utils/linux/traydock/libtray.c 2008-02-23 01:34:51 UTC (rev 9595)
@@ -164,7 +164,7 @@
Window root, parent, *children;
unsigned int n, ret, atom;
TrayIcon *icon= clientData;
- char* wm_name = get_wm_name();
+ char* wm_name;
Tk_MapWindow(icon->win);
@@ -178,20 +178,20 @@
Tk_UnmapWindow(icon->win);
- if (wm_name != NULL && !strcmp(wm_name, "KWin")) {
-
- atom = XInternAtom(display, "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False);
-
- ret = XChangeProperty(display, parent, atom,
+ if ( (atom = XInternAtom(display, "_NET_SYSTEM_TRAY_OPCODE", True )) == None ) {
+ wm_name = get_wm_name();
+ if (wm_name != NULL && !strcmp(wm_name, "KWin")) {
+ atom = XInternAtom(display, "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False);
+ ret = XChangeProperty(display, parent, atom,
XA_WINDOW, 32, PropModeReplace, (unsigned char *)&parent, 1);
- Tk_MapWindow(icon->win);
+ Tk_MapWindow(icon->win);
+ }
+ XFree(wm_name);
} else {
- send_message(display,systemtray,XInternAtom (display, "_NET_SYSTEM_TRAY_OPCODE", False ),
+ send_message(display,systemtray, atom,
SYSTEM_TRAY_REQUEST_DOCK,Tk_WindowId(icon->win),0,0);
}
- XFree(wm_name);
-
}
/* Draw the icon */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|