]>
Dogcows Code - chaz/tint2/blob - systray/kde.c
8 Atom kde_systray_prop
= None
;
12 kde_systray_prop
= XInternAtom(display
,
13 "_KDE_NET_SYSTEM_TRAY_WINDOWS", False
);
14 assert(kde_systray_prop
);
16 XSelectInput(display
, root
, PropertyChangeMask
);
20 void kde_update_icons()
22 gulong count
= (unsigned) -1; /* grab as many as possible */
26 gboolean removed
= FALSE
; /* were any removed? */
28 if (! xprop_get32(root
, kde_systray_prop
, XA_WINDOW
, sizeof(Window
)*8,
32 /* add new windows to our list */
33 for (i
= 0; i
< count
; ++i
) {
34 for (it
= icons
; it
!= NULL
; it
= g_slist_next(it
)) {
35 TrayWindow
*traywin
= it
->data
;
36 if (traywin
->id
== ids
[i
])
40 icon_add(ids
[i
], KDE
);
43 /* remove windows from our list that no longer exist in the property */
44 for (it
= icons
; it
!= NULL
;) {
45 TrayWindow
*traywin
= it
->data
;
48 if (traywin
->type
!= KDE
) {
49 /* don't go removing non-kde windows */
53 for (i
= 0; i
< count
; ++i
) {
54 if (traywin
->id
== ids
[i
]) {
61 next
= g_slist_next(it
);
70 /* at least one tray app was removed, so reorganize 'em all and resize*/
This page took 0.037827 seconds and 4 git commands to generate.