X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=7e373a401351994cfd4ebdf40962bc5212383247;hb=067e29cba8a299728e6e2d9c029a049c753ae4ad;hp=70b07c8521e383fc60030128bc444667d1963522;hpb=3083e8006371cfb4a454b8bce92a682e4bb87e50;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 70b07c8..7e373a4 100644 --- a/src/tint.c +++ b/src/tint.c @@ -115,6 +115,10 @@ void init (int argc, char *argv[]) default_icon = imlib_load_image(path); g_free(path); } + + // get monitor and desktop config + get_monitors(); + get_desktops(); } @@ -290,7 +294,11 @@ void event_button_press (XEvent *e) { Panel *panel = get_panel(e->xany.window); if (!panel) return; - +/* + if (wm_menu && (e->xbutton.button != 1) ) { + task_drag = click_task(panel, e->xbutton.x, e->xbutton.y); + if (!task_drag && !click_clock(panel, e->xbutton.x, e->xbutton.y) ) { + */ task_drag = click_task(panel, e->xbutton.x, e->xbutton.y); if (wm_menu && !task_drag && !click_clock(panel, e->xbutton.x, e->xbutton.y) && (e->xbutton.button != 1) ) { @@ -299,10 +307,10 @@ void event_button_press (XEvent *e) e->xbutton.window = server.root_win; // icewm doesn't open under the mouse. // and xfce doesn't open at all. - //e->xbutton.x = e->xbutton.x_root; - //e->xbutton.y = e->xbutton.y_root; + e->xbutton.x = e->xbutton.x_root; + e->xbutton.y = e->xbutton.y_root; //printf("**** %d, %d\n", e->xbutton.x, e->xbutton.y); - XSetInputFocus(server.dsp, e->xbutton.window, RevertToParent, e->xbutton.time); + //XSetInputFocus(server.dsp, e->xbutton.window, RevertToParent, e->xbutton.time); XSendEvent(server.dsp, e->xbutton.window, False, ButtonPressMask, e); return; } @@ -453,44 +461,7 @@ void event_property_notify (XEvent *e) } // Change active else if (at == server.atom._NET_ACTIVE_WINDOW) { - GSList *l0; - if (task_active) { - for (i=0 ; i < nb_panel ; i++) { - for (j=0 ; j < panel1[i].nb_desktop ; j++) { - for (l0 = panel1[i].taskbar[j].area.list; l0 ; l0 = l0->next) { - tsk = l0->data; - tsk->area.is_active = 0; - } - } - } - task_active = 0; - } - Window w1 = window_get_active (); - Task *t = task_get_task(w1); - if (!t) { - Window w2; - if (XGetTransientForHint(server.dsp, w1, &w2) != 0) - if (w2) t = task_get_task(w2); - } - if (task_urgent == t) { - init_precision(); - task_urgent = 0; - } - // put active state on all task (multi_desktop) - if (t) { - for (i=0 ; i < nb_panel ; i++) { - for (j=0 ; j < panel1[i].nb_desktop ; j++) { - for (l0 = panel1[i].taskbar[j].area.list; l0 ; l0 = l0->next) { - tsk = l0->data; - if (tsk->win == t->win) { - tsk->area.is_active = 1; - //printf("active monitor %d, task %s\n", panel1[i].monitor, tsk->title); - } - } - } - } - task_active = t; - } + active_task(); panel_refresh = 1; } else if (at == server.atom._XROOTPMAP_ID) { @@ -859,9 +830,13 @@ int main (int argc, char *argv[]) event_timer(); switch (signal_pending) { - case SIGUSR1: + case SIGUSR1: // reload config file signal_pending = 0; - return 0; + init_config(); + config_read_file (config_path); + init_panel(); + cleanup_config(); + break; case SIGINT: case SIGTERM: case SIGHUP: