merge r5815-5828,5832-5859 from trunk
authorDana Jansens <danakj@orodu.net>
Tue, 24 Apr 2007 07:07:29 +0000 (07:07 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 24 Apr 2007 07:07:29 +0000 (07:07 +0000)
124 files changed:
Makefile.am
README
bootstrap
configure.ac
data/openbox.desktop
data/rc.xml.in
data/rc.xsd
gettext.h
m4/x11.m4
openbox/action.c
openbox/action.h
openbox/client.c
openbox/client.h
openbox/client_list_combined_menu.c
openbox/client_list_combined_menu.h
openbox/client_list_menu.c
openbox/client_list_menu.h
openbox/client_menu.c
openbox/client_menu.h
openbox/config.c
openbox/config.h
openbox/dock.c
openbox/dock.h
openbox/event.c
openbox/event.h
openbox/extensions.c
openbox/extensions.h
openbox/focus.c
openbox/focus.h
openbox/frame.c
openbox/frame.h
openbox/framerender.c
openbox/framerender.h
openbox/geom.h
openbox/grab.c
openbox/grab.h
openbox/group.c
openbox/group.h
openbox/keyboard.c
openbox/keyboard.h
openbox/keytree.c
openbox/keytree.h
openbox/mainloop.c
openbox/mainloop.h
openbox/menu.c
openbox/menuframe.c
openbox/misc.h
openbox/mouse.c
openbox/mouse.h
openbox/moveresize.c
openbox/moveresize.h
openbox/mwm.h
openbox/openbox.c
openbox/openbox.h
openbox/place.c
openbox/place.h
openbox/popup.c
openbox/popup.h
openbox/prop.c
openbox/prop.h
openbox/resist.c
openbox/resist.h
openbox/screen.c
openbox/screen.h
openbox/session.c
openbox/session.h
openbox/stacking.c
openbox/stacking.h
openbox/startupnotify.c
openbox/startupnotify.h
openbox/translate.c
openbox/translate.h
openbox/xerror.c
openbox/xerror.h
parser/parse.c
parser/parse.h
po/Makevars
po/ca.po
po/de.po
po/en@boldquot.po
po/en@quot.po
po/es.po
po/fi.po
po/fr.po
po/hr.po
po/ja.po
po/no.po
po/pl.po
po/pt.po
po/ru.po
po/sk.po
po/sv.po
po/zh_TW.po
render/color.c
render/color.h
render/font.c
render/font.h
render/geom.h
render/gradient.c
render/gradient.h
render/icon.h
render/image.c
render/image.h
render/instance.c
render/instance.h
render/mask.c
render/mask.h
render/render.c
render/test.c
render/theme.c
tests/aspect.c
tests/fullscreen.c
tests/grav.c
tests/grouptran.c
tests/icons.c
tests/modal.c
tests/modal2.c
tests/modal3.c
tests/noresize.c
tests/override.c
tests/positioned.c [new file with mode: 0644]
tests/strut.c
tests/title.c
tests/urgent.c

index 3a68ae6..d008237 100644 (file)
@@ -101,6 +101,12 @@ parser_libobparser_la_SOURCES = \
 ## openbox ##
 
 openbox_openbox_CPPFLAGS = \
+       $(SM_CFLAGS) \
+       $(XINERAMA_CFLAGS) \
+       $(XKB_CFLAGS) \
+       $(XRANDR_CFLAGS) \
+       $(XSHAPE_CFLAGS) \
+       $(XSYNC_CFLAGS) \
        $(X_CFLAGS) \
        $(XCURSOR_CFLAGS) \
        $(SM_CFLAGS) \
@@ -118,6 +124,7 @@ openbox_openbox_LDADD = \
        $(XKB_LIBS) \
        $(XRANDR_LIBS) \
        $(XSHAPE_LIBS) \
+       $(XSYNC_LIBS) \
        $(GLIB_LIBS) \
        $(X_LIBS) \
        $(XCURSOR_LIBS) \
@@ -342,12 +349,28 @@ dist_desktopfiles_DATA = \
        data/openbox.desktop
 
 dist_noinst_DATA = \
-       tools/themeupdate/themeupdate.py \
        version.h.in \
        data/rc.xml.in \
        data/menu.xml.in \
        render/obrender-3.0.pc.in \
-       parser/obparser-3.0.pc.in
+       parser/obparser-3.0.pc.in \
+       tools/themeupdate/themeupdate.py \
+       tests/hideshow.py \
+       tests/Makefile \
+       tests/aspect.c \
+       tests/fullscreen.c \
+       tests/grav.c \
+       tests/grouptran.c \
+       tests/icons.c \
+       tests/modal2.c \
+       tests/modal3.c \
+       tests/modal.c \
+       tests/noresize.c \
+       tests/override.c \
+       tests/positioned.c \
+       tests/strut.c \
+       tests/title.c \
+       tests/urgent.c
 
 EXTRA_DIST = \
        config.rpath \
diff --git a/README b/README
index 6ee333f..fbcb5a6 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 Openbox
 Copyright (C) 2004-2005  Mikael Magnusson
-Copyright (C) 2002-2004  Ben Jansens
+Copyright (C) 2002-2007  Dana Jansens
 
 ----
 
index c83eeba..6a5b10f 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -4,14 +4,14 @@ sh() {
   /bin/sh -c "set -x; $*"
 }
 
-export WANT_AUTOMAKE=1.7
+export WANT_AUTOMAKE=1.9
 
-sh autopoint --force # for GNU gettext
-sh libtoolize --copy --force --automake
-sh aclocal -I m4 $ACLOCAL_FLAGS
-#sh autoheader
-sh autoconf
-sh automake --include-deps --add-missing --copy
+sh autopoint --force || exit 1 # for GNU gettext
+sh libtoolize --copy --force --automake || exit 1
+sh aclocal -I m4 $ACLOCAL_FLAGS || exit 1
+#sh autoheader || exit 1
+sh autoconf || exit 1
+sh automake --include-deps --add-missing --copy || exit 1
 
 echo
 echo You are now ready to run ./configure
index 579a5dd..dc893b7 100644 (file)
@@ -57,7 +57,7 @@ LIBTOOL="$LIBTOOL --silent"
 
 AC_PROG_INSTALL
 
-AM_GNU_GETTEXT_VERSION(0.12.1)
+AM_GNU_GETTEXT_VERSION(0.16.1)
 AM_GNU_GETTEXT([external])
 
 AC_CHECK_HEADERS(ctype.h fcntl.h locale.h signal.h string.h stdio.h stdlib.h)
@@ -144,6 +144,7 @@ X11_EXT_XKB
 X11_EXT_XRANDR
 X11_EXT_SHAPE
 X11_EXT_XINERAMA
+X11_EXT_SYNC
 
 AC_CONFIG_FILES([
   Makefile
index eee0dd6..559a1a0 100644 (file)
@@ -6,4 +6,4 @@ Exec=openbox
 X-GNOME-WMName=Openbox
 
 # our config tool
-ConfigExec=obconf
+ConfigExec=obconf2
index b2b6be2..b2c22d4 100644 (file)
   <keybind key="A-S-Tab">
     <action name="PreviousWindow"/>
   </keybind>
+  <keybind key="C-A-Tab">
+    <action name="NextWindow"><panels>yes</panels></action>
+  </keybind>
+  <keybind key="C-A-S-Tab">
+    <action name="PreviousWindow"><panels>yes</panels></action>
+  </keybind>
   <keybind key="A-F7">
     <action name="Move"/>
   </keybind>
index 1ca631f..20edc16 100644 (file)
             <xs:element minOccurs="0" name="wrap" type="ob:bool"/>
             <xs:element minOccurs="0" name="follow" type="ob:bool"/>
             <xs:element minOccurs="0" name="dialog" type="ob:bool"/>
+            <xs:element minOccurs="0" name="panels" type="ob:bool"/>
             <xs:element minOccurs="0" name="here" type="ob:bool"/>
             <xs:element minOccurs="0" name="linear" type="ob:bool"/>
             <xs:element minOccurs="0" name="group" type="ob:bool"/>
index bf56620..d71caf0 100644 (file)
--- a/gettext.h
+++ b/gettext.h
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    gettext.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
index 2eae1db..fc7b36e 100644 (file)
--- a/m4/x11.m4
+++ b/m4/x11.m4
@@ -397,6 +397,60 @@ AC_DEFUN([X11_EXT_XINERAMA],
   fi
 ])
 
+# X11_EXT_SYNC()
+#
+# Check for the presence of the "Sync" X Window System extension.
+# Defines "SYNC", sets the $(SYNC) variable to "yes", and sets the $(LIBS)
+# appropriately if the extension is present.
+AC_DEFUN([X11_EXT_SYNC],
+[
+  AC_REQUIRE([X11_DEVEL])
+
+  # Store these
+  OLDLIBS=$LIBS
+  OLDCPPFLAGS=$CPPFLAGS
+     
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  LIBS="$LIBS $X_LIBS"
+
+  AC_CHECK_LIB([Xext], [XSyncInitialize],
+    AC_MSG_CHECKING([for X11/extensions/sync.h])
+    AC_TRY_LINK(
+    [
+      #include <X11/Xlib.h>
+      #include <X11/Xutil.h>
+      #include <X11/extensions/sync.h>
+    ],
+    [
+      XSyncValueType foo;
+    ],
+    [
+      AC_MSG_RESULT([yes])
+      SYNC="yes"
+      AC_DEFINE([SYNC], [1], [Found the XSync extension])
+
+      XSYNC_CFLAGS=""
+      XSYNC_LIBS="-lXext"
+      AC_SUBST(XSYNC_CFLAGS)
+      AC_SUBST(XSYNC_LIBS)
+    ],
+    [ 
+      AC_MSG_RESULT([no])
+      SYNC="no"
+    ])
+  )
+
+  LIBS=$OLDLIBS
+  CPPFLAGS=$OLDCPPFLAGS
+  AC_MSG_CHECKING([for the Sync extension])
+  if test "$SYNC" = "yes"; then
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+  fi
+])
+
 # X11_SM()
 #
 # Check for the presence of SMlib for session management.
index db49f56..e51f713 100644 (file)
@@ -2,7 +2,7 @@
 
    action.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -34,6 +34,7 @@
 #include "config.h"
 #include "mainloop.h"
 #include "startupnotify.h"
+#include "gettext.h"
 
 #include <glib.h>
 
@@ -118,6 +119,7 @@ void setup_action_directional_focus_north(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_NORTH;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_east(ObAction **a, ObUserAction uact)
@@ -125,6 +127,7 @@ void setup_action_directional_focus_east(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_EAST;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_south(ObAction **a, ObUserAction uact)
@@ -132,6 +135,7 @@ void setup_action_directional_focus_south(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_SOUTH;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_west(ObAction **a, ObUserAction uact)
@@ -139,6 +143,7 @@ void setup_action_directional_focus_west(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_WEST;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_northeast(ObAction **a, ObUserAction uact)
@@ -146,6 +151,7 @@ void setup_action_directional_focus_northeast(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_NORTHEAST;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_southeast(ObAction **a, ObUserAction uact)
@@ -153,6 +159,7 @@ void setup_action_directional_focus_southeast(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_SOUTHEAST;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_southwest(ObAction **a, ObUserAction uact)
@@ -160,6 +167,7 @@ void setup_action_directional_focus_southwest(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_SOUTHWEST;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_directional_focus_northwest(ObAction **a, ObUserAction uact)
@@ -167,6 +175,7 @@ void setup_action_directional_focus_northwest(ObAction **a, ObUserAction uact)
     (*a)->data.interdiraction.inter.any.interactive = TRUE;
     (*a)->data.interdiraction.direction = OB_DIRECTION_NORTHWEST;
     (*a)->data.interdiraction.dialog = TRUE;
+    (*a)->data.interdiraction.dock_windows = FALSE;
 }
 
 void setup_action_send_to_desktop(ObAction **a, ObUserAction uact)
@@ -294,6 +303,7 @@ void setup_action_cycle_windows_next(ObAction **a, ObUserAction uact)
     (*a)->data.cycle.linear = FALSE;
     (*a)->data.cycle.forward = TRUE;
     (*a)->data.cycle.dialog = TRUE;
+    (*a)->data.cycle.dock_windows = FALSE;
 }
 
 void setup_action_cycle_windows_previous(ObAction **a, ObUserAction uact)
@@ -302,6 +312,7 @@ void setup_action_cycle_windows_previous(ObAction **a, ObUserAction uact)
     (*a)->data.cycle.linear = FALSE;
     (*a)->data.cycle.forward = FALSE;
     (*a)->data.cycle.dialog = TRUE;
+    (*a)->data.cycle.dock_windows = FALSE;
 }
 
 void setup_action_movefromedge_north(ObAction **a, ObUserAction uact)
@@ -912,10 +923,11 @@ ObAction *action_from_string(const gchar *name, ObUserAction uact)
             break;
         }
     if (!exist)
-        g_warning("Invalid action '%s' requested. No such action exists.",
+        g_message(_("Invalid action '%s' requested. No such action exists."),
                   name);
     if (!a)
-        g_warning("Invalid use of action '%s'. Action will be ignored.", name);
+        g_message(_("Invalid use of action '%s'. Action will be ignored."),
+                  name);
     return a;
 }
 
@@ -1001,9 +1013,13 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
                     act->data.cycle.linear = parse_bool(doc, n);
                 if ((n = parse_find_node("dialog", node->xmlChildrenNode)))
                     act->data.cycle.dialog = parse_bool(doc, n);
+                if ((n = parse_find_node("panels", node->xmlChildrenNode)))
+                    act->data.cycle.dock_windows = parse_bool(doc, n);
             } else if (act->func == action_directional_focus) {
                 if ((n = parse_find_node("dialog", node->xmlChildrenNode)))
-                    act->data.cycle.dialog = parse_bool(doc, n);
+                    act->data.interdiraction.dialog = parse_bool(doc, n);
+                if ((n = parse_find_node("panels", node->xmlChildrenNode)))
+                    act->data.interdiraction.dock_windows = parse_bool(doc, n);
             } else if (act->func == action_raise ||
                        act->func == action_lower ||
                        act->func == action_raiselower ||
@@ -1104,7 +1120,7 @@ void action_execute(union ActionData *data)
         cmd = g_filename_from_utf8(data->execute.path, -1, NULL, NULL, NULL);
         if (cmd) {
             if (!g_shell_parse_argv (cmd, NULL, &argv, &e)) {
-                g_warning("failed to execute '%s': %s",
+                g_message(_("Failed to execute '%s': %s"),
                           cmd, e->message);
                 g_error_free(e);
             } else if (data->execute.startupnotify) {
@@ -1122,7 +1138,7 @@ void action_execute(union ActionData *data)
                 if (!g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH |
                                    G_SPAWN_DO_NOT_REAP_CHILD,
                                    NULL, NULL, NULL, &e)) {
-                    g_warning("failed to execute '%s': %s",
+                    g_message(_("Failed to execute '%s': %s"),
                               cmd, e->message);
                     g_error_free(e);
                     sn_spawn_cancel();
@@ -1135,7 +1151,7 @@ void action_execute(union ActionData *data)
                                    G_SPAWN_DO_NOT_REAP_CHILD,
                                    NULL, NULL, NULL, &e))
                 {
-                    g_warning("failed to execute '%s': %s",
+                    g_message(_("Failed to execute '%s': %s"),
                               cmd, e->message);
                     g_error_free(e);
                 }
@@ -1143,7 +1159,8 @@ void action_execute(union ActionData *data)
             }
             g_free(cmd);
         } else {
-            g_warning("failed to convert '%s' from utf8", data->execute.path);
+            g_message(_("Failed to convert the path '%s' from utf8"),
+                      data->execute.path);
         }
     }
 }
@@ -1644,7 +1661,9 @@ void action_cycle_windows(union ActionData *data)
        on us */
     event_halt_focus_delay();
 
-    focus_cycle(data->cycle.forward, data->cycle.linear, data->any.interactive,
+    focus_cycle(data->cycle.forward,
+                data->cycle.dock_windows,
+                data->cycle.linear, data->any.interactive,
                 data->cycle.dialog,
                 data->cycle.inter.final, data->cycle.inter.cancel);
 }
@@ -1656,6 +1675,7 @@ void action_directional_focus(union ActionData *data)
     event_halt_focus_delay();
 
     focus_directional_cycle(data->interdiraction.direction,
+                            data->interdiraction.dock_windows,
                             data->any.interactive,
                             data->interdiraction.dialog,
                             data->interdiraction.inter.final,
index b1bc081..4039146 100644 (file)
@@ -2,7 +2,7 @@
 
    action.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -61,6 +61,7 @@ struct InterDirectionalAction{
     struct InteractiveAction inter;
     ObDirection direction;
     gboolean dialog;
+    gboolean dock_windows;
 };
 
 struct DirectionalAction{
@@ -141,6 +142,7 @@ struct CycleWindows {
     gboolean linear;
     gboolean forward;
     gboolean dialog;
+    gboolean dock_windows;
 };
 
 struct Stacking {
index 8e79140..d5e7f4c 100644 (file)
@@ -49,7 +49,8 @@
 #include <X11/Xutil.h>
 
 /*! The event mask to grab on client windows */
-#define CLIENT_EVENTMASK (PropertyChangeMask | StructureNotifyMask)
+#define CLIENT_EVENTMASK (PropertyChangeMask | StructureNotifyMask | \
+                          ColormapChangeMask)
 
 #define CLIENT_NOPROPAGATEMASK (ButtonPressMask | ButtonReleaseMask | \
                                 ButtonMotionMask)
@@ -75,6 +76,7 @@ static void client_get_shaped(ObClient *self);
 static void client_get_mwm_hints(ObClient *self);
 static void client_get_gravity(ObClient *self);
 static void client_get_client_machine(ObClient *self);
+static void client_get_colormap(ObClient *self);
 static void client_change_allowed_actions(ObClient *self);
 static void client_change_state(ObClient *self);
 static void client_change_wm_state(ObClient *self);
@@ -516,9 +518,8 @@ void client_unmanage(ObClient *self)
     XSelectInput(ob_display, self->window, NoEventMask);
 
     frame_hide(self->frame);
-    /* sync to send the hide to the server quickly, and to get back the enter
-       events */
-    XSync(ob_display, FALSE);
+    /* flush to send the hide to the server quickly */
+    XFlush(ob_display);
 
     if (focus_client == self) {
         /* ignore enter events from the unmap so it doesnt mess with the focus
@@ -526,7 +527,6 @@ void client_unmanage(ObClient *self)
         event_ignore_queued_enters();
     }
 
-
     keyboard_grab_for_client(self, FALSE);
     mouse_grab_for_client(self, FALSE);
 
@@ -535,6 +535,9 @@ void client_unmanage(ObClient *self)
 
     /* update the focus lists */
     focus_order_remove(self);
+    /* don't leave an invalid focus_client */
+    if (self == focus_client)
+        focus_client = NULL;
 
     client_list = g_list_remove(client_list, self);
     stacking_remove(self);
@@ -940,7 +943,11 @@ static void client_get_all(ObClient *self)
        (min/max sizes), so we're ready to set up the decorations/functions */
     client_setup_decor_and_functions(self);
   
+#ifdef SYNC
+    client_update_sync_request_counter(self);
+#endif
     client_get_client_machine(self);
+    client_get_colormap(self);
     client_update_title(self);
     client_update_class(self);
     client_update_sm_client_id(self);
@@ -1290,18 +1297,37 @@ void client_update_protocols(ObClient *self)
 
     if (PROP_GETA32(self->window, wm_protocols, atom, &proto, &num_return)) {
         for (i = 0; i < num_return; ++i) {
-            if (proto[i] == prop_atoms.wm_delete_window) {
+            if (proto[i] == prop_atoms.wm_delete_window)
                 /* this means we can request the window to close */
                 self->delete_window = TRUE;
-            else if (proto[i] == prop_atoms.wm_take_focus)
+            else if (proto[i] == prop_atoms.wm_take_focus)
                 /* if this protocol is requested, then the window will be
                    notified whenever we want it to receive focus */
                 self->focus_notify = TRUE;
+#ifdef SYNC
+            else if (proto[i] == prop_atoms.net_wm_sync_request) 
+                /* if this protocol is requested, then the resizing the
+                   window will be synchronized between the frame and the
+                   client */
+                self->sync_request = TRUE;
+#endif
         }
         g_free(proto);
     }
 }
 
+#ifdef SYNC
+void client_update_sync_request_counter(ObClient *self)
+{
+    guint32 i;
+
+    if (PROP_GET32(self->window, net_wm_sync_request_counter, cardinal, &i)) {
+        self->sync_counter = i;
+    } else
+        self->sync_counter = None;
+}
+#endif
+
 static void client_get_gravity(ObClient *self)
 {
     XWindowAttributes wattrib;
@@ -1312,6 +1338,19 @@ static void client_get_gravity(ObClient *self)
     self->gravity = wattrib.win_gravity;
 }
 
+void client_get_colormap(ObClient *self)
+{
+    XWindowAttributes wa;
+
+    if (XGetWindowAttributes(ob_display, self->window, &wa))
+        client_update_colormap(self, wa.colormap);
+}
+
+void client_update_colormap(ObClient *self, Colormap colormap)
+{
+    self->colormap = colormap;
+}
+
 void client_update_normal_hints(ObClient *self)
 {
     XSizeHints size;
@@ -2400,8 +2439,10 @@ void client_configure_full(ObClient *self, ObCorner anchor,
                                     (resized && config_resize_redraw))));
 
     /* if the client is enlarging, then resize the client before the frame */
-    if (send_resize_client && user && (w > oldw || h > oldh))
+    if (send_resize_client && user && (w > oldw || h > oldh)) {
         XResizeWindow(ob_display, self->window, MAX(w, oldw), MAX(h, oldh));
+        frame_adjust_client_area(self->frame);
+    }
 
     /* find the frame's dimensions and move/resize it */
     if (self->decorations != fdecor || self->max_horz != fhorz)
@@ -2447,8 +2488,10 @@ void client_configure_full(ObClient *self, ObCorner anchor,
     }
 
     /* if the client is shrinking, then resize the frame before the client */
-    if (send_resize_client && (!user || (w <= oldw || h <= oldh)))
+    if (send_resize_client && (!user || (w <= oldw || h <= oldh))) {
+        frame_adjust_client_area(self->frame);
         XResizeWindow(ob_display, self->window, w, h);
+    }
 
     XFlush(ob_display);
 }
@@ -3079,10 +3122,11 @@ void client_activate(ObClient *self, gboolean here, gboolean user)
        to activate it or not (a parent or group member is currently
        active)?
     */
-    ob_debug("Want to activate window 0x%x with time %u (last time %u), "
-             "source=%s\n",
-             self->window, event_curtime, last_time,
-             (user ? "user" : "application"));
+    ob_debug_type(OB_DEBUG_FOCUS,
+                  "Want to activate window 0x%x with time %u (last time %u), "
+                  "source=%s\n",
+                  self->window, event_curtime, last_time,
+                  (user ? "user" : "application"));
 
     if (!user && event_curtime && last_time &&
         !event_time_after(event_curtime, last_time))
@@ -3189,107 +3233,6 @@ const ObClientIcon* client_icon(ObClient *self, gint w, gint h)
     return ret;
 }
 
-/* this be mostly ripped from fvwm */
-ObClient *client_find_directional(ObClient *c, ObDirection dir) 
-{
-    gint my_cx, my_cy, his_cx, his_cy;
-    gint offset = 0;
-    gint distance = 0;
-    gint score, best_score;
-    ObClient *best_client, *cur;
-    GList *it;
-
-    if(!client_list)
-        return NULL;
-
-    /* first, find the centre coords of the currently focused window */
-    my_cx = c->frame->area.x + c->frame->area.width / 2;
-    my_cy = c->frame->area.y + c->frame->area.height / 2;
-
-    best_score = -1;
-    best_client = NULL;
-
-    for(it = g_list_first(client_list); it; it = g_list_next(it)) {
-        cur = it->data;
-
-        /* the currently selected window isn't interesting */
-        if(cur == c)
-            continue;
-        if (!client_normal(cur))
-            continue;
-        /* using c->desktop instead of screen_desktop doesn't work if the
-         * current window was omnipresent, hope this doesn't have any other
-         * side effects */
-        if(screen_desktop != cur->desktop && cur->desktop != DESKTOP_ALL)
-            continue;
-        if(cur->iconic)
-            continue;
-        if(!(client_focus_target(cur) == cur &&
-             client_can_focus(cur)))
-            continue;
-
-        /* find the centre coords of this window, from the
-         * currently focused window's point of view */
-        his_cx = (cur->frame->area.x - my_cx)
-            + cur->frame->area.width / 2;
-        his_cy = (cur->frame->area.y - my_cy)
-            + cur->frame->area.height / 2;
-
-        if(dir == OB_DIRECTION_NORTHEAST || dir == OB_DIRECTION_SOUTHEAST ||
-           dir == OB_DIRECTION_SOUTHWEST || dir == OB_DIRECTION_NORTHWEST) {
-            gint tx;
-            /* Rotate the diagonals 45 degrees counterclockwise.
-             * To do this, multiply the matrix /+h +h\ with the
-             * vector (x y).                   \-h +h/
-             * h = sqrt(0.5). We can set h := 1 since absolute
-             * distance doesn't matter here. */
-            tx = his_cx + his_cy;
-            his_cy = -his_cx + his_cy;
-            his_cx = tx;
-        }
-
-        switch(dir) {
-        case OB_DIRECTION_NORTH:
-        case OB_DIRECTION_SOUTH:
-        case OB_DIRECTION_NORTHEAST:
-        case OB_DIRECTION_SOUTHWEST:
-            offset = (his_cx < 0) ? -his_cx : his_cx;
-            distance = ((dir == OB_DIRECTION_NORTH ||
-                         dir == OB_DIRECTION_NORTHEAST) ?
-                        -his_cy : his_cy);
-            break;
-        case OB_DIRECTION_EAST:
-        case OB_DIRECTION_WEST:
-        case OB_DIRECTION_SOUTHEAST:
-        case OB_DIRECTION_NORTHWEST:
-            offset = (his_cy < 0) ? -his_cy : his_cy;
-            distance = ((dir == OB_DIRECTION_WEST ||
-                         dir == OB_DIRECTION_NORTHWEST) ?
-                        -his_cx : his_cx);
-            break;
-        }
-
-        /* the target must be in the requested direction */
-        if(distance <= 0)
-            continue;
-
-        /* Calculate score for this window.  The smaller the better. */
-        score = distance + offset;
-
-        /* windows more than 45 degrees off the direction are
-         * heavily penalized and will only be chosen if nothing
-         * else within a million pixels */
-        if(offset > distance)
-            score += 1000000;
-
-        if(best_score == -1 || score < best_score)
-            best_client = cur,
-                best_score = score;
-    }
-
-    return best_client;
-}
-
 void client_set_layer(ObClient *self, gint layer)
 {
     if (layer < 0) {
@@ -3328,7 +3271,8 @@ guint client_monitor(ObClient *self)
 
 ObClient *client_search_top_parent(ObClient *self)
 {
-    while (self->transient_for && self->transient_for != OB_TRAN_GROUP)
+    while (self->transient_for && self->transient_for != OB_TRAN_GROUP &&
+           client_normal(self))
         self = self->transient_for;
     return self;
 }
index 38722f4..69f5aa5 100644 (file)
@@ -193,6 +193,9 @@ struct _ObClient
 
     /*! Window decoration and functionality hints */
     ObMwmHints mwmhints;
+
+    /*! The client's specified colormap */
+    Colormap colormap;
   
     /*! Where to place the decorated window in relation to the undecorated
       window */
@@ -216,6 +219,15 @@ struct _ObClient
     /*! Notify the window when it receives focus? */
     gboolean focus_notify;
 
+#ifdef SYNC
+    /*! The client wants to sync during resizes */
+    gboolean sync_request;
+    /*! The XSync counter used for synchronizing during resizes */
+    guint32 sync_counter;
+    /*! The value we're waiting for the counter to reach */
+    gulong sync_counter_value;
+#endif
+
     /*! The window uses shape extension to be non-rectangular? */
     gboolean shaped;
 
@@ -543,6 +555,12 @@ void client_update_transient_for(ObClient *self);
 /*! Update the protocols that the window supports and adjusts things if they
   change */
 void client_update_protocols(ObClient *self);
+#ifdef SYNC
+/*! Updates the window's sync request counter for resizes */
+void client_update_sync_request_counter(ObClient *self);
+#endif
+/*! Updates the window's colormap */
+void client_update_colormap(ObClient *self, Colormap colormap);
 /*! Updates the WMNormalHints and adjusts things if they change */
 void client_update_normal_hints(ObClient *self);
 
@@ -620,9 +638,6 @@ ObClient *client_search_parent(ObClient *self, ObClient *search);
   NULL is returned if the given search is not a transient of the client. */
 ObClient *client_search_transient(ObClient *self, ObClient *search);
 
-/*! Return the "closest" client in the given direction */
-ObClient *client_find_directional(ObClient *c, ObDirection dir);
-
 /*! Return the closest edge in the given direction */
 gint client_directional_edge_search(ObClient *c, ObDirection dir, gboolean hang);
 
index 3c6d8c6..adf3ff0 100644 (file)
@@ -2,7 +2,7 @@
 
    client_list_menu.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -39,7 +39,6 @@ static void self_update(ObMenuFrame *frame, gpointer data)
     ObMenuEntry *e;
     GList *it;
     gint i;
-    gboolean icons = FALSE;
     guint desktop;
 
     menu_clear_entries(menu);
@@ -84,7 +83,6 @@ static void self_update(ObMenuFrame *frame, gpointer data)
                 }
             }
         }
-        icons = FALSE;
 
         if (empty) {
             /* no entries */
index 91ebfc4..420e898 100644 (file)
@@ -2,7 +2,7 @@
 
    client_list_menu.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 66b2b1d..5fbb3a6 100644 (file)
@@ -2,7 +2,7 @@
 
    client_list_menu.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -44,6 +44,7 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
     DesktopData *d = data;
     GList *it;
     gint i;
+    gboolean icons = FALSE;
     gboolean empty = TRUE;
 
     menu_clear_entries(menu);
@@ -60,6 +61,11 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
 
             empty = FALSE;
 
+            if (!icons && c->iconic) {
+                icons = TRUE;
+                menu_add_separator(menu, -1, NULL);
+            }
+
             act = action_from_string("Activate",
                                      OB_USER_ACTION_MENU_SELECTION);
             act->data.activate.any.c = c;
@@ -68,13 +74,8 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
                                      OB_USER_ACTION_MENU_SELECTION);
             act->data.desktop.desk = d->desktop;
             acts = g_slist_append(acts, act);
-
-            if (c->iconic) {
-                gchar *title = g_strdup_printf("(%s)", c->icon_title);
-                e = menu_add_normal(menu, i, title, acts);
-                g_free(title);
-            } else
-                e = menu_add_normal(menu, i, c->title, acts);
+            e = menu_add_normal(menu, i,
+                                (c->iconic ? c->icon_title : c->title), acts);
 
             if (config_menu_client_list_icons
                 && (icon = client_icon(c, 32, 32))) {
index 63956cf..860cd50 100644 (file)
@@ -2,7 +2,7 @@
 
    client_list_menu.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index f3e80b9..f67ea90 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    client_menu.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
index caf0f05..fe14502 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    client_menu.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
index d406f8f..a2b392d 100644 (file)
@@ -2,7 +2,7 @@
 
    config.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -26,6 +26,7 @@
 #include "screen.h"
 #include "parser/parse.h"
 #include "openbox.h"
+#include "gettext.h"
 
 gboolean config_focus_new;
 gboolean config_focus_follow;
@@ -625,7 +626,7 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
             config_dock_app_move_button = b;
             config_dock_app_move_modifiers = s;
         } else {
-            g_warning("invalid button '%s'", str);
+            g_message(_("Invalid button '%s' specified in config file"), str);
         }
         g_free(str);
     }
index 851a68e..5ee071e 100644 (file)
@@ -2,7 +2,7 @@
 
    config.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 70e1127..2e191f1 100644 (file)
@@ -2,7 +2,7 @@
 
    dock.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index b2ded2d..051747c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    dock.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
index 5bb0e2a..2d807aa 100644 (file)
@@ -2,7 +2,7 @@
 
    event.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -212,6 +212,13 @@ static Window event_get_window(XEvent *e)
             }
         } else
 #endif
+#ifdef SYNC
+        if (extensions_sync &&
+            e->type == extensions_sync_event_basep + XSyncAlarmNotify)
+        {
+            window = None;
+        } else
+#endif
             window = e->xany.window;
     }
     return window;
@@ -244,6 +251,13 @@ static void event_set_curtime(XEvent *e)
         t = e->xcrossing.time;
         break;
     default:
+#ifdef SYNC
+        if (extensions_sync &&
+            e->type == extensions_sync_event_basep + XSyncAlarmNotify)
+        {
+            t = ((XSyncAlarmNotifyEvent*)e)->time;
+        }
+#endif
         /* if more event types are anticipated, get their timestamp
            explicitly */
         break;
@@ -537,6 +551,15 @@ static void event_process(const XEvent *ec, gpointer data)
                          e->xconfigurerequest.value_mask, &xwc);
         xerror_set_ignore(FALSE);
     }
+#ifdef SYNC
+    else if (extensions_sync &&
+        e->type == extensions_sync_event_basep + XSyncAlarmNotify)
+    {
+        XSyncAlarmNotifyEvent *se = (XSyncAlarmNotifyEvent*)e;
+        if (se->alarm == moveresize_alarm && moveresize_in_progress)
+            moveresize_event(e);
+    }
+#endif
 
     /* user input (action-bound) events */
     if (e->type == ButtonPress || e->type == ButtonRelease ||
@@ -672,9 +695,6 @@ static void event_handle_client(ObClient *client, XEvent *e)
     ObFrameContext con;
      
     switch (e->type) {
-    case VisibilityNotify:
-        client->frame->obscured = e->xvisibility.state != VisibilityUnobscured;
-        break;
     case ButtonPress:
     case ButtonRelease:
         /* Wheel buttons don't draw because they are an instant click, so it
@@ -733,12 +753,23 @@ static void event_handle_client(ObClient *client, XEvent *e)
             frame_adjust_state(client->frame);
             break;
         case OB_FRAME_CONTEXT_FRAME:
+            ob_debug_type(OB_DEBUG_FOCUS,
+                          "%sNotify mode %d detail %d on %lx\n",
+                          (e->type == EnterNotify ? "Enter" : "Leave"),
+                          e->xcrossing.mode,
+                          e->xcrossing.detail, (client?client->window:0));
             if (keyboard_interactively_grabbed())
                 break;
-            if (config_focus_follow && config_focus_delay)
+            if (config_focus_follow && config_focus_delay &&
+                /* leaveinferior events can happen when the mouse goes onto the
+                   window's border and then into the window before the delay
+                   is up */
+                e->xcrossing.detail != NotifyInferior)
+            {
                 ob_main_loop_timeout_remove_data(ob_main_loop,
                                                  focus_delay_func,
                                                  client, FALSE);
+            }
             break;
         default:
             break;
@@ -1164,9 +1195,17 @@ static void event_handle_client(ObClient *client, XEvent *e)
         else if (msgtype == prop_atoms.net_wm_user_time) {
             client_update_user_time(client);
         }
+#ifdef SYNC
+        else if (msgtype == prop_atoms.net_wm_sync_request_counter) {
+            client_update_sync_request_counter(client);
+        }
+#endif
         else if (msgtype == prop_atoms.sm_client_id) {
             client_update_sm_client_id(client);
         }
+    case ColormapNotify:
+        client_update_colormap(client, e->xcolormap.colormap);
+        break;
     default:
         ;
 #ifdef SHAPE
index 4221e54..4fdf292 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    event.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
index 32ad001..5b64bc6 100644 (file)
@@ -2,7 +2,7 @@
 
    extensions.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -21,6 +21,7 @@
 #include "geom.h"
 #include "extensions.h"
 #include "screen.h"
+#include "debug.h"
 
 gboolean extensions_xkb       = FALSE;
 gint     extensions_xkb_event_basep;
@@ -30,6 +31,8 @@ gboolean extensions_xinerama  = FALSE;
 gint     extensions_xinerama_event_basep;
 gboolean extensions_randr     = FALSE;
 gint     extensions_randr_event_basep;
+gboolean extensions_sync      = FALSE;
+gint     extensions_sync_event_basep;
 
 void extensions_query_all()
 {
@@ -59,6 +62,16 @@ void extensions_query_all()
         XRRQueryExtension(ob_display, &extensions_randr_event_basep,
                           &junk);
 #endif
+
+#ifdef SYNC
+    extensions_sync =
+        XSyncQueryExtension(ob_display, &extensions_sync_event_basep,
+                            &junk) &&
+        XSyncInitialize(ob_display, &junk, &junk);
+    if (!extensions_sync)
+        ob_debug("X Sync extension is not present on the server or is an "
+                 "incompatible version");
+#endif
 }
 
 void extensions_xinerama_screens(Rect **xin_areas, guint *nxin)
index a097957..3fbac87 100644 (file)
@@ -2,7 +2,7 @@
 
    extensions.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -36,6 +36,9 @@
 #ifdef    XRANDR
 #include <X11/extensions/Xrandr.h>
 #endif
+#ifdef    SYNC
+#include <X11/extensions/sync.h>
+#endif
 
 #include <glib.h>
 
@@ -59,6 +62,11 @@ extern gboolean extensions_randr;
 /*! Base for events for the Randr extension */
 extern gint extensions_randr_event_basep;
 
+/*! Does the display have the Sync extension? */
+extern gboolean extensions_sync;
+/*! Base for events for the Sync extension */
+extern gint extensions_sync_event_basep;
+
 void extensions_query_all();
 
 void extensions_xinerama_screens(Rect **areas, guint *nxin);
index 31fa0ef..4c663c3 100644 (file)
@@ -59,7 +59,7 @@ static void focus_cycle_destructor(ObClient *client, gpointer data)
        be used
     */
     if (focus_cycle_target == client)
-        focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+        focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
 }
 
 static Window createWindow(Window parent, gulong mask,
@@ -168,7 +168,7 @@ void focus_set_client(ObClient *client)
        be used.
     */
     if (focus_cycle_target)
-        focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+        focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
 
     focus_client = client;
 
@@ -219,8 +219,11 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
 #endif
 
     ob_debug_type(OB_DEBUG_FOCUS, "trying omnipresentness\n");
-    if (allow_refocus && old && old->desktop == DESKTOP_ALL)
+    if (allow_refocus && old && old->desktop == DESKTOP_ALL &&
+        client_normal(old))
+    {
         return old;
+    }
 
 
     ob_debug_type(OB_DEBUG_FOCUS, "trying  the focus order\n");
@@ -239,13 +242,15 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
                a splashscreen or a desktop window (save the desktop as a
                backup fallback though)
             */
-            if (client_can_focus(c) && c->desktop == screen_desktop &&
-                !c->iconic)
+            if (client_can_focus(c) && !c->iconic)
             {
-                if (client_normal(c)) {
+                if (c->desktop == screen_desktop && client_normal(c)) {
                     ob_debug_type(OB_DEBUG_FOCUS, "found in focus order\n");
                     return it->data;
-                } else if (c->type == OB_CLIENT_TYPE_DESKTOP && !desktop)
+                } else if ((c->desktop == screen_desktop ||
+                            c->desktop == DESKTOP_ALL) &&
+                           c->type == OB_CLIENT_TYPE_DESKTOP && 
+                           desktop == NULL)
                     desktop = c;
             }
         }
@@ -253,6 +258,7 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
     /* as a last resort fallback to the desktop window if there is one.
        (if there's more than one, then the one most recently focused.)
     */
+    ob_debug_type(OB_DEBUG_FOCUS, "found desktop: \n", !!desktop);
     return desktop;   
 }
 
@@ -328,8 +334,6 @@ static void popup_cycle(ObClient *c, gboolean show)
 void focus_cycle_draw_indicator()
 {
     if (!focus_cycle_target) {
-        XEvent e;
-
         XUnmapWindow(ob_display, focus_indicator.top.win);
         XUnmapWindow(ob_display, focus_indicator.left.win);
         XUnmapWindow(ob_display, focus_indicator.right.win);
@@ -464,23 +468,27 @@ void focus_cycle_draw_indicator()
     }
 }
 
-static gboolean valid_focus_target(ObClient *ft)
+static gboolean valid_focus_target(ObClient *ft, gboolean dock_windows)
 {
+    gboolean ok = FALSE;
     /* we don't use client_can_focus here, because that doesn't let you
        focus an iconic window, but we want to be able to, so we just check
        if the focus flags on the window allow it, and its on the current
        desktop */
-    if ((ft->type == OB_CLIENT_TYPE_NORMAL ||
-         ft->type == OB_CLIENT_TYPE_DIALOG ||
-         (!client_has_group_siblings(ft) &&
-          (ft->type == OB_CLIENT_TYPE_TOOLBAR ||
-           ft->type == OB_CLIENT_TYPE_MENU ||
-           ft->type == OB_CLIENT_TYPE_UTILITY))) &&
-        ((ft->can_focus || ft->focus_notify) &&
-         !ft->skip_pager &&
-         (ft->desktop == screen_desktop || ft->desktop == DESKTOP_ALL)) &&
-        ft == client_focus_target(ft))
-        return TRUE;
+    if (dock_windows)
+        ok = ft->type == OB_CLIENT_TYPE_DOCK;
+    else
+        ok = (ft->type == OB_CLIENT_TYPE_NORMAL ||
+              ft->type == OB_CLIENT_TYPE_DIALOG ||
+              (!client_has_group_siblings(ft) &&
+               (ft->type == OB_CLIENT_TYPE_TOOLBAR ||
+                ft->type == OB_CLIENT_TYPE_MENU ||
+                ft->type == OB_CLIENT_TYPE_UTILITY)));
+    ok = ok && (ft->can_focus || ft->focus_notify);
+    ok = ok && !ft->skip_pager;
+    ok = ok && (ft->desktop == screen_desktop || ft->desktop == DESKTOP_ALL);
+    ok = ok && ft == client_focus_target(ft);
+    return ok;
 /*
     {
         GSList *it;
@@ -494,11 +502,10 @@ static gboolean valid_focus_target(ObClient *ft)
         return TRUE;
     }
 */
-
-    return FALSE;
 }
 
