make ob_debug use the g_log system, and make openbox log messages to..a log file...
authorDana Jansens <danakj@orodu.net>
Sun, 20 Jan 2008 17:36:42 +0000 (12:36 -0500)
committerDana Jansens <danakj@orodu.net>
Thu, 31 Jan 2008 17:54:51 +0000 (12:54 -0500)
13 files changed:
openbox/client.c
openbox/debug.c
openbox/debug.h
openbox/dock.c
openbox/event.c
openbox/focus.c
openbox/openbox.c
openbox/ping.c
openbox/place.c
openbox/screen.c
openbox/session.c
openbox/stacking.c
po/POTFILES.in

index 4b0aea2..507c1e7 100644 (file)
@@ -264,7 +264,7 @@ void client_manage(Window window)
         XFree(wmhint);
     }
 
-    ob_debug("Managing window: 0x%lx\n", window);
+    ob_debug("Managing window: 0x%lx", window);
 
     map_time = event_get_server_time();
 
@@ -288,8 +288,8 @@ void client_manage(Window window)
     /* get all the stuff off the window */
     client_get_all(self, TRUE);
 
-    ob_debug("Window type: %d\n", self->type);
-    ob_debug("Window group: 0x%x\n", self->group?self->group->leader:0);
+    ob_debug("Window type: %d", self->type);
+    ob_debug("Window group: 0x%x", self->group?self->group->leader:0);
 
     /* now we have all of the window's information so we can set this up.
        do this before creating the frame, so it can tell that we are still
@@ -356,7 +356,7 @@ void client_manage(Window window)
 
     /* figure out placement for the window if the window is new */
     if (ob_state() == OB_STATE_RUNNING) {
-        ob_debug("Positioned: %s @ %d %d\n",
+        ob_debug("Positioned: %s @ %d %d",
                  (!self->positioned ? "no" :
                   (self->positioned == PPosition ? "program specified" :
                    (self->positioned == USPosition ? "user specified" :
@@ -364,7 +364,7 @@ void client_manage(Window window)
                      "program + user specified" :
                      "BADNESS !?")))), place.x, place.y);
 
-        ob_debug("Sized: %s @ %d %d\n",
+        ob_debug("Sized: %s @ %d %d",
                  (!self->sized ? "no" :
                   (self->sized == PSize ? "program specified" :
                    (self->sized == USSize ? "user specified" :
@@ -436,7 +436,7 @@ void client_manage(Window window)
         place.width = MIN(place.width, a->width);
         place.height = MIN(place.height, a->height);
 
-        ob_debug("setting window size to %dx%d\n", place.width, place.height);
+        ob_debug("setting window size to %dx%d", place.width, place.height);
 
         /* get the size of the client back */
         place.width -= self->frame->size.left + self->frame->size.right;
@@ -446,11 +446,11 @@ void client_manage(Window window)
     }
 
     ob_debug("placing window 0x%x at %d, %d with size %d x %d. "
-             "some restrictions may apply\n",
+             "some restrictions may apply",
              self->window, place.x, place.y, place.width, place.height);
     if (self->session)
         ob_debug("  but session requested %d, %d  %d x %d instead, "
-                 "overriding\n",
+                 "overriding",
                  self->session->x, self->session->y,
                  self->session->w, self->session->h);
 
@@ -465,7 +465,7 @@ void client_manage(Window window)
     g_free(monitor);
     monitor = NULL;
 
-    ob_debug_type(OB_DEBUG_FOCUS, "Going to try activate new window? %s\n",
+    ob_debug_type(OB_DEBUG_FOCUS, "Going to try activate new window? %s",
                   activate ? "yes" : "no");
     if (activate) {
         gboolean raise = FALSE;
@@ -473,7 +473,7 @@ void client_manage(Window window)
         /* This is focus stealing prevention */
         ob_debug_type(OB_DEBUG_FOCUS,
                       "Want to focus new window 0x%x at time %u "
-                      "launched at %u (last user interaction time %u)\n",
+                      "launched at %u (last user interaction time %u)",
                       self->window, map_time, launch_time,
                       event_last_user_time);
 
@@ -483,7 +483,7 @@ void client_manage(Window window)
             ob_debug_type(OB_DEBUG_FOCUS,
                           "Not focusing the window because the user is inside "
                           "an Openbox menu or is move/resizing a window and "
-                          "we don't want to interrupt them\n");
+                          "we don't want to interrupt them");
         }
 
         /* if it's on another desktop */
@@ -497,7 +497,7 @@ void client_manage(Window window)
             raise = TRUE;
             ob_debug_type(OB_DEBUG_FOCUS,
                           "Not focusing the window because its on another "
-                          "desktop\n");
+                          "desktop");
         }
         /* If something is focused, and it's not our relative... */
         else if (focus_client && client_search_focus_tree_full(self) == NULL &&
@@ -514,14 +514,14 @@ void client_manage(Window window)
                 activate = FALSE;
                 ob_debug_type(OB_DEBUG_FOCUS,
                               "Not focusing the window because the user is "
-                              "working in another window\n");
+                              "working in another window");
             }
             /* If its a transient (and its parents aren't focused) */
             else if (client_has_parent(self)) {
                 activate = FALSE;
                 ob_debug_type(OB_DEBUG_FOCUS,
                               "Not focusing the window because it is a "
-                              "transient, and its relatives aren't focused\n");
+                              "transient, and its relatives aren't focused");
             }
             /* Don't steal focus from globally active clients.
                I stole this idea from KWin. It seems nice.
@@ -532,7 +532,7 @@ void client_manage(Window window)
                 activate = FALSE;
                 ob_debug_type(OB_DEBUG_FOCUS,
                               "Not focusing the window because a globally "
-                              "active client has focus\n");
+                              "active client has focus");
             }
             /* Don't move focus if it's not going to go to this window
                anyway */
@@ -541,7 +541,7 @@ void client_manage(Window window)
                 raise = TRUE;
                 ob_debug_type(OB_DEBUG_FOCUS,
                               "Not focusing the window because another window "
-                              "would get the focus anyway\n");
+                              "would get the focus anyway");
             }
             else if (!(self->desktop == screen_desktop ||
                        self->desktop == DESKTOP_ALL))
