]> Dogcows Code - chaz/tint2/commitdiff
add wm_menu config option to disable window manager s menu
authorThierry Lorthiois <lorthiois@bbsoft.fr>
Sat, 6 Jun 2009 19:37:27 +0000 (19:37 +0000)
committerThierry Lorthiois <lorthiois@bbsoft.fr>
Sat, 6 Jun 2009 19:37:27 +0000 (19:37 +0000)
ChangeLog
src/config.c
src/panel.c
src/panel.h
src/tint.c
src/tint2

index 41a0044109cf7db225fcd83152dfd4f2d5d0a97d..a99f1b32c64dd48bf6556e188ae753b97ce1bbfc 100644 (file)
--- 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 ?
index bfe8801e035716b66451b370e4d23446db300b3e..afeb071d0b309abaacb4109d04a6e7ad60127814 100644 (file)
@@ -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) {
index 4e8547e802e9a888a1d4285a0d4ba31adfb3100d..00e75ded579b144386abfd1f60b940e7f97b8663 100644 (file)
@@ -40,6 +40,7 @@ int mouse_scroll_up;
 int mouse_scroll_down;
 
 int panel_mode;
+int wm_menu;
 int panel_position;
 int panel_refresh;
 
index 8e0c3053a5ad7159ca16c36b20acfba92ecfc987..ef4f33c2934c06d2762a3a222d9fc8fef9044770 100644 (file)
@@ -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 };
index 568375be0c38e085aa3f50b4e6e8ca5270d779d9..1429adf8154eb97b2bd2e1966e9955c353d93c8c 100644 (file)
@@ -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++) {
index b33f3204d706d4beff778342994e3b60c56246c6..e7f23f5f35e6826395fbf96ac6b9e94a0528aac7 100755 (executable)
Binary files a/src/tint2 and b/src/tint2 differ
This page took 0.029788 seconds and 4 git commands to generate.