-void focus_cycle(gboolean forward, gboolean linear, gboolean interactive,
+void focus_cycle(gboolean forward, gboolean dock_windows,
+                 gboolean linear, gboolean interactive,
                  gboolean dialog, gboolean done, gboolean cancel)
 {
     static ObClient *first = NULL;
@@ -542,7 +549,7 @@ void focus_cycle(gboolean forward, gboolean linear, gboolean interactive,
             if (it == NULL) it = g_list_last(list);
         }
         ft = it->data;
-        if (valid_focus_target(ft)) {
+        if (valid_focus_target(ft, dock_windows)) {
             if (interactive) {
                 if (ft != focus_cycle_target) { /* prevents flicker */
                     focus_cycle_target = ft;
@@ -576,7 +583,112 @@ done_cycle:
     return;
 }
 
-void focus_directional_cycle(ObDirection dir, gboolean interactive,
+/* this be mostly ripped from fvwm */
+ObClient *focus_find_directional(ObClient *c, ObDirection dir,
+                                 gboolean dock_windows) 
+{
+    gint my_cx, my_cy, his_cx, his_cy;
+    gint offset = 0;
+    gint distance = 0;
+    gint score, best_score;
+    ObClient *best_client, *cur;
+    GList *it;
+
+    if(!client_list)
+        return NULL;
+
+    /* first, find the centre coords of the currently focused window */
+    my_cx = c->frame->area.x + c->frame->area.width / 2;
+    my_cy = c->frame->area.y + c->frame->area.height / 2;
+
+    best_score = -1;
+    best_client = NULL;
+
+    for(it = g_list_first(client_list); it; it = g_list_next(it)) {
+        cur = it->data;
+
+        /* the currently selected window isn't interesting */
+        if(cur == c)
+            continue;
+        if (!dock_windows && !client_normal(cur))
+            continue;
+        if (dock_windows && cur->type != OB_CLIENT_TYPE_DOCK)
+            continue;
+        /* using c->desktop instead of screen_desktop doesn't work if the
+         * current window was omnipresent, hope this doesn't have any other
+         * side effects */
+        if(screen_desktop != cur->desktop && cur->desktop != DESKTOP_ALL)
+            continue;
+        if(cur->iconic)
+            continue;
+        if(!(client_focus_target(cur) == cur &&
+             client_can_focus(cur)))
+            continue;
+
+        /* find the centre coords of this window, from the
+         * currently focused window's point of view */
+        his_cx = (cur->frame->area.x - my_cx)
+            + cur->frame->area.width / 2;
+        his_cy = (cur->frame->area.y - my_cy)
+            + cur->frame->area.height / 2;
+
+        if(dir == OB_DIRECTION_NORTHEAST || dir == OB_DIRECTION_SOUTHEAST ||
+           dir == OB_DIRECTION_SOUTHWEST || dir == OB_DIRECTION_NORTHWEST) {
+            gint tx;
+            /* Rotate the diagonals 45 degrees counterclockwise.
+             * To do this, multiply the matrix /+h +h\ with the
+             * vector (x y).                   \-h +h/
+             * h = sqrt(0.5). We can set h := 1 since absolute
+             * distance doesn't matter here. */
+            tx = his_cx + his_cy;
+            his_cy = -his_cx + his_cy;
+            his_cx = tx;
+        }
+
+        switch(dir) {
+        case OB_DIRECTION_NORTH:
+        case OB_DIRECTION_SOUTH:
+        case OB_DIRECTION_NORTHEAST:
+        case OB_DIRECTION_SOUTHWEST:
+            offset = (his_cx < 0) ? -his_cx : his_cx;
+            distance = ((dir == OB_DIRECTION_NORTH ||
+                         dir == OB_DIRECTION_NORTHEAST) ?
+                        -his_cy : his_cy);
+            break;
+        case OB_DIRECTION_EAST:
+        case OB_DIRECTION_WEST:
+        case OB_DIRECTION_SOUTHEAST:
+        case OB_DIRECTION_NORTHWEST:
+            offset = (his_cy < 0) ? -his_cy : his_cy;
+            distance = ((dir == OB_DIRECTION_WEST ||
+                         dir == OB_DIRECTION_NORTHWEST) ?
+                        -his_cx : his_cx);
+            break;
+        }
+
+        /* the target must be in the requested direction */
+        if(distance <= 0)
+            continue;
+
+        /* Calculate score for this window.  The smaller the better. */
+        score = distance + offset;
+
+        /* windows more than 45 degrees off the direction are
+         * heavily penalized and will only be chosen if nothing
+         * else within a million pixels */
+        if(offset > distance)
+            score += 1000000;
+
+        if(best_score == -1 || score < best_score)
+            best_client = cur,
+                best_score = score;
+    }
+
+    return best_client;
+}
+
+void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
+                             gboolean interactive,
                              gboolean dialog, gboolean done, gboolean cancel)
 {
     static ObClient *first = NULL;
@@ -598,12 +710,12 @@ void focus_directional_cycle(ObDirection dir, gboolean interactive,
     if (!focus_cycle_target) focus_cycle_target = focus_client;
 
     if (focus_cycle_target)
-        ft = client_find_directional(focus_cycle_target, dir);
+        ft = focus_find_directional(focus_cycle_target, dir, dock_windows);
     else {
         GList *it;
 
         for (it = focus_order; it; it = g_list_next(it))
-            if (valid_focus_target(it->data))
+            if (valid_focus_target(it->data, dock_windows))
                 ft = it->data;
     }
         
index 5ed9977..b838ab5 100644 (file)
@@ -2,7 +2,7 @@
 
    focus.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -52,9 +52,11 @@ struct _ObClient* focus_fallback_target(gboolean allow_refocus,
 void focus_fallback(gboolean allow_refocus);
 
 /*! Cycle focus amongst windows. */
-void focus_cycle(gboolean forward, gboolean linear, gboolean interactive,
+void focus_cycle(gboolean forward, gboolean dock_windows,
+                 gboolean linear, gboolean interactive,
                  gboolean dialog, gboolean done, gboolean cancel);
-void focus_directional_cycle(ObDirection dir, gboolean interactive,
+void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
+                             gboolean interactive,
                              gboolean dialog, gboolean done, gboolean cancel);
 void focus_cycle_draw_indicator();
 
index a669f20..eb223f6 100644 (file)
 #include "moveresize.h"
 #include "render/theme.h"
 
-#define PLATE_EVENTMASK (ButtonPressMask | FocusChangeMask)
+#define PLATE_EVENTMASK (SubstructureRedirectMask | ButtonPressMask | \
+                         FocusChangeMask)
 #define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \
-                         ButtonPressMask | ButtonReleaseMask | \
-                         VisibilityChangeMask)
+                         ButtonPressMask | ButtonReleaseMask)
 #define ELEMENT_EVENTMASK (ButtonPressMask | ButtonReleaseMask | \
-                           ButtonMotionMask | ExposureMask | \
+                           ButtonMotionMask | \
                            EnterWindowMask | LeaveWindowMask)
 
 #define FRAME_HANDLE_Y(f) (f->innersize.top + f->client->area.height + \
@@ -80,8 +80,6 @@ ObFrame *frame_new(ObClient *client)
 
     self = g_new0(ObFrame, 1);
 
-    self->obscured = TRUE;
-
     visual = check_32bit_client(client);
 
     /* create the non-visible decor windows */
@@ -101,8 +99,12 @@ ObFrame *frame_new(ObClient *client)
     attrib.event_mask = FRAME_EVENTMASK;
     self->window = createWindow(RootWindow(ob_display, ob_screen), visual,
                                 mask, &attrib);
+
+    attrib.event_mask = ELEMENT_EVENTMASK;
+    self->inner = createWindow(self->window, visual, mask, &attrib);
+
     mask &= ~CWEventMask;
-    self->plate = createWindow(self->window, visual, mask, &attrib);
+    self->plate = createWindow(self->inner, visual, mask, &attrib);
 
     /* create the visible decor windows */
 
@@ -143,6 +145,7 @@ ObFrame *frame_new(ObClient *client)
 
     /* the other stuff is shown based on decor settings */
     XMapWindow(ob_display, self->plate);
+    XMapWindow(ob_display, self->inner);
     XMapWindow(ob_display, self->lgrip);
     XMapWindow(ob_display, self->rgrip);
     XMapWindow(ob_display, self->label);
@@ -420,15 +423,22 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
             } else
                 XUnmapWindow(ob_display, self->handle);
 
-            /* move and resize the plate */
-            XMoveResizeWindow(ob_display, self->plate,
+            /* move and resize the inner border window which contains the plate
+             */
+            XMoveResizeWindow(ob_display, self->inner,
                               self->innersize.left - self->cbwidth_x,
                               self->innersize.top - self->cbwidth_y,
-                              self->client->area.width + self->cbwidth_x * 2,
-                              self->client->area.height + self->cbwidth_y * 2);
-            /* when the client has StaticGravity, it likes to move around. */
-            XMoveWindow(ob_display, self->client->window,
+                              self->client->area.width +
+                              self->cbwidth_x * 2,
+                              self->client->area.height +
+                              self->cbwidth_y * 2);
+
+            /* move the plate */
+            XMoveWindow(ob_display, self->plate,
                         self->cbwidth_x, self->cbwidth_y);
+
+            /* when the client has StaticGravity, it likes to move around. */
+            XMoveWindow(ob_display, self->client->window, 0, 0);
         }
 
         STRUT_SET(self->size,
@@ -500,6 +510,13 @@ void frame_adjust_focus(ObFrame *self, gboolean hilite)
     XFlush(ob_display);
 }
 
+void frame_adjust_client_area(ObFrame *self)
+{
+    /* resize the plate */
+    XResizeWindow(ob_display, self->plate,
+                  self->client->area.width, self->client->area.height);
+}
+
 void frame_adjust_title(ObFrame *self)
 {
     framerender_frame(self);
@@ -539,6 +556,7 @@ void frame_grab_client(ObFrame *self, ObClient *client)
     /* set all the windows for the frame in the window_map */
     g_hash_table_insert(window_map, &self->window, client);
     g_hash_table_insert(window_map, &self->plate, client);
+    g_hash_table_insert(window_map, &self->inner, client);
     g_hash_table_insert(window_map, &self->title, client);
     g_hash_table_insert(window_map, &self->label, client);
     g_hash_table_insert(window_map, &self->max, client);
@@ -593,6 +611,7 @@ void frame_release_client(ObFrame *self, ObClient *client)
     /* remove all the windows for the frame from the window_map */
     g_hash_table_remove(window_map, &self->window);
     g_hash_table_remove(window_map, &self->plate);
+    g_hash_table_remove(window_map, &self->inner);
     g_hash_table_remove(window_map, &self->title);
     g_hash_table_remove(window_map, &self->label);
     g_hash_table_remove(window_map, &self->max);
@@ -813,22 +832,23 @@ ObFrameContext frame_context(ObClient *client, Window win)
         return OB_FRAME_CONTEXT_CLIENT;
     }
 
-    if (win == self->window)   return OB_FRAME_CONTEXT_FRAME;
-    if (win == self->title)    return OB_FRAME_CONTEXT_TITLEBAR;
-    if (win == self->label)    return OB_FRAME_CONTEXT_TITLEBAR;
-    if (win == self->handle)   return OB_FRAME_CONTEXT_HANDLE;
-    if (win == self->lgrip)    return OB_FRAME_CONTEXT_BLCORNER;
-    if (win == self->rgrip)    return OB_FRAME_CONTEXT_BRCORNER;
+    if (win == self->window)    return OB_FRAME_CONTEXT_FRAME;
+    if (win == self->inner)     return OB_FRAME_CONTEXT_FRAME;
+    if (win == self->title)     return OB_FRAME_CONTEXT_TITLEBAR;
+    if (win == self->label)     return OB_FRAME_CONTEXT_TITLEBAR;
+    if (win == self->handle)    return OB_FRAME_CONTEXT_HANDLE;
+    if (win == self->lgrip)     return OB_FRAME_CONTEXT_BLCORNER;
+    if (win == self->rgrip)     return OB_FRAME_CONTEXT_BRCORNER;
     if (win == self->tltresize) return OB_FRAME_CONTEXT_TLCORNER;
     if (win == self->tllresize) return OB_FRAME_CONTEXT_TLCORNER;
     if (win == self->trtresize) return OB_FRAME_CONTEXT_TRCORNER;
     if (win == self->trrresize) return OB_FRAME_CONTEXT_TRCORNER;
-    if (win == self->max)      return OB_FRAME_CONTEXT_MAXIMIZE;
-    if (win == self->iconify)  return OB_FRAME_CONTEXT_ICONIFY;
-    if (win == self->close)    return OB_FRAME_CONTEXT_CLOSE;
-    if (win == self->icon)     return OB_FRAME_CONTEXT_ICON;
-    if (win == self->desk)     return OB_FRAME_CONTEXT_ALLDESKTOPS;
-    if (win == self->shade)    return OB_FRAME_CONTEXT_SHADE;
+    if (win == self->max)       return OB_FRAME_CONTEXT_MAXIMIZE;
+    if (win == self->iconify)   return OB_FRAME_CONTEXT_ICONIFY;
+    if (win == self->close)     return OB_FRAME_CONTEXT_CLOSE;
+    if (win == self->icon)      return OB_FRAME_CONTEXT_ICON;
+    if (win == self->desk)      return OB_FRAME_CONTEXT_ALLDESKTOPS;
+    if (win == self->shade)     return OB_FRAME_CONTEXT_SHADE;
 
     return OB_FRAME_CONTEXT_NONE;
 }
index 0d04436..b537264 100644 (file)
@@ -2,7 +2,7 @@
 
    frame.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -77,12 +77,10 @@ struct _ObFrame
     Rect      area;
     gboolean  visible;
 
-    /*! Whether the window is obscured at all or fully visible. */
-    gboolean obscured;
-
     guint     decorations;
     gboolean  max_horz;
 
+    Window    inner;  /*!< The window for drawing the inner client border */
     Window    title;
     Window    label;
     Window    max;
@@ -153,6 +151,7 @@ void frame_adjust_theme(ObFrame *self);
 void frame_adjust_shape(ObFrame *self);
 void frame_adjust_area(ObFrame *self, gboolean moved,
                        gboolean resized, gboolean fake);
+void frame_adjust_client_area(ObFrame *self);
 void frame_adjust_state(ObFrame *self);
 void frame_adjust_focus(ObFrame *self, gboolean hilite);
 void frame_adjust_title(ObFrame *self);
index b2273f8..f60039c 100644 (file)
@@ -2,7 +2,7 @@
 
    framerender.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -40,8 +40,8 @@ void framerender_frame(ObFrame *self)
         px = (self->focused ?
               RrColorPixel(ob_rr_theme->cb_focused_color) :
               RrColorPixel(ob_rr_theme->cb_unfocused_color));
-        XSetWindowBackground(ob_display, self->plate, px);
-        XClearWindow(ob_display, self->plate);
+        XSetWindowBackground(ob_display, self->inner, px);
+        XClearWindow(ob_display, self->inner);
     }
 
     if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
index a039115..162fa57 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    framerender.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
index e77228c..e9ecf9d 100644 (file)
@@ -2,7 +2,7 @@
 
    geom.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index b81254a..e7bd41d 100644 (file)
@@ -2,7 +2,7 @@
 
    grab.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -22,6 +22,7 @@
 #include "event.h"
 #include "xerror.h"
 #include "screen.h"
+#include "debug.h"
 
 #include <glib.h>
 #include <X11/Xlib.h>
@@ -162,14 +163,14 @@ void grab_button_full(guint button, guint state, Window win, guint mask,
 {
     guint i;
 
-    xerror_set_ignore(TRUE); /* can get BadAccess' from these */
+    xerror_set_ignore(TRUE); /* can get BadAccess from these */
     xerror_occured = FALSE;
     for (i = 0; i < MASK_LIST_SIZE; ++i)
         XGrabButton(ob_display, button, state | mask_list[i], win, FALSE, mask,
                     pointer_mode, GrabModeSync, None, ob_cursor(cur));
     xerror_set_ignore(FALSE);
     if (xerror_occured)
-        g_warning("failed to grab button %d modifiers %d", button, state);
+        ob_debug("Failed to grab button %d modifiers %d", button, state);
 }
 
 void grab_button(guint button, guint state, Window win, guint mask)
@@ -196,7 +197,7 @@ void grab_key(guint keycode, guint state, Window win, gint keyboard_mode)
                  GrabModeAsync, keyboard_mode);
     xerror_set_ignore(FALSE);
     if (xerror_occured)
-        g_warning("failed to grab keycode %d modifiers %d", keycode, state);
+        ob_debug("Failed to grab keycode %d modifiers %d", keycode, state);
 }
 
 void ungrab_all_keys(Window win)
index 088d2d6..4b5aec3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    grab.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
index 937ebfd..f70b84b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    group.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
index d9c2604..844b629 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    group.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
index 2d0a5e9..71164ac 100644 (file)
@@ -2,7 +2,7 @@
 
    keyboard.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -32,6 +32,7 @@
 #include "keyboard.h"
 #include "translate.h"
 #include "moveresize.h"
+#include "gettext.h"
 
 #include <glib.h>
 
@@ -127,7 +128,7 @@ gboolean keyboard_bind(GList *keylist, ObAction *action)
         t = tree;
 
     if (conflict) {
-        g_warning("conflict with binding");
+        g_message(_("Conflict with key binding in config file"));
         tree_destroy(tree);
         return FALSE;
     }
index 883d04b..23b9368 100644 (file)
@@ -2,7 +2,7 @@
 
    keyboard.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index e033601..e86fb4c 100644 (file)
@@ -2,7 +2,7 @@
 
    keytree.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index f59ef13..c3be065 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    keytree.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
index 62261dd..2af8162 100644 (file)
@@ -2,7 +2,7 @@
 
    mainloop.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 4759185..03f0035 100644 (file)
@@ -2,7 +2,7 @@
 
    mainloop.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index e243681..311701a 100644 (file)
@@ -31,6 +31,7 @@
 #include "client_menu.h"
 #include "client_list_menu.h"
 #include "client_list_combined_menu.h"
+#include "gettext.h"
 #include "parser/parse.h"
 
 typedef struct _ObMenuParseState ObMenuParseState;
@@ -90,13 +91,17 @@ void menu_startup(gboolean reconfig)
             loaded = TRUE;
             parse_tree(menu_parse_inst, doc, node->children);
             xmlFreeDoc(doc);
-        }
+        } else
+            g_message(_("Unable to find a valid menu file '%s'"),
+                      (const gchar*)it->data);
     }
     if (!loaded) {
         if (parse_load_menu("menu.xml", &doc, &node)) {
             parse_tree(menu_parse_inst, doc, node->children);
             xmlFreeDoc(doc);
-        }
+        } else
+            g_message(_("Unable to find a valid menu file '%s'"),
+                      "menu.xml");
     }
     
     g_assert(menu_parse_state.parent == NULL);
@@ -138,7 +143,8 @@ void menu_pipe_execute(ObMenu *self)
         return;
 
     if (!g_spawn_command_line_sync(self->execute, &output, NULL, NULL, &err)) {
-        g_warning("Failed to execute command for pipe-menu: %s", err->message);
+        g_message(_("Failed to execute command for pipe-menu '%s': %s"),
+                  self->execute, err->message);
         g_error_free(err);
         return;
     }
@@ -154,7 +160,7 @@ void menu_pipe_execute(ObMenu *self)
         parse_tree(menu_parse_inst, doc, node->children);
         xmlFreeDoc(doc);
     } else {
-        g_warning("Invalid output from pipe-menu: %s", self->execute);
+        g_message(_("Invalid output from pipe-menu '%s'"), self->execute);
     }
 
     g_free(output);
@@ -167,7 +173,7 @@ static ObMenu* menu_from_name(gchar *name)
     g_assert(name != NULL);
 
     if (!(self = g_hash_table_lookup(menu_hash, name)))
-        g_warning("Attempted to access menu '%s' but it does not exist.",
+        g_message(_("Attempted to access menu '%s' but it does not exist"),
                   name);
     return self;
 }  
