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 3a68ae62fdc5920e135cd0a9156a949713778a49..d0082370ab97c9374867575f2aec13d89474d89b 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 6ee333fb6748c2a7d3c7257232420c535b25fcc3..fbcb5a63f5fd7f4801b5edbc4a71109b5bc7554d 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 c83eebac6a212b88bf79b6fa4ad1f2fdf5414461..6a5b10fb6cbe143e9aa9321485ba661deded1b60 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 579a5dd1777fb004e574b00b3a4783f24682b3a9..dc893b748097f8594781acd46c8d1888bb4a8e93 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 eee0dd60a0ad5e55339d97803c58551092478aaf..559a1a001a20fc7238a7662cd6ae494b4b394935 100644 (file)
@@ -6,4 +6,4 @@ Exec=openbox
 X-GNOME-WMName=Openbox
 
 # our config tool
-ConfigExec=obconf
+ConfigExec=obconf2
index b2b6be237e9d4edb41b1bd2170cc96e0dc132e28..b2c22d4de6ecc4978305fd7a23260bf869fccb19 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 1ca631fcb087b4755a24fc9f95cd878d559ac332..20edc16096253ef213bc39c0896d5ab347df8e3e 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 bf56620bdbfea953f974b86c24c23ec9f841f4ad..d71caf0be2778e5aae991591e061619418ea6e6e 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 2eae1db5f719dda94b7799a7bfeaa94ab22e3803..fc7b36e191b9a16727abd314c40f685cf51ab3fa 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 db49f56cd8f09e01727f25142caaa57f043daaff..e51f7133c0b1fbb27893560893c1057990533df5 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 b1bc081fe93e657cee398045828b53ee12b761e7..4039146041e6dc945b6aea1f4375364df1a32116 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 8e7914029b9d26c8ab507bdea07312a72735c2c9..d5e7f4ce4816ee266c2bd04b6f8f5ffe1c3a50fc 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 38722f421b79824c79ac9721dfaa01e50e80b97f..69f5aa5fd65f0311cc0eadf673fb2ac22b447066 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 3c6d8c6ce0b23fb16ac6e27bba680def9efa505a..adf3ff050e1f38b05f3ea652d91b1878710d4150 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 91ebfc471488ae60f2dac30f855dc2b943e1c2ee..420e898e82ca36cf794415231ba539ee82bbeb13 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 66b2b1d7996496d82c58e3d44c0f2f5c283849b9..5fbb3a631f9bd3cfd1c36b7a559ce2317a26d72f 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 63956cf12d12b1fe21a084818ae9814defeee418..860cd505d604a241311d14f9180a3a653f704697 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 f3e80b99df9070b1b08b635b59b07c4a8d4bc588..f67ea906dd7280d0a5dcc88444791847f7c67444 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 caf0f054058cfd9b1b6edcf0c02df5094e043183..fe145022808d8cee35748baee805726009444556 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 d406f8f166c9c9d6c5434f20344e7ba8bed681ba..a2b392dab2fd27af22d071770c89c50c90ccb8cb 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 851a68edd7f4a1ca285ef99de7f8f08fd7ed5377..5ee071e6540ecba46abf9b3f963f09dc84a2bc83 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 70e1127290657c54558e6ce23bbae33ccdf5c4be..2e191f1c5a883c5f5273f326c6f28dfc1ac45757 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 b2ded2d2191c2dff78b5f50efb7e91e4d32e7cf5..051747c3f163789553c4beafc7e21098148de12b 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 5bb0e2a09f4971d207bbde7e57a130e3a2da17b1..2d807aae23fc7c755431b306882a50a76b910a7a 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
@@ -211,6 +211,13 @@ static Window event_get_window(XEvent *e)
                 window = None;
             }
         } else