@@ -557,7 +557,7 @@ void client_manage(Window window)
         if (!activate) {
             ob_debug_type(OB_DEBUG_FOCUS,
                           "Focus stealing prevention activated for %s at "
-                          "time %u (last user interactioon time %u)\n",
+                          "time %u (last user interactioon time %u)",
                           self->title, map_time, event_last_user_time);
             /* if the client isn't focused, then hilite it so the user
                knows it is there */
@@ -623,7 +623,7 @@ void client_manage(Window window)
     /* free the ObAppSettings shallow copy */
     g_free(settings);
 
-    ob_debug("Managed window 0x%lx plate 0x%x (%s)\n",
+    ob_debug("Managed window 0x%lx plate 0x%x (%s)",
              window, self->frame->window, self->class);
 
     return;
@@ -635,7 +635,7 @@ ObClient *client_fake_manage(Window window)
     ObClient *self;
     ObAppSettings *settings;
 
-    ob_debug("Pretend-managing window: %lx\n", window);
+    ob_debug("Pretend-managing window: %lx", window);
 
     /* do this minimal stuff to figure out the client's decorations */
 
@@ -653,7 +653,7 @@ ObClient *client_fake_manage(Window window)
     self->frame = frame_new(self);
     frame_adjust_area(self->frame, FALSE, TRUE, TRUE);
 
-    ob_debug("gave extents left %d right %d top %d bottom %d\n",
+    ob_debug("gave extents left %d right %d top %d bottom %d",
              self->frame->size.left, self->frame->size.right,
              self->frame->size.top, self->frame->size.bottom);
 
@@ -675,7 +675,7 @@ void client_unmanage(ObClient *self)
     GSList *it;
     gulong ignore_start;
 
-    ob_debug("Unmanaging window: 0x%x plate 0x%x (%s) (%s)\n",
+    ob_debug("Unmanaging window: 0x%x plate 0x%x (%s) (%s)",
              self->window, self->frame->window,
              self->class, self->title ? self->title : "");
 
@@ -794,7 +794,7 @@ void client_unmanage(ObClient *self)
     /* update the list hints */
     client_set_list();
 
-    ob_debug("Unmanaged window 0x%lx\n", self->window);
+    ob_debug("Unmanaged window 0x%lx", self->window);
 
     /* free all data allocated in the client struct */
     g_slist_free(self->transients);
@@ -852,7 +852,7 @@ static ObAppSettings *client_get_settings_state(ObClient *self)
             match = FALSE;
 
         if (match) {
-            ob_debug("Window matching: %s\n", app->name);
+            ob_debug("Window matching: %s", app->name);
 
             /* copy the settings to our struct, overriding the existing
                settings if they are not defaults */
@@ -907,17 +907,17 @@ static void client_restore_session_state(ObClient *self)
     GList *it;
 
     ob_debug_type(OB_DEBUG_SM,
-                  "Restore session for client %s\n", self->title);
+                  "Restore session for client %s", self->title);
 
     if (!(it = session_state_find(self))) {
         ob_debug_type(OB_DEBUG_SM,
-                      "Session data not found for client %s\n", self->title);
+                      "Session data not found for client %s", self->title);
         return;
     }
 
     self->session = it->data;
 
-    ob_debug_type(OB_DEBUG_SM, "Session data loaded for client %s\n",
+    ob_debug_type(OB_DEBUG_SM, "Session data loaded for client %s",
                   self->title);
 
     RECT_SET_POINT(self->area, self->session->x, self->session->y);
@@ -1170,7 +1170,7 @@ static void client_get_area(ObClient *self)
     POINT_SET(self->root_pos, wattrib.x, wattrib.y);
     self->border_width = wattrib.border_width;
 
-    ob_debug("client area: %d %d  %d %d  bw %d\n", wattrib.x, wattrib.y,
+    ob_debug("client area: %d %d  %d %d  bw %d", wattrib.x, wattrib.y,
              wattrib.width, wattrib.height, wattrib.border_width);
 }
 
@@ -1183,7 +1183,7 @@ static void client_get_desktop(ObClient *self)
             self->desktop = screen_num_desktops - 1;
         else
             self->desktop = d;
-        ob_debug("client requested desktop 0x%x\n", self->desktop);
+        ob_debug("client requested desktop 0x%x", self->desktop);
     } else {
         GSList *it;
         gboolean first = TRUE;
@@ -1206,7 +1206,7 @@ static void client_get_desktop(ObClient *self)
         if (all != screen_num_desktops) {
             self->desktop = all;
 
-            ob_debug("client desktop set from parents: 0x%x\n",
+            ob_debug("client desktop set from parents: 0x%x",
                      self->desktop);
         }
         /* try get from the startup-notification protocol */
@@ -1214,13 +1214,13 @@ static void client_get_desktop(ObClient *self)
             if (self->desktop >= screen_num_desktops &&
                 self->desktop != DESKTOP_ALL)
                 self->desktop = screen_num_desktops - 1;
-            ob_debug("client desktop set from startup-notification: 0x%x\n",
+            ob_debug("client desktop set from startup-notification: 0x%x",
                      self->desktop);
         }
         /* defaults to the current desktop */
         else {
             self->desktop = screen_desktop;
-            ob_debug("client desktop set to the current desktop: %d\n",
+            ob_debug("client desktop set to the current desktop: %d",
                      self->desktop);
         }
     }
@@ -1575,7 +1575,7 @@ void client_update_colormap(ObClient *self, Colormap colormap)
 {
     if (colormap == self->colormap) return;
 
-    ob_debug("Setting client %s colormap: 0x%x\n", self->title, colormap);
+    ob_debug("Setting client %s colormap: 0x%x", self->title, colormap);
 
     if (client_focused(self)) {
         screen_install_colormap(self, FALSE); /* uninstall old one */
@@ -1630,15 +1630,15 @@ void client_update_normal_hints(ObClient *self)
         if (size.flags & PResizeInc && size.width_inc && size.height_inc)
             SIZE_SET(self->size_inc, size.width_inc, size.height_inc);
 
-        ob_debug("Normal hints: min size (%d %d) max size (%d %d)\n   "
-                 "size inc (%d %d) base size (%d %d)\n",
+        ob_debug("Normal hints: min size (%d %d) max size (%d %d)",
                  self->min_size.width, self->min_size.height,
-                 self->max_size.width, self->max_size.height,
+                 self->max_size.width, self->max_size.height);
+        ob_debug("size inc (%d %d) base size (%d %d)",
                  self->size_inc.width, self->size_inc.height,
                  self->base_size.width, self->base_size.height);
     }
     else
-        ob_debug("Normal hints: not set\n");
+        ob_debug("Normal hints: not set");
 }
 
 void client_setup_decor_and_functions(ObClient *self, gboolean reconfig)
@@ -2645,7 +2645,7 @@ static void client_apply_startup_state(ObClient *self,
        pre-max/pre-fullscreen values
     */
     client_try_configure(self, &x, &y, &w, &h, &l, &l, FALSE);
-    ob_debug("placed window 0x%x at %d, %d with size %d x %d\n",
+    ob_debug("placed window 0x%x at %d, %d with size %d x %d",
              self->window, x, y, w, h);
     /* save the area, and make it where it should be for the premax stuff */
     oldarea = self->area;
@@ -3025,7 +3025,7 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
         event.xconfigure.event = self->window;
         event.xconfigure.window = self->window;
 
-        ob_debug("Sending ConfigureNotify to %s for %d,%d %dx%d\n",
+        ob_debug("Sending ConfigureNotify to %s for %d,%d %dx%d",
                  self->title, self->root_pos.x, self->root_pos.y, w, h);
 
         /* root window real coords */
@@ -3094,7 +3094,7 @@ void client_fullscreen(ObClient *self, gboolean fs)
         RECT_SET(self->pre_fullscreen_area, 0, 0, 0, 0);
     }
 
-    ob_debug("Window %s going fullscreen (%d)\n",
+    ob_debug("Window %s going fullscreen (%d)",
              self->title, self->fullscreen);
 
     client_setup_decor_and_functions(self, FALSE);
@@ -3120,7 +3120,7 @@ static void client_iconify_recursive(ObClient *self,
 
 
     if (self->iconic != iconic) {
-        ob_debug("%sconifying window: 0x%lx\n", (iconic ? "I" : "Uni"),
+        ob_debug("%sconifying window: 0x%lx", (iconic ? "I" : "Uni"),
                  self->window);
 
         if (iconic) {
@@ -3294,7 +3294,7 @@ void client_kill(ObClient *self)
     if (!self->client_machine && self->pid) {
         /* running on the local host */
         if (!self->close_tried_term) {
-            ob_debug("killing window 0x%x with pid %lu, with SIGTERM\n",
+            ob_debug("killing window 0x%x with pid %lu, with SIGTERM",
                      self->window, self->pid);
             kill(self->pid, SIGTERM);
             self->close_tried_term = TRUE;
@@ -3303,7 +3303,7 @@ void client_kill(ObClient *self)
             client_update_title(self);
         }
         else {
-            ob_debug("killing window 0x%x with pid %lu, with SIGKILL\n",
+            ob_debug("killing window 0x%x with pid %lu, with SIGKILL",
                      self->window, self->pid);
             kill(self->pid, SIGKILL); /* kill -9 */
         }
@@ -3338,7 +3338,7 @@ static void client_set_desktop_recursive(ObClient *self,
 
     if (target != self->desktop && self->type != OB_CLIENT_TYPE_DESKTOP) {
 
-        ob_debug("Setting desktop %u\n", target+1);
+        ob_debug("Setting desktop %u", target+1);
 
         g_assert(target < screen_num_desktops || target == DESKTOP_ALL);
 
@@ -3640,12 +3640,12 @@ gboolean client_focus(ObClient *self)
 
     if (!client_can_focus(self)) {
         ob_debug_type(OB_DEBUG_FOCUS,
-                      "Client %s can't be focused\n", self->title);
+                      "Client %s can't be focused", self->title);
         return FALSE;
     }
 
     ob_debug_type(OB_DEBUG_FOCUS,
-                  "Focusing client \"%s\" (0x%x) at time %u\n",
+                  "Focusing client \"%s\" (0x%x) at time %u",
                   self->title, self->window, event_curtime);
 
     /* if using focus_delay, stop the timer now so that focus doesn't
@@ -3687,7 +3687,7 @@ gboolean client_focus(ObClient *self)
 
     obt_display_ignore_errors(FALSE);
 
-    ob_debug_type(OB_DEBUG_FOCUS, "Error focusing? %d\n",
+    ob_debug_type(OB_DEBUG_FOCUS, "Error focusing? %d",
                   obt_display_error_occured);
     return !obt_display_error_occured;
 }
@@ -4014,15 +4014,15 @@ static void detect_edge(Rect area, ObDirection dir,
             g_assert_not_reached();
     }
 
-    ob_debug("my head %d size %d\n", my_head, my_size);
-    ob_debug("head %d tail %d deest %d\n", head, tail, *dest);
+    ob_debug("my head %d size %d", my_head, my_size);
+    ob_debug("head %d tail %d deest %d", head, tail, *dest);
     if (!skip_head) {
-        ob_debug("using near edge %d\n", head);
+        ob_debug("using near edge %d", head);
         *dest = head;
         *near_edge = TRUE;
     }
     else if (!skip_tail) {
-        ob_debug("using far edge %d\n", tail);
+        ob_debug("using far edge %d", tail);
         *dest = tail;
         *near_edge = FALSE;
     }
@@ -4087,7 +4087,7 @@ void client_find_edge_directional(ObClient *self, ObDirection dir,
             cur->desktop != screen_desktop)
             continue;
 
-        ob_debug("trying window %s\n", cur->title);
+        ob_debug("trying window %s", cur->title);
 
         detect_edge(cur->frame->area, dir, my_head, my_size, my_edge_start,
                     my_edge_size, dest, near_edge);
@@ -4208,10 +4208,10 @@ void client_find_resize_directional(ObClient *self, ObDirection side,
         g_assert_not_reached();
     }
 
-    ob_debug("head %d dir %d\n", head, dir);
+    ob_debug("head %d dir %d", head, dir);
     client_find_edge_directional(self, dir, head, 1,
                                  e_start, e_size, &e, &near);
-    ob_debug("edge %d\n", e);
+    ob_debug("edge %d", e);
     *x = self->frame->area.x;
     *y = self->frame->area.y;
     *w = self->frame->area.width;
index 0fceba4..b441632 100644 (file)
 */
 
 #include "debug.h"
+#include "gettext.h"
+#include "obt/paths.h"
 
 #include <glib.h>
 #include <stdlib.h>
 #include <stdarg.h>
 #include <stdio.h>
+#include <errno.h>
 
-static gboolean show;
+static gboolean  enabled_types[OB_DEBUG_TYPE_NUM] = {FALSE};
+static FILE     *log_file = NULL;
+static guint     rr_handler_id = 0;
+static guint     obt_handler_id = 0;
+static guint     ob_handler_id = 0;
 
-void ob_debug_show_output(gboolean enable)
+static void log_handler(const gchar *log_domain, GLogLevelFlags log_level,
+                        const gchar *message, gpointer user_data);
+
+void ob_debug_startup(void)
 {
-    show = enable;
+    ObtPaths *p = obt_paths_new();
+    gchar *dir = g_build_filename(obt_paths_cache_home(p),
+                                  "openbox", NULL);
+
+    /* log messages to a log file!  fancy, no? */
+    if (!obt_paths_mkdir_path(dir, 0777))
+        g_message(_("Unable to make directory '%s': %s"),
+                  dir, g_strerror(errno));
+    else {
+        gchar *name = g_build_filename(obt_paths_cache_home(p),
+                                       "openbox", "openbox.log", NULL);
+        log_file = fopen(name, "w");
+        g_free(name);
+    }
+
+    rr_handler_id =
+        g_log_set_handler("ObRender", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL |
+                          G_LOG_FLAG_RECURSION, log_handler, NULL);
+    obt_handler_id =
+        g_log_set_handler("Obt", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL |
+                          G_LOG_FLAG_RECURSION, log_handler, NULL);
+    ob_handler_id =
+        g_log_set_handler("Openbox", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL |
+                          G_LOG_FLAG_RECURSION, log_handler, NULL);
+
+    g_free(dir);
 }
 
-void ob_debug(const gchar *a, ...)
+void ob_debug_shutdown(void)
 {
-    va_list vl;
+    g_log_remove_handler("ObRender", rr_handler_id);
+    g_log_remove_handler("Obt", obt_handler_id);
+    g_log_remove_handler("Openbox", ob_handler_id);
 
-    if (show) {
-        fprintf(stderr, "DEBUG: ");
-        va_start(vl, a);
-        vfprintf(stderr, a, vl);
-        va_end(vl);
+    if (log_file) {
+        fclose(log_file);
+        log_file = NULL;
     }
 }
 
-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, ...)
+static inline void log_print(FILE *out, const gchar* log_domain,
+                             const gchar *level, const gchar *message)
 {
-    va_list vl;
+    fprintf(out, log_domain);
+    fprintf(out, "-");
+    fprintf(out, level);
+    fprintf(out, ": ");
+    fprintf(out, message);
+    fprintf(out, "\n");
+    fflush(out);
+}
+
+static void log_handler(const gchar *log_domain, GLogLevelFlags log_level,
+                        const gchar *message, gpointer data)
+{
+    FILE *out;
+    const gchar *level;
+
+    switch (log_level & G_LOG_LEVEL_MASK) {
+    case G_LOG_LEVEL_DEBUG:    level = "Debug";    out = stdout; break;
+    case G_LOG_LEVEL_INFO:     level = "Info";     out = stdout; break;
+    case G_LOG_LEVEL_MESSAGE:  level = "Message";  out = stdout; break;
+    case G_LOG_LEVEL_WARNING:  level = "Warning";  out = stderr; break;
+    case G_LOG_LEVEL_CRITICAL: level = "Critical"; out = stderr; break;
+    case G_LOG_LEVEL_ERROR:    level = "Error";    out = stderr; break;
+    default:                   g_assert_not_reached(); /* invalid level.. */
+    }
+
+    log_print(out, log_domain, level, message);
+    if (log_file) log_print(log_file, log_domain, level, message);
+}
+
+static inline void log_argv(ObDebugType type,
+                            const gchar *format, va_list args)
+{
+    const gchar *prefix;
+    gchar *message;
 
     g_assert(type < OB_DEBUG_TYPE_NUM);
+    if (!enabled_types[type]) return;
 
-    if (show && enabled_types[type]) {
-        switch (type) {
-        case OB_DEBUG_FOCUS:
-            fprintf(stderr, "FOCUS: ");
-            break;
-        case OB_DEBUG_APP_BUGS:
-            fprintf(stderr, "APPLICATION BUG: ");
-            break;
-        case OB_DEBUG_SM:
-            fprintf(stderr, "SESSION: ");
-            break;
-        default:
-            g_assert_not_reached();
-        }
-
-        va_start(vl, a);
-        vfprintf(stderr, a, vl);
-        va_end(vl);
+    switch (type) {
+    case OB_DEBUG_FOCUS:    prefix = "(FOCUS) ";           break;
+    case OB_DEBUG_APP_BUGS: prefix = "(APPLICATION BUG) "; break;
+    case OB_DEBUG_SM:       prefix = "(SESSION) ";         break;
+    default:                prefix = NULL;                 break;
     }
+
+    message = g_strdup_vprintf(format, args);
+    if (prefix) {
+        gchar *a = message;
+        message = g_strconcat(prefix, message, NULL);
+        g_free(a);
+    }
+
+    g_debug(message);
+    g_free(message);
+}
+
+void ob_debug(const gchar *a, ...)
+{
+    va_list vl;
+
+    va_start(vl, a);
+    log_argv(OB_DEBUG_NORMAL, a, vl);
+    va_end(vl);
+}
+
+void ob_debug_type(ObDebugType type, const gchar *a, ...)
+{
+    va_list vl;
+
+    va_start(vl, a);
+    log_argv(type, a, vl);
+    va_end(vl);
 }
index 3c6bedf..3af413a 100644 (file)
 
 #include <glib.h>
 
-void ob_debug_show_output(gboolean enable);
+void ob_debug_startup();
+void ob_debug_shutdown();
 
 void ob_debug(const gchar *a, ...);
 
 typedef enum {
+    OB_DEBUG_NORMAL,
     OB_DEBUG_FOCUS,
     OB_DEBUG_APP_BUGS,
     OB_DEBUG_SM,
index f36fca8..82b085a 100644 (file)
@@ -182,7 +182,7 @@ void dock_add(Window win, XWMHints *wmhints)
 
     dock_app_grab_button(app, TRUE);
 
-    ob_debug("Managed Dock App: 0x%lx (%s)\n", app->icon_win, app->class);
+    ob_debug("Managed Dock App: 0x%lx (%s)", app->icon_win, app->class);
 }
 
 void dock_remove_all(void)
@@ -206,7 +206,7 @@ void dock_remove(ObDockApp *app, gboolean reparent)
     dock->dock_apps = g_list_remove(dock->dock_apps, app);
     dock_configure();
 
-    ob_debug("Unmanaged Dock App: 0x%lx (%s)\n", app->icon_win, app->class);
+    ob_debug("Unmanaged Dock App: 0x%lx (%s)", app->icon_win, app->class);
 
     g_free(app->name);
     g_free(app->class);
index 9377214..2838194 100644 (file)
@@ -425,7 +425,7 @@ static void print_focusevent(XEvent *e)
 
     g_assert(modestr);
     g_assert(detailstr);
-    ob_debug_type(OB_DEBUG_FOCUS, "Focus%s 0x%x mode=%s detail=%s\n",
+    ob_debug_type(OB_DEBUG_FOCUS, "Focus%s 0x%x mode=%s detail=%s",
                   (e->xfocus.type == FocusIn ? "In" : "Out"),
                   win,
                   modestr, detailstr);
@@ -525,7 +525,7 @@ static void event_process(const XEvent *ec, gpointer data)
             XEvent ce;
 
             ob_debug_type(OB_DEBUG_FOCUS,
-                          "Focus went to root or pointer root/none\n");
+                          "Focus went to root or pointer root/none");
 
             if (e->xfocus.detail == NotifyInferior ||
                 e->xfocus.detail == NotifyNonlinear)
@@ -551,7 +551,7 @@ static void event_process(const XEvent *ec, gpointer data)
             {
                 XPutBackEvent(obt_display, &ce);
                 ob_debug_type(OB_DEBUG_FOCUS,
-                              "  but another FocusIn is coming\n");
+                              "  but another FocusIn is coming");
             } else {
                 /* Focus has been reverted.
 
@@ -567,7 +567,7 @@ static void event_process(const XEvent *ec, gpointer data)
         else if (!client)
         {
             ob_debug_type(OB_DEBUG_FOCUS,
-                          "Focus went to a window that is already gone\n");
+                          "Focus went to a window that is already gone");
 
             /* If you send focus to a window and then it disappears, you can
                get the FocusIn for it, after it is unmanaged.
@@ -598,12 +598,12 @@ static void event_process(const XEvent *ec, gpointer data)
                 root != obt_root(ob_screen))
             {
                 ob_debug_type(OB_DEBUG_FOCUS,
-                              "Focus went to another screen !\n");
+                              "Focus went to another screen !");
                 focus_left_screen = TRUE;
             }
             else
                 ob_debug_type(OB_DEBUG_FOCUS,
-                              "Focus went to a black hole !\n");
+                              "Focus went to a black hole !");
             obt_display_ignore_errors(FALSE);
             /* nothing is focused */
             focus_set_client(NULL);
@@ -615,7 +615,7 @@ static void event_process(const XEvent *ec, gpointer data)
                 /* The FocusIn was ignored, this means it was on a window
                    that isn't a client. */
                 ob_debug_type(OB_DEBUG_FOCUS,
-                              "Focus went to an unmanaged window 0x%x !\n",
+                              "Focus went to an unmanaged window 0x%x !",
                               ce.xfocus.window);
                 focus_fallback(TRUE, config_focus_under_mouse, TRUE, TRUE);
             }
@@ -643,7 +643,7 @@ static void event_process(const XEvent *ec, gpointer data)
     else if (e->type == MappingNotify) {
         /* keyboard layout changes for modifier mapping changes. reload the
            modifier map, and rebind all the key bindings as appropriate */
-        ob_debug("Kepboard map changed. Reloading keyboard bindings.\n");
+        ob_debug("Kepboard map changed. Reloading keyboard bindings.");
         obt_keyboard_reload();
         keyboard_rebind();
     }
@@ -736,7 +736,7 @@ static void event_handle_root(XEvent *e)
 
     switch(e->type) {
     case SelectionClear:
-        ob_debug("Another WM has requested to replace us. Exiting.\n");
+        ob_debug("Another WM has requested to replace us. Exiting.");
         ob_exit_replace();
         break;
 
@@ -751,7 +751,7 @@ static void event_handle_root(XEvent *e)
                 if (event_curtime == 0)
                     ob_debug_type(OB_DEBUG_APP_BUGS,
                                   "_NET_CURRENT_DESKTOP message is missing "
-                                  "a timestamp\n");
+                                  "a timestamp");
                 screen_set_desktop(d, TRUE);
             }
         } else if (msgtype == OBT_PROP_ATOM(NET_NUMBER_OF_DESKTOPS)) {
@@ -761,7 +761,7 @@ static void event_handle_root(XEvent *e)
         } else if (msgtype == OBT_PROP_ATOM(NET_SHOWING_DESKTOP)) {
             screen_show_desktop(e->xclient.data.l[0] != 0, NULL);
         } else if (msgtype == OBT_PROP_ATOM(OB_CONTROL)) {
-            ob_debug("OB_CONTROL: %d\n", e->xclient.data.l[0]);
+            ob_debug("OB_CONTROL: %d", e->xclient.data.l[0]);
             if (e->xclient.data.l[0] == 1)
                 ob_reconfigure();
             else if (e->xclient.data.l[0] == 2)
@@ -775,7 +775,7 @@ static void event_handle_root(XEvent *e)
         break;
     case PropertyNotify:
         if (e->xproperty.atom == OBT_PROP_ATOM(NET_DESKTOP_NAMES)) {
-            ob_debug("UPDATE DESKTOP NAMES\n");
+            ob_debug("UPDATE DESKTOP NAMES");
             screen_update_desktop_names();
         }
         else if (e->xproperty.atom == OBT_PROP_ATOM(NET_DESKTOP_LAYOUT))
@@ -988,7 +988,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
                 event_end_ignore_all_enters(event_start_ignore_all_enters());
 
             ob_debug_type(OB_DEBUG_FOCUS,
-                          "%sNotify mode %d detail %d on %lx\n",
+                          "%sNotify mode %d detail %d on %lx",
                           (e->type == EnterNotify ? "Enter" : "Leave"),
                           e->xcrossing.mode,
                           e->xcrossing.detail, (client?client->window:0));
@@ -1045,7 +1045,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
             {
                 ob_debug_type(OB_DEBUG_FOCUS,
                               "%sNotify mode %d detail %d serial %lu on %lx "
-                              "IGNORED\n",
+                              "IGNORED",
                               (e->type == EnterNotify ? "Enter" : "Leave"),
                               e->xcrossing.mode,
                               e->xcrossing.detail,
@@ -1055,7 +1055,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
             else {
                 ob_debug_type(OB_DEBUG_FOCUS,
                               "%sNotify mode %d detail %d serial %lu on %lx, "
-                              "focusing window\n",
+                              "focusing window",
                               (e->type == EnterNotify ? "Enter" : "Leave"),
                               e->xcrossing.mode,
                               e->xcrossing.detail,
@@ -1086,10 +1086,10 @@ static void event_handle_client(ObClient *client, XEvent *e)
         RECT_TO_DIMS(client->area, x, y, w, h);
 
         ob_debug("ConfigureRequest for \"%s\" desktop %d wmstate %d "
-                 "visibile %d\n"
-                 "                     x %d y %d w %d h %d b %d\n",
+                 "visibile %d",
                  client->title,
-                 screen_desktop, client->wmstate, client->frame->visible,
+                 screen_desktop, client->wmstate, client->frame->visible);
+        ob_debug("                     x %d y %d w %d h %d b %d",
                  x, y, w, h, client->border_width);
 
         if (e->xconfigurerequest.value_mask & CWBorderWidth)
@@ -1169,7 +1169,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
         }
 
         ob_debug("ConfigureRequest x(%d) %d y(%d) %d w(%d) %d h(%d) %d "
-                 "move %d resize %d\n",
+                 "move %d resize %d",
                  e->xconfigurerequest.value_mask & CWX, x,
                  e->xconfigurerequest.value_mask & CWY, y,
                  e->xconfigurerequest.value_mask & CWWidth, w,
@@ -1195,7 +1195,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
             ob_debug_type(OB_DEBUG_APP_BUGS,
                           "Application %s is trying to move via "
                           "ConfigureRequest to it's root window position "
-                          "but it is not using StaticGravity\n",
+                          "but it is not using StaticGravity",
                           client->title);
             /* don't move it */
             x = client->area.x;
@@ -1223,7 +1223,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
 
             client_find_onscreen(client, &x, &y, w, h, FALSE);
 
-            ob_debug("Granting ConfigureRequest x %d y %d w %d h %d\n",
+            ob_debug("Granting ConfigureRequest x %d y %d w %d h %d",
                      x, y, w, h);
             client_configure(client, x, y, w, h, FALSE, TRUE, TRUE);
         }
@@ -1231,7 +1231,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
     }
     case UnmapNotify:
         ob_debug("UnmapNotify for window 0x%x eventwin 0x%x sendevent %d "
-                 "ignores left %d\n",
+                 "ignores left %d",
                  client->window, e->xunmap.event, e->xunmap.from_configure,
                  client->ignore_unmaps);
         if (client->ignore_unmaps) {
@@ -1241,7 +1241,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
         client_unmanage(client);
         break;
     case DestroyNotify:
-        ob_debug("DestroyNotify for window 0x%x\n", client->window);
+        ob_debug("DestroyNotify for window 0x%x", client->window);
         client_unmanage(client);
         break;
     case ReparentNotify:
@@ -1259,11 +1259,11 @@ static void event_handle_client(ObClient *client, XEvent *e)
            X server to deal with after we unmanage the window */
         XPutBackEvent(obt_display, e);
 
-        ob_debug("ReparentNotify for window 0x%x\n", client->window);
+        ob_debug("ReparentNotify for window 0x%x", client->window);
         client_unmanage(client);
         break;
     case MapRequest:
-        ob_debug("MapRequest for 0x%lx\n", client->window);
+        ob_debug("MapRequest for 0x%lx", client->window);
         if (!client->iconic) break; /* this normally doesn't happen, but if it
                                        does, we don't want it!
                                        it can happen now when the window is on
@@ -1313,7 +1313,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
             gulong ignore_start;
 
             /* can't compress these */
-            ob_debug("net_wm_state %s %ld %ld for 0x%lx\n",
+            ob_debug("net_wm_state %s %ld %ld for 0x%lx",
                      (e->xclient.data.l[0] == 0 ? "Remove" :
                       e->xclient.data.l[0] == 1 ? "Add" :
                       e->xclient.data.l[0] == 2 ? "Toggle" : "INVALID"),
@@ -1328,10 +1328,10 @@ static void event_handle_client(ObClient *client, XEvent *e)
             if (!config_focus_under_mouse)
                 event_end_ignore_all_enters(ignore_start);
         } else if (msgtype == OBT_PROP_ATOM(NET_CLOSE_WINDOW)) {
-            ob_debug("net_close_window for 0x%lx\n", client->window);
+            ob_debug("net_close_window for 0x%lx", client->window);
             client_close(client);
         } else if (msgtype == OBT_PROP_ATOM(NET_ACTIVE_WINDOW)) {
-            ob_debug("net_active_window for 0x%lx source=%s\n",
+            ob_debug("net_active_window for 0x%lx source=%s",
                      client->window,
                      (e->xclient.data.l[0] == 0 ? "unknown" :
                       (e->xclient.data.l[0] == 1 ? "application" :
@@ -1345,16 +1345,16 @@ static void event_handle_client(ObClient *client, XEvent *e)
                 if (e->xclient.data.l[1] == 0)
                     ob_debug_type(OB_DEBUG_APP_BUGS,
                                   "_NET_ACTIVE_WINDOW message for window %s is"
-                                  " missing a timestamp\n", client->title);
+                                  " missing a timestamp", client->title);
             } else
                 ob_debug_type(OB_DEBUG_APP_BUGS,
                               "_NET_ACTIVE_WINDOW message for window %s is "
-                              "missing source indication\n");
+                              "missing source indication");
             client_activate(client, FALSE, TRUE, TRUE,
                             (e->xclient.data.l[0] == 0 ||
                              e->xclient.data.l[0] == 2));
         } else if (msgtype == OBT_PROP_ATOM(NET_WM_MOVERESIZE)) {
-            ob_debug("net_wm_moveresize for 0x%lx direction %d\n",
+            ob_debug("net_wm_moveresize for 0x%lx direction %d",
                      client->window, e->xclient.data.l[2]);
             if ((Atom)e->xclient.data.l[2] ==
                 OBT_PROP_ATOM(NET_WM_MOVERESIZE_SIZE_TOPLEFT) ||
@@ -1427,7 +1427,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
             else
                 h = client->area.height;
 
-            ob_debug("MOVERESIZE x %d %d y %d %d (gravity %d)\n",
+            ob_debug("MOVERESIZE x %d %d y %d %d (gravity %d)",
                      e->xclient.data.l[0] & 1 << 8, x,
                      e->xclient.data.l[0] & 1 << 9, y,
                      client->gravity);
@@ -1441,7 +1441,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
             if (e->xclient.data.l[0] != 2) {
                 ob_debug_type(OB_DEBUG_APP_BUGS,
                               "_NET_RESTACK_WINDOW sent for window %s with "
-                              "invalid source indication %ld\n",
+                              "invalid source indication %ld",
                               client->title, e->xclient.data.l[0]);
             } else {
                 ObClient *sibling = NULL;
@@ -1455,7 +1455,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
                     if (sibling == NULL)
                         ob_debug_type(OB_DEBUG_APP_BUGS,
                                       "_NET_RESTACK_WINDOW sent for window %s "
-                                      "with invalid sibling 0x%x\n",
+                                      "with invalid sibling 0x%x",
                                  client->title, e->xclient.data.l[1]);
                 }
                 if (e->xclient.data.l[2] == Below ||
@@ -1480,7 +1480,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
                 } else
                     ob_debug_type(OB_DEBUG_APP_BUGS,
                                   "_NET_RESTACK_WINDOW sent for window %s "
-                                  "with invalid detail %d\n",
+                                  "with invalid detail %d",
                                   client->title, e->xclient.data.l[2]);
             }
         }
@@ -1523,7 +1523,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
 
         msgtype = e->xproperty.atom;
         if (msgtype == XA_WM_NORMAL_HINTS) {
-            ob_debug("Update NORMAL hints\n");
+            ob_debug("Update NORMAL hints");
             client_update_normal_hints(client);
             /* normal hints can make a window non-resizable */
             client_setup_decor_and_functions(client, FALSE);
@@ -1945,7 +1945,7 @@ static void event_ignore_enter_range(gulong start, gulong end)
     r->end = end;
     ignore_serials = g_slist_prepend(ignore_serials, r);
 
-    ob_debug_type(OB_DEBUG_FOCUS, "ignoring enters from %lu until %lu\n",
+    ob_debug_type(OB_DEBUG_FOCUS, "ignoring enters from %lu until %lu",
                   r->start, r->end);
 
     /* increment the serial so we don't ignore events we weren't meant to */
@@ -1992,19 +1992,19 @@ void event_cancel_all_key_grabs(void)
 {
     if (actions_interactive_act_running()) {
         actions_interactive_cancel_act();
-        ob_debug("KILLED interactive action\n");
+        ob_debug("KILLED interactive action");
     }
     else if (menu_frame_visible) {
         menu_frame_hide_all();
-        ob_debug("KILLED open menus\n");
+        ob_debug("KILLED open menus");
     }
     else if (moveresize_in_progress) {
         moveresize_end(TRUE);
-        ob_debug("KILLED interactive moveresize\n");
+        ob_debug("KILLED interactive moveresize");
     }
     else if (grab_on_keyboard()) {
         ungrab_keyboard();
-        ob_debug("KILLED active grab on keyboard\n");
+        ob_debug("KILLED active grab on keyboard");
     }
     else
         ungrab_passive_key();
index 7105aa4..68b0b7f 100644 (file)
@@ -66,7 +66,7 @@ void focus_set_client(ObClient *client)
     Window active;
 
     ob_debug_type(OB_DEBUG_FOCUS,
-                  "focus_set_client 0x%lx\n", client ? client->window : 0);
+                  "focus_set_client 0x%lx", client ? client->window : 0);
 
     if (focus_client == client)
         return;
@@ -103,18 +103,18 @@ static ObClient* focus_fallback_target(gboolean allow_refocus,
     GList *it;
     ObClient *c;
 
-    ob_debug_type(OB_DEBUG_FOCUS, "trying pointer stuff\n");
+    ob_debug_type(OB_DEBUG_FOCUS, "trying pointer stuff");
     if (allow_pointer && config_focus_follow)
         if ((c = client_under_pointer()) &&
             (allow_refocus || client_focus_target(c) != old) &&
             (client_normal(c) &&
              client_focus(c)))
         {
-            ob_debug_type(OB_DEBUG_FOCUS, "found in pointer stuff\n");
+            ob_debug_type(OB_DEBUG_FOCUS, "found in pointer stuff");
             return c;
         }
 
-    ob_debug_type(OB_DEBUG_FOCUS, "trying the focus order\n");
+    ob_debug_type(OB_DEBUG_FOCUS, "trying the focus order");
     for (it = focus_order; it; it = g_list_next(it)) {
         c = it->data;
         /* fallback focus to a window if:
@@ -130,12 +130,12 @@ static ObClient* focus_fallback_target(gboolean allow_refocus,
             (allow_refocus || client_focus_target(c) != old) &&
             client_focus(c))
         {
-            ob_debug_type(OB_DEBUG_FOCUS, "found in focus order\n");
+            ob_debug_type(OB_DEBUG_FOCUS, "found in focus order");
             return c;
         }
     }
 
-    ob_debug_type(OB_DEBUG_FOCUS, "trying a desktop window\n");
+    ob_debug_type(OB_DEBUG_FOCUS, "trying a desktop window");
     for (it = focus_order; it; it = g_list_next(it)) {
         c = it->data;
         /* fallback focus to a window if:
@@ -149,7 +149,7 @@ static ObClient* focus_fallback_target(gboolean allow_refocus,
             (allow_refocus || client_focus_target(c) != old) &&
             client_focus(c))
         {
-            ob_debug_type(OB_DEBUG_FOCUS, "found a desktop window\n");
+            ob_debug_type(OB_DEBUG_FOCUS, "found a desktop window");
             return c;
         }
     }
index 9ec47bc..829960e 100644 (file)
@@ -116,6 +116,8 @@ gint main(gint argc, gchar **argv)
 
     state = OB_STATE_STARTING;
 
+    ob_debug_startup();
+
     /* initialize the locale */
     if (!setlocale(LC_ALL, ""))
         g_message("Couldn't set locale from environment.");
@@ -123,10 +125,6 @@ gint main(gint argc, gchar **argv)
     bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
     textdomain(PACKAGE_NAME);
 
-    if (chdir(g_get_home_dir()) == -1)
-        g_message(_("Unable to change to home directory '%s': %s"),
-                  g_get_home_dir(), g_strerror(errno));
-
     /* parse the command line args, which can change the argv[0] */
     parse_args(&argc, argv);
     /* parse the environment variables */
@@ -420,6 +418,8 @@ gint main(gint argc, gchar **argv)
     g_free(ob_sm_id);
     g_free(program_name);
 
+    ob_debug_shutdown();
+
     return exitcode;
 }
 
@@ -427,11 +427,11 @@ static void signal_handler(gint signal, gpointer data)
 {
     switch (signal) {
     case SIGUSR1:
-        ob_debug("Caught signal %d. Restarting.\n", signal);
+        ob_debug("Caught signal %d. Restarting.", signal);
         ob_restart();
         break;
     case SIGUSR2:
-        ob_debug("Caught signal %d. Reconfiguring.\n", signal);
+        ob_debug("Caught signal %d. Reconfiguring.", signal);
         ob_reconfigure();
         break;
     case SIGCHLD:
@@ -439,7 +439,7 @@ static void signal_handler(gint signal, gpointer data)
         while (waitpid(-1, NULL, WNOHANG) > 0);
         break;
     default:
-        ob_debug("Caught signal %d. Exiting.\n", signal);
+        ob_debug("Caught signal %d. Exiting.", signal);
         /* TERM and INT return a 0 code */
         ob_exit(!(signal == SIGTERM || signal == SIGINT));
     }
@@ -473,6 +473,7 @@ static void print_help()
     g_print(_("  --sync              Run in synchronous mode\n"));
     g_print(_("  --debug             Display debugging output\n"));
     g_print(_("  --debug-focus       Display debugging output for focus handling\n"));
+    g_print(_("  --debug-session     Display debugging output for session managment\n"));
     g_print(_("  --debug-xinerama    Split the display into fake xinerama screens\n"));
     g_print(_("\nPlease report bugs at %s\n"), PACKAGE_BUGREPORT);
 }
@@ -519,16 +520,19 @@ static void parse_args(gint *argc, gchar **argv)
             xsync = TRUE;
         }
         else if (!strcmp(argv[i], "--debug")) {
-            ob_debug_show_output(TRUE);
-            ob_debug_enable(OB_DEBUG_SM, TRUE);
+            ob_debug_enable(OB_DEBUG_NORMAL, TRUE);
             ob_debug_enable(OB_DEBUG_APP_BUGS, TRUE);
         }
         else if (!strcmp(argv[i], "--debug-focus")) {
-            ob_debug_show_output(TRUE);
-            ob_debug_enable(OB_DEBUG_SM, TRUE);
+            ob_debug_enable(OB_DEBUG_NORMAL, TRUE);
             ob_debug_enable(OB_DEBUG_APP_BUGS, TRUE);
             ob_debug_enable(OB_DEBUG_FOCUS, TRUE);
         }
+        else if (!strcmp(argv[i], "--debug-session")) {
+            ob_debug_enable(OB_DEBUG_NORMAL, TRUE);
+            ob_debug_enable(OB_DEBUG_APP_BUGS, TRUE);
+            ob_debug_enable(OB_DEBUG_SM, TRUE);
+        }
         else if (!strcmp(argv[i], "--debug-xinerama")) {
             ob_debug_xinerama = TRUE;
         }
@@ -549,7 +553,7 @@ static void parse_args(gint *argc, gchar **argv)
                 ob_sm_save_file = g_strdup(argv[i+1]);
                 remove_args(argc, argv, i, 2);
                 --i; /* this arg was removed so go back */
-                ob_debug_type(OB_DEBUG_SM, "--sm-save-file %s\n",
+                ob_debug_type(OB_DEBUG_SM, "--sm-save-file %s",
                               ob_sm_save_file);
             }
         }
@@ -561,7 +565,7 @@ static void parse_args(gint *argc, gchar **argv)
                 ob_sm_id = g_strdup(argv[i+1]);
                 remove_args(argc, argv, i, 2);
                 --i; /* this arg was removed so go back */
-                ob_debug_type(OB_DEBUG_SM, "--sm-client-id %s\n", ob_sm_id);
+                ob_debug_type(OB_DEBUG_SM, "--sm-client-id %s", ob_sm_id);
             }
         }
         else if (!strcmp(argv[i], "--sm-disable")) {
index 8bd333d..42487ab 100644 (file)
@@ -99,7 +99,7 @@ void ping_got_pong(guint32 id)
     ObPingTarget *t;
 
     if ((t = g_hash_table_lookup(ping_ids, &id))) {
-        /*ob_debug("-PONG: '%s' (id %u)\n", t->client->title, t->id);*/
+        /*ob_debug("-PONG: '%s' (id %u)", t->client->title, t->id);*/
         if (t->waiting > PING_TIMEOUT_WARN) {
             /* we had notified that they weren't responding, so now we
                need to notify that they are again */
@@ -108,7 +108,7 @@ void ping_got_pong(guint32 id)
         t->waiting = 0; /* not waiting for a reply anymore */
     }
     else
-        ob_debug("Got PONG with id %u but not waiting for one\n", id);
+        ob_debug("Got PONG with id %u but not waiting for one", id);
 }
 
 static gboolean find_client(gpointer key, gpointer value, gpointer client)
@@ -131,7 +131,7 @@ static void ping_send(ObPingTarget *t)
         g_hash_table_insert(ping_ids, &t->id, t);
     }
 
-    /*ob_debug("+PING: '%s' (id %u)\n", t->client->title, t->id);*/
+    /*ob_debug("+PING: '%s' (id %u)", t->client->title, t->id);*/
     OBT_PROP_MSG_TO(t->client->window, t->client->window, WM_PROTOCOLS,
                     OBT_PROP_ATOM(NET_WM_PING), t->id, t->client->window, 0, 0,
                     NoEventMask);
index 81fb975..9e38bde 100644 (file)
@@ -76,7 +76,7 @@ static Rect **pick_head(ObClient *c)
     /* try direct parent first */
     if ((p = client_direct_parent(c))) {
         add_choice(choice, client_monitor(p));
-        ob_debug("placement adding choice %d for parent\n",
+        ob_debug("placement adding choice %d for parent",
                  client_monitor(p));
     }
 
@@ -92,7 +92,7 @@ static Rect **pick_head(ObClient *c)
                  itc->desktop == DESKTOP_ALL || c->desktop == DESKTOP_ALL))
             {
                 add_choice(choice, client_monitor(it->data));
-                ob_debug("placement adding choice %d for group sibling\n",
+                ob_debug("placement adding choice %d for group sibling",
                          client_monitor(it->data));
             }
         }
@@ -103,7 +103,7 @@ static Rect **pick_head(ObClient *c)
             if (itc != c) {
                 add_choice(choice, client_monitor(it->data));
                 ob_debug("placement adding choice %d for group sibling on "
-                         "another desktop\n", client_monitor(it->data));
+                         "another desktop", client_monitor(it->data));
             }
         }
     }
@@ -113,7 +113,7 @@ static Rect **pick_head(ObClient *c)
         config_place_monitor != OB_PLACE_MONITOR_MOUSE)
     {
         add_choice(choice, client_monitor(focus_client));
-        ob_debug("placement adding choice %d for normal focused window\n",
+        ob_debug("placement adding choice %d for normal focused window",
                  client_monitor(focus_client));
     }
 
@@ -125,7 +125,7 @@ static Rect **pick_head(ObClient *c)
         g_free(monitor);
         if (contain) {
             add_choice(choice, i);
-            ob_debug("placement adding choice %d for mouse pointer\n", i);
+            ob_debug("placement adding choice %d for mouse pointer", i);
             break;
         }
     }
index 9a37e68..de3203e 100644 (file)
@@ -662,7 +662,7 @@ void screen_set_desktop(guint num, gboolean dofocus)
     obt_main_loop_timeout_add(ob_main_loop, REMEMBER_LAST_DESKTOP_TIME,
                               last_desktop_func, NULL, NULL, NULL);
 
-    ob_debug("Moving to desktop %d\n", num+1);
+    ob_debug("Moving to desktop %d", num+1);
 
     /* ignore enter events caused by the move */
     ignore_start = event_start_ignore_all_enters();
@@ -719,7 +719,7 @@ void screen_add_desktop(gboolean current)
                    parent - which will have to be on the same desktop */
                 !client_direct_parent(c))
             {
-                ob_debug("moving window %s\n", c->title);
+                ob_debug("moving window %s", c->title);
                 client_set_desktop(c, c->desktop+1, FALSE, TRUE);
             }
         }
@@ -760,7 +760,7 @@ void screen_remove_desktop(gboolean current)
                    parent - which will have to be on the same desktop */
                 !client_direct_parent(c))
             {
-                ob_debug("moving window %s\n", c->title);
+                ob_debug("moving window %s", c->title);
                 client_set_desktop(c, c->desktop - 1, TRUE, TRUE);
             }
             /* raise all the windows that are on the current desktop which
@@ -770,7 +770,7 @@ void screen_remove_desktop(gboolean current)
                 (d == DESKTOP_ALL || d == screen_desktop))
             {
                 stacking_raise(CLIENT_AS_WINDOW(c));
-                ob_debug("raising window %s\n", c->title);
+                ob_debug("raising window %s", c->title);
             }
         }
     }
@@ -778,7 +778,7 @@ void screen_remove_desktop(gboolean current)
     /* fallback focus like we're changing desktops */
     if (screen_desktop < screen_num_desktops - 1) {
         screen_fallback_focus();
-        ob_debug("fake desktop change\n");
+        ob_debug("fake desktop change");
     }
 
     screen_set_num_desktops(screen_num_desktops-1);
index 56ae7ab..267d17e 100644 (file)
@@ -110,7 +110,7 @@ void session_startup(gint argc, gchar **argv)
 
     if (ob_sm_save_file != NULL) {
         if (ob_sm_restore) {
-            ob_debug_type(OB_DEBUG_SM, "Loading from session file %s\n",
+            ob_debug_type(OB_DEBUG_SM, "Loading from session file %s",
                           ob_sm_save_file);
             session_load_file(ob_sm_save_file);
         }
@@ -177,7 +177,7 @@ static gboolean session_connect()
 
     /* connect to the server */
     oldid = ob_sm_id;
-    ob_debug_type(OB_DEBUG_SM, "Connecting to SM with id: %s\n",
+    ob_debug_type(OB_DEBUG_SM, "Connecting to SM with id: %s",
                   oldid ? oldid : "(null)");
     sm_conn = SmcOpenConnection(NULL, NULL, 1, 0,
                                 SmcSaveYourselfProcMask |
@@ -187,9 +187,9 @@ static gboolean session_connect()
                                 &cb, oldid, &ob_sm_id,
                                 SM_ERR_LEN-1, sm_err);
     g_free(oldid);
-    ob_debug_type(OB_DEBUG_SM, "Connected to SM with id: %s\n", ob_sm_id);
+    ob_debug_type(OB_DEBUG_SM, "Connected to SM with id: %s", ob_sm_id);
     if (sm_conn == NULL)
-        ob_debug("Failed to connect to session manager: %s\n", sm_err);
+        ob_debug("Failed to connect to session manager: %s", sm_err);
     return sm_conn != NULL;
 }
 
@@ -206,7 +206,7 @@ static void session_setup_program()
         .vals = &vals
     };
     SmProp *list = &prop;
-    ob_debug_type(OB_DEBUG_SM, "Setting program: %s\n", sm_argv[0]);
+    ob_debug_type(OB_DEBUG_SM, "Setting program: %s", sm_argv[0]);
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
     g_free(prop.type);
@@ -227,7 +227,7 @@ static void session_setup_user()
         .vals = &vals
     };
     SmProp *list = &prop;
-    ob_debug_type(OB_DEBUG_SM, "Setting user: %s\n", user);
+    ob_debug_type(OB_DEBUG_SM, "Setting user: %s", user);
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
     g_free(prop.type);
@@ -249,7 +249,7 @@ static void session_setup_restart_style(gboolean restart)
         .vals = &vals
     };
     SmProp *list = &prop;
-    ob_debug_type(OB_DEBUG_SM, "Setting restart: %d\n", restart);
+    ob_debug_type(OB_DEBUG_SM, "Setting restart: %d", restart);
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
     g_free(prop.type);
@@ -270,7 +270,7 @@ static void session_setup_pid()
         .vals = &vals
     };
     SmProp *list = &prop;
-    ob_debug_type(OB_DEBUG_SM, "Setting pid: %s\n", pid);
+    ob_debug_type(OB_DEBUG_SM, "Setting pid: %s", pid);
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
     g_free(prop.type);
@@ -293,7 +293,7 @@ static void session_setup_priority()
         .vals = &vals
     };
     SmProp *list = &prop;
-    ob_debug_type(OB_DEBUG_SM, "Setting priority: %d\n", priority);
+    ob_debug_type(OB_DEBUG_SM, "Setting priority: %d", priority);
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
     g_free(prop.type);
@@ -312,11 +312,11 @@ static void session_setup_clone_command()
     };
     SmProp *list = &prop;
 
-    ob_debug_type(OB_DEBUG_SM, "Setting clone command: (%d)\n", sm_argc);
+    ob_debug_type(OB_DEBUG_SM, "Setting clone command: (%d)", sm_argc);
     for (i = 0; i < sm_argc; ++i) {
         vals[i].value = sm_argv[i];
         vals[i].length = strlen(sm_argv[i]) + 1;
-        ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i].value);
+        ob_debug_type(OB_DEBUG_SM, "    %s", vals[i].value);
     }
 
     SmcSetProperties(sm_conn, 1, &list);
@@ -338,26 +338,26 @@ static void session_setup_restart_command()
     };
     SmProp *list = &prop;
 
-    ob_debug_type(OB_DEBUG_SM, "Setting restart command: (%d)\n", sm_argc+4);
+    ob_debug_type(OB_DEBUG_SM, "Setting restart command: (%d)", sm_argc+4);
     for (i = 0; i < sm_argc; ++i) {
         vals[i].value = sm_argv[i];
         vals[i].length = strlen(sm_argv[i]) + 1;
-        ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i].value);
+        ob_debug_type(OB_DEBUG_SM, "    %s", vals[i].value);
     }
 
     vals[i].value = g_strdup("--sm-client-id");
     vals[i].length = strlen("--sm-client-id") + 1;
     vals[i+1].value = ob_sm_id;
     vals[i+1].length = strlen(ob_sm_id) + 1;
-    ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i].value);
-    ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+1].value);
+    ob_debug_type(OB_DEBUG_SM, "    %s", vals[i].value);
+    ob_debug_type(OB_DEBUG_SM, "    %s", vals[i+1].value);
 
     vals[i+2].value = g_strdup("--sm-save-file");
     vals[i+2].length = strlen("--sm-save-file") + 1;
     vals[i+3].value = ob_sm_save_file;
     vals[i+3].length = strlen(ob_sm_save_file) + 1;
-    ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+2].value);
-    ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+3].value);
+    ob_debug_type(OB_DEBUG_SM, "    %s", vals[i+2].value);
+    ob_debug_type(OB_DEBUG_SM, "    %s", vals[i+3].value);
 
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
@@ -385,9 +385,9 @@ static void sm_save_yourself_2(SmcConn conn, SmPointer data)
     ObSMSaveData *savedata = data;
 
     /* save the current state */