index 2e54ef8..4cb2083 100644 (file)
@@ -174,15 +174,15 @@ static void menu_entry_frame_free(ObMenuEntryFrame *self)
     if (self) {
         XDestroyWindow(ob_display, self->text);
         XDestroyWindow(ob_display, self->window);
-        g_hash_table_insert(menu_frame_map, &self->text, self);
-        g_hash_table_insert(menu_frame_map, &self->window, self);
+        g_hash_table_remove(menu_frame_map, &self->text);
+        g_hash_table_remove(menu_frame_map, &self->window);
         if (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL) {
             XDestroyWindow(ob_display, self->icon);
-            g_hash_table_insert(menu_frame_map, &self->icon, self);
+            g_hash_table_remove(menu_frame_map, &self->icon);
         }
         if (self->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU) {
             XDestroyWindow(ob_display, self->bullet);
-            g_hash_table_insert(menu_frame_map, &self->bullet, self);
+            g_hash_table_remove(menu_frame_map, &self->bullet);
         }
 
         RrAppearanceFree(self->a_normal);
index 9e1fc26..1da94b3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    misc.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
index 81eccfb..27172d5 100644 (file)
@@ -2,7 +2,7 @@
 
    mouse.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -28,6 +28,8 @@
 #include "frame.h"
 #include "translate.h"
 #include "mouse.h"
+#include "gettext.h"
+
 #include <glib.h>
 
 typedef struct {
@@ -309,13 +311,13 @@ gboolean mouse_bind(const gchar *buttonstr, const gchar *contextstr,
     GSList *it;
 
     if (!translate_button(buttonstr, &state, &button)) {
-        g_warning("invalid button '%s'", buttonstr);
+        g_message(_("Invalid button '%s' in pointer binding"), buttonstr);
         return FALSE;
     }
 
     context = frame_context_from_string(contextstr);
     if (!context) {
-        g_warning("invalid context '%s'", contextstr);
+        g_message(_("Invalid context '%s' in pointer binding"), contextstr);
         return FALSE;
     }
 
index a570a16..38e01da 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    mouse.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
index 6cab522..39fdd45 100644 (file)
@@ -2,7 +2,7 @@
 
    moveresize.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -28,6 +28,9 @@
 #include "popup.h"
 #include "moveresize.h"
 #include "config.h"
+#include "event.h"
+#include "debug.h"
+#include "extensions.h"
 #include "render/render.h"
 #include "render/theme.h"
 
@@ -36,6 +39,9 @@
 
 gboolean moveresize_in_progress = FALSE;
 ObClient *moveresize_client = NULL;
+#ifdef SYNC
+XSyncAlarm moveresize_alarm = None;
+#endif
 
 static gboolean moving = FALSE; /* TRUE - moving, FALSE - resizing */
 
@@ -44,6 +50,9 @@ static gint cur_x, cur_y;
 static guint button;
 static guint32 corner;
 static ObCorner lockcorner;
+#ifdef SYNC
+static gboolean waiting_for_sync;
+#endif
 
 static ObPopup *popup = NULL;
 
@@ -82,7 +91,7 @@ static void popup_coords(ObClient *c, const gchar *format, gint a, gint b)
         popup_position(popup, SouthGravity,
                        c->frame->area.x
                      + c->frame->area.width/2,
-                       c->frame->area.y);
+                       c->frame->area.y - ob_rr_theme->fbwidth);
     else /* == "Center" */
         popup_position(popup, CenterGravity,
                        c->frame->area.x + c->frame->size.left +
@@ -164,6 +173,47 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
     else
         g_assert_not_reached();
 
+#ifdef SYNC
+    if (!moving && extensions_shape && moveresize_client->sync_request &&
+        moveresize_client->sync_counter)
+    {
+        /* Initialize values for the resize syncing, and create an alarm for
+           the client's xsync counter */
+
+        XSyncValue val;
+        XSyncAlarmAttributes aa;
+
+        /* set the counter to an initial value */
+        XSyncIntToValue(&val, 0);
+        XSyncSetCounter(ob_display, moveresize_client->sync_counter, val);
+
+        /* this will be incremented when we tell the client what we're
+           looking for */
+        moveresize_client->sync_counter_value = 0;
+
+        /* the next sequence we're waiting for with the alarm */
+        XSyncIntToValue(&val, 1);
+
+        /* set an alarm on the counter */
+        aa.trigger.counter = moveresize_client->sync_counter;
+        aa.trigger.wait_value = val;
+        aa.trigger.value_type = XSyncAbsolute;
+        aa.trigger.test_type = XSyncPositiveTransition;
+        aa.events = True;
+        XSyncIntToValue(&aa.delta, 1);
+        moveresize_alarm = XSyncCreateAlarm(ob_display,
+                                            XSyncCACounter |
+                                            XSyncCAValue |
+                                            XSyncCAValueType |
+                                            XSyncCATestType |
+                                            XSyncCADelta |
+                                            XSyncCAEvents,
+                                            &aa);
+
+        waiting_for_sync = FALSE;
+    }
+#endif
+
     grab_pointer(TRUE, FALSE, cur);
     grab_keyboard(TRUE);
 }
@@ -180,6 +230,14 @@ void moveresize_end(gboolean cancel)
                     (cancel ? start_cx : cur_x),
                     (cancel ? start_cy : cur_y));
     } else {
+#ifdef SYNC
+        /* turn off the alarm */
+        if (moveresize_alarm != None) {
+            XSyncDestroyAlarm(ob_display, moveresize_alarm);
+            moveresize_alarm = None;
+        }
+#endif
+
         client_configure(moveresize_client, lockcorner,
                          moveresize_client->area.x,
                          moveresize_client->area.y,
@@ -209,24 +267,56 @@ static void do_move(gboolean resist)
                 moveresize_client->frame->area.y);
 }
 
-static void do_resize(gboolean resist)
+static void do_resize()
 {
-    /* resist_size_* needs the frame size */
-    cur_x += moveresize_client->frame->size.left +
-        moveresize_client->frame->size.right;
-    cur_y += moveresize_client->frame->size.top +
-        moveresize_client->frame->size.bottom;
+#ifdef SYNC
+    gint x, y, w, h, lw, lh;
+
+    /* see if it is actually going to resize */
+    x = moveresize_client->area.x;
+    y = moveresize_client->area.y;
+    w = cur_x;
+    h = cur_y;
+    client_try_configure(moveresize_client, lockcorner, &x, &y, &w, &h,
+                         &lw, &lh, TRUE);
+    if (w == moveresize_client->area.width &&
+        h == moveresize_client->area.height)
+    {
+        return;
+    }
 
-    if (resist) {
-        resist_size_windows(moveresize_client, &cur_x, &cur_y, lockcorner);
-        resist_size_monitors(moveresize_client, &cur_x, &cur_y, lockcorner);
+    if (extensions_sync && moveresize_client->sync_request &&
+        moveresize_client->sync_counter)
+    {
+        XEvent ce;
+        XSyncValue val;
+
+        /* are we already waiting for the sync counter to catch up? */
+        if (waiting_for_sync)
+            return;
+
+        /* increment the value we're waiting for */
+        ++moveresize_client->sync_counter_value;
+        XSyncIntToValue(&val, moveresize_client->sync_counter_value);
+
+        /* tell the client what we're waiting for */
+        ce.xclient.type = ClientMessage;
+        ce.xclient.message_type = prop_atoms.wm_protocols;
+        ce.xclient.display = ob_display;
+        ce.xclient.window = moveresize_client->window;
+        ce.xclient.format = 32;
+        ce.xclient.data.l[0] = prop_atoms.net_wm_sync_request;
+        ce.xclient.data.l[1] = event_curtime;
+        ce.xclient.data.l[2] = XSyncValueLow32(val);
+        ce.xclient.data.l[3] = XSyncValueHigh32(val);
+        ce.xclient.data.l[4] = 0l;
+        XSendEvent(ob_display, moveresize_client->window, FALSE,
+                   NoEventMask, &ce);
+
+        waiting_for_sync = TRUE;
     }
+#endif
 
-    cur_x -= moveresize_client->frame->size.left +
-        moveresize_client->frame->size.right;
-    cur_y -= moveresize_client->frame->size.top +
-        moveresize_client->frame->size.bottom;
     client_configure(moveresize_client, lockcorner, 
                      moveresize_client->area.x, moveresize_client->area.y,
                      cur_x, cur_y, TRUE, FALSE);
@@ -243,6 +333,25 @@ static void do_resize(gboolean resist)
                      moveresize_client->logical_size.height);
 }
 
+static void calc_resize(gboolean resist)
+{
+    /* resist_size_* needs the frame size */
+    cur_x += moveresize_client->frame->size.left +
+        moveresize_client->frame->size.right;
+    cur_y += moveresize_client->frame->size.top +
+        moveresize_client->frame->size.bottom;
+
+    if (resist) {
+        resist_size_windows(moveresize_client, &cur_x, &cur_y, lockcorner);
+        resist_size_monitors(moveresize_client, &cur_x, &cur_y, lockcorner);
+    }
+
+    cur_x -= moveresize_client->frame->size.left +
+        moveresize_client->frame->size.right;
+    cur_y -= moveresize_client->frame->size.top +
+        moveresize_client->frame->size.bottom;
+}
+
 void moveresize_event(XEvent *e)
 {
     g_assert(moveresize_in_progress);
@@ -304,7 +413,8 @@ void moveresize_event(XEvent *e)
             } else
                 g_assert_not_reached();
 
-            do_resize(TRUE);
+            calc_resize(TRUE);
+            do_resize();
         }
     } else if (e->type == KeyPress) {
         if (e->xkey.keycode == ob_keycode(OB_KEY_ESCAPE))
@@ -382,4 +492,11 @@ void moveresize_event(XEvent *e)
             }
         }
     }
+#ifdef SYNC
+    else if (e->type == extensions_sync_event_basep + XSyncAlarmNotify)
+    {
+        waiting_for_sync = FALSE; /* we got our sync... */
+        do_resize(); /* ...so try resize if there is more change pending */
+    }
+#endif
 }
index 67ab08c..410b554 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    moveresize.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
 
 #include <glib.h>
 
+#ifdef SYNC
+#include <X11/extensions/sync.h>
+#endif
+
 struct _ObClient;
 
 extern gboolean moveresize_in_progress;
 extern struct _ObClient *moveresize_client;
+#ifdef SYNC
+extern XSyncAlarm moveresize_alarm;
+#endif
 
 void moveresize_startup(gboolean reconfig);
 void moveresize_shutdown(gboolean reconfig);
index b4c8ccb..e7a9d39 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    mwm.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
index 4ad1c70..7484261 100644 (file)
@@ -2,7 +2,7 @@
 
    openbox.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -99,15 +99,11 @@ static Cursor load_cursor(const gchar *name, guint fontval);
 
 gint main(gint argc, gchar **argv)
 {
-#ifdef DEBUG
-    ob_debug_show_output(TRUE);
-#endif
-
     state = OB_STATE_STARTING;
 
     /* initialize the locale */
     if (!setlocale(LC_ALL, ""))
-        g_warning("Couldn't set locale from environment.\n");
+        g_message(_("Couldn't set locale from environment."));
     bindtextdomain(PACKAGE_NAME, LOCALEDIR);
     bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
     textdomain(PACKAGE_NAME);
@@ -115,7 +111,7 @@ gint main(gint argc, gchar **argv)
     g_set_prgname(argv[0]);
 
     if (chdir(g_get_home_dir()) == -1)
-        g_warning("Unable to change to home directory (%s): %s",
+        g_message(_("Unable to change to home directory (%s): %s"),
                   g_get_home_dir(), g_strerror(errno));
      
     /* parse out command line args */
@@ -166,9 +162,9 @@ gint main(gint argc, gchar **argv)
 
     /* check for locale support */
     if (!XSupportsLocale())
-        g_warning("X server does not support locale.");
+        g_message(_("X server does not support locale."));
     if (!XSetLocaleModifiers(""))
-        g_warning("Cannot set locale modifiers for the X server.");
+        g_message(_("Cannot set locale modifiers for the X server."));
 
     /* set our error handler */
     XSetErrorHandler(xerror_handler);
@@ -229,8 +225,11 @@ gint main(gint argc, gchar **argv)
                     PROP_SETS(RootWindow(ob_display, ob_screen),
                               openbox_rc, config_file);
                     parse_tree(i, doc, node->xmlChildrenNode);
-                } else
+                } else {
+                    g_message(_("Unable to find a valid config file, using "
+                                "some simple defaults"));
                     PROP_ERASE(RootWindow(ob_display, ob_screen), openbox_rc);
+                }
                 /* we're done with parsing now, kill it */
                 parse_close(doc);
                 parse_shutdown(i);
@@ -347,8 +346,8 @@ gint main(gint argc, gchar **argv)
                 execvp(argvp[0], argvp);
                 g_strfreev(argvp);
             } else {
-                g_warning("failed to execute '%s': %s", restart_path,
-                          err->message);
+                g_message(_("Restart failed to execute new executable "
+                            "'%s': %s"), restart_path, err->message);
                 g_error_free(err);
             }
         }
@@ -387,8 +386,10 @@ static void signal_handler(gint signal, gpointer data)
 static void print_version()
 {
     g_print("Openbox %s\n", PACKAGE_VERSION);
-    g_print("Copyright (c) 2007 Mikael Magnusson\n");
-    g_print("Copyright (c) 2003-2007 Dana Jansens\n\n");
+    g_print(_("Copyright (c)"));
+    g_print(" 2007        Mikael Magnusson\n");
+    g_print(_("Copyright (c)"));
+    g_print(" 2003-2007   Dana Jansens\n\n");
     g_print("This program comes with ABSOLUTELY NO WARRANTY.\n");
     g_print("This is free software, and you are welcome to redistribute it\n");
     g_print("under certain conditions. See the file COPYING for details.\n\n");
@@ -396,29 +397,31 @@ static void print_version()
 
 static void print_help()
 {
-    g_print("Syntax: openbox [options]\n\n");
-    g_print("Options:\n\n");
-    g_print("  --reconfigure       Tell the currently running instance of "
-            "Openbox to\n"
-            "                      reconfigure (and then exit immediately)\n");
-    g_print("  --config-file FILE  Specify the file to load for the config "
-            "file\n");
+    g_print(_("Syntax: openbox [options]\n\n"));
+    g_print(_("Options:\n\n"));
+    g_print(_("  --reconfigure       Tell the currently running instance of "
+              "Openbox to\n"
+              "                      reconfigure (and then exit "
+              "immediately)\n"));
+    g_print(_("  --config-file FILE  Specify the file to load for the config "
+              "file\n"));
 #ifdef USE_SM
-    g_print("  --sm-disable        Disable connection to session manager\n");
-    g_print("  --sm-client-id ID   Specify session management ID\n");
-    g_print("  --sm-save-file FILE Specify file to load a saved session"
-            "from\n");
+    g_print(_("  --sm-disable        Disable connection to session "
+              "manager\n"));
+    g_print(_("  --sm-client-id ID   Specify session management ID\n"));
+    g_print(_("  --sm-save-file FILE Specify file to load a saved session"
+              "from\n"));
 #endif
-    g_print("  --replace           Replace the currently running window "
-            "manager\n");
-    g_print("  --help              Display this help and exit\n");
-    g_print("  --version           Display the version and exit\n");
-    g_print("  --sync              Run in synchronous mode (this is slow and "
-            "meant for\n"
-            "                      debugging X routines)\n");
-    g_print("  --debug             Display debugging output\n");
-    g_print("  --debug-focus       Display debugging output\n");
-    g_print("\nPlease report bugs at %s\n\n", PACKAGE_BUGREPORT);
+    g_print(_("  --replace           Replace the currently running window "
+              "manager\n"));
+    g_print(_("  --help              Display this help and exit\n"));
+    g_print(_("  --version           Display the version and exit\n"));
+    g_print(_("  --sync              Run in synchronous mode (this is slow and"
+              " meant for\n"
+              "                      debugging X routines)\n"));
+    g_print(_("  --debug             Display debugging output\n"));
+    g_print(_("  --debug-focus       Display debugging output\n"));
+    g_print(_("\nPlease report bugs at %s\n\n"), PACKAGE_BUGREPORT);
 }
 
 static void parse_args(gint argc, gchar **argv)
index 4c01866..03dcdab 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    openbox.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
index 4717cbf..5614ecf 100644 (file)
@@ -418,11 +418,14 @@ static gboolean place_transient(ObClient *client, gint *x, gint *y)
         if (client->transient_for != OB_TRAN_GROUP) {
             ObClient *c = client;
             ObClient *p = client->transient_for;
-            *x = (p->frame->area.width - c->frame->area.width) / 2 +
-                p->frame->area.x;
-            *y = (p->frame->area.height - c->frame->area.height) / 2 +
-                p->frame->area.y;
-            return TRUE;
+
+            if (client_normal(p)) {
+                *x = (p->frame->area.width - c->frame->area.width) / 2 +
+                    p->frame->area.x;
+                *y = (p->frame->area.height - c->frame->area.height) / 2 +
+                    p->frame->area.y;
+                return TRUE;
+            }
         } else {
             GSList *it;
             gboolean first = TRUE;
@@ -451,6 +454,19 @@ static gboolean place_transient(ObClient *client, gint *x, gint *y)
             }
         }
     }
