X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Ftint.c;h=536cbc38e03c6c5e4191efd4efdb4d53df2ca633;hb=bd230aca5f0289c9464aa98b29f672c28fc58243;hp=1772681811fd6f981c32131fd5caa40557527a11;hpb=1c1cfea95e549170ede1eaf05240b935aa2186a9;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 1772681..536cbc3 100644 --- a/src/tint.c +++ b/src/tint.c @@ -42,6 +42,7 @@ #include "panel.h" #include "tooltip.h" #include "timer.h" +#include "xsettings-client.h" void signal_handler(int sig) @@ -135,7 +136,7 @@ void init_X11() setlocale (LC_ALL, ""); // config file use '.' as decimal separator setlocale(LC_NUMERIC, "POSIX"); - + // load default icon gchar *path; const gchar * const *data_dirs; @@ -371,8 +372,10 @@ void event_button_motion_notify (XEvent *e) Taskbar * drag_taskbar = (Taskbar*)task_drag->area.parent; drag_taskbar->area.list = g_slist_remove(drag_taskbar->area.list, task_drag); - if(event_taskbar->area.posx > drag_taskbar->area.posx || event_taskbar->area.posy > drag_taskbar->area.posy) - event_taskbar->area.list = g_slist_prepend(event_taskbar->area.list, task_drag); + if(event_taskbar->area.posx > drag_taskbar->area.posx || event_taskbar->area.posy > drag_taskbar->area.posy) { + int i = (taskbarname_enabled) ? 1 : 0; + event_taskbar->area.list = g_slist_insert(event_taskbar->area.list, task_drag, i); + } else event_taskbar->area.list = g_slist_append(event_taskbar->area.list, task_drag); @@ -479,6 +482,8 @@ void event_property_notify (XEvent *e) Window win = e->xproperty.window; Atom at = e->xproperty.atom; + if (xsettings_client) + xsettings_client_process_event(xsettings_client, e); if (win == server.root_win) { if (!server.got_root_win) { XSelectInput (server.dsp, server.root_win, PropertyChangeMask|StructureNotifyMask); @@ -521,7 +526,9 @@ void event_property_notify (XEvent *e) GSList *l; if (server.nb_desktop > old_desktop) { tskbar = &panel->taskbar[old_desktop]; - for (l = tskbar->area.list; l ; l = l->next) { + l = tskbar->area.list; + if (taskbarname_enabled) l = l->next; + for (; l ; l = l->next) { tsk = l->data; if (tsk->desktop == ALLDESKTOP) { tsk->area.on_screen = 0; @@ -531,7 +538,9 @@ void event_property_notify (XEvent *e) } } tskbar = &panel->taskbar[server.desktop]; - for (l = tskbar->area.list; l ; l = l->next) { + l = tskbar->area.list; + if (taskbarname_enabled) l = l->next; + for (; l ; l = l->next) { tsk = l->data; if (tsk->desktop == ALLDESKTOP) { tsk->area.on_screen = 1;