]> Dogcows Code - chaz/openbox/commitdiff
hide focus debugging messages
authorDana Jansens <danakj@orodu.net>
Sat, 21 Apr 2007 21:04:35 +0000 (21:04 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 21 Apr 2007 21:04:35 +0000 (21:04 +0000)
openbox/debug.c
openbox/debug.h
openbox/event.c
openbox/focus.c
openbox/openbox.c
openbox/screen.c

index 102c88916743f576c5825598d261dc120bc704b5..af22c69f2cf8626fadf31293dcb1bff9a1a4e6af 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    debug.c for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
    See the COPYING file for a copy of the GNU General Public License.
 */
 
+#include "debug.h"
+
 #include <glib.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -38,3 +40,24 @@ void ob_debug(const gchar *a, ...)
         va_end(vl);
     }
 }
+
+static gboolean enabled_types[OB_DEBUG_TYPE_NUM] = {FALSE};
+
+void ob_debug_enable(ObDebugType type, gboolean enable)
+{
+    g_assert(type < OB_DEBUG_TYPE_NUM);
+    enabled_types[type] = enable;
+}
+
+void ob_debug_type(ObDebugType type, const gchar *a, ...)
+{
+    va_list vl;
+
+    g_assert(type < OB_DEBUG_TYPE_NUM);
+
+    if (show && enabled_types[type]) {
+        va_start(vl, a);
+        vfprintf(stderr, a, vl);
+        va_end(vl);
+    }
+}
index fea52c06db308b845d9a485c2abb377a1a0e9ff9..2b907ebf12f2e309ac350a8e53e34cf4c6686f45 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    debug.h for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -25,4 +25,13 @@ void ob_debug_show_output(gboolean enable);
 
 void ob_debug(const gchar *a, ...);
 
+typedef enum {
+    OB_DEBUG_FOCUS,
+    OB_DEBUG_TYPE_NUM
+} ObDebugType;
+
+void ob_debug_type(ObDebugType type, const gchar *a, ...);
+
+void ob_debug_enable(ObDebugType type, gboolean enable);
+
 #endif
index a2f0ef6adc2fa8555229a93de6c1d431f3e61b2d..b9f04e4d5c7ecd43d90bc47061386f3a87d942fa 100644 (file)
@@ -440,27 +440,28 @@ static void event_process(const XEvent *ec, gpointer data)
             }
         }
 
-#if 1 /* focus debugging stuff */
     if (e->type == FocusIn || e->type == FocusOut) {
         gint mode = e->xfocus.mode;
         gint detail = e->xfocus.detail;
         Window window = e->xfocus.window;
         if (detail == NotifyVirtual) {
-            ob_debug("FOCUS %s NOTIFY VIRTUAL window 0x%x\n",
-                     (e->type == FocusIn ? "IN" : "OUT"), window);
+            ob_debug_type(OB_DEBUG_FOCUS,
+                          "FOCUS %s NOTIFY VIRTUAL window 0x%x\n",
+                          (e->type == FocusIn ? "IN" : "OUT"), window);
         }
 
         else if (detail == NotifyNonlinearVirtual) {
-            ob_debug("FOCUS %s NOTIFY NONLINVIRTUAL window 0x%x\n",
-                     (e->type == FocusIn ? "IN" : "OUT"), window);
+            ob_debug_type(OB_DEBUG_FOCUS,
+                          "FOCUS %s NOTIFY NONLINVIRTUAL window 0x%x\n",
+                          (e->type == FocusIn ? "IN" : "OUT"), window);
         }
 
         else
-            ob_debug("UNKNOWN FOCUS %s (d %d, m %d) window 0x%x\n",
-                     (e->type == FocusIn ? "IN" : "OUT"),
-                     detail, mode, window);
+            ob_debug_type(OB_DEBUG_FOCUS,
+                          "UNKNOWN FOCUS %s (d %d, m %d) window 0x%x\n",
+                          (e->type == FocusIn ? "IN" : "OUT"),
+                          detail, mode, window);
     }
-#endif
 
     event_set_curtime(e);
     event_hack_mods(e);