+
+    if (client->transient) {
+        Rect **areas;
+
+        areas = pick_head(client);
+
+        *x = (areas[0]->width - client->frame->area.width) / 2 + areas[0]->x;
+        *y = (areas[0]->height - client->frame->area.height) / 2 + areas[0]->y;
+
+        g_free(areas);
+        return TRUE;
+    }
+
     return FALSE;
 }
 
index 2434ccb..e2f1d4e 100644 (file)
@@ -2,7 +2,7 @@
 
    place.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 88619e7..9af23be 100644 (file)
@@ -2,7 +2,7 @@
 
    popup.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 847f264..609c302 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    popup.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
index 655fd07..49eeef9 100644 (file)
@@ -91,7 +91,11 @@ void prop_startup()
     CREATE(net_frame_extents, "_NET_FRAME_EXTENTS");
 
 /*   CREATE(net_wm_ping, "_NET_WM_PING"); */
-  
+#ifdef SYNC
+    CREATE(net_wm_sync_request, "_NET_WM_SYNC_REQUEST");
+    CREATE(net_wm_sync_request_counter, "_NET_WM_SYNC_REQUEST_COUNTER");
+#endif
+
     CREATE(net_wm_window_type_desktop, "_NET_WM_WINDOW_TYPE_DESKTOP");
     CREATE(net_wm_window_type_dock, "_NET_WM_WINDOW_TYPE_DOCK");
     CREATE(net_wm_window_type_toolbar, "_NET_WM_WINDOW_TYPE_TOOLBAR");
@@ -406,7 +410,7 @@ void prop_set_array32(Window win, Atom prop, Atom type, gulong *val,
 void prop_set_string_utf8(Window win, Atom prop, const gchar *val)
 {
     XChangeProperty(ob_display, win, prop, prop_atoms.utf8, 8,
-                    PropModeReplace, (guchar*)val, strlen(val));
+                    PropModeReplace, (const guchar*)val, strlen(val));
 }
 
 void prop_set_strings_utf8(Window win, Atom prop, gchar **strs)
index 1d3445f..09ca25c 100644 (file)
@@ -99,7 +99,11 @@ typedef struct Atoms {
     Atom net_frame_extents;
 
     /* application protocols */
-/*  Atom   Atom net_wm_ping; */
+/*  Atom net_wm_ping; */
+#ifdef SYNC
+    Atom net_wm_sync_request;
+    Atom net_wm_sync_request_counter;
+#endif
 
     Atom net_wm_window_type_desktop;
     Atom net_wm_window_type_dock;
index bda7760..fc29344 100644 (file)
@@ -2,7 +2,7 @@
 
    resist.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 3910855..b961bbe 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    resist.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
index c0569c2..71748d6 100644 (file)
@@ -34,6 +34,7 @@
 #include "popup.h"
 #include "extensions.h"
 #include "render/render.h"
+#include "gettext.h"
 
 #include <X11/Xlib.h>
 #ifdef HAVE_UNISTD_H
@@ -79,7 +80,7 @@ static gboolean replace_wm()
         current_wm_sn_owner = None;
     if (current_wm_sn_owner) {
         if (!ob_replace_wm) {
-            g_warning("A window manager is already running on screen %d",
+            g_message(_("A window manager is already running on screen %d"),
                       ob_screen);
             return FALSE;
         }
@@ -116,7 +117,7 @@ static gboolean replace_wm()
                        timestamp);
 
     if (XGetSelectionOwner(ob_display, wm_sn_atom) != screen_support_win) {
-        g_warning("Could not acquire window manager selection on screen %d",
+        g_message(_("Could not acquire window manager selection on screen %d"),
                   ob_screen);
         return FALSE;
     }
@@ -137,8 +138,8 @@ static gboolean replace_wm()
       }
 
       if (wait >= timeout) {
-          g_warning("Timeout expired while waiting for the current WM to die "
-                    "on screen %d", ob_screen);
+          g_message(_("Timeout expired while waiting for the current WM to die"
+                      " on screen %d"), ob_screen);
           return FALSE;
       }
     }
@@ -179,7 +180,7 @@ gboolean screen_annex()
                  ROOT_EVENTMASK);
     xerror_set_ignore(FALSE);
     if (xerror_occured) {
-        g_warning("A window manager is already running on screen %d",
+        g_message(_("A window manager is already running on screen %d"),
                   ob_screen);
 
         XDestroyWindow(ob_display, screen_support_win);
@@ -205,6 +206,9 @@ gboolean screen_annex()
 
     /* set the _NET_SUPPORTED_ATOMS hint */
     num_support = 55;
+#ifdef SYNC
+    num_support += 2;
+#endif
     i = 0;
     supported = g_new(gulong, num_support);
     supported[i++] = prop_atoms.net_wm_full_placement;
@@ -261,11 +265,12 @@ gboolean screen_annex()
     supported[i++] = prop_atoms.net_wm_moveresize;
     supported[i++] = prop_atoms.net_wm_user_time;
     supported[i++] = prop_atoms.net_frame_extents;
+#ifdef SYNC
+    supported[i++] = prop_atoms.net_wm_sync_request;
+    supported[i++] = prop_atoms.net_wm_sync_request_counter;
+#endif
     supported[i++] = prop_atoms.ob_wm_state_undecorated;
     g_assert(i == num_support);
-/*
-  supported[] = prop_atoms.net_wm_action_stick;
-*/
 
     PROP_SETA32(RootWindow(ob_display, ob_screen),
                 net_supported, atom, supported, num_support);
@@ -906,23 +911,19 @@ void screen_show_desktop(gboolean show)
 
 void screen_install_colormap(ObClient *client, gboolean install)
 {
-    XWindowAttributes wa;
-
     if (client == NULL) {
         if (install)
             XInstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
         else
             XUninstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
     } else {
-        if (XGetWindowAttributes(ob_display, client->window, &wa) &&
-            wa.colormap != None) {
-            xerror_set_ignore(TRUE);
-            if (install)
-                XInstallColormap(RrDisplay(ob_rr_inst), wa.colormap);
-            else
-                XUninstallColormap(RrDisplay(ob_rr_inst), wa.colormap);
-            xerror_set_ignore(FALSE);
-        }
+        xerror_set_ignore(TRUE);
+        if (install) {
+            if (client->colormap != None)
+                XInstallColormap(RrDisplay(ob_rr_inst), client->colormap);
+        } else
+            XUninstallColormap(RrDisplay(ob_rr_inst), client->colormap);
+        xerror_set_ignore(FALSE);
     }
 }
 
index 07a2cae..970cde3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    screen.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
index 01bb56e..62cff4b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    session.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
@@ -75,7 +75,7 @@ static void save_commands()
 {
     SmProp *props[2];
     SmProp prop_cmd = { SmCloneCommand, SmLISTofARRAY8, 1, };
-    SmProp prop_res = { SmRestartCommand, SmLISTofARRAY8, };
+    SmProp prop_res = { SmRestartCommand, SmLISTofARRAY8 };
     gint i;
 
     prop_cmd.vals = g_new(SmPropValue, sm_argc);
@@ -164,9 +164,10 @@ void session_startup(gint argc, gchar **argv)
 
     sm_sessions_path = g_build_filename(parse_xdg_data_home_path(),
                                         "openbox", "sessions", NULL);
-    if (!parse_mkdir_path(sm_sessions_path, 0700))
-        g_warning(_("Unable to make directory '%s': %s"),
+    if (!parse_mkdir_path(sm_sessions_path, 0700)) {
+        g_message(_("Unable to make directory '%s': %s"),
                   sm_sessions_path, g_strerror(errno));
+    }
 
     if (save_file)
         session_load(save_file);
@@ -339,7 +340,7 @@ static gboolean session_save()
     f = fopen(save_file, "w");
     if (!f) {
         success = FALSE;
-        g_warning("unable to save the session to %s: %s",
+        g_message(_("Unable to save the session to '%s': %s"),
                   save_file, g_strerror(errno));
     } else {
         guint stack_pos = 0;
@@ -429,7 +430,7 @@ static gboolean session_save()
 
         if (fflush(f)) {
             success = FALSE;
-            g_warning("error while saving the session to %s: %s",
+            g_message(_("Error while saving the session to '%s': %s"),
                       save_file, g_strerror(errno));
         }
         fclose(f);
index 75198ca..b2c18a1 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    session.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
index d9aee95..32d5a0f 100644 (file)
@@ -2,7 +2,7 @@
 
    stacking.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index a0af4c0..2391f65 100644 (file)
@@ -2,7 +2,7 @@
 
    stacking.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 5b5723e..03cb752 100644 (file)
@@ -2,7 +2,7 @@
 
    startupnotify.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 746b786..82b87a5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    startupnotify.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
index b1c0edb..a26017e 100644 (file)
@@ -2,7 +2,7 @@
 
    translate.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -19,6 +19,7 @@
 
 #include "openbox.h"
 #include "mouse.h"
+#include "gettext.h"
 #include <glib.h>
 #include <string.h>
 #include <stdlib.h>
@@ -37,7 +38,7 @@ static guint translate_modifier(gchar *str)
              !g_ascii_strcasecmp("C", str)) return ControlMask;
     else if (!g_ascii_strcasecmp("Shift", str) ||
              !g_ascii_strcasecmp("S", str)) return ShiftMask;
-    g_warning("Invalid modifier '%s' in binding.", str);
+    g_message(_("Invalid modifier key '%s' in key/pointer binding"), str);
     return 0;
 }
 
@@ -73,7 +74,7 @@ gboolean translate_button(const gchar *str, guint *state, guint *button)
     else if (!g_ascii_strcasecmp("Down", l)) *button = 5;
     else if (!g_ascii_strncasecmp("Button", l, 6)) *button = atoi(l+6);
     if (!*button) {
-        g_warning("Invalid button '%s' in pointer binding.", l);
+        g_message(_("Invalid button '%s' in pointer binding"), l);
         goto translation_fail;
     }
 
@@ -115,20 +116,20 @@ gboolean translate_key(const gchar *str, guint *state, guint *keycode)
         /* take it directly */
         *keycode = strtol(l, &end, 16);
         if (*l == '\0' || *end != '\0') {
-            g_warning("Invalid key code '%s' in key binding.", l);
+            g_message(_("Invalid key code '%s' in key binding"), l);
             goto translation_fail;
         }
     } else {
         /* figure out the keycode */
         sym = XStringToKeysym(l);
         if (sym == NoSymbol) {
-            g_warning("Invalid key name '%s' in key binding.", l);
+            g_message(_("Invalid key name '%s' in key binding"), l);
             goto translation_fail;
         }
         *keycode = XKeysymToKeycode(ob_display, sym);
     }
     if (!*keycode) {
-        g_warning("Key '%s' does not exist on the display.", l); 
+        g_message(_("Requested key '%s' does not exist on the display"), l); 
         goto translation_fail;
     }
 
index 6b46e98..8249514 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    translate.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
index b902415..3de593b 100644 (file)
@@ -2,7 +2,7 @@
 
    xerror.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -18,6 +18,7 @@
 */
 
 #include "openbox.h"
+#include "gettext.h"
 #include <glib.h>
 #include <X11/Xlib.h>
 
@@ -31,14 +32,11 @@ gint xerror_handler(Display *d, XErrorEvent *e)
     if (!xerror_ignore) {
         gchar errtxt[128];
 
-        /*if (e->error_code != BadWindow) */
-        {
-            XGetErrorText(d, e->error_code, errtxt, 127);
-            if (e->error_code == BadWindow)
-                /*g_warning("X Error: %s", errtxt)*/;
-            else
-                g_error("X Error: %s", errtxt);
-        }
+        XGetErrorText(d, e->error_code, errtxt, 127);
+        if (e->error_code == BadWindow)
+            /*g_message(_("X Error: %s\n"), errtxt)*/;
+        else
+            g_error(_("X Error: %s"), errtxt);
     }
 #else
     (void)d; (void)e;
index 29573b0..de1aa5a 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    xerror.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
index b481ab2..9b8924c 100644 (file)
@@ -68,7 +68,7 @@ void parse_register(ObParseInst *i, const gchar *tag,
     struct Callback *c;
 
     if ((c = g_hash_table_lookup(i->callbacks, tag))) {
-        g_warning("Tag '%s' already registered", tag);
+        g_error("Tag '%s' already registered", tag);
         return;
     }
 
@@ -101,8 +101,6 @@ gboolean parse_load_rc(const gchar *file, xmlDocPtr *doc, xmlNodePtr *root,
                 g_free(path);
         }
     }
-    if (!r)
-        g_warning("Unable to find a valid config file, using defaults");
     return r;
 }
 
@@ -129,8 +127,6 @@ gboolean parse_load_theme(const gchar *name, xmlDocPtr *doc, xmlNodePtr *root,
             g_free(path);
         }
     }
-    if (!r)
-        g_warning("Unable to load the theme %s", name);
     return r;
 }
 
@@ -149,8 +145,6 @@ gboolean parse_load_menu(const gchar *file, xmlDocPtr *doc, xmlNodePtr *root)
             g_free(path);
         }
     }
-    if (!r)
-        g_warning("Unable to find a valid menu file '%s'", file);
     return r;
 }
 
@@ -169,13 +163,13 @@ gboolean parse_load(const gchar *path, const gchar *rootname,
         if (!*root) {
             xmlFreeDoc(*doc);
             *doc = NULL;
-            g_warning("%s is an empty document", path);
+            g_message("%s is an empty document", path);
         } else {
             if (xmlStrcmp((*root)->name, (const xmlChar*)rootname)) {
                 xmlFreeDoc(*doc);
                 *doc = NULL;
-                g_warning("Document %s is of wrong type. root node is "
-                          "not '%s'", path, rootname);
+                g_message("XML Document %s is of wrong type. Root "
+                          "node is not '%s'", path, rootname);
             }
         }
     }
@@ -192,13 +186,13 @@ gboolean parse_load_mem(gpointer data, guint len, const gchar *rootname,
         if (!*root) {
             xmlFreeDoc(*doc);
             *doc = NULL;
-            g_warning("Given memory is an empty document");
+            g_message("Given memory is an empty document");
         } else {
             if (xmlStrcmp((*root)->name, (const xmlChar*)rootname)) {
                 xmlFreeDoc(*doc);
                 *doc = NULL;
-                g_warning("Document in given memory is of wrong type. root "
-                          "node is not '%s'", rootname);
+                g_message("XML Document in given memory is of wrong "
+                          "type. Root node is not '%s'\n", rootname);
             }
         }
     }
index 7039d8c..7aba2e4 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    parse.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
index 7fbcd0f..05231b8 100644 (file)
@@ -18,7 +18,7 @@ XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
 # or entity, or to disclaim their copyright.  The empty string stands for
 # the public domain; in this case the translators are expected to disclaim
 # their copyright.
-COPYRIGHT_HOLDER = Mikael Magnusson
+COPYRIGHT_HOLDER = Dana Jansens
 
 # This is the email address or URL to which the translators shall report
 # bugs in the untranslated strings:
@@ -34,7 +34,7 @@ COPYRIGHT_HOLDER = Mikael Magnusson
 # It can be your email address, or a mailing list address where translators
 # can write to without being subscribed, or the URL of a web page through
 # which the translators can contact you.
-MSGID_BUGS_ADDRESS = mikachu@icculus.org
+MSGID_BUGS_ADDRESS = http://bugzilla.icculus.org
 
 # This is the list of locale categories, beyond LC_MESSAGES, for which the
 # message catalogs shall be used.  It is usually empty.
