From 58013e2e0c78022e89338660859c2ec39ec58d63 Mon Sep 17 00:00:00 2001 From: "lorthiois@bbsoft.fr" Date: Sat, 6 Jun 2009 19:37:27 +0000 Subject: [PATCH] add wm_menu config option to disable window manager s menu git-svn-id: http://tint2.googlecode.com/svn/trunk@88 121b4492-b84c-0410-8b4c-0d4edfb3f3cc --- ChangeLog | 4 ++++ src/config.c | 4 ++++ src/panel.c | 1 + src/panel.h | 1 + src/tint.c | 30 ++++++++++++++++++------------ src/tint2 | Bin 64036 -> 64036 bytes 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 41a0044..a99f1b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-06 +- add 'wm_menu' config option to disable window manager's menu + if you don't specify "wm_menu = ", the default value will show WM menu. + 2009-06-06 - fixed issue 90 and issue 81 : window manager's menu in panel padding works on openbox and pekwm. doesn't work on xfce, windowmaker ? diff --git a/src/config.c b/src/config.c index bfe8801..afeb071 100644 --- a/src/config.c +++ b/src/config.c @@ -75,6 +75,8 @@ void init_config() list_back = g_slist_append(0, calloc(1, sizeof(Area))); panel_config = calloc(1, sizeof(Panel)); + // window manager's menu default value == true + wm_menu = 1; } @@ -308,6 +310,8 @@ void add_entry (char *key, char *value) memcpy(&panel_config->area.pix.back, &a->pix.back, sizeof(Color)); memcpy(&panel_config->area.pix.border, &a->pix.border, sizeof(Border)); } + else if (strcmp (key, "wm_menu") == 0) + wm_menu = atoi (value); /* Battery */ else if (strcmp (key, "battery") == 0) { diff --git a/src/panel.c b/src/panel.c index 4e8547e..00e75de 100644 --- a/src/panel.c +++ b/src/panel.c @@ -40,6 +40,7 @@ int mouse_scroll_up; int mouse_scroll_down; int panel_mode; +int wm_menu; int panel_position; int panel_refresh; diff --git a/src/panel.h b/src/panel.h index 8e0c305..ef4f33c 100644 --- a/src/panel.h +++ b/src/panel.h @@ -34,6 +34,7 @@ extern int mouse_scroll_down; //panel mode enum { SINGLE_DESKTOP=0, MULTI_DESKTOP, SINGLE_MONITOR }; extern int panel_mode; +extern int wm_menu; //panel position enum { LEFT=0x01, RIGHT=0x02, CENTER=0X04, TOP=0X08, BOTTOM=0x10 }; diff --git a/src/tint.c b/src/tint.c index 568375b..1429adf 100644 --- a/src/tint.c +++ b/src/tint.c @@ -136,13 +136,15 @@ void event_button_press (XEvent *e) Panel *panel = get_panel(e->xany.window); if (!panel) return; - if ((e->xbutton.x < panel->area.paddingxlr) || (e->xbutton.x > panel->area.width-panel->area.paddingxlr) || (e->xbutton.y < panel->area.paddingy) || (e->xbutton.y > panel->area.paddingy+panel->g_taskbar.height)) { - // forward the click to the desktop window (thanks conky) - XUngrabPointer(server.dsp, e->xbutton.time); - e->xbutton.window = server.root_win; - XSetInputFocus(server.dsp, e->xbutton.window, RevertToParent, e->xbutton.time); - XSendEvent(server.dsp, e->xbutton.window, False, ButtonPressMask, e); - return; + if (wm_menu) { + if ((e->xbutton.x < panel->area.paddingxlr) || (e->xbutton.x > panel->area.width-panel->area.paddingxlr) || (e->xbutton.y < panel->area.paddingy) || (e->xbutton.y > panel->area.paddingy+panel->g_taskbar.height)) { + // forward the click to the desktop window (thanks conky) + XUngrabPointer(server.dsp, e->xbutton.time); + e->xbutton.window = server.root_win; + XSetInputFocus(server.dsp, e->xbutton.window, RevertToParent, e->xbutton.time); + XSendEvent(server.dsp, e->xbutton.window, False, ButtonPressMask, e); + return; + } } if (e->xbutton.button != 1) return; @@ -183,11 +185,13 @@ void event_button_release (XEvent *e) Panel *panel = get_panel(e->xany.window); if (!panel) return; - if ((e->xbutton.x < panel->area.paddingxlr) || (e->xbutton.x > panel->area.width-panel->area.paddingxlr) || (e->xbutton.y < panel->area.paddingy) || (e->xbutton.y > panel->area.paddingy+panel->g_taskbar.height)) { - // forward the click to the desktop window (thanks conky) - e->xbutton.window = server.root_win; - XSendEvent(server.dsp, e->xbutton.window, False, ButtonReleaseMask, e); - return; + if (wm_menu) { + if ((e->xbutton.x < panel->area.paddingxlr) || (e->xbutton.x > panel->area.width-panel->area.paddingxlr) || (e->xbutton.y < panel->area.paddingy) || (e->xbutton.y > panel->area.paddingy+panel->g_taskbar.height)) { + // forward the click to the desktop window (thanks conky) + e->xbutton.window = server.root_win; + XSendEvent(server.dsp, e->xbutton.window, False, ButtonReleaseMask, e); + return; + } } int action = TOGGLE_ICONIFY; @@ -298,11 +302,13 @@ void event_property_notify (XEvent *e) } // Window list else if (at == server.atom._NET_CLIENT_LIST) { + //printf("Window list\n"); task_refresh_tasklist(); panel_refresh = 1; } // Change active else if (at == server.atom._NET_ACTIVE_WINDOW) { + //printf("Change active\n"); GSList *l0; if (task_active) { for (i=0 ; i < nb_panel ; i++) { diff --git a/src/tint2 b/src/tint2 index b33f3204d706d4beff778342994e3b60c56246c6..e7f23f5f35e6826395fbf96ac6b9e94a0528aac7 100755 GIT binary patch delta 16896 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 DWFN?J delta 16690 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