@@ -678,18 +679,18 @@ static void event_handle_client(ObClient *client, XEvent *e)
         if (!XCheckIfEvent(ob_display, &ce, look_for_focusin, NULL)) {
             /* There is no FocusIn, this means focus went to a window that
                is not being managed, or a window on another screen. */
-            ob_debug("Focus went to a black hole !\n");
+            ob_debug_type(OB_DEBUG_FOCUS, "Focus went to a black hole !\n");
         } else if (ce.xany.window == e->xany.window) {
             /* If focus didn't actually move anywhere, there is nothing to do*/
             break;
         } else if (ce.xfocus.detail == NotifyPointerRoot ||
                  ce.xfocus.detail == NotifyDetailNone) {
-            ob_debug("Focus went to root\n");
+            ob_debug_type(OB_DEBUG_FOCUS, "Focus went to root\n");
             /* Focus has been reverted to the root window or nothing, so fall
                back to something other than the window which just had it. */
             focus_fallback(FALSE);
         } else if (ce.xfocus.detail == NotifyInferior) {
-            ob_debug("Focus went to parent\n");
+            ob_debug_type(OB_DEBUG_FOCUS, "Focus went to parent\n");
             /* Focus has been reverted to parent, which is our frame window,
                or the root window, so fall back to something other than the
                window which had it. */
@@ -701,8 +702,9 @@ static void event_handle_client(ObClient *client, XEvent *e)
             if (ed.ignored) {
                 /* The FocusIn was ignored, this means it was on a window
                    that isn't a client. */
-                ob_debug("Focus went to an unmanaged window 0x%x !\n",
-                         ce.xfocus.window);
+                ob_debug_type(OB_DEBUG_FOCUS,
+                              "Focus went to an unmanaged window 0x%x !\n",
+                              ce.xfocus.window);
                 focus_fallback(TRUE);
             }
         }
@@ -780,21 +782,19 @@ static void event_handle_client(ObClient *client, XEvent *e)
             if (e->xcrossing.mode == NotifyGrab ||
                 e->xcrossing.mode == NotifyUngrab)
             {
-#ifdef DEBUG_FOCUS
-                ob_debug("%sNotify mode %d detail %d on %lx IGNORED\n",
-                         (e->type == EnterNotify ? "Enter" : "Leave"),
-                         e->xcrossing.mode,
-                         e->xcrossing.detail, client?client->window:0);
-#endif
+                ob_debug_type(OB_DEBUG_FOCUS,
+                              "%sNotify mode %d detail %d on %lx IGNORED\n",
+                              (e->type == EnterNotify ? "Enter" : "Leave"),
+                              e->xcrossing.mode,
+                              e->xcrossing.detail, client?client->window:0);
             } else {
-#ifdef DEBUG_FOCUS
-                ob_debug("%sNotify mode %d detail %d on %lx, "
-                         "focusing window: %d\n",
-                         (e->type == EnterNotify ? "Enter" : "Leave"),
-                         e->xcrossing.mode,
-                         e->xcrossing.detail, (client?client->window:0),
-                         !nofocus);
-#endif
+                ob_debug_type(OB_DEBUG_FOCUS,
+                              "%sNotify mode %d detail %d on %lx, "
+                              "focusing window: %d\n",
+                              (e->type == EnterNotify ? "Enter" : "Leave"),
+                              e->xcrossing.mode,
+                              e->xcrossing.detail, (client?client->window:0),
+                              !nofocus);
                 if (!nofocus && config_focus_follow)
                     event_enter_client(client);
             }
@@ -910,14 +910,14 @@ static void event_handle_client(ObClient *client, XEvent *e)
         }
         break;
     case UnmapNotify:
-        ob_debug("UnmapNotify for window 0x%x eventwin 0x%x sendevent %d "
-                 "ignores left %d\n",
-                 client->window, e->xunmap.event, e->xunmap.from_configure,
-                 client->ignore_unmaps);
         if (client->ignore_unmaps) {
             client->ignore_unmaps--;
             break;
         }