index 40384e4..f6270ad 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-01-25 20:41+0100\n"
 "Last-Translator: David Majà Martínez <davidmaja@gmail.com>\n"
 "Language-Team: catalan\n"
@@ -23,78 +23,182 @@ msgstr "Vés aquí..."
 msgid "Desktops"
 msgstr "Escriptoris"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Restaura"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximitza"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Desenrotlla"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Enrotlla"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Tots els escriptoris"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Capa"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Sempre a sobre"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Sempre a sota"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "A l'escriptori"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Menú del client"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimitza"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Posa a sobre"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Posa a sota"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Decoració"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Mou"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Redimensiona"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Tanca"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "No és pot crear el directori '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id necessita un argument\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file necessita un argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id necessita un argument\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file necessita un argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "No és pot crear el directori '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "No és pot crear el directori '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "No s'ha pogut inicialitzar Xft."
 
index 6253d1d..9cdf4bf 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2006-06-11 10:41+0200\n"
 "Last-Translator: Sebastian Vahl <svahl@web.de>\n"
 "Language-Team:  <de@li.org>\n"
@@ -22,78 +22,182 @@ msgstr "Gehe zu..."
 msgid "Desktops"
 msgstr ""
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Wiederherstellen"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximieren"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Abrollen"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Aufrollen"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Alle Desktops"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Fenster"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Immer im Vordergrund"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr ""
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Immer im Hintergrund"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "An Desktop senden"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr ""
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimieren"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "In den Vordergrund"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "In den Hintergrund"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Dekoriere"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Verschieben"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Größe ändern"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Schließen"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Das Verzeichnis '%s' konnte nicht angelegt werden: %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id benötigt ein Argument\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file benötigt ein Argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id benötigt ein Argument\n"
@@ -107,6 +211,16 @@ msgstr "--sm-save-file benötigt ein Argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Das Verzeichnis '%s' konnte nicht angelegt werden: %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Das Verzeichnis '%s' konnte nicht angelegt werden: %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Xft konnte nicht initialisiert werden"
 
index 7e11bc9..16da36f 100644 (file)
@@ -1,7 +1,7 @@
 # English translations for openbox package.
-# Copyright (C) 2004 Mikael Magnusson
+# Copyright (C) 2007 Dana Jansens
 # This file is distributed under the same license as the openbox package.
-# Automatically generated, 2004.
+# Automatically generated, 2007.
 #
 # All this catalog "translates" are quotation characters.
 # The msgids must be ASCII and therefore cannot contain real quotation
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
-"PO-Revision-Date: 2004-11-07 12:52+0100\n"
+"Project-Id-Version: openbox 3.4.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
+"PO-Revision-Date: 2007-04-24 03:05-0400\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
@@ -49,78 +49,191 @@ msgstr "Go there..."
 msgid "Desktops"
 msgstr "Desktops"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Restore"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximize"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Roll down"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Roll up"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "All desktops"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Layer"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Always on top"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Always on bottom"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Send to desktop"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Client menu"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Iconify"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Raise to top"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Lower to bottom"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Decorate"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Move"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Resize"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Close"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr "Couldn't set locale from environment."
+
+#: openbox/openbox.c:114
+#, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Unable to change to home directory (%s): %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr "X server does not support locale."
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr "Cannot set locale modifiers for the X server."
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr "Unable to find a valid config file, using some simple defaults"
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr "Restart failed to execute new executable '%s': %s"
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr "Copyright (c)"
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+"Syntax: openbox [options]\n"
+"\n"
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+"Options:\n"
+"\n"
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr "  --config-file FILE  Specify the file to load for the config file\n"
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr "  --sm-disable        Disable connection to session manager\n"
+
+#: openbox/openbox.c:411
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "  --sm-client-id ID   Specify session management ID\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr "  --replace           Replace the currently running window manager\n"
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr "  --help              Display this help and exit\n"
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr "  --version           Display the version and exit\n"
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr "  --debug             Display debugging output\n"
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr "  --debug-focus       Display debugging output\n"
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+
+#: openbox/openbox.c:455
+msgid "--config-file requires an argument\n"
+msgstr "--config-file requires an argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id requires an argument\n"
@@ -134,11 +247,12 @@ msgstr "--sm-save-file requires an argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Unable to make directory '%s': %s"
 
-#~ msgid "Couldn't initialize Xft."
-#~ msgstr "Couldn't initialize Xft."
-
-#~ msgid "Unable to load font: %s\n"
-#~ msgstr "Unable to load font: %s\n"
+#: openbox/session.c:343
+#, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Unable to save the session to '%s': %s"
 
-#~ msgid "Trying fallback font: %s\n"
-#~ msgstr "Trying fallback font: %s\n"
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr "Error while saving the session to '%s': %s"
index 877064b..529e568 100644 (file)
@@ -1,7 +1,7 @@
 # English translations for openbox package.
-# Copyright (C) 2004 Mikael Magnusson
+# Copyright (C) 2007 Dana Jansens
 # This file is distributed under the same license as the openbox package.
-# Automatically generated, 2004.
+# Automatically generated, 2007.
 #
 # All this catalog "translates" are quotation characters.
 # The msgids must be ASCII and therefore cannot contain real quotation
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
-"PO-Revision-Date: 2004-11-07 12:52+0100\n"
+"Project-Id-Version: openbox 3.4.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
+"PO-Revision-Date: 2007-04-24 03:05-0400\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
@@ -46,78 +46,191 @@ msgstr "Go there..."
 msgid "Desktops"
 msgstr "Desktops"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Restore"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximize"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Roll down"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Roll up"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "All desktops"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Layer"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Always on top"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Always on bottom"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Send to desktop"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Client menu"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Iconify"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Raise to top"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Lower to bottom"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Decorate"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Move"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Resize"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Close"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr "Couldn't set locale from environment."
+
+#: openbox/openbox.c:114
+#, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Unable to change to home directory (%s): %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr "X server does not support locale."
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr "Cannot set locale modifiers for the X server."
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr "Unable to find a valid config file, using some simple defaults"
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr "Restart failed to execute new executable '%s': %s"
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr "Copyright (c)"
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+"Syntax: openbox [options]\n"
+"\n"
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+"Options:\n"
+"\n"
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr "  --config-file FILE  Specify the file to load for the config file\n"
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr "  --sm-disable        Disable connection to session manager\n"
+
+#: openbox/openbox.c:411
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "  --sm-client-id ID   Specify session management ID\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr "  --replace           Replace the currently running window manager\n"
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr "  --help              Display this help and exit\n"
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr "  --version           Display the version and exit\n"
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr "  --debug             Display debugging output\n"
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr "  --debug-focus       Display debugging output\n"
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+
+#: openbox/openbox.c:455
+msgid "--config-file requires an argument\n"
+msgstr "--config-file requires an argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id requires an argument\n"
@@ -131,11 +244,12 @@ msgstr "--sm-save-file requires an argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Unable to make directory '%s': %s"
 
-#~ msgid "Couldn't initialize Xft."
-#~ msgstr "Couldn't initialize Xft."
-
-#~ msgid "Unable to load font: %s\n"
-#~ msgstr "Unable to load font: %s\n"
+#: openbox/session.c:343
+#, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Unable to save the session to '%s': %s"
 
-#~ msgid "Trying fallback font: %s\n"
-#~ msgstr "Trying fallback font: %s\n"
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr "Error while saving the session to '%s': %s"
index 5ec6bb1..1093552 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2005-03-25 09:31+0100\n"
 "Last-Translator: Miguel Calleja Gómez <mcg79@lycos.es>\n"
 "Language-Team: None\n"
@@ -23,78 +23,182 @@ msgstr "Ir ahí..."
 msgid "Desktops"
 msgstr "Escritorios"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Restaurar"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximizar"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Desenrollar"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Enrollar"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Todos los escritorios"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Capa"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Siempre encima"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Siempre debajo"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Enviar a escritorio"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Menú del cliente"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimizar"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Poner en primer plano"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Poner en último plano"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Decorar"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Mover"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Redimensionar"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Cerrar"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "No se puede crear el directorio '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id necesita un argumento\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file necesita un argumento\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id necesita un argumento\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file necesita un argumento\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "No se puede crear el directorio '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "No se puede crear el directorio '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "No se pudo iniciar Xft."
 
index c90bac2..3633d95 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2005-03-15 21:29+0200\n"
 "Last-Translator: Pauli Virtanen <pauli.virtanen@hut.fi>\n"
 "Language-Team: Finnish <fi@li.org>\n"
@@ -23,78 +23,182 @@ msgstr "Näytä tämä..."
 msgid "Desktops"
 msgstr "Työtilat"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Palauta"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Suurenna"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Rullaa auki"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Rullaa"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Kaikkiin työtiloihin"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Kerros"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Aina päällimmäinen"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Tavallinen"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Aina alimmainen"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Siirrä työtilaan"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Ikkunan valikko"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Pienennä"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Nosta päällimmäiseksi"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Laske alimmaiseksi"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Piirrä/poista kehykset"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Siirrä"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Muuta kokoa"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Sulje"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Hakemiston \"%s\" luonti epäonnistui: %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id tarvitsee parametrin\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file tarvitsee parametrin\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id tarvitsee parametrin\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file tarvitsee parametrin\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Hakemiston \"%s\" luonti epäonnistui: %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Hakemiston \"%s\" luonti epäonnistui: %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Xft:n käynnistys epäonnistui."
 
index 5bfd4c7..934f52e 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-06-11 23:06+0200\n"
 "Last-Translator: Julien Louis <leonptitlouis@wanadoo.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -23,78 +23,182 @@ msgstr "Aller 
 msgid "Desktops"
 msgstr "Bureaux"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Restaurer"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximiser"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Dérouler"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Enrouler"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Tous les bureaux"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Emplacement"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Toujours au premier plan"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Toujours en arrière plan"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Envoyer vers le bureau"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Menu de la fenêtre"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Iconifier"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Mettre au premier plan"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Mettre en arrière plan"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Décorer"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Déplacer"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Redimensionner"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Fermer"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Impossible de créer le répertoire '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id requiert un argument\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file requiert un argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id requiert un argument\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file requiert un argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Impossible de créer le répertoire '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Impossible de créer le répertoire '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Impossible d'initialiser Xft."
 
index 98d26de..f097d68 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2006-09-05 16:45+0100\n"
 "Last-Translator: Daniel Radetic <drade@boobah.info>\n"
 "Language-Team: None\n"
@@ -23,78 +23,182 @@ msgstr "Odi na..."
 msgid "Desktops"
 msgstr "Radne površine"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Ponovno uspostavi"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maksimiziraj"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Spusti dolje"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Povuci gore"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Sve radne površine"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Razina"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Uvijek na vrhu"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normalno"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Uvijek na dnu"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Pošalji na radnu površinu"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Meni klijenta"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Ikonificiraj"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Podigni na vrh"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Spusti na dno"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Dekoriraj"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Pomakni"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Promjeni veličinu"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Zatvori"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Nemogu napraviti direktorij '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id zahtjeva argument\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file zahtjeva argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id zahtjeva argument\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file zahtjeva argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Nemogu napraviti direktorij '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Nemogu napraviti direktorij '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Nemogu pokrenuti Xft."
 
index d59beee..f06e942 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.0\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2003-11-20 15:00+0900\n"
 "Last-Translator: Yukihiro Nakai <nakai@gnome.gr.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
@@ -23,78 +23,182 @@ msgstr "移動する..."
 msgid "Desktops"
 msgstr "デスクトップ"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "リストア"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "最大化"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "ロールダウン"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "ロールアップ"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "すべてのデスクトップ"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "レイヤー"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "常に最上位にする"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "ノーマル"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "常に最下位にする"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "デスクトップに送る"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "クライアントメニュー"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "アイコン化"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "最上位に上げる"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "最下位に下げる"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "装飾"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "移動"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "リサイズ"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "閉じる"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "ディレクトリ'%s'を作れません: %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id には引数が必要です\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file には引数が必要です\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id には引数が必要です\n"
@@ -107,3 +211,13 @@ msgstr "--sm-save-file には引数が必要です\n"
 #, c-format
 msgid "Unable to make directory '%s': %s"
 msgstr "ディレクトリ'%s'を作れません: %s"
+
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "ディレクトリ'%s'を作れません: %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
index db4fffc..ef99c0c 100644 (file)
--- a/po/no.po
+++ b/po/no.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-03-29 18:33:39+0200\n"
 "Last-Translator: Øyvind Albrigtsen\n"
 "Language-Team: None\n"
@@ -23,78 +23,182 @@ msgstr "G
 msgid "Desktops"
 msgstr "Skrivebord"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Tilbakestill"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximer"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Rull ned"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Rull opp"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Alle skrivebord"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Lag"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Alltid øverst"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Alltid nederst"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Send til"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Klient meny"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimer"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Legg øverst"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Legg nederst"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Dekorer"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Flytt"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Endre størrelse"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Lukk"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Kunde ikke lage katalogen '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id krever et argument\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file krever et argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id krever et argument\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file krever et argument\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Kunde ikke lage katalogen '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Kunde ikke lage katalogen '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Kunde ikke initialisere Xft."
 
index 1e68621..d02b797 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-09-07 21:17+0200\n"
 "Last-Translator: Madej <madej@afn.no-ip.org>\n"
 "Language-Team: NONE\n"
@@ -23,78 +23,182 @@ msgstr "Przejdź..."
 msgid "Desktops"
 msgstr "Pulpit"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Przywróć"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maksymalizuj"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Rozwiń"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Zwiń"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Wszystkie pulpity"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Warstwa"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Zawsze na wierzchu"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normalnie"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Zawsze pod spodem"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Wyślij na pulpit"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Menu klienta"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimalizuj"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Wyślij na wierzch"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Wyślij na spód"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Obramówka"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Przesuń"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Zmień rozmiar"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Zamknij"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Nie mogę utworzyć katalogu '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id wymaga argumentu\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file wymaga argumentu\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id wymaga argumentu\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file wymaga argumentu\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Nie mogę utworzyć katalogu '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Nie mogę utworzyć katalogu '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Błąd przy inicjalizacji Xft."
 
index 898baad..80d9c84 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-03-29 18:33:39+0200\n"
 "Last-Translator: Gonçalo Ferreira <gonsas@gmail.com>\n"
 "Language-Team: None\n"
@@ -23,78 +23,182 @@ msgstr "Ir at
 msgid "Desktops"
 msgstr "Áreas de trabalho"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Restaurar"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximizar"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Desenrolar"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Enrolar"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Todas as áreas de trabalho"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Camada"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Sempre em cima"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Sempre no fundo"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Enviar para área de trabalho"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Menu de clientes"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimizar"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Elevar ao topo"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Baixar ao fundo"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Decorar"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Mover"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Redimensionar"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Fechar"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Incapaz de criar o directório '%s': %s "
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id requer um argumento\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file requer um argumento\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id requer um argumento\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file requer um argumento\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Incapaz de criar o directório '%s': %s "
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Incapaz de criar o directório '%s': %s "
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Incapaz de inicializar Xft."
 
index bafde83..8b50017 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-04-23 13:00+0300\n"
 "Last-Translator: Alexey Remizov <alexey@remizov.pp.ru>\n"
 "Language-Team: Russian <gnome-cyr@gnome.org>\n"
@@ -23,78 +23,182 @@ msgstr "Перейти..."
 msgid "Desktops"
 msgstr "Рабочие места"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Восстановить"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Развернуть на весь экран"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Раскрутить"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Скрутить"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Все рабочие места"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Расположить"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Всегда на переднем плане"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Обычно"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Всегда на заднем плане"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Переместить на рабочее место"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Меню клиента"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Свернуть"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Поднять на передний план"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Опустить на задний план"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Убрать оформление"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Переместить"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Изменить размер"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Закрыть"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Невозможно создать каталог '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id требует параметр\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file требует параметр\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id требует параметр\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file требует параметр\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Невозможно создать каталог '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Невозможно создать каталог '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Не удалось инициализировать Xft."
 
