X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=bc915eb3f3a51f31cbf110e6e7744376c46efe3e;hb=857a47544272e432112157dc55694faf079b8c77;hp=0e8cad8adadf6614da927ea4f337df658d4ff8fa;hpb=90eae1e7be4621a84a0253c3048790523f0c8375;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 0e8cad8..bc915eb 100644 --- a/src/tint.c +++ b/src/tint.c @@ -372,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); @@ -490,7 +492,32 @@ void event_property_notify (XEvent *e) // Change name of desktops else if (at == server.atom._NET_DESKTOP_NAMES) { - printf("_NET_DESKTOP_NAMES\n"); + if (!taskbarname_enabled) return; + GSList *l, *list = server_get_name_of_desktop(); + int j; + gchar *name; + Taskbar *tskbar; + for (i=0 ; i < nb_panel ; i++) { + for (j=0, l=list ; j < panel1[i].nb_desktop ; j++) { + if (l) { + name = g_strdup(l->data); + l = l->next; + } + else + name = g_strdup_printf("%d", j+1); + tskbar = &panel1[i].taskbar[j]; + if (strcmp(name, tskbar->bar_name.name) != 0) { + g_free(tskbar->bar_name.name); + tskbar->bar_name.name = name; + tskbar->bar_name.area.resize = 1; + } + else + g_free(name); + } + } + for (l=list ; l ; l = l->next) + g_free(l->data); + g_slist_free(list); panel_refresh = 1; } // Change number of desktops @@ -524,7 +551,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; @@ -534,7 +563,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; @@ -553,7 +584,7 @@ void event_property_notify (XEvent *e) active_task(); panel_refresh = 1; } - else if (at == server.atom._XROOTPMAP_ID) { + else if (at == server.atom._XROOTPMAP_ID || at == server.atom._XROOTMAP_ID) { // change Wallpaper for (i=0 ; i < nb_panel ; i++) { set_panel_background(&panel1[i]); @@ -842,7 +873,6 @@ start: if (e.xmotion.state & button_mask) event_button_motion_notify (&e); - if (!g_tooltip.enabled) break; Panel* panel = get_panel(e.xmotion.window); Area* area = click_area(panel, e.xmotion.x, e.xmotion.y); if (area->_get_tooltip_text) @@ -853,8 +883,7 @@ start: } case LeaveNotify: - if (g_tooltip.enabled) - tooltip_trigger_hide(); + tooltip_trigger_hide(); break; case Expose: @@ -892,7 +921,7 @@ start: break; } } - break; + break; case ClientMessage: ev = &e.xclient;