+#endif
+#ifdef SYNC
+        if (extensions_sync &&
+            e->type == extensions_sync_event_basep + XSyncAlarmNotify)
+        {
+            window = None;
+        } else
 #endif
             window = e->xany.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 4221e54d9e9685d340108183f550fca4e779ef16..4fdf292e511e3f41c025d11a0c919bcdc0390c21 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 32ad00123302508370daa732bf0125c89dfb35b2..5b64bc64613299251178bb32fd07f376ef40f18c 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 a097957f405b997256b430434b0466eb63c4bb91..3fbac871492415c9ec9d94aca8f40c53187ed3d9 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 31fa0ef9b320d40cfe13f3d1d85175191bbad011..4c663c3f124eabd30a223489263f1f24b6eb2120 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 5ed9977cf6083f304d3e3b8b30fa063d624fc598..b838ab559722881ca28d78eb53c84f31b45297a7 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 a669f20ddd138c6c021b06b020e377dd673c62f9..eb223f64737e90ce0e0ef15eda752ba37081e48c 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 0d04436630fa467c3f0d656c270d96dd43b371c7..b5372647fd85c811c9f18a270508cd87daf398c1 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 b2273f895a0fc9ce4baef64933dd5d8331cca9c2..f60039c80d5e6a2c850c3fb5fa2e87f67a4a2e5c 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 a039115e60d71238d514c2ef386e3585f0c18d80..162fa578fc9071d87d946389d50f0c7541816ffb 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 e77228c15545f2dcace0f27209a4f4d368abb58c..e9ecf9d266a515c72bd2b9acbe87a3cfeeb54942 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 b81254a3972626cb1e187cd5ae23e953a4b72613..e7bd41d957deb1a75ee05587c9195a6a9681a41b 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 088d2d6c792f2691f9438ac6deb4472a5d128aca..4b5aec3be993d5fa886ab03f41dbd0fe09a1d4c7 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 937ebfd7ce3a1ff333a3321a02f6b1218aadd321..f70b84b742c40f0076e4cdf470e8e6c8ef213d30 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 d9c2604ac63bb1f5043f80d0b221594c8acff8ad..844b629bef48c75ccab8f5d6a326e7b404d9bcf5 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 2d0a5e947fe23f80eca3dff87ca9d8c02a101efb..71164ac34d2aa122eb613e31a37b1d33d3f4ba79 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 883d04b4ceaac369a91c9acb5556559a2792d728..23b93684cc197e6745597b04ae8cf9a6f9ad1146 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 e033601a307fca90157649a231292f32b9da37c1..e86fb4c6a47f6edee9b0c867e0c620c1d4e208e9 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 f59ef137fed112075c9741ff209bf5562067f9b3..c3be065959a78c9286b848d4f2042236f569cd63 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 62261dde0af6e52dd2b215aea6a12f8c659e8cd2..2af81629e429cc6abeb880c8e59dc0d883f09435 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 475918501f3fb2f2666c193e02ab9de4606009b8..03f00359e01f2e476e433d3f0f7f357a8c6d4b16 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 e2436810791b717e3221a71a6840ca6efe194c07..311701a7aa33cd5a4bd5d45474dc0d7356fee780 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 2e54ef88cde6dd167e8a82ad9b53948c3b951357..4cb2083dc1c7294b4d73114d322a136594beea22 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 9e1fc269a3c06f512314cdc0f128a1c25ab7d81c..1da94b3411a3a815f1f3244d28094ea4846d61f1 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 81eccfb8385b5bf9146c9eca42da2adc044be0b3..27172d525c614c7933b297d1f9108e3947c7edd6 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 a570a16a446a74b2a1bb6521f3c1bd85145371a3..38e01da893002fbc5156ae4317f4e84fce637a07 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 6cab52262dcea9737332d42b88d523bf952a1336..39fdd45daefaba48a5f67692be79c3bb5764305c 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 67ab08c0d84e0eaab4e95bbc77da7b998fef08dc..410b554462bd88137c803ebf5482643f7ff9b987 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 b4c8ccbd8d4ed18abe000fcef928f6bf82976582..e7a9d396c0f4ef43f3ed4c5a2294e6eaecfe3b72 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 4ad1c70aeff30e758cd25f89d04ab880d3642f6a..74842614c31eb7024de22061ac852fdf9ab0d398 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 4c01866611efa8e2d39e476b8897858a1f0492f7..03dcdab52ab87d4f6390155d0c9490863c1297b9 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 4717cbfc3c3ca98ca962d4a7f8fb093a6e562b51..5614ecf3e002d55f06109c30e13a3330503e9bef 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 2434ccbc303d2e234c5ac83c4d183f56b63f989b..e2f1d4e40c405e540d2a7da89916165a2951433e 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 88619e77f073fbf493ec96e7a741172af3277c97..9af23be0d88bfe291139cfec9b4bf6794daf338b 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 847f264fb04055ecbcba289dea19ff1dc145bc68..609c30286a030741f8748b5b2c480e5636f9fc61 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 655fd07b9b8cb02903698d0b9072116972dbc606..49eeef9e42a48483131d6670edda49e2dfbccb8c 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 1d3445f822049a6cb540edd41f6f3e7f273e835c..09ca25ce65f198e8b5fbea4068fca1c81b3973e7 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 bda7760136508530e7eb75ab0d195a119795ce67..fc2934467b3c5ab509595979f4cbc595b65c1086 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 39108550145ea3581646f9f5e7148f40d693fca6..b961bbeb9c88962c76e463dab2ee016cce7e0fc8 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 c0569c29406eadd79027b0d7631b8fa4346e4a62..71748d65277701dc383711c89733aeb683b66f42 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 07a2cae02dda036716a621feb724094d4d52f6d8..970cde34ee2684639b134eff851b6ecfd32431c7 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 01bb56e2fa229540388850e2fb974788ba5bb28a..62cff4b75c647e2c85863bd748d12f098f56e8c7 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 75198cafb06f038066d7d5bdf9c7c1fdd5aa1146..b2c18a1fa3778c48eb1e031e7f6e2715a3c55ce2 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 d9aee95260b85fe082780371124412d9eaa6f573..32d5a0fcf589812f1b6d7adf58a928b805058ea5 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 a0af4c044151bc291991fca1d70411711b894e8f..2391f650aee80e73a456c0924e3e209bd55d94a5 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 5b5723e591ecf545597273e32e64b95582a1224a..03cb752b043acb03050aef77b9a2da191ad0e79e 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 746b786e93eae3c4c099dda9681a1a60e477d76c..82b87a58c11c02549aadeeebbb9c55638b6445db 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 b1c0edbf02b537dad239401a5654902ed6d94109..a26017e512065fe2b5926dcea603760e578a40b6 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 6b46e98bc93cba3fd50bef211c2ea743c10c5417..8249514e10e5fdd47051f4abe96a1fe5f2aa6cda 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 b9024150861d000e677de186109bccba6341681d..3de593b8f6765e11bb7a49a8258fa06c2729496d 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 29573b0a2d207828a2f76609d8ca89cffac6caf1..de1aa5a8e8f855d36be5aa943ddad3a699fa7a2b 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 b481ab260ee54ee1486e87262ff57793d1268047..9b8924ca1a2586aa48863e4a03c7d8478fc9a9f8 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 7039d8c4be17ddaed7ce5b0a4fcbebacddf71419..7aba2e453841336450e30e563c07f3f48a6a44ac 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 7fbcd0f4e99564b4eac609d7e9a071637d8ee819..05231b899a4c82bb8d474381e25baae9f96e5df4 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 40384e4d6a940be83b53d04bc2ca791d75810222..f6270ad2b9a2b9c0b576184a441304cbe13b1ee2 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 6253d1d9a6796ac14e1659f3840c5cea0dba18fc..9cdf4bf8f56f07dbb72e685f40b74bde85e3f4dd 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 7e11bc95ad7d1d6a8a25ab40ab3a53c31e8b92aa..16da36f05496480c244cd743afe9bfa10e61bcb2 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 877064be734e91a55635ddb042abd32eb471a063..529e5687d0d216a595bbf7d27d44f326d372edff 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 5ec6bb13656f6898952f779069fa6cedd48eaabc..1093552a9d7c0c7b934261841f15e1275f3cec4a 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 c90bac2983913f69f013ade2747e09aa1e743ad8..3633d957fff67c9778a30dbd8cfe0175f9cb7dc9 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 5bfd4c7c473bfc260062e5cd4dd2fd8dfd37eb9f..934f52e833e06ac5acde9ab2c2176a72f29edc64 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 98d26de0a955b39010dc397f5f49a8ce7816f2e5..f097d684100aab66e6cd8b60cf4cdc5022525988 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 d59beeec8362c43af523af53b718137919cd6ed5..f06e942ed93b970927d71995e15ddc4bc67f8602 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 db4fffcdeb36530753d4d70b96c192e9daf6c823..ef99c0caf4ec0d37276136ad5fd45c4f13cafd14 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 1e686216d44bd1bb50c053827a78e858c100dc23..d02b79778553947ef03db345ef63dc76fd29602b 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 898baad51568639641cc7852a5981f2fac681537..80d9c844d6ae14528a5dc346db0f50d6c4f99ad9 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 bafde831e10fd528b23c2343187a3be81e34ef52..8b50017fef2e8370a32256a598d22164c172b329 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 906b27c5d36766d8e72972f1216d69c3e1a77c40..8cfc8032cd07b9dd090f1b9e773e565eba18b270 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 dfc3ff960fc9e0974df1c35c659a863a4d67c569..2427788773d7d9b976ae26f15f9a427be25f95fb 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 c392fb478b3d764216eaccb1ea2ec927da1b405e..23a4859bba95af753c2ba69cb8713778faec6782 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 600fc335553299ab8f6efdb0d38a489d60ea9e8a..a247673f4532ef9bfe69f0eade9750909996b71d 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 703fc3e3e0a17f21508818b2f68af9fd6b355d75..26fa7afe61becc2bde9125d83c7b91a9c370f97b 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 e91925b5090f745984e3cf096b6fc5d6c7adc54a..266a00861a367f081f509a04fc493d3aeb6ebc00 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 03f960c6907dc58a83c789c567b74603d560d753..26affc9e643b3a9a9cc1deac95bbba8e593e29f2 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 a83636f8577c043f42dee688440014fa4f6e8f96..4d81e4b315e8ffe0b3db30af90ccb9b1bf02e204 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 620848b043aac592c7a4091e1be8d9e9361c3911..d3a09955a8b49c953d7c52f3d74f69ac21735e89 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 50a22c5241477cf7d42166210635f5600b4d0bae..8613f0cea563f7a3d35e4f99b2e9b959156a0239 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 eafa69618c5db150693056e561293069f1d940c5..0e241562a40d25f120cb1c98d4c98b39960d93bc 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 aa30ee628f59d0cc927ff62f8f96d72204ed1e8e..f878933274d88a25345c261269e21153abcb6ab6 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 c373ce0916ca59829758fd568fbb1174f09b4dd3..1c53596077873be6649def4cbc05b6a1957a20e9 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 a9b70ffe47987942b1c9cb787576b4ef7f4f7363..91f9db77934ff309d8f8ef05ea67041b21b68d21 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 8a15f423ab0894bd5ea5c90faf5a28ea509f3616..324f061ac5e9eb1e09ab8eaf78f33bd0fceff9c0 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 11e589bc8fec26df53fd6da5113c56289d1ed5d0..10ce8d0f0e14ebcbb01db942773952c5c6a64cb6 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 e6a158fa140216e40d084db3b4bbf2747f57f11a..4dc85031e605fb1689314c3c847bba47b47b5e74 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 a1120570dc304d1ae0174e4d625fbe87eb46353b..8c39fcd249d0a1e86dcae115a500e2ab2fe97747 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 c867cf782b77dc0a4ee6c9bc5eac22ebdac2f7cc..6cf41c1bd1a7c05d2e0254a8577a130a75612726 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 c03449856cf3325225e7d53d69f88260f3a6a792..b30e2a8d35199cbfb625475b2444e05aba6eff74 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 04ea28f298676e61c19adb1ebb5da6d9d61ab4ad..f303deb77f1988a3edc259e5b59a7fc60669ff88 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 937f016fc2dc21932377883e056138c4d5c7d94b..6e32f46d8364d4e49267398bcc30568843f35d4b 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 9146d7dff8e3f18f1eb494e683ab1ff5dfe63fa0..3b37cec655098d615df511bb598dee7b3d695597 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 6c62872ff6b82e31a149e1736637664ca8d151ca..4cc3dc64fef5091cf1faeae36ef3a3066231b3a2 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 650a32a4fffb0aaf3ece40b012172bcf72e3ecc2..10e89a57dbed72e95b0a0203323af42fcbb839f2 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 f474caf2f6015f4ff18f8050df77f914898f945d..08c6c18e0c9d0bfd8f515408f247e36fac582024 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 f7f7c69544538abee9590df4b080aeef481a558e..ff8316f78df12d544737e297ff41d58a0a935b7f 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 0ea11a3fca4fb29356f50aa0f352d6e19f256f95..a4c38f84fe37c6e42becf2ec249f58717c5b6971 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 4d8fd4717adb6a24171e61e8cb08390d6eaa283a..fa920bf1952173f06247ef5b842158f2203f30e2 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 042aa0f110b315880c5d150f0591ea20e8841c8c..2b71ffa9f971a6c7c330f81a56c60ede1651afa0 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 f0fddf6aa3c9564c97c4113ed9a9e29c7cd81305..a0068ae406c47686cd8afed73b96009c09749316 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 7c4f99bc631d1130c2cc3d0e8e6ef3696227e6e3..13a1e9ab70a00942cc97b2e8a88527a578ab3e1a 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 c238e859b73db4a69d1befd440dd0e7449660f7a..92eb5e53114de0d9a523beaa0f3036be5bf3b042 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