index 906b27c..8cfc803 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Openbox-3.3rc2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2006-08-25 00:52+0200\n"
 "Last-Translator: Jozef Riha <jose1711@gmail.com\n"
 "Language-Team: Slovak <LL@li.org>\n"
@@ -23,78 +23,182 @@ msgstr "Prejsť na..."
 msgid "Desktops"
 msgstr "Plochy"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Obnoviť"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximalizovať"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Rozvinúť"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Zvinúť"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Všetky plochy"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Vrstva"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Vždy navrchu"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normálna"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Vždy dole"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Poslať na plochu"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Menu klienta"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Do ikony"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Presunúť navrch"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Presunúť naspodok"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Dekorácia"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Presunúť"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Zmena veľkosti"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Zavrieť"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Nebolo možné vytvoriť adresár '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id vyžaduje parameter\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file vyžaduje parameter\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id vyžaduje parameter\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file vyžaduje parameter\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "Nebolo možné vytvoriť adresár '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Nebolo možné vytvoriť adresár '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Nepodarilo sa inicializovať Xft."
 
index dfc3ff9..2427788 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: openbox 3.3\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2004-03-29 18:33:39+0200\n"
 "Last-Translator: Mikael Magnusson <mikachu@icculus.org>\n"
 "Language-Team: None\n"
@@ -23,78 +23,182 @@ msgstr "G
 msgid "Desktops"
 msgstr "Skrivbord"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "Återställ"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "Maximera"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "Rulla ner"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "Rulla upp"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "Alla skrivbord"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "Lager"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "Alltid överst"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "Normal"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "Alltid underst"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "Skicka till"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "Klientmeny"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "Minimera"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "Lägg överst"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "Lägg underst"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "Dekorera"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "Flytta"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "Ändra storlek"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "Stäng"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "Kunde inte skapa katalogen '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id kräver ett argument\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file kräver ett argument\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id kräver ett argument\n"
@@ -108,6 +212,16 @@ msgstr "--sm-save-file kr
 msgid "Unable to make directory '%s': %s"
 msgstr "Kunde inte skapa katalogen '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "Kunde inte skapa katalogen '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "Kunde inte initialisera Xft."
 
index c392fb4..23a4859 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: openbox 3.3rc2\n"
-"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2007-03-25 13:41-0400\n"
+"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
+"POT-Creation-Date: 2007-04-24 03:05-0400\n"
 "PO-Revision-Date: 2006-03-01 12:00+0800\n"
 "Last-Translator: Wei-Lun Chao <william.chao@ossii.com.tw>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -24,78 +24,182 @@ msgstr "到那裡去..."
 msgid "Desktops"
 msgstr "桌面"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Restore"
 msgstr "還原"
 
-#: openbox/client_menu.c:78
+#: openbox/client_menu.c:76
 msgid "Maximize"
 msgstr "最大化"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll down"
 msgstr "向下捲動"
 
-#: openbox/client_menu.c:84
+#: openbox/client_menu.c:82
 msgid "Roll up"
 msgstr "向上捲動"
 
-#: openbox/client_menu.c:146
+#: openbox/client_menu.c:144
 msgid "All desktops"
 msgstr "所有桌面"
 
-#: openbox/client_menu.c:170
+#: openbox/client_menu.c:168
 msgid "Layer"
 msgstr "圖層"
 
-#: openbox/client_menu.c:175
+#: openbox/client_menu.c:173
 msgid "Always on top"
 msgstr "最上層"
 
-#: openbox/client_menu.c:180
+#: openbox/client_menu.c:178
 msgid "Normal"
 msgstr "一般"
 
-#: openbox/client_menu.c:185
+#: openbox/client_menu.c:183
 msgid "Always on bottom"
 msgstr "最下層"
 
-#: openbox/client_menu.c:188
+#: openbox/client_menu.c:186
 msgid "Send to desktop"
 msgstr "傳送到桌面"
 
-#: openbox/client_menu.c:192
+#: openbox/client_menu.c:190
 msgid "Client menu"
 msgstr "客戶端選單"
 
-#: openbox/client_menu.c:205
+#: openbox/client_menu.c:199
 msgid "Iconify"
 msgstr "最小化"
 
-#: openbox/client_menu.c:222
+#: openbox/client_menu.c:216
 msgid "Raise to top"
 msgstr "提到最上層"
 
-#: openbox/client_menu.c:226
+#: openbox/client_menu.c:220
 msgid "Lower to bottom"
 msgstr "降到最下層"
 
-#: openbox/client_menu.c:239
+#: openbox/client_menu.c:233
 msgid "Decorate"
 msgstr "裝飾"
 
-#: openbox/client_menu.c:245
+#: openbox/client_menu.c:239
 msgid "Move"
 msgstr "移動"
 
-#: openbox/client_menu.c:249
+#: openbox/client_menu.c:243
 msgid "Resize"
 msgstr "重新調整大小"
 
-#: openbox/client_menu.c:255
+#: openbox/client_menu.c:249
 msgid "Close"
 msgstr "關閉"
 
+#: openbox/openbox.c:106
+msgid "Couldn't set locale from environment."
+msgstr ""
+
+#: openbox/openbox.c:114
+#, fuzzy, c-format
+msgid "Unable to change to home directory (%s): %s"
+msgstr "無法製作目錄 '%s': %s"
+
+#: openbox/openbox.c:165
+msgid "X server does not support locale."
+msgstr ""
+
+#: openbox/openbox.c:167
+msgid "Cannot set locale modifiers for the X server."
+msgstr ""
+
+#: openbox/openbox.c:229
+msgid "Unable to find a valid config file, using some simple defaults"
+msgstr ""
+
+#: openbox/openbox.c:349
+#, c-format
+msgid "Restart failed to execute new executable '%s': %s"
+msgstr ""
+
+#: openbox/openbox.c:389 openbox/openbox.c:391
+msgid "Copyright (c)"
+msgstr ""
+
+#: openbox/openbox.c:400
+msgid ""
+"Syntax: openbox [options]\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:401
+msgid ""
+"Options:\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:402
+msgid ""
+"  --reconfigure       Tell the currently running instance of Openbox to\n"
+"                      reconfigure (and then exit immediately)\n"
+msgstr ""
+
+#: openbox/openbox.c:406
+msgid "  --config-file FILE  Specify the file to load for the config file\n"
+msgstr ""
+
+#: openbox/openbox.c:409
+msgid "  --sm-disable        Disable connection to session manager\n"
+msgstr ""
+
+#: openbox/openbox.c:411
+#, fuzzy
+msgid "  --sm-client-id ID   Specify session management ID\n"
+msgstr "--sm-client-id 要求引數\n"
+
+#: openbox/openbox.c:412
+msgid "  --sm-save-file FILE Specify file to load a saved sessionfrom\n"
+msgstr ""
+
+#: openbox/openbox.c:415
+msgid "  --replace           Replace the currently running window manager\n"
+msgstr ""
+
+#: openbox/openbox.c:417
+msgid "  --help              Display this help and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:418
+msgid "  --version           Display the version and exit\n"
+msgstr ""
+
+#: openbox/openbox.c:419
+msgid ""
+"  --sync              Run in synchronous mode (this is slow and meant for\n"
+"                      debugging X routines)\n"
+msgstr ""
+
+#: openbox/openbox.c:422
+msgid "  --debug             Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:423
+msgid "  --debug-focus       Display debugging output\n"
+msgstr ""
+
+#: openbox/openbox.c:424
+#, c-format
+msgid ""
+"\n"
+"Please report bugs at %s\n"
+"\n"
+msgstr ""
+
+#: openbox/openbox.c:455
+#, fuzzy
+msgid "--config-file requires an argument\n"
+msgstr "--sm-save-file 要求引數\n"
+
 #: openbox/session.c:124
 msgid "--sm-client-id requires an argument\n"
 msgstr "--sm-client-id 要求引數\n"
@@ -109,6 +213,16 @@ msgstr "--sm-save-file 要求引數\n"
 msgid "Unable to make directory '%s': %s"
 msgstr "無法製作目錄 '%s': %s"
 
+#: openbox/session.c:343
+#, fuzzy, c-format
+msgid "Unable to save the session to '%s': %s"
+msgstr "無法製作目錄 '%s': %s"
+
+#: openbox/session.c:433
+#, c-format
+msgid "Error while saving the session to '%s': %s"
+msgstr ""
+
 #~ msgid "Couldn't initialize Xft."
 #~ msgstr "無法初始化 Xft。"
 
index 600fc33..a247673 100644 (file)
@@ -2,7 +2,7 @@
 
    color.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
@@ -49,7 +49,7 @@ RrColor *RrColorParse(const RrInstance *inst, gchar *colorname)
     xcol.blue = 0;
     xcol.pixel = 0;
     if (!XParseColor(RrDisplay(inst), RrColormap(inst), colorname, &xcol)) {
-        g_warning("unable to parse color '%s'", colorname);
+        g_message("Unable to parse color '%s'", colorname);
         return NULL;
     }
     return RrColorNew(inst, xcol.red >> 8, xcol.green >> 8, xcol.blue >> 8);
@@ -191,7 +191,8 @@ void RrReduceDepth(const RrInstance *inst, RrPixel32 *data, XImage *im)
         }
         break;
     default:
-        g_warning("your bit depth is currently unhandled\n");
+        g_error("Your bit depth is currently unhandled\n");
+        
     }
 }
 
@@ -228,7 +229,8 @@ static void swap_byte_order(XImage *im)
             case 1:
                 break;
             default:
-                g_warning("Your bit depth is currently unhandled");
+                g_error("Your bit depth (%i) is currently unhandled",
+                        im->bits_per_pixel);
             }
         }
         di += im->bytes_per_line;
@@ -289,7 +291,7 @@ void RrIncreaseDepth(const RrInstance *inst, RrPixel32 *data, XImage *im)
         }
         break;
     case 8:
-        g_warning("this image bit depth is currently unhandled");
+        g_error("This image bit depth (%i) is currently unhandled", 8);
         break;
     case 1:
         for (y = 0; y < im->height; y++) {
@@ -304,7 +306,8 @@ void RrIncreaseDepth(const RrInstance *inst, RrPixel32 *data, XImage *im)
         }
         break;
     default:
-        g_warning("this image bit depth is currently unhandled");
+        g_error("This image bit depth (%i) is currently unhandled",
+                im->bits_per_pixel);
     }
 }
 
index 703fc3e..26fa7af 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    color.h for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index e91925b..266a008 100644 (file)
@@ -2,7 +2,7 @@
 
    font.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index 03f960c..26affc9 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    font.h for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index a83636f..4d81e4b 100644 (file)
@@ -2,7 +2,7 @@
 
    geom.h for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index 620848b..d3a0995 100644 (file)
@@ -2,7 +2,7 @@
 
    gradient.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index 50a22c5..8613f0c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    gradient.h for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index eafa696..0e24156 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    icon.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
index aa30ee6..f878933 100644 (file)
@@ -2,7 +2,7 @@
 
    image.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
index c373ce0..1c53596 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    image.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
index a9b70ff..91f9db7 100644 (file)
@@ -2,7 +2,7 @@
 
    instance.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   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
@@ -134,7 +134,7 @@ void RrPseudoColorSetup (RrInstance *inst)
     _ncolors = RrPseudoNcolors(inst);
 
     if (_ncolors > 1 << inst->depth) {
-        g_warning("PseudoRenderControl: Invalid colormap size. Resizing.\n");
+        g_message("Invalid colormap size. Resizing.");
         inst->pseudo_bpc = 1 << (inst->depth/3) >> 3;
         _ncolors = 1 << (inst->pseudo_bpc * 3);
     }
index 8a15f42..324f061 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    instance.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
index 11e589b..10ce8d0 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    mask.c for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index e6a158f..4dc8503 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    mask.h for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index a112057..8c39fcd 100644 (file)
@@ -2,7 +2,7 @@
 
    render.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index c867cf7..6cf41c1 100644 (file)
@@ -2,7 +2,7 @@
 
    test.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
    Copyright (c) 2003        Derek Foreman
 
    This program is free software; you can redistribute it and/or modify
index c034498..b30e2a8 100644 (file)
@@ -96,15 +96,15 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
     if (name) {
         db = loaddb(theme, name, &path);
         if (db == NULL) {
-            g_warning("Failed to load the theme '%s'\n"
-                      "Falling back to the default: '%s'",
-                      name, DEFAULT_THEME);
+            g_message("Unable to load the theme '%s'", name);
+            g_message("Falling back to the default theme '%s'",
+                      DEFAULT_THEME);
         }
     }
     if (db == NULL) {
         db = loaddb(theme, DEFAULT_THEME, &path);
         if (db == NULL) {
-            g_warning("Failed to load the theme '%s'.", DEFAULT_THEME);
+            g_message("Unable to load the theme '%s'", DEFAULT_THEME);
             return NULL;
         }
     }
index 04ea28f..f303deb 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    aspect.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
index 937f016..6e32f46 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    fullscreen.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
index 9146d7d..3b37cec 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    grav.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
index 6c62872..4cc3dc6 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
-   modal.c for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   grouptran.c for the Openbox window manager
+   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
index 650a32a..10e89a5 100644 (file)
@@ -1,19 +1,19 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
-icons.c for the Openbox window manager
-Copyright (c) 2003        Ben Jansens
+   icons.c for the Openbox window manager
+   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
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   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
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-See the COPYING file for a copy of the GNU General Public License.
+   See the COPYING file for a copy of the GNU General Public License.
 */
 
 #include <X11/Xlib.h>
index f474caf..08c6c18 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    modal.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
index f7f7c69..ff8316f 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    modal2.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
index 0ea11a3..a4c38f8 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    modal3.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
index 4d8fd47..fa920bf 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    noresize.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
index 042aa0f..2b71ffa 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    override.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
diff --git a/tests/positioned.c b/tests/positioned.c
new file mode 100644 (file)
index 0000000..9b1f731
--- /dev/null
@@ -0,0 +1,73 @@
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+   positioned.c for the Openbox window manager
+   Copyright (c) 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
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
+#include <string.h>
+#include <stdio.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+int main (int argc, char **argv) {
+    Display    *display;
+    Window      win;
+    XEvent      report;
+    int         x=200,y=200,h=100,w=400,s;
+    XSizeHints *size;
+
+    display = XOpenDisplay(NULL);
+
+    if (display == NULL) {
+        fprintf(stderr, "couldn't connect to X server :0\n");
+        return 0;
+    }
+
+    win = XCreateWindow(display, RootWindow(display, 0),
+                        x, y, w, h, 0, CopyFromParent, CopyFromParent,
+                        CopyFromParent, 0, NULL);
+    XSetWindowBackground(display,win,WhitePixel(display,0)); 
+
+    size = XAllocSizeHints();
+    size->flags = PPosition;
+    XSetWMNormalHints(display,win,size);
+    XFree(size);
+
+    XFlush(display);
+    XMapWindow(display, win);
+
+    XSelectInput(display, win, StructureNotifyMask | ButtonPressMask);
+
+    while (1) {
+        XNextEvent(display, &report);
+
+        switch (report.type) {
+        case ButtonPress:
+            XUnmapWindow(display, win);
+            break;
+        case ConfigureNotify:
+            x = report.xconfigure.x;
+            y = report.xconfigure.y;
+            w = report.xconfigure.width;
+            h = report.xconfigure.height;
+            s = report.xconfigure.send_event;
+            printf("confignotify %i,%i-%ix%i (send: %d)\n",x,y,w,h,s);
+            break;
+        }
+
+    }
+
+    return 1;
+}
index f0fddf6..a0068ae 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
-   fullscreen.c for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   strut.c for the Openbox window manager
+   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
index 7c4f99b..13a1e9a 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
-   noresize.c for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   title.c for the Openbox window manager
+   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
index c238e85..92eb5e5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    urgent.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