X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=819960866f39a619d659b1885ca8cff7061c3657;hb=b079f35351d4dbe5e4bb23bccc1c4338b2f538e3;hp=357c180f4506b6b67c257be0885fa39d97d80212;hpb=d81dee489401ccf638f1b5d9d67f9b16044cd8c9;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 357c180..8199608 100644 --- a/src/tint.c +++ b/src/tint.c @@ -31,7 +31,7 @@ #include #include -#include "version.h" +#include #include "server.h" #include "window.h" #include "config.h" @@ -95,10 +95,10 @@ void init (int argc, char *argv[]) sigaction(SIGINT, &sa, 0); sigaction(SIGTERM, &sa, 0); sigaction(SIGHUP, &sa, 0); - signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork() +// signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork() - // BSD is too stupid to support pselect(), therefore we have to use select and hope that we do not - // end up in a race condition there + // BSD does not support pselect(), therefore we have to use select and hope that we do not + // end up in a race condition there (see 'man select()' on a linux machine for more information) // block all signals, such that no race conditions occur before pselect in our main loop // sigset_t block_mask; // sigaddset(&block_mask, SIGINT); @@ -130,6 +130,8 @@ void init_X11() XSelectInput (server.dsp, server.root_win, PropertyChangeMask|StructureNotifyMask); setlocale (LC_ALL, ""); + // config file use '.' as decimal separator + setlocale(LC_NUMERIC, "POSIX"); // load default icon gchar *path; @@ -316,7 +318,8 @@ void event_button_press (XEvent *e) } task_drag = click_task(panel, e->xbutton.x, e->xbutton.y); - XLowerWindow (server.dsp, panel->main_win); + if (panel_layer == BOTTOM_LAYER) + XLowerWindow (server.dsp, panel->main_win); } void event_button_motion_notify (XEvent *e) @@ -381,7 +384,8 @@ void event_button_release (XEvent *e) if (wm_menu && !tint2_handles_click(panel, &e->xbutton)) { forward_click(e); - XLowerWindow (server.dsp, panel->main_win); + if (panel_layer == BOTTOM_LAYER) + XLowerWindow (server.dsp, panel->main_win); task_drag = 0; return; } @@ -410,7 +414,8 @@ void event_button_release (XEvent *e) if ( click_clock(panel, e->xbutton.x, e->xbutton.y)) { clock_action(e->xbutton.button); - XLowerWindow (server.dsp, panel->main_win); + if (panel_layer == BOTTOM_LAYER) + XLowerWindow (server.dsp, panel->main_win); task_drag = 0; return; } @@ -418,7 +423,8 @@ void event_button_release (XEvent *e) Taskbar *tskbar; if ( !(tskbar = click_taskbar(panel, e->xbutton.x, e->xbutton.y)) ) { // TODO: check better solution to keep window below - XLowerWindow (server.dsp, panel->main_win); + if (panel_layer == BOTTOM_LAYER) + XLowerWindow (server.dsp, panel->main_win); task_drag = 0; return; } @@ -440,7 +446,8 @@ void event_button_release (XEvent *e) window_action( click_task(panel, e->xbutton.x, e->xbutton.y), action); // to keep window below - XLowerWindow (server.dsp, panel->main_win); + if (panel_layer == BOTTOM_LAYER) + XLowerWindow (server.dsp, panel->main_win); }