+        ob_debug("UnmapNotify for window 0x%x eventwin 0x%x sendevent %d "
+                 "ignores left %d\n",
+                 client->window, e->xunmap.event, e->xunmap.from_configure,
+                 client->ignore_unmaps);
         client_unmanage(client);
         break;
     case DestroyNotify:
index 1e343dfa21980e4ea4573acae32086e32c18e351..197948e98c286c619a01cbd24036d16d45aac0d3 100644 (file)
@@ -158,18 +158,16 @@ void focus_set_client(ObClient *client)
     Window active;
     ObClient *old;
 
-#ifdef DEBUG_FOCUS
-    ob_debug("focus_set_client 0x%lx\n", client ? client->window : 0);
-#endif
+    ob_debug_type(OB_DEBUG_FOCUS,
+                  "focus_set_client 0x%lx\n", client ? client->window : 0);
 
     /* uninstall the old colormap, and install the new one */
     screen_install_colormap(focus_client, FALSE);
     screen_install_colormap(client, TRUE);
 
     if (client == NULL) {
-#ifdef DEBUG_FOCUS
-        ob_debug("actively focusing NONWINDOW\n");
-#endif
+        ob_debug_type(OB_DEBUG_FOCUS, "actively focusing NONWINDOW\n");
+
         /* when nothing will be focused, send focus to the backup target */
         XSetInputFocus(ob_display, screen_support_win, RevertToNone,
                        event_curtime);
@@ -207,13 +205,13 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
     ObClient *target = NULL;
     ObClient *desktop = NULL;
 
-    ob_debug("trying pointer stuff\n");
+    ob_debug_type(OB_DEBUG_FOCUS, "trying pointer stuff\n");
     if (config_focus_follow && !config_focus_last)
     {
         if ((target = client_under_pointer()))
             if (allow_refocus || target != old)
                 if (client_normal(target) && client_can_focus(target)) {
-                    ob_debug("found in pointer stuff\n");
+                    ob_debug_type(OB_DEBUG_FOCUS, "found in pointer stuff\n");
                     return target;
                 }
     }
@@ -232,12 +230,12 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
         }
 #endif
 
-    ob_debug("trying omnipresentness\n");
+    ob_debug_type(OB_DEBUG_FOCUS, "trying omnipresentness\n");
     if (allow_refocus && old && old->desktop == DESKTOP_ALL)
         return old;
 
 
-    ob_debug("trying  the focus order\n");
+    ob_debug_type(OB_DEBUG_FOCUS, "trying  the focus order\n");
     for (it = focus_order; it; it = g_list_next(it))
         if (allow_refocus || it->data != old) {
             ObClient *c = it->data;
@@ -257,7 +255,7 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
                 !c->iconic)
             {
                 if (client_normal(c)) {
-                    ob_debug("found in focus order\n");
+                    ob_debug_type(OB_DEBUG_FOCUS, "found in focus order\n");
                     return it->data;
                 } else if (c->type == OB_CLIENT_TYPE_DESKTOP && !desktop)
                     desktop = c;
index 5c4905ee3609cc2de7ab4773ccffc6c47afd9975..08360d45f73ac3829a8b28ee206f3b03634c8982 100644 (file)
@@ -100,6 +100,9 @@ gint main(gint argc, gchar **argv)
 {
 #ifdef DEBUG
     ob_debug_show_output(TRUE);
+#ifdef DEBUG_FOCUS
+    ob_debug_enable(OB_DEBUG_FOCUS, TRUE);
+#endif
 #endif
 
     state = OB_STATE_STARTING;
index 1705fa8957fd03a38fac74a0e95c9112ae05f9b6..5f0ef0e7f3faa6b10bfa87bf948b813c15fea9fc 100644 (file)
@@ -166,7 +166,7 @@ gboolean screen_annex()
                                        CopyFromParent, InputOutput,
                                        CopyFromParent,
                                        CWOverrideRedirect, &attrib);
-    XMapRaised(ob_display, screen_support_win);
+    XMapWindow(ob_display, screen_support_win);
 
     if (!replace_wm()) {
         XDestroyWindow(ob_display, screen_support_win);
This page took 0.034932 seconds and 4 git commands to generate.