-    ob_debug_type(OB_DEBUG_SM, "Session save phase 2 requested\n");
+    ob_debug_type(OB_DEBUG_SM, "Session save phase 2 requested");
     ob_debug_type(OB_DEBUG_SM,
-                  "  Saving session to file '%s'\n", ob_sm_save_file);
+                  "  Saving session to file '%s'", ob_sm_save_file);
     if (savedata == NULL)
         savedata = sm_save_get_data();
     success = session_save_to_file(savedata);
@@ -396,7 +396,7 @@ static void sm_save_yourself_2(SmcConn conn, SmPointer data)
     /* tell the session manager how to restore this state */
     if (success) session_setup_restart_command();
 
-    ob_debug_type(OB_DEBUG_SM, "Saving is done (success = %d)\n", success);
+    ob_debug_type(OB_DEBUG_SM, "Saving is done (success = %d)", success);
     SmcSaveYourselfDone(conn, success);
 }
 
@@ -407,10 +407,10 @@ static void sm_save_yourself(SmcConn conn, SmPointer data, gint save_type,
     ObSMSaveData *savedata = NULL;
     gchar *vendor;
 
-    ob_debug_type(OB_DEBUG_SM, "Session save requested\n");
+    ob_debug_type(OB_DEBUG_SM, "Session save requested");
 
     vendor = SmcVendor(sm_conn);
-    ob_debug_type(OB_DEBUG_SM, "Session manager's vendor: %s\n", vendor);
+    ob_debug_type(OB_DEBUG_SM, "Session manager's vendor: %s", vendor);
 
     if (!strcmp(vendor, "KDE")) {
         /* ksmserver guarantees that phase 1 will complete before allowing any
@@ -421,7 +421,7 @@ static void sm_save_yourself(SmcConn conn, SmPointer data, gint save_type,
     free(vendor);
 
     if (!SmcRequestSaveYourselfPhase2(conn, sm_save_yourself_2, savedata)) {
-        ob_debug_type(OB_DEBUG_SM, "Requst for phase 2 failed\n");
+        ob_debug_type(OB_DEBUG_SM, "Requst for phase 2 failed");
         g_free(savedata);
         SmcSaveYourselfDone(conn, FALSE);
     }
@@ -429,18 +429,18 @@ static void sm_save_yourself(SmcConn conn, SmPointer data, gint save_type,
 
 static void sm_die(SmcConn conn, SmPointer data)
 {
-    ob_debug_type(OB_DEBUG_SM, "Die requested\n");
+    ob_debug_type(OB_DEBUG_SM, "Die requested");
     ob_exit(0);
 }
 
 static void sm_save_complete(SmcConn conn, SmPointer data)
 {
-    ob_debug_type(OB_DEBUG_SM, "Save complete\n");
+    ob_debug_type(OB_DEBUG_SM, "Save complete");
 }
 
 static void sm_shutdown_cancelled(SmcConn conn, SmPointer data)
 {
-    ob_debug_type(OB_DEBUG_SM, "Shutdown cancelled\n");
+    ob_debug_type(OB_DEBUG_SM, "Shutdown cancelled");
 }
 
 static gboolean session_save_to_file(const ObSMSaveData *savedata)
@@ -498,18 +498,18 @@ static gboolean session_save_to_file(const ObSMSaveData *savedata)
 
             if (!c->sm_client_id) {
                 ob_debug_type(OB_DEBUG_SM, "Client %s does not have a "
-                              "session id set\n",
+                              "session id set",
                               c->title);
                 if (!c->wm_command) {
                     ob_debug_type(OB_DEBUG_SM, "Client %s does not have an "
                                   "oldskool wm_command set either. We won't "
-                                  "be saving its data\n",
+                                  "be saving its data",
                                   c->title);
                     continue;
                 }
             }
 
-            ob_debug_type(OB_DEBUG_SM, "Saving state for client %s\n",
+            ob_debug_type(OB_DEBUG_SM, "Saving state for client %s",
                           c->title);
 
             prex = c->area.x;
@@ -608,20 +608,20 @@ static void session_state_free(ObSessionState *state)
 
 static gboolean session_state_cmp(ObSessionState *s, ObClient *c)
 {
-    ob_debug_type(OB_DEBUG_SM, "Comparing client against saved state: \n");
-    ob_debug_type(OB_DEBUG_SM, "  client id: %s \n", c->sm_client_id);
-    ob_debug_type(OB_DEBUG_SM, "  client name: %s \n", c->name);
-    ob_debug_type(OB_DEBUG_SM, "  client class: %s \n", c->class);
-    ob_debug_type(OB_DEBUG_SM, "  client role: %s \n", c->role);
-    ob_debug_type(OB_DEBUG_SM, "  client type: %d \n", c->type);
-    ob_debug_type(OB_DEBUG_SM, "  client command: %s \n",
+    ob_debug_type(OB_DEBUG_SM, "Comparing client against saved state: ");
+    ob_debug_type(OB_DEBUG_SM, "  client id: %s ", c->sm_client_id);
+    ob_debug_type(OB_DEBUG_SM, "  client name: %s ", c->name);
+    ob_debug_type(OB_DEBUG_SM, "  client class: %s ", c->class);
+    ob_debug_type(OB_DEBUG_SM, "  client role: %s ", c->role);
+    ob_debug_type(OB_DEBUG_SM, "  client type: %d ", c->type);
+    ob_debug_type(OB_DEBUG_SM, "  client command: %s ",
                   c->wm_command ? c->wm_command : "(null)");
-    ob_debug_type(OB_DEBUG_SM, "  state id: %s \n", s->id);
-    ob_debug_type(OB_DEBUG_SM, "  state name: %s \n", s->name);
-    ob_debug_type(OB_DEBUG_SM, "  state class: %s \n", s->class);
-    ob_debug_type(OB_DEBUG_SM, "  state role: %s \n", s->role);
-    ob_debug_type(OB_DEBUG_SM, "  state type: %d \n", s->type);
-    ob_debug_type(OB_DEBUG_SM, "  state command: %s \n",
+    ob_debug_type(OB_DEBUG_SM, "  state id: %s ", s->id);
+    ob_debug_type(OB_DEBUG_SM, "  state name: %s ", s->name);
+    ob_debug_type(OB_DEBUG_SM, "  state class: %s ", s->class);
+    ob_debug_type(OB_DEBUG_SM, "  state role: %s ", s->role);
+    ob_debug_type(OB_DEBUG_SM, "  state type: %d ", s->type);
+    ob_debug_type(OB_DEBUG_SM, "  state command: %s ",
                   s->command ? s->command : "(null)");
 
     if ((c->sm_client_id && s->id && !strcmp(c->sm_client_id, s->id)) ||
index 4d58196..03a62dd 100644 (file)
@@ -624,21 +624,20 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
                     sibling->iconic))
     {
         ob_debug("Setting restack sibling to NULL, they are not on the same "
-                 "desktop or it is iconified\n");
+                 "desktop or it is iconified");
         sibling = NULL;
     }
 
     switch (detail) {
     case Below:
-        ob_debug("Restack request Below for client %s sibling %s\n",
+        ob_debug("Restack request Below for client %s sibling %s",
                  client->title, sibling ? sibling->title : "(all)");
         /* just lower it */
         stacking_lower(CLIENT_AS_WINDOW(client));
         ret = TRUE;
         break;
     case BottomIf:
-        ob_debug("Restack request BottomIf for client %s sibling "
-                 "%s\n",
+        ob_debug("Restack request BottomIf for client %s sibling %s",
                  client->title, sibling ? sibling->title : "(all)");
         /* if this client occludes sibling (or anything if NULL), then
            lower it to the bottom */
@@ -648,13 +647,13 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
         }
         break;
     case Above:
-        ob_debug("Restack request Above for client %s sibling %s\n",
+        ob_debug("Restack request Above for client %s sibling %s",
                  client->title, sibling ? sibling->title : "(all)");
         stacking_raise(CLIENT_AS_WINDOW(client));
         ret = TRUE;
         break;
     case TopIf:
-        ob_debug("Restack request TopIf for client %s sibling %s\n",
+        ob_debug("Restack request TopIf for client %s sibling %s",
                  client->title, sibling ? sibling->title : "(all)");
         if (stacking_occluded(client, sibling)) {
             stacking_raise(CLIENT_AS_WINDOW(client));
@@ -662,8 +661,7 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
         }
         break;
     case Opposite:
-        ob_debug("Restack request Opposite for client %s sibling "
-                 "%s\n",
+        ob_debug("Restack request Opposite for client %s sibling %s",
                  client->title, sibling ? sibling->title : "(all)");
         if (stacking_occluded(client, sibling)) {
             stacking_raise(CLIENT_AS_WINDOW(client));
index 9fcbcf4..00f0dcf 100644 (file)
@@ -6,6 +6,7 @@ openbox/client_list_combined_menu.c
 openbox/client_list_menu.c
 openbox/client_menu.c
 openbox/config.c
+openbox/debug.c
 openbox/keyboard.c
 openbox/menu.c
 openbox/mouse.c