[oe] [PATCH][meta-oe 3/3] openbox: update to 3.5.0

Otavio Salvador otavio at ossystems.com.br
Fri Mar 9 16:20:17 UTC 2012


Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---
 .../openbox/openbox/fix-decorations.patch          |   73 -
 .../openbox/openbox/fix-dialog-buttons.patch       |   38 -
 .../openbox/openbox/sync-with-3.4-working.patch    | 2739 --------------------
 .../{openbox_3.4.11.2.bb => openbox_3.5.0.bb}      |   10 +-
 4 files changed, 3 insertions(+), 2857 deletions(-)
 delete mode 100644 meta-oe/recipes-graphics/openbox/openbox/fix-decorations.patch
 delete mode 100644 meta-oe/recipes-graphics/openbox/openbox/fix-dialog-buttons.patch
 delete mode 100644 meta-oe/recipes-graphics/openbox/openbox/sync-with-3.4-working.patch
 rename meta-oe/recipes-graphics/openbox/{openbox_3.4.11.2.bb => openbox_3.5.0.bb} (81%)

diff --git a/meta-oe/recipes-graphics/openbox/openbox/fix-decorations.patch b/meta-oe/recipes-graphics/openbox/openbox/fix-decorations.patch
deleted file mode 100644
index e3489b7..0000000
--- a/meta-oe/recipes-graphics/openbox/openbox/fix-decorations.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-Fix client decorations
-
-Upstream-Status: Pending
-
-diff --git a/openbox/client.c b/openbox/client.c
-index c65e350..1c82763 100644
---- a/openbox/client.c
-+++ b/openbox/client.c
-@@ -1733,8 +1733,20 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig)
-     switch (self->type) {
-     case OB_CLIENT_TYPE_NORMAL:
-         /* normal windows retain all of the possible decorations and
--           functionality, and can be fullscreen */
--        self->functions |= OB_CLIENT_FUNC_FULLSCREEN;
-+           functionality, and can be fullscreen, unless if it can't be resized */
-+        if (self->functions & OB_CLIENT_FUNC_RESIZE)
-+            self->functions |= OB_CLIENT_FUNC_FULLSCREEN;
-+        else {
-+            self->decorations &= ~(OB_FRAME_DECOR_HANDLE |
-+                                   OB_FRAME_DECOR_MAXIMIZE);
-+
-+            self->functions &= ~OB_CLIENT_FUNC_MAXIMIZE;
-+
-+            self->mwmhints.decorations &= ~(OB_MWM_DECOR_HANDLE |
-+                                            OB_MWM_DECOR_MAXIMIZE);
-+
-+            self->mwmhints.functions &= ~OB_MWM_FUNC_MAXIMIZE;
-+        }
-         break;
- 
-     case OB_CLIENT_TYPE_DIALOG:
-diff --git a/openbox/frame.c b/openbox/frame.c
-index 64dd290..fc84f2f 100644
---- a/openbox/frame.c
-+++ b/openbox/frame.c
-@@ -1209,6 +1209,7 @@ static void layout_title(ObFrame *self)
-             firstcon = &self->rightmost;
-         }
- 
-+        self->decorations = self->client->decorations;
-         /* stop at the end of the string (or the label, which calls break) */
-         for (; *lc != '\0' && lc >= config_title_layout; lc+=i) {
-             if (*lc == 'L') {
-@@ -1217,23 +1218,23 @@ static void layout_title(ObFrame *self)
-                     self->label_x = x;
-                 }
-                 break; /* break the for loop, do other side of label */
--            } else if (*lc == 'N') {
-+            } else if (*lc == 'N' && (self->decorations & OB_FRAME_DECOR_ICON)) {
-                 if (firstcon) *firstcon = OB_FRAME_CONTEXT_ICON;
-                 /* icon is bigger than buttons */
-                 place_button(self, lc, bwidth + 2, left, i, &x, &self->icon_on, &self->icon_x);
--            } else if (*lc == 'D') {
-+            } else if (*lc == 'D' && (self->decorations & OB_FRAME_DECOR_ALLDESKTOPS)) {
-                 if (firstcon) *firstcon = OB_FRAME_CONTEXT_ALLDESKTOPS;
-                 place_button(self, lc, bwidth, left, i, &x, &self->desk_on, &self->desk_x);
--            } else if (*lc == 'S') {
-+            } else if (*lc == 'S' && (self->decorations & OB_FRAME_DECOR_SHADE)) {
-                 if (firstcon) *firstcon = OB_FRAME_CONTEXT_SHADE;
-                 place_button(self, lc, bwidth, left, i, &x, &self->shade_on, &self->shade_x);
--            } else if (*lc == 'I') {
-+            } else if (*lc == 'I' && (self->decorations & OB_FRAME_DECOR_ICONIFY)) {
-                 if (firstcon) *firstcon = OB_FRAME_CONTEXT_ICONIFY;
-                 place_button(self, lc, bwidth, left, i, &x, &self->iconify_on, &self->iconify_x);
--            } else if (*lc == 'M') {
-+            } else if (*lc == 'M' && (self->decorations & OB_FRAME_DECOR_MAXIMIZE)) {
-                 if (firstcon) *firstcon = OB_FRAME_CONTEXT_MAXIMIZE;
-                 place_button(self, lc, bwidth, left, i, &x, &self->max_on, &self->max_x);
--            } else if (*lc == 'C') {
-+            } else if (*lc == 'C' && (self->decorations & OB_FRAME_DECOR_CLOSE)) {
-                 if (firstcon) *firstcon = OB_FRAME_CONTEXT_CLOSE;
-                 place_button(self, lc, bwidth, left, i, &x, &self->close_on, &self->close_x);
-             } else
diff --git a/meta-oe/recipes-graphics/openbox/openbox/fix-dialog-buttons.patch b/meta-oe/recipes-graphics/openbox/openbox/fix-dialog-buttons.patch
deleted file mode 100644
index 02486ee..0000000
--- a/meta-oe/recipes-graphics/openbox/openbox/fix-dialog-buttons.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Fix dialog support
-
-Upstream-Status: Pending
-
-diff --git a/openbox/client.c b/openbox/client.c
-index 4d54b38..c65e350 100644
---- a/openbox/client.c
-+++ b/openbox/client.c
-@@ -562,6 +562,14 @@ void client_manage(Window window, ObPrompt *prompt)
-     /* free the ObAppSettings shallow copy */
-     g_free(settings);
- 
-+    /* force dialogs to skip taskbar */
-+    if (self->type == OB_CLIENT_TYPE_DIALOG) {
-+        self->skip_taskbar = TRUE;
-+
-+        gulong state = prop_atoms.net_wm_state_skip_taskbar;
-+        PROP_SET32(self->window, net_wm_state, atom, state);
-+    }
-+
-     ob_debug("Managed window 0x%lx plate 0x%x (%s)\n",
-              window, self->frame->window, self->class);
- 
-@@ -1733,6 +1741,14 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig)
-         /* sometimes apps make dialog windows fullscreen for some reason (for
-            e.g. kpdf does this..) */
-         self->functions |= OB_CLIENT_FUNC_FULLSCREEN;
-+        /* these windows cannot be maximized or minimized*/
-+        self->decorations &= ~(OB_FRAME_DECOR_ICONIFY |
-+                               OB_FRAME_DECOR_MAXIMIZE |
-+                               OB_FRAME_DECOR_HANDLE);
-+
-+        self->functions &= ~(OB_CLIENT_FUNC_ICONIFY |
-+                             OB_CLIENT_FUNC_MAXIMIZE |
-+                             OB_CLIENT_FUNC_RESIZE);
-         break;
- 
-     case OB_CLIENT_TYPE_UTILITY:
diff --git a/meta-oe/recipes-graphics/openbox/openbox/sync-with-3.4-working.patch b/meta-oe/recipes-graphics/openbox/openbox/sync-with-3.4-working.patch
deleted file mode 100644
index 6cd91b9..0000000
--- a/meta-oe/recipes-graphics/openbox/openbox/sync-with-3.4-working.patch
+++ /dev/null
@@ -1,2739 +0,0 @@
-Sync with 3.4-working branch
-
-Upstream-Status: Backport
-
-diff --git a/.gitignore b/.gitignore
-index 907abb9..bac98c7 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -22,6 +22,7 @@ doc/openbox-gnome-session.1
- doc/openbox-kde-session.1
- doc/openbox-session.1
- doc/openbox.1
-+doc/obxprop.1
- libtool
- ltmain.sh
- m4/*.m4
-diff --git a/CHANGELOG b/CHANGELOG
-index 915e315..3ad87e9 100644
---- a/CHANGELOG
-+++ b/CHANGELOG
-@@ -1,3 +1,16 @@
-+3.4.11.2:
-+  * Updated Estonian and Portuguese translations.
-+  * Fix a rare crash involving moving fullscreen windows to different monitors
-+  * Fix a more common crash involving pressing right in a menu
-+
-+3.4.11.1:
-+  * Updated Polish translation.
-+  * Fixed bug #4519 (Incorrect focus in reused windows).
-+  * Lower the default submenu open/hide delay from 200ms to 100ms.
-+  * Fix some more problems with gnome integration.
-+  * Update Clearlooks theme.
-+  * Some other small fixes.
-+
- 3.4.11:
-   * Update Hungarian, Japanese, and Latvian translations.
-   * Make xdg-autostart use the OPENBOX environment by default, so you can use
-diff --git a/Makefile.am b/Makefile.am
-index fe6ef92..e2430e0 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -444,6 +444,7 @@ edit = $(SED) \
- 	-e 's!@version\@!$(VERSION)!' \
- 	-e 's!@configdir\@!$(configdir)!' \
- 	-e 's!@secretbindir\@!$(secretbindir)!' \
-+	-e 's!@libexecdir\@!$(libexecdir)!' \
- 	-e 's!@bindir\@!$(bindir)!'
- 
- data/autostart.sh: $(srcdir)/data/autostart.sh.in Makefile
-@@ -542,6 +543,7 @@ CLEANFILES = \
- 	doc/openbox-session.1 \
- 	doc/openbox-gnome-session.1 \
- 	doc/openbox-kde-session.1 \
-+	doc/obxprop.1 \
- 	data/xsession/openbox-session \
- 	data/xsession/openbox-gnome-session \
- 	data/xsession/openbox-kde-session \
-diff --git a/configure.ac b/configure.ac
-index 1ed2fd2..72445fa 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,5 +1,5 @@
- AC_PREREQ([2.54])
--AC_INIT([openbox], [3.4.11], [http://bugzilla.icculus.org])
-+AC_INIT([openbox], [3.4.11.2], [http://bugzilla.icculus.org])
- AM_INIT_AUTOMAKE
- AC_CONFIG_SRCDIR([openbox/openbox.c])
- 
-@@ -15,9 +15,9 @@ dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
- dnl
- OB_MAJOR_VERSION=3
- OB_MINOR_VERSION=4
--OB_MICRO_VERSION=28
--OB_INTERFACE_AGE=7
--OB_BINARY_AGE=7
-+OB_MICRO_VERSION=30
-+OB_INTERFACE_AGE=9
-+OB_BINARY_AGE=9
- OB_VERSION=$PACKAGE_VERSION
- 
- AC_SUBST(OB_MAJOR_VERSION)
-diff --git a/data/autostart.sh.in b/data/autostart.sh.in
-index eb55558..910e5e8 100644
---- a/data/autostart.sh.in
-+++ b/data/autostart.sh.in
-@@ -22,8 +22,8 @@ if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
- fi
- 
- # Make GTK apps look and behave how they were set up in the gnome config tools
--if test -x /usr/libexec/gnome-settings-daemon >/dev/null; then
--  /usr/libexec/gnome-settings-daemon &
-+if test -x @libexecdir@/gnome-settings-daemon >/dev/null; then
-+  @libexecdir@/gnome-settings-daemon &
- elif which gnome-settings-daemon >/dev/null; then
-   gnome-settings-daemon &
- # Make GTK apps look and behave how they were set up in the XFCE config tools
-diff --git a/data/gnome-wm-properties/openbox.desktop b/data/gnome-wm-properties/openbox.desktop
-index 23e690e..67e49e4 100644
---- a/data/gnome-wm-properties/openbox.desktop
-+++ b/data/gnome-wm-properties/openbox.desktop
-@@ -1,4 +1,5 @@
- [Desktop Entry]
-+Type=Application
- Name=Openbox
- Exec=openbox
- 
-diff --git a/data/rc.xml b/data/rc.xml
-index 9c5424f..1b947b5 100644
---- a/data/rc.xml
-+++ b/data/rc.xml
-@@ -373,6 +373,12 @@
-     <mousebind button="Left" action="Drag">
-       <action name="Resize"><edge>left</edge></action>
-     </mousebind>
-+
-+    <mousebind button="Right" action="Press">
-+      <action name="Focus"/>
-+      <action name="Raise"/>
-+      <action name="ShowMenu"><menu>client-menu</menu></action>
-+    </mousebind>
-   </context>
- 
-   <context name="Right">
-@@ -383,6 +389,12 @@
-     <mousebind button="Left" action="Drag">
-       <action name="Resize"><edge>right</edge></action>
-     </mousebind>
-+
-+    <mousebind button="Right" action="Press">
-+      <action name="Focus"/>
-+      <action name="Raise"/>
-+      <action name="ShowMenu"><menu>client-menu</menu></action>
-+    </mousebind>
-   </context>
- 
-   <context name="Bottom">
-@@ -615,7 +627,7 @@
-        menu is hidden again -->
-   <middle>no</middle>
-   <!-- center submenus vertically about the parent entry -->
--  <submenuShowDelay>200</submenuShowDelay>
-+  <submenuShowDelay>100</submenuShowDelay>
-   <!-- time to delay before showing a submenu after hovering over the parent
-        entry.
-        if this is a negative value, then the delay is infinite and the
-diff --git a/doc/openbox.1.in b/doc/openbox.1.in
-index d508e8c..89183aa 100644
---- a/doc/openbox.1.in
-+++ b/doc/openbox.1.in
-@@ -4,7 +4,7 @@ openbox \(em A minimalistic, highly configurable, next generation window
- manager with extensive standards support. 
- .SH "SYNOPSIS" 
- .PP 
--\fBopenbox\fR [\fB\-\-help\fP]  [\fB\-\-version\fP]  [\fB\-\-replace\fP]  [\fB\-\-reconfigure\fP]  [\fB\-\-restart\fP]  [\fB\-\-sm-disable\fP]  [\fB\-\-sync\fP]  [\fB\-\-debug\fP]  [\fB\-\-debug-focus\fP]  [\fB\-\-debug-xinerama\fP]  
-+\fBopenbox\fR [\fB\-\-help\fP]  [\fB\-\-version\fP]  [\fB\-\-replace\fP]  [\fB\-\-reconfigure\fP]  [\fB\-\-restart\fP]  [\fB\-\-config-file FILE\fP]  [\fB\-\-sm-disable\fP]  [\fB\-\-sync\fP]  [\fB\-\-debug\fP]  [\fB\-\-debug-focus\fP]  [\fB\-\-debug-xinerama\fP]  
- .SH "DESCRIPTION" 
- .PP 
- Openbox is minimalistic, highly configurable, next generation window 
-@@ -70,6 +70,9 @@ reload its configuration.
- If Openbox is already running on the display, tell it to 
- restart. This is useful if you have upgraded Openbox and don't 
- want to restart X. 
-+.IP "\fB\-\-config-file FILE\fP" 10 
-+Use FILE for configuration instead of looking for rc.xml 
-+in the XDG search path. FILE is an absolute path. 
- .IP "\fB\-\-sm-disable\fP" 10 
- Do not connect to the session manager. 
- .IP "\fB\-\-sync\fP" 10 
-@@ -92,4 +95,4 @@ The program's full documentation is available on the website:
- .PP 
- Please report bugs to: \fBhttp://bugzilla.icculus.org/ 
- \fP 
--.\" created by instant / docbook-to-man, Wed 06 Jan 2010, 13:40 
-+.\" created by instant / docbook-to-man, Fri 26 Mar 2010, 01:55 
-diff --git a/doc/openbox.1.sgml b/doc/openbox.1.sgml
-index 275c324..a06d0cf 100644
---- a/doc/openbox.1.sgml
-+++ b/doc/openbox.1.sgml
-@@ -41,6 +41,7 @@ manpage.1: manpage.sgml
-       <arg><option>--replace</option></arg>
-       <arg><option>--reconfigure</option></arg>
-       <arg><option>--restart</option></arg>
-+      <arg><option>--config-file FILE</option></arg>
-       <arg><option>--sm-disable</option></arg>
-       <arg><option>--sync</option></arg>
-       <arg><option>--debug</option></arg>
-@@ -137,6 +138,13 @@ manpage.1: manpage.sgml
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-+        <term><option>--config-file FILE</option></term>
-+        <listitem>
-+          <para>Use FILE for configuration instead of looking for rc.xml
-+            in the XDG search path. FILE is an absolute path.</para>
-+        </listitem>
-+      </varlistentry>
-+      <varlistentry>
-         <term><option>--sm-disable</option></term>
-         <listitem>
-           <para>Do not connect to the session manager.</para>
-diff --git a/openbox/actions.c b/openbox/actions.c
-index 948ac2c..a6a6ea4 100644
---- a/openbox/actions.c
-+++ b/openbox/actions.c
-@@ -47,6 +47,7 @@ struct _ObActionsDefinition {
-     ObActionsRunFunc run;
-     ObActionsInteractiveInputFunc i_input;
-     ObActionsInteractiveCancelFunc i_cancel;
-+    ObActionsShutdownFunc shutdown;
- };
- 
- struct _ObActionsAct {
-@@ -73,7 +74,9 @@ void actions_shutdown(gboolean reconfig)
- 
-     /* free all the registered actions */
-     while (registered) {
--        actions_definition_unref(registered->data);
-+        ObActionsDefinition *d = registered->data;
-+        if (d->shutdown) d->shutdown();
-+        actions_definition_unref(d);
-         registered = g_slist_delete_link(registered, registered);
-     }
- }
-@@ -105,12 +108,29 @@ gboolean actions_register(const gchar *name,
-     def->run = run;
-     def->i_input = i_input;
-     def->i_cancel = i_cancel;
-+    def->shutdown = NULL;
- 
-     registered = g_slist_prepend(registered, def);
- 
-     return TRUE;
- }
- 
-+gboolean actions_set_shutdown(const gchar *name,
-+                              ObActionsShutdownFunc shutdown)
-+{
-+    GSList *it;
-+    ObActionsDefinition *def;
-+
-+    for (it = registered; it; it = g_slist_next(it)) {
-+        def = it->data;
-+        if (!g_ascii_strcasecmp(name, def->name)) {
-+            def->shutdown = shutdown;
-+            return TRUE;
-+        }
-+    }
-+    return FALSE;
-+}
-+
- static void actions_definition_ref(ObActionsDefinition *def)
- {
-     ++def->ref;
-diff --git a/openbox/actions.h b/openbox/actions.h
-index fb9a6a8..7a98aab 100644
---- a/openbox/actions.h
-+++ b/openbox/actions.h
-@@ -35,6 +35,7 @@ typedef gpointer (*ObActionsDataSetupFunc)(ObParseInst *i,
- typedef void     (*ObActionsDataFreeFunc)(gpointer options);
- typedef gboolean (*ObActionsRunFunc)(ObActionsData *data,
-                                      gpointer options);
-+typedef void     (*ObActionsShutdownFunc)(void);
- typedef gboolean (*ObActionsInteractiveInputFunc)(guint initial_state,
-                                                   XEvent *e,
-                                                   gpointer options,
-@@ -64,9 +65,13 @@ gboolean actions_register(const gchar *name,
-                           ObActionsInteractiveInputFunc i_input,
-                           ObActionsInteractiveCancelFunc i_cancel);
- 
-+gboolean actions_set_shutdown(const gchar *name,
-+                              ObActionsShutdownFunc shutdown);
-+
- ObActionsAct* actions_parse(ObParseInst *i,
-                             xmlDocPtr doc,
-                             xmlNodePtr node);
-+
- ObActionsAct* actions_parse_string(const gchar *name);
- 
- gboolean actions_act_is_interactive(ObActionsAct *act);
-diff --git a/openbox/actions/execute.c b/openbox/actions/execute.c
-index 4e0dfd8..29cd327 100644
---- a/openbox/actions/execute.c
-+++ b/openbox/actions/execute.c
-@@ -1,4 +1,5 @@
- #include "openbox/actions.h"
-+#include "openbox/client.h"
- #include "openbox/event.h"
- #include "openbox/startupnotify.h"
- #include "openbox/prompt.h"
-@@ -16,18 +17,16 @@ typedef struct {
-     gchar   *sn_icon;
-     gchar   *sn_wmclass;
-     gchar   *prompt;
-+    ObActionsData *data;
- } Options;
- 
- static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
- static void     free_func(gpointer options);
- static gboolean run_func(ObActionsData *data, gpointer options);
--/*
--static gboolean i_input_func(guint initial_state,
--                             XEvent *e,
--                             gpointer options,
--                             gboolean *used);
--static void     i_cancel_func(gpointer options);
--*/
-+static void shutdown_func(void);
-+static void client_dest(ObClient *client, gpointer data);
-+
-+static GSList *prompt_opts = NULL;
- 
- void action_execute_startup(void)
- {
-@@ -36,6 +35,20 @@ void action_execute_startup(void)
-                      free_func,
-                      run_func,
-                      NULL, NULL);
-+    actions_set_shutdown("Execute", shutdown_func);
-+
-+    client_add_destroy_notify(client_dest, NULL);
-+}
-+
-+static void client_dest(ObClient *client, gpointer data)
-+{
-+    GSList *it;
-+
-+    for (it = prompt_opts; it; it = g_slist_next(it)) {
-+        Options *o = it->data;
-+        if (o->data->client == client)
-+            o->data->client = NULL;
-+    }
- }
- 
- static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
-@@ -70,21 +83,29 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
-     return o;
- }
- 
-+static void shutdown_func(void)
-+{
-+    client_remove_destroy_notify(client_dest);
-+}
-+
- static void free_func(gpointer options)
- {
-     Options *o = options;
- 
-     if (o) {
-+        prompt_opts = g_slist_remove(prompt_opts, o);
-+
-         g_free(o->cmd);
-         g_free(o->sn_name);
-         g_free(o->sn_icon);
-         g_free(o->sn_wmclass);
-         g_free(o->prompt);
-+        if (o->data) g_free(o->data);
-         g_free(o);
-     }
- }
- 
--static Options* dup_options(Options *in)
-+static Options* dup_options(Options *in, ObActionsData *data)
- {
-     Options *o = g_new(Options, 1);
-     o->cmd = g_strdup(in->cmd);
-@@ -93,15 +114,15 @@ static Options* dup_options(Options *in)
-     o->sn_icon = g_strdup(in->sn_icon);
-     o->sn_wmclass = g_strdup(in->sn_wmclass);
-     o->prompt = NULL;
-+    o->data = g_memdup(data, sizeof(ObActionsData));
-     return o;
- }
- 
--static gboolean run_func(ObActionsData *data, gpointer options);
--
- static gboolean prompt_cb(ObPrompt *p, gint result, gpointer options)
- {
-+    Options *o = options;
-     if (result)
--        run_func(NULL, options);
-+        run_func(o->data, o);
-     return TRUE; /* call the cleanup func */
- }
- 
-@@ -129,7 +150,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
-             { _("Yes"), 1 }
-         };
- 
--        ocp = dup_options(options);
-+        ocp = dup_options(options, data);
-         p = prompt_new(o->prompt, _("Execute"), answers, 2, 0, 0,
-                        prompt_cb, prompt_cleanup, ocp);
-         prompt_show(p, NULL, FALSE);
-@@ -149,7 +170,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
-         event_cancel_all_key_grabs();
- 
-     if (!g_shell_parse_argv(cmd, NULL, &argv, &e)) {
--        g_message(e->message, o->cmd);
-+        g_message("%s", e->message);
-         g_error_free(e);
-     }
-     else {
-@@ -168,7 +189,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
-                            G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
-                            NULL, NULL, NULL, &e))
-         {
--            g_message(e->message, o->cmd);
-+            g_message("%s", e->message);
-             g_error_free(e);
- 
-             if (o->sn)
-diff --git a/openbox/actions/exit.c b/openbox/actions/exit.c
-index 567926e..f447830 100644
---- a/openbox/actions/exit.c
-+++ b/openbox/actions/exit.c
-@@ -10,11 +10,12 @@ typedef struct {
- 
- static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
- static gboolean run_func(ObActionsData *data, gpointer options);
-+static void free_func(gpointer options);
- 
- void action_exit_startup(void)
- {
--    actions_register("Exit", setup_func, NULL, run_func, NULL, NULL);
--    actions_register("SessionLogout", setup_func, NULL, run_func, NULL, NULL);
-+    actions_register("Exit", setup_func, free_func, run_func, NULL, NULL);
-+    actions_register("SessionLogout", setup_func, free_func, run_func, NULL, NULL);
- }
- 
- static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
-@@ -31,6 +32,12 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
-     return o;
- }
- 
-+static void free_func(gpointer options)
-+{
-+    if (options)
-+        g_free(options);
-+}
-+
- static void do_exit(void)
- {
-     if (session_connected())
-diff --git a/openbox/actions/moverelative.c b/openbox/actions/moverelative.c
-index 1d1189c..a553519 100644
---- a/openbox/actions/moverelative.c
-+++ b/openbox/actions/moverelative.c
-@@ -54,15 +54,15 @@ static gboolean run_func(ObActionsData *data, gpointer options)
-         gint x, y, lw, lh, w, h;
- 
-         c = data->client;
--        x = data->client->area.x + o->x;
--        y = data->client->area.y + o->y;
--        w = data->client->area.width;
--        h = data->client->area.height;
--        client_try_configure(data->client, &x, &y, &w, &h, &lw, &lh, TRUE);
--        client_find_onscreen(data->client, &x, &y, w, h, FALSE);
-+        x = c->area.x + o->x;
-+        y = c->area.y + o->y;
-+        w = c->area.width;
-+        h = c->area.height;
-+        client_try_configure(c, &x, &y, &w, &h, &lw, &lh, TRUE);
-+        client_find_onscreen(c, &x, &y, w, h, FALSE);
- 
-         actions_client_move(data, TRUE);
--        client_configure(data->client, x, y, w, h, TRUE, TRUE, FALSE);
-+        client_configure(c, x, y, w, h, TRUE, TRUE, FALSE);
-         actions_client_move(data, FALSE);
-     }
- 
-diff --git a/openbox/client.c b/openbox/client.c
-index fd5d375..2d6885d 100644
---- a/openbox/client.c
-+++ b/openbox/client.c
-@@ -372,7 +372,7 @@ void client_manage(Window window, ObPrompt *prompt)
-         /* NET_WM_USER_TIME 0 when mapping means don't focus */
-         (user_time != 0) &&
-         /* this checks for focus=false for the window */
--        (!settings || settings->focus != 0) &&
-+        settings->focus != 0 &&
-         focus_valid_target(self, FALSE, FALSE, TRUE, FALSE, FALSE,
-                            settings->focus == 1))
-     {
-@@ -782,7 +782,7 @@ static gboolean client_can_steal_focus(ObClient *self, Time steal_time,
- 
-     /* This is focus stealing prevention */
-     ob_debug_type(OB_DEBUG_FOCUS,
--                  "Want to focus new window 0x%x at time %u "
-+                  "Want to focus window 0x%x at time %u "
-                   "launched at %u (last user interaction time %u)\n",
-                   self->window, steal_time, launch_time,
-                   event_last_user_time);
-@@ -791,8 +791,9 @@ static gboolean client_can_steal_focus(ObClient *self, Time steal_time,
-     if (!(self->desktop == screen_desktop ||
-           self->desktop == DESKTOP_ALL) &&
-         /* the timestamp is from before you changed desktops */
--        launch_time && screen_desktop_user_time &&
--        !event_time_after(launch_time, screen_desktop_user_time))
-+        (!launch_time ||
-+         (screen_desktop_user_time &&
-+          !event_time_after(launch_time, screen_desktop_user_time))))
-     {
-         steal = FALSE;
-         ob_debug_type(OB_DEBUG_FOCUS,
-@@ -2488,7 +2489,7 @@ ObClient *client_search_focus_tree_full(ObClient *self)
- 
-         for (it = self->parents; it; it = g_slist_next(it)) {
-             ObClient *c = it->data;
--            if ((c = client_search_focus_tree_full(it->data))) return c;
-+            if ((c = client_search_focus_tree_full(c))) return c;
-         }
- 
-         return NULL;
-@@ -3175,7 +3176,8 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
- 
-     /* if it moved between monitors, then this can affect the stacking
-        layer of this window or others - for fullscreen windows */
--    if (screen_find_monitor(&self->frame->area) !=
-+    if (self->managed &&
-+        screen_find_monitor(&self->frame->area) !=
-         screen_find_monitor(&oldframe))
-     {
-         client_calc_layer(self);
-diff --git a/openbox/config.c b/openbox/config.c
-index 1a99539..503f028 100644
---- a/openbox/config.c
-+++ b/openbox/config.c
-@@ -205,7 +205,7 @@ static void parse_per_app_settings(ObParseInst *inst, xmlDocPtr doc,
-     gboolean x_pos_given;
- 
-     while (app) {
--        name_set = class_set = type_set = x_pos_given = FALSE;
-+        x_pos_given = FALSE;
- 
-         class_set = parse_attr_string("class", app, &class);
-         name_set = parse_attr_string("name", app, &name);
-@@ -1018,7 +1018,7 @@ void config_startup(ObParseInst *i)
- 
-     config_menu_hide_delay = 250;
-     config_menu_middle = FALSE;
--    config_submenu_show_delay = 200;
-+    config_submenu_show_delay = 100;
-     config_submenu_hide_delay = 400;
-     config_menu_client_list_icons = TRUE;
-     config_menu_manage_desktops = TRUE;
-diff --git a/openbox/event.c b/openbox/event.c
-index 2ebea6b..1c6c043 100644
---- a/openbox/event.c
-+++ b/openbox/event.c
-@@ -652,6 +652,7 @@ static void event_process(const XEvent *ec, gpointer data)
-         /* keyboard layout changes for modifier mapping changes. reload the
-            modifier map, and rebind all the key bindings as appropriate */
-         ob_debug("Keyboard map changed. Reloading keyboard bindings.\n");
-+        XRefreshKeyboardMapping(&e->xmapping);
-         ob_set_state(OB_STATE_RECONFIGURING);
-         modkeys_shutdown(TRUE);
-         modkeys_startup(TRUE);
-@@ -1323,11 +1324,23 @@ static void event_handle_client(ObClient *client, XEvent *e)
-                        (e->xclient.data.l[0] == 2 ? "user" : "INVALID"))));
-             /* XXX make use of data.l[2] !? */
-             if (e->xclient.data.l[0] == 1 || e->xclient.data.l[0] == 2) {
--                event_curtime = e->xclient.data.l[1];
-+                /* we can not trust the timestamp from applications.
-+                   e.g. chromium passes a very old timestamp.  openbox thinks
-+                   the window will get focus and calls XSetInputFocus with the
-+                   (old) timestamp, which doesn't end up moving focus at all.
-+                   but the window is raised, not hilited, etc, as if it was
-+                   really going to get focus.
-+
-+                   so do not use this timestamp in event_curtime, as this would
-+                   be used in XSetInputFocus.
-+                */
-+                /*event_curtime = e->xclient.data.l[1];*/
-                 if (e->xclient.data.l[1] == 0)
-                     ob_debug_type(OB_DEBUG_APP_BUGS,
-                                   "_NET_ACTIVE_WINDOW message for window %s is"
-                                   " missing a timestamp\n", client->title);
-+
-+                event_curtime = event_get_server_time();
-             } else
-                 ob_debug_type(OB_DEBUG_APP_BUGS,
-                               "_NET_ACTIVE_WINDOW message for window %s is "
-@@ -1712,7 +1725,9 @@ static gboolean event_handle_menu_keyboard(XEvent *ev)
- 
-         else if (ob_keycode_match(keycode, OB_KEY_RIGHT)) {
-             /* Right goes to the selected submenu */
--            if (frame->selected->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU) {
-+            if (frame->selected &&
-+                frame->selected->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU)
-+            {
-                 /* make sure it is visible */
-                 menu_frame_select(frame, frame->selected, TRUE);
-                 menu_frame_select_next(frame->child);
-diff --git a/openbox/focus_cycle_popup.c b/openbox/focus_cycle_popup.c
-index d7ac9f5..c48b8f2 100644
---- a/openbox/focus_cycle_popup.c
-+++ b/openbox/focus_cycle_popup.c
-@@ -317,7 +317,7 @@ static void popup_render(ObFocusCyclePopup *p, const ObClient *c)
-     gint innerw, innerh;
-     gint i;
-     GList *it;
--    const ObFocusCyclePopupTarget *newtarget;
-+    const ObFocusCyclePopupTarget *newtarget = NULL;
-     gint newtargetx, newtargety;
- 
-     screen_area = screen_physical_area_primary(FALSE);
-diff --git a/openbox/menuframe.c b/openbox/menuframe.c
-index 36fdc5f..fa65c85 100644
---- a/openbox/menuframe.c
-+++ b/openbox/menuframe.c
-@@ -654,7 +654,6 @@ void menu_frame_render(ObMenuFrame *self)
-     if (self->entries) {
-         gint l, t, r, b;
- 
--        e = self->entries->data;
-         ob_rr_theme->a_menu_text_normal->texture[0].data.text.string = "";
-         tw = RrMinWidth(ob_rr_theme->a_menu_text_normal);
-         tw += 2*PADDING;
-diff --git a/openbox/modkeys.c b/openbox/modkeys.c
-index e897ccb..a54fdf0 100644
---- a/openbox/modkeys.c
-+++ b/openbox/modkeys.c
-@@ -189,7 +189,7 @@ KeyCode* modkeys_sym_to_code(KeySym sym)
-     for (i = min_keycode; i <= max_keycode; ++i)
-         for (j = 0; j < keysyms_per_keycode; ++j)
-             if (sym == keymap[(i-min_keycode) * keysyms_per_keycode + j]) {
--                ret = g_renew(KeyCode, ret, ++n);
-+                ret = g_renew(KeyCode, ret, ++n + 1);
-                 ret[n-1] = i;
-                 ret[n] = 0;
-             }
-diff --git a/openbox/moveresize.c b/openbox/moveresize.c
-index fd52d89..39ae5b7 100644
---- a/openbox/moveresize.c
-+++ b/openbox/moveresize.c
-@@ -655,7 +655,7 @@ static void move_with_keys(gint keycode, gint state)
- static void resize_with_keys(gint keycode, gint state)
- {
-     gint dw = 0, dh = 0, pdx = 0, pdy = 0, opx, opy, px, py;
--    gint dist = 0, resist = 0;
-+    gint resist = 0;
-     ObDirection dir;
- 
-     /* pick the edge if it needs to move */
-@@ -745,27 +745,27 @@ static void resize_with_keys(gint keycode, gint state)
- 
-         if (key_resize_edge == OB_DIRECTION_WEST) {
-             if (dir == OB_DIRECTION_WEST)
--                dw = (dist = distw);
-+                dw = distw;
-             else
--                dw = -(dist = distw);
-+                dw = -distw;
-         }
-         else if (key_resize_edge == OB_DIRECTION_EAST) {
-             if (dir == OB_DIRECTION_EAST)
--                dw = (dist = distw);
-+                dw = distw;
-             else
--                dw = -(dist = distw);
-+                dw = -distw;
-         }
-         else if (key_resize_edge == OB_DIRECTION_NORTH) {
-             if (dir == OB_DIRECTION_NORTH)
--                dh = (dist = disth);
-+                dh = disth;
-             else
--                dh = -(dist = disth);
-+                dh = -disth;
-         }
-         else /*if (key_resize_edge == OB_DIRECTION_SOUTH)*/ {
-             if (dir == OB_DIRECTION_SOUTH)
--                dh = (dist = disth);
-+                dh = disth;
-             else
--                dh = -(dist = disth);
-+                dh = -disth;
-         }
-     }
- 
-diff --git a/openbox/openbox.c b/openbox/openbox.c
-index f19f064..12fb2f6 100644
---- a/openbox/openbox.c
-+++ b/openbox/openbox.c
-@@ -711,7 +711,7 @@ static Cursor load_cursor(const gchar *name, guint fontval)
- 
- void ob_exit_with_error(const gchar *msg)
- {
--    g_message(msg);
-+    g_message("%s", msg);
-     session_shutdown(TRUE);
-     exit(EXIT_FAILURE);
- }
-diff --git a/openbox/prompt.c b/openbox/prompt.c
-index bef06a7..a97cd1b 100644
---- a/openbox/prompt.c
-+++ b/openbox/prompt.c
-@@ -95,17 +95,17 @@ void prompt_startup(gboolean reconfig)
-     prompt_a_button->texture[0].data.text.color = c_button;
-     prompt_a_focus->texture[0].data.text.color = c_focus;
-     prompt_a_press->texture[0].data.text.color = c_press;
--    prompt_a_pfocus->texture[0].data.text.color = c_press;
-+    prompt_a_pfocus->texture[0].data.text.color = c_pfocus;
- 
-     prompt_a_focus->texture[1].data.lineart.color = c_focus;
-     prompt_a_focus->texture[2].data.lineart.color = c_focus;
-     prompt_a_focus->texture[3].data.lineart.color = c_focus;
-     prompt_a_focus->texture[4].data.lineart.color = c_focus;
- 
--    prompt_a_pfocus->texture[1].data.lineart.color = c_press;
--    prompt_a_pfocus->texture[2].data.lineart.color = c_press;
--    prompt_a_pfocus->texture[3].data.lineart.color = c_press;
--    prompt_a_pfocus->texture[4].data.lineart.color = c_press;
-+    prompt_a_pfocus->texture[1].data.lineart.color = c_pfocus;
-+    prompt_a_pfocus->texture[2].data.lineart.color = c_pfocus;
-+    prompt_a_pfocus->texture[3].data.lineart.color = c_pfocus;
-+    prompt_a_pfocus->texture[4].data.lineart.color = c_pfocus;
- 
-     prompt_a_msg = RrAppearanceCopy(ob_rr_theme->osd_hilite_label);
-     prompt_a_msg->texture[0].data.text.flow = TRUE;
-diff --git a/openbox/resist.c b/openbox/resist.c
-index 91eabcb..9b785a3 100644
---- a/openbox/resist.c
-+++ b/openbox/resist.c
-@@ -330,7 +330,6 @@ void resist_size_monitors(ObClient *c, gint resist, gint *w, gint *h,
-     Rect *area, *parea;
-     gint al, at, ar, ab; /* screen boundaries */
-     gint pl, pt, pr, pb; /* physical screen boundaries */
--    gint incw, inch;
-     guint i;
-     Rect desired_area;
- 
-@@ -341,9 +340,6 @@ void resist_size_monitors(ObClient *c, gint resist, gint *w, gint *h,
-     t = RECT_TOP(c->frame->area);
-     b = RECT_BOTTOM(c->frame->area);
- 
--    incw = c->size_inc.width;
--    inch = c->size_inc.height;
--
-     RECT_SET(desired_area, c->area.x, c->area.y, *w, *h);
- 
-     for (i = 0; i < screen_num_monitors; ++i) {
-diff --git a/openbox/screen.c b/openbox/screen.c
-index 55fd58d..d11c0b6 100644
---- a/openbox/screen.c
-+++ b/openbox/screen.c
-@@ -513,7 +513,6 @@ void screen_resize(void)
- 
- void screen_set_num_desktops(guint num)
- {
--    guint old;
-     gulong *viewport;
-     GList *it, *stacking_copy;
- 
-@@ -521,7 +520,6 @@ void screen_set_num_desktops(guint num)
- 
-     if (screen_num_desktops == num) return;
- 
--    old = screen_num_desktops;
-     screen_num_desktops = num;
-     PROP_SET32(RootWindow(ob_display, ob_screen),
-                net_number_of_desktops, cardinal, num);
-@@ -1462,7 +1460,7 @@ Rect* screen_area(guint desktop, guint head, Rect *search)
- {
-     Rect *a;
-     GSList *it;
--    gint l, r, t, b, al, ar, at, ab;
-+    gint l, r, t, b;
-     guint i, d;
-     gboolean us = search != NULL; /* user provided search */
- 
-@@ -1482,36 +1480,32 @@ Rect* screen_area(guint desktop, guint head, Rect *search)
-     }
-     if (head == SCREEN_AREA_ONE_MONITOR) head = screen_find_monitor(search);
- 
--    /* al is "all left" meaning the furthest left you can get, l is our
--       "working left" meaning our current strut edge which we're calculating
--    */
--
-     /* only include monitors which the search area lines up with */
-     if (RECT_INTERSECTS_RECT(monitor_area[screen_num_monitors], *search)) {
--        al = l = RECT_RIGHT(monitor_area[screen_num_monitors]);
--        at = t = RECT_BOTTOM(monitor_area[screen_num_monitors]);
--        ar = r = RECT_LEFT(monitor_area[screen_num_monitors]);
--        ab = b = RECT_TOP(monitor_area[screen_num_monitors]);
-+        l = RECT_RIGHT(monitor_area[screen_num_monitors]);
-+        t = RECT_BOTTOM(monitor_area[screen_num_monitors]);
-+        r = RECT_LEFT(monitor_area[screen_num_monitors]);
-+        b = RECT_TOP(monitor_area[screen_num_monitors]);
-         for (i = 0; i < screen_num_monitors; ++i) {
-             /* add the monitor if applicable */
-             if (RANGES_INTERSECT(search->x, search->width,
-                                  monitor_area[i].x, monitor_area[i].width))
-             {
--                at = t = MIN(t, RECT_TOP(monitor_area[i]));
--                ab = b = MAX(b, RECT_BOTTOM(monitor_area[i]));
-+                t = MIN(t, RECT_TOP(monitor_area[i]));
-+                b = MAX(b, RECT_BOTTOM(monitor_area[i]));
-             }
-             if (RANGES_INTERSECT(search->y, search->height,
-                                  monitor_area[i].y, monitor_area[i].height))
-             {
--                al = l = MIN(l, RECT_LEFT(monitor_area[i]));
--                ar = r = MAX(r, RECT_RIGHT(monitor_area[i]));
-+                l = MIN(l, RECT_LEFT(monitor_area[i]));
-+                r = MAX(r, RECT_RIGHT(monitor_area[i]));
-             }
-         }
-     } else {
--        al = l = RECT_LEFT(monitor_area[screen_num_monitors]);
--        at = t = RECT_TOP(monitor_area[screen_num_monitors]);
--        ar = r = RECT_RIGHT(monitor_area[screen_num_monitors]);
--        ab = b = RECT_BOTTOM(monitor_area[screen_num_monitors]);
-+        l = RECT_LEFT(monitor_area[screen_num_monitors]);
-+        t = RECT_TOP(monitor_area[screen_num_monitors]);
-+        r = RECT_RIGHT(monitor_area[screen_num_monitors]);
-+        b = RECT_BOTTOM(monitor_area[screen_num_monitors]);
-     }
- 
-     for (d = 0; d < screen_num_desktops; ++d) {
-diff --git a/openbox/translate.c b/openbox/translate.c
-index bd8b88f..71a919c 100644
---- a/openbox/translate.c
-+++ b/openbox/translate.c
-@@ -166,7 +166,11 @@ gchar *translate_keycode(guint keycode)
- 
-     if ((sym = XKeycodeToKeysym(ob_display, keycode, 0)) != NoSymbol)
-         ret = XKeysymToString(sym);
--    return g_locale_to_utf8(ret, -1, NULL, NULL, NULL);
-+    /* glib crashes in g_locale_to_utf8 if you pass it NULL here */
-+    if (ret)
-+        return g_locale_to_utf8(ret, -1, NULL, NULL, NULL);
-+    else
-+        return NULL;
- }
- 
- gunichar translate_unichar(guint keycode)
-diff --git a/parser/parse.c b/parser/parse.c
-index 7a3c72e..6db7ca7 100644
---- a/parser/parse.c
-+++ b/parser/parse.c
-@@ -219,10 +219,12 @@ void parse_close(xmlDocPtr doc)
- void parse_tree(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
- {
-     while (node) {
--        struct Callback *c = g_hash_table_lookup(i->callbacks, node->name);
-+        if (node->name) {
-+            struct Callback *c = g_hash_table_lookup(i->callbacks, node->name);
- 
--        if (c)
--            c->func(i, doc, node, c->data);
-+            if (c)
-+                c->func(i, doc, node, c->data);
-+        }
- 
-         node = node->next;
-     }
-diff --git a/po/et.po b/po/et.po
-index 9c9c9f3..d4a80d8 100644
---- a/po/et.po
-+++ b/po/et.po
-@@ -1,20 +1,22 @@
-+# Openboxi eesti keele tõlge
- # translation of openbox to Estonian
- # Copyright (C) 2007 Dana Jansens
- # This file is distributed under the same license as the Openbox 3 package.
- #
- # Andres Järv <andresjarv at gmail.com>, 2007.
-+# Mihkel <turakas gmail com>, 2010
- msgid ""
- msgstr ""
--"Project-Id-Version: Openbox 3.4.3\n"
-+"Project-Id-Version: Openbox 3.4.11.1\n"
- "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
--"POT-Creation-Date: 2008-11-15 22:28+0100\n"
--"PO-Revision-Date: 2007-07-20 16:54+0200\n"
--"Last-Translator: Andres Järv <andresjarv at gmail.com>\n"
-+"POT-Creation-Date: 2010-04-22 15:53+0200\n"
-+"PO-Revision-Date: 2010-04-21 21:40+0300\n"
-+"Last-Translator: mihkel <turakas at gmail.com>\n"
- "Language-Team: Estonian <et at li.org>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
--"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
- 
- #: openbox/actions.c:149
- #, c-format
-@@ -23,87 +25,82 @@ msgstr "Taotleti kehtetut käsklust \"%s\". Sellist käsklust pole olemas."
- 
- #: openbox/actions/execute.c:128
- msgid "No"
--msgstr ""
-+msgstr "Ei"
- 
- #: openbox/actions/execute.c:129
- msgid "Yes"
--msgstr ""
-+msgstr "Jah"
- 
- #: openbox/actions/execute.c:133
- msgid "Execute"
--msgstr ""
-+msgstr "Käivita"
- 
- #: openbox/actions/execute.c:142
- #, c-format
- msgid "Failed to convert the path \"%s\" from utf8"
- msgstr "Raja \"%s\" ümberkodeerimine UTF8-st ebaõnnestus"
- 
--#: openbox/actions/exit.c:52 openbox/actions/session.c:64
--#: openbox/client.c:3465
-+#: openbox/actions/exit.c:62 openbox/client.c:3506
- msgid "Cancel"
--msgstr ""
-+msgstr "Katkesta"
- 
--#: openbox/actions/exit.c:53
-+#: openbox/actions/exit.c:63
- msgid "Exit"
--msgstr ""
--
--#: openbox/actions/exit.c:56
--msgid "Are you sure you want to exit Openbox?"
--msgstr ""
--
--#: openbox/actions/exit.c:57
--msgid "Exit Openbox"
--msgstr ""
-+msgstr "Välju"
- 
--#. TRANSLATORS: Don't translate the word "SessionLogout" as it's the
--#. name of the action you write in rc.xml
--#: openbox/actions/session.c:43
--msgid ""
--"The SessionLogout action is not available since Openbox was built without "
--"session management support"
--msgstr ""
-+#: openbox/actions/exit.c:67
-+msgid "Are you sure you want to log out?"
-+msgstr "Kas oled kindel, et soovid välja logida?"
- 
--#: openbox/actions/session.c:65 openbox/actions/session.c:70
-+#: openbox/actions/exit.c:68
- msgid "Log Out"
--msgstr ""
-+msgstr "Logi välja"
- 
--#: openbox/actions/session.c:69
--msgid "Are you sure you want to log out?"
--msgstr ""
-+#: openbox/actions/exit.c:71
-+msgid "Are you sure you want to exit Openbox?"
-+msgstr "Kas oled kindel, et soovid OpenBoxist väljuda?"
-+
-+#: openbox/actions/exit.c:72
-+msgid "Exit Openbox"
-+msgstr "Välju Openbox-st"
- 
--#: openbox/client.c:2012
-+#: openbox/client.c:2024
- msgid "Unnamed Window"
--msgstr ""
-+msgstr "Nimetu aken"
- 
--#: openbox/client.c:2026 openbox/client.c:2058
-+#: openbox/client.c:2038 openbox/client.c:2070
- msgid "Killing..."
--msgstr ""
-+msgstr "Tapan..."
- 
--#: openbox/client.c:2028 openbox/client.c:2060
-+#: openbox/client.c:2040 openbox/client.c:2072
- msgid "Not Responding"
--msgstr ""
-+msgstr "Ei vasta"
- 
--#: openbox/client.c:3454
-+#: openbox/client.c:3495
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to force it "
- "to exit by sending the %s signal?"
- msgstr ""
-+"Paistab, et aken \"%s\" ei vasta enam. Kas soovid teda jõuga väljuma sundida "
-+"saates %s signaali?"
- 
--#: openbox/client.c:3456
-+#: openbox/client.c:3497
- msgid "End Process"
--msgstr ""
-+msgstr "Lõpeta protsess"
- 
--#: openbox/client.c:3460
-+#: openbox/client.c:3501
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to disconnect "
- "it from the X server?"
- msgstr ""
-+"Paistab, et aken \"%s\" ei vasta enam. Kas soovid ta X serverist lahti "
-+"ühendada?"
- 
--#: openbox/client.c:3462
-+#: openbox/client.c:3503
- msgid "Disconnect"
--msgstr ""
-+msgstr "Ãœhenda lahti"
- 
- #: openbox/client_list_combined_menu.c:87 openbox/client_list_menu.c:91
- msgid "Go there..."
-@@ -189,14 +186,14 @@ msgstr "Äär_ed sisse/välja"
- msgid "_Close"
- msgstr "S_ulge"
- 
--#: openbox/config.c:781
-+#: openbox/config.c:798
- #, c-format
- msgid "Invalid button \"%s\" specified in config file"
--msgstr "Vigane nupp \"%s\" määratletud konfiguratsioonifailis"
-+msgstr "Vigane nupp \"%s\" määratud seadistuste failis"
- 
- #: openbox/keyboard.c:157
- msgid "Conflict with key binding in config file"
--msgstr "Konflikt kiirklahviga konfiguratsioonifailis"
-+msgstr "Konflikt kiirklahviga seadistuste failis"
- 
- #: openbox/menu.c:102 openbox/menu.c:110
- #, c-format
-@@ -218,7 +215,7 @@ msgstr "Vigane väljund torumenüüst \"%s\""
- msgid "Attempted to access menu \"%s\" but it does not exist"
- msgstr "Üritati ligi pääseda menüüle \"%s\", aga seda pole olemas"
- 
--#: openbox/menu.c:367 openbox/menu.c:368
-+#: openbox/menu.c:370 openbox/menu.c:371
- msgid "More..."
- msgstr "Rohkem..."
- 
-@@ -243,7 +240,7 @@ msgstr "DISPLAY keskkonnamuutujas oleva ekraani avamine ebaõnnestus."
- 
- #: openbox/openbox.c:183
- msgid "Failed to initialize the obrender library."
--msgstr "Obrender-damisteegi käivitamine ebaõnnestus."
-+msgstr "Obrender-damise teegi käivitamine ebaõnnestus."
- 
- #: openbox/openbox.c:194
- msgid "X server does not support locale."
-@@ -253,46 +250,49 @@ msgstr "X server ei toeta lokaati."
- msgid "Cannot set locale modifiers for the X server."
- msgstr "Ei suudetud sättida lokaadimuutujaid X serveri jaoks."
- 
--#: openbox/openbox.c:263
-+#: openbox/openbox.c:265
- msgid "Unable to find a valid config file, using some simple defaults"
- msgstr ""
--"Ei suudetud leida kehtivat konfiguratsioonifaili, kasutatakse lihtsaid "
-+"Kehtiva seadistuste faili leidmine ebaõnnestus, kasutatakse lihtsaid "
- "vaikimisi seadeid"
- 
--#: openbox/openbox.c:297
-+#: openbox/openbox.c:299
- msgid "Unable to load a theme."
--msgstr "Ei suudetud laadida teemat."
-+msgstr "Teema laadimine ebaõnnestus."
- 
--#: openbox/openbox.c:377
-+#: openbox/openbox.c:379
- #, c-format
- msgid ""
- "One or more XML syntax errors were found while parsing the Openbox "
- "configuration files.  See stdout for more information.  The last error seen "
- "was in file \"%s\" line %d, with message: %s"
- msgstr ""
-+"Üks või enam XML süntaki viga leiti Openboxi seadistuse faili parsides. "
-+"Rohkem infot leiad stdout-st. Viimane viga oli failis \"%s\", real %d ja "
-+"sõnum oli: %s"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Openbox Syntax Error"
--msgstr ""
-+msgstr "Openboxi süntaksi viga"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Close"
- msgstr "Sulge"
- 
--#: openbox/openbox.c:448
-+#: openbox/openbox.c:463
- #, c-format
- msgid "Restart failed to execute new executable \"%s\": %s"
- msgstr "Taaskäivitusel ebaõnnestus uue käivitusfaili \"%s\" käivitamine: %s"
- 
--#: openbox/openbox.c:518 openbox/openbox.c:520
-+#: openbox/openbox.c:533 openbox/openbox.c:535
- msgid "Copyright (c)"
- msgstr "Autoriõigused (c)"
- 
--#: openbox/openbox.c:529
-+#: openbox/openbox.c:544
- msgid "Syntax: openbox [options]\n"
- msgstr "Süntaks: openbox [seaded]\n"
- 
--#: openbox/openbox.c:530
-+#: openbox/openbox.c:545
- msgid ""
- "\n"
- "Options:\n"
-@@ -300,30 +300,30 @@ msgstr ""
- "\n"
- "Seaded:\n"
- 
--#: openbox/openbox.c:531
-+#: openbox/openbox.c:546
- msgid "  --help              Display this help and exit\n"
- msgstr "  --help              Selle abi kuvamine ja väljumine\n"
- 
--#: openbox/openbox.c:532
-+#: openbox/openbox.c:547
- msgid "  --version           Display the version and exit\n"
- msgstr "  --version           Versiooni kuvamine ja väljumine\n"
- 
--#: openbox/openbox.c:533
-+#: openbox/openbox.c:548
- msgid "  --replace           Replace the currently running window manager\n"
- msgstr "  --replace           Hetkel töötava aknahalduri asendamine\n"
- 
- #. TRANSLATORS: if you translate "FILE" here, make sure to keep the "Specify..."
- #. aligned still, if you have to, make a new line with \n and 22 spaces. It's
- #. fine to leave it as FILE though.
--#: openbox/openbox.c:537
-+#: openbox/openbox.c:552
- msgid "  --config-file FILE  Specify the path to the config file to use\n"
--msgstr ""
-+msgstr "  --config-file FAIL Määra kasutatava seadistuste faili teekond\n"
- 
--#: openbox/openbox.c:538
-+#: openbox/openbox.c:553
- msgid "  --sm-disable        Disable connection to the session manager\n"
- msgstr "  --sm-disable        Seansihalduriga ühenduse keelamine\n"
- 
--#: openbox/openbox.c:539
-+#: openbox/openbox.c:554
- msgid ""
- "\n"
- "Passing messages to a running Openbox instance:\n"
-@@ -331,19 +331,19 @@ msgstr ""
- "\n"
- "Jooksvale Openboxi seansile sõnumite edastamine:\n"
- 
--#: openbox/openbox.c:540
-+#: openbox/openbox.c:555
- msgid "  --reconfigure       Reload Openbox's configuration\n"
- msgstr "  --reconfigure       Openboxi konfiguratsioon uuesti laadimine\n"
- 
--#: openbox/openbox.c:541
-+#: openbox/openbox.c:556
- msgid "  --restart           Restart Openbox\n"
- msgstr "  --restart           Openboxi taaskäivitamine\n"
- 
--#: openbox/openbox.c:542
-+#: openbox/openbox.c:557
- msgid "  --exit              Exit Openbox\n"
--msgstr ""
-+msgstr "  --exit              Välju Openbox-st\n"
- 
--#: openbox/openbox.c:543
-+#: openbox/openbox.c:558
- msgid ""
- "\n"
- "Debugging options:\n"
-@@ -351,23 +351,23 @@ msgstr ""
- "\n"
- "Silumise seaded:\n"
- 
--#: openbox/openbox.c:544
-+#: openbox/openbox.c:559
- msgid "  --sync              Run in synchronous mode\n"
- msgstr "  --sync              Sünkroonselt jooksutamine\n"
- 
--#: openbox/openbox.c:545
-+#: openbox/openbox.c:560
- msgid "  --debug             Display debugging output\n"
- msgstr "  --debug             Silumisväljundi kuvamine\n"
- 
--#: openbox/openbox.c:546
-+#: openbox/openbox.c:561
- msgid "  --debug-focus       Display debugging output for focus handling\n"
- msgstr "  --debug-focus       Fookusekäsitluse siluriväljundi kuvamine\n"
- 
--#: openbox/openbox.c:547
-+#: openbox/openbox.c:562
- msgid "  --debug-xinerama    Split the display into fake xinerama screens\n"
- msgstr "  --debug-xinerama    Ekraani võlts-Xinerama ekraanideks jagamine\n"
- 
--#: openbox/openbox.c:548
-+#: openbox/openbox.c:563
- #, c-format
- msgid ""
- "\n"
-@@ -376,26 +376,26 @@ msgstr ""
- "\n"
- "Palun teata vigadest siia %s\n"
- 
--#: openbox/openbox.c:617
-+#: openbox/openbox.c:645
- msgid "--config-file requires an argument\n"
--msgstr ""
-+msgstr "--config-file nõuab argumenti\n"
- 
--#: openbox/openbox.c:660
-+#: openbox/openbox.c:688
- #, c-format
- msgid "Invalid command line argument \"%s\"\n"
- msgstr "Vigane käsurea argument \"%s\"\n"
- 
--#: openbox/screen.c:102 openbox/screen.c:190
-+#: openbox/screen.c:103 openbox/screen.c:191
- #, c-format
- msgid "A window manager is already running on screen %d"
- msgstr "Ekraanil %d juba jookseb aknahaldur"
- 
--#: openbox/screen.c:124
-+#: openbox/screen.c:125
- #, c-format
- msgid "Could not acquire window manager selection on screen %d"
- msgstr "Ei suuda hankida aknahaldurite loetelu ekraanil %d"
- 
--#: openbox/screen.c:145
-+#: openbox/screen.c:146
- #, c-format
- msgid "The WM on screen %d is not exiting"
- msgstr "Aknahaldur ekraanil %d ei sulgu"
-@@ -404,7 +404,7 @@ msgstr "Aknahaldur ekraanil %d ei sulgu"
- #. arguments, you can use %1$d for the first one and %2$d for the
- #. second one. For example,
- #. "The current session has %2$d desktops, but Openbox is configured for %1$d ..."
--#: openbox/screen.c:412
-+#: openbox/screen.c:421
- #, c-format
- msgid ""
- "Openbox is configured for %d desktop, but the current session has %d.  "
-@@ -413,31 +413,35 @@ msgid_plural ""
- "Openbox is configured for %d desktops, but the current session has %d.  "
- "Overriding the Openbox configuration."
- msgstr[0] ""
-+"Openbox on seadistatud %d töölauale, aga aktiivsel seansil on %d. Tühistan "
-+"Openboxi seadistuse."
- msgstr[1] ""
-+"Openbox on seadistatud %d töölauale, aga aktiivsel seansil on %d. Tühistan "
-+"Openboxi seadistuse."
- 
--#: openbox/screen.c:1180
-+#: openbox/screen.c:1203
- #, c-format
- msgid "desktop %i"
- msgstr "töölaud %i"
- 
--#: openbox/session.c:104
-+#: openbox/session.c:105
- #, c-format
- msgid "Unable to make directory \"%s\": %s"
- msgstr "Kausta \"%s\" tegemine ebaõnnestus: %s"
- 
--#: openbox/session.c:466
-+#: openbox/session.c:472
- #, c-format
- msgid "Unable to save the session to \"%s\": %s"
- msgstr "Seansi \"%s\" salvestamine ebaõnnestus: %s"
- 
--#: openbox/session.c:605
-+#: openbox/session.c:611
- #, c-format
- msgid "Error while saving the session to \"%s\": %s"
- msgstr "Seansi \"%s\" salvestamisel ilmnes viga: %s"
- 
--#: openbox/session.c:842
-+#: openbox/session.c:848
- msgid "Not connected to a session manager"
--msgstr ""
-+msgstr "Pole ühendatud seansihalduriga"
- 
- #: openbox/startupnotify.c:243
- #, c-format
-@@ -471,7 +475,14 @@ msgstr "X-i viga: %s"
- 
- #: openbox/prompt.c:200
- msgid "OK"
--msgstr ""
-+msgstr "Sobib"
-+
-+#~ msgid ""
-+#~ "The SessionLogout action is not available since Openbox was built without "
-+#~ "session management support"
-+#~ msgstr ""
-+#~ "SessionLogout tegevust pole saadaval, kuna Openbox on kompileeritud "
-+#~ "seansi haldamise toeta"
- 
- #~ msgid "Failed to execute \"%s\": %s"
- #~ msgstr "\"%s\" käivitamine ebaõnnestus: %s"
-diff --git a/po/fi.po b/po/fi.po
-index 0c5b344..157e13b 100644
---- a/po/fi.po
-+++ b/po/fi.po
-@@ -8,15 +8,16 @@
- #
- msgid ""
- msgstr ""
--"Project-Id-Version: Openbox 3.4.7\n"
-+"Project-Id-Version: Openbox 3.4.11\n"
- "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
--"POT-Creation-Date: 2008-11-15 22:28+0100\n"
--"PO-Revision-Date: 2008-03-17 21:26+0100\n"
-+"POT-Creation-Date: 2010-03-11 14:26+0100\n"
-+"PO-Revision-Date: 2010-03-13 21:56+0100\n"
- "Last-Translator: Lauri Hakko <aperculum at gmail.com>\n"
- "Language-Team: None\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
-+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
- 
- #: openbox/actions.c:149
- #, c-format
-@@ -40,54 +41,43 @@ msgstr "Suorita"
- msgid "Failed to convert the path \"%s\" from utf8"
- msgstr "Polun \"%s\" muuntaminen utf8:sta epäonnistui"
- 
--#: openbox/actions/exit.c:52 openbox/actions/session.c:64
--#: openbox/client.c:3465
-+#: openbox/actions/exit.c:62 openbox/client.c:3506
- msgid "Cancel"
- msgstr "Peruuta"
- 
--#: openbox/actions/exit.c:53
-+#: openbox/actions/exit.c:63
- msgid "Exit"
- msgstr "Sulje"
- 
--#: openbox/actions/exit.c:56
-+#: openbox/actions/exit.c:67
-+msgid "Are you sure you want to log out?"
-+msgstr "Haluatko varmasti kirjautua ulos?"
-+
-+#: openbox/actions/exit.c:68
-+msgid "Log Out"
-+msgstr "Kirjaudu ulos"
-+
-+#: openbox/actions/exit.c:71
- msgid "Are you sure you want to exit Openbox?"
- msgstr "Haluatko varmasti sulkea Openboxin"
- 
--#: openbox/actions/exit.c:57
-+#: openbox/actions/exit.c:72
- msgid "Exit Openbox"
- msgstr "Sulje Openbox"
- 
--#. TRANSLATORS: Don't translate the word "SessionLogout" as it's the
--#. name of the action you write in rc.xml
--#: openbox/actions/session.c:43
--msgid ""
--"The SessionLogout action is not available since Openbox was built without "
--"session management support"
--msgstr ""
--"SessionLogout tapahtuma ei ole suoritettavissa, koska Openbox käännettiin "
--"ilman istunnon hallinnan tukea"
--
--#: openbox/actions/session.c:65 openbox/actions/session.c:70
--msgid "Log Out"
--msgstr "Kirjaudu ulos"
--
--#: openbox/actions/session.c:69
--msgid "Are you sure you want to log out?"
--msgstr "Haluatko varmasti kirjautua ulos?"
--
--#: openbox/client.c:2012
-+#: openbox/client.c:2024
- msgid "Unnamed Window"
- msgstr "Nimetön ikkuna"
- 
--#: openbox/client.c:2026 openbox/client.c:2058
-+#: openbox/client.c:2038 openbox/client.c:2070
- msgid "Killing..."
- msgstr "Tapetaan..."
- 
--#: openbox/client.c:2028 openbox/client.c:2060
-+#: openbox/client.c:2040 openbox/client.c:2072
- msgid "Not Responding"
- msgstr "Ei vastaa"
- 
--#: openbox/client.c:3454
-+#: openbox/client.c:3495
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to force it "
-@@ -96,11 +86,11 @@ msgstr ""
- "Ikkuna \"%s\" ei näytä vastaavan.  Haluatko sulkea sen lähettämällä sille "
- "singaalin %s?"
- 
--#: openbox/client.c:3456
-+#: openbox/client.c:3497
- msgid "End Process"
- msgstr "Lopeta prosessi"
- 
--#: openbox/client.c:3460
-+#: openbox/client.c:3501
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to disconnect "
-@@ -109,7 +99,7 @@ msgstr ""
- "Ikkuna \"%s\" ei näytä vastaavan.  Haluatko katkaista sen yhteyden X-"
- "palvelimeen?"
- 
--#: openbox/client.c:3462
-+#: openbox/client.c:3503
- msgid "Disconnect"
- msgstr "Katkaise yhteys"
- 
-@@ -197,7 +187,7 @@ msgstr "(Epä)_reunusta"
- msgid "_Close"
- msgstr "_Sulje"
- 
--#: openbox/config.c:781
-+#: openbox/config.c:798
- #, c-format
- msgid "Invalid button \"%s\" specified in config file"
- msgstr "Asetustiedostossa määritelty painike \"%s\" on virheellinen"
-@@ -226,7 +216,7 @@ msgstr "Virheellinen tulos putkivalikosta \"%s\""
- msgid "Attempted to access menu \"%s\" but it does not exist"
- msgstr "Valikon \"%s\" lukemista yritettiin, mutta sitä ei ole olemassa"
- 
--#: openbox/menu.c:367 openbox/menu.c:368
-+#: openbox/menu.c:370 openbox/menu.c:371
- msgid "More..."
- msgstr "Lisää..."
- 
-@@ -261,17 +251,17 @@ msgstr "X-palvelin ei tue maa-asetusta."
- msgid "Cannot set locale modifiers for the X server."
- msgstr "Maa-asetusmuuttujia ei voitu tehdä X-palvelimelle."
- 
--#: openbox/openbox.c:263
-+#: openbox/openbox.c:265
- msgid "Unable to find a valid config file, using some simple defaults"
- msgstr ""
- "Kelvollista asetustiedostoa ei löytynyt, käytetään yksinkertaisia "
- "oletusarvoja"
- 
--#: openbox/openbox.c:297
-+#: openbox/openbox.c:299
- msgid "Unable to load a theme."
- msgstr "Teeman lataaminen epäonnistui."
- 
--#: openbox/openbox.c:377
-+#: openbox/openbox.c:379
- #, c-format
- msgid ""
- "One or more XML syntax errors were found while parsing the Openbox "
-@@ -282,29 +272,29 @@ msgstr ""
- "stdout saadaksesi lisätietoja. Viimeisin virhe oli tiedostossa \"%s\" "
- "rivillä %d: %s"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Openbox Syntax Error"
- msgstr "Openbox syntaksivirhe"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Close"
- msgstr "Sulje"
- 
--#: openbox/openbox.c:448
-+#: openbox/openbox.c:463
- #, c-format
- msgid "Restart failed to execute new executable \"%s\": %s"
- msgstr ""
- "Uudelleenkäynnistys ei onnistunut käynnistämään uutta ohjelmaa \"%s\": %s"
- 
--#: openbox/openbox.c:518 openbox/openbox.c:520
-+#: openbox/openbox.c:533 openbox/openbox.c:535
- msgid "Copyright (c)"
- msgstr "Tekijänoikeudet (c)"
- 
--#: openbox/openbox.c:529
-+#: openbox/openbox.c:544
- msgid "Syntax: openbox [options]\n"
- msgstr "Syntaksi: openbox [valitsin]\n"
- 
--#: openbox/openbox.c:530
-+#: openbox/openbox.c:545
- msgid ""
- "\n"
- "Options:\n"
-@@ -312,30 +302,30 @@ msgstr ""
- "\n"
- "Käyttö:\n"
- 
--#: openbox/openbox.c:531
-+#: openbox/openbox.c:546
- msgid "  --help              Display this help and exit\n"
- msgstr "  --help              Näytä tämä ohje ja poistu\n"
- 
--#: openbox/openbox.c:532
-+#: openbox/openbox.c:547
- msgid "  --version           Display the version and exit\n"
- msgstr "  --version           Näytä version tiedot ja poistu\n"
- 
--#: openbox/openbox.c:533
-+#: openbox/openbox.c:548
- msgid "  --replace           Replace the currently running window manager\n"
- msgstr "  --replace           Korvaa käynnissä oleva ikkunointiohjelma\n"
- 
- #. TRANSLATORS: if you translate "FILE" here, make sure to keep the "Specify..."
- #. aligned still, if you have to, make a new line with \n and 22 spaces. It's
- #. fine to leave it as FILE though.
--#: openbox/openbox.c:537
-+#: openbox/openbox.c:552
- msgid "  --config-file FILE  Specify the path to the config file to use\n"
- msgstr "  --config-file FILE  Määritä käytettävän asetustiedoston polku\n"
- 
--#: openbox/openbox.c:538
-+#: openbox/openbox.c:553
- msgid "  --sm-disable        Disable connection to the session manager\n"
- msgstr "  --sm-disable        Estä yhteys istuntojen hallintaan\n"
- 
--#: openbox/openbox.c:539
-+#: openbox/openbox.c:554
- msgid ""
- "\n"
- "Passing messages to a running Openbox instance:\n"
-@@ -343,19 +333,19 @@ msgstr ""
- "\n"
- "Komentojen antaminen käynnissä olevalle Openboxille:\n"
- 
--#: openbox/openbox.c:540
-+#: openbox/openbox.c:555
- msgid "  --reconfigure       Reload Openbox's configuration\n"
- msgstr "  --reconfigure       Lataa Openboxin asetustiedosto uudelleen\n"
- 
--#: openbox/openbox.c:541
-+#: openbox/openbox.c:556
- msgid "  --restart           Restart Openbox\n"
- msgstr "  --restart           Käynnistä Openbox uudelleen\n"
- 
--#: openbox/openbox.c:542
-+#: openbox/openbox.c:557
- msgid "  --exit              Exit Openbox\n"
- msgstr "  --exit              Sulje Openbox\n"
- 
--#: openbox/openbox.c:543
-+#: openbox/openbox.c:558
- msgid ""
- "\n"
- "Debugging options:\n"
-@@ -363,23 +353,23 @@ msgstr ""
- "\n"
- "Vianjäljityksen asetukset:\n"
- 
--#: openbox/openbox.c:544
-+#: openbox/openbox.c:559
- msgid "  --sync              Run in synchronous mode\n"
- msgstr "  --sync              Aja synkronointi-tilassa\n"
- 
--#: openbox/openbox.c:545
-+#: openbox/openbox.c:560
- msgid "  --debug             Display debugging output\n"
- msgstr "  --debug             Näytä vianjäljitystuloste\n"
- 
--#: openbox/openbox.c:546
-+#: openbox/openbox.c:561
- msgid "  --debug-focus       Display debugging output for focus handling\n"
- msgstr "  --debug-focus       Näytä vianjäljitystuloste ikkunavalitsimelle\n"
- 
--#: openbox/openbox.c:547
-+#: openbox/openbox.c:562
- msgid "  --debug-xinerama    Split the display into fake xinerama screens\n"
- msgstr "  --debug-xinerama    Jaa näyttö kahteen vale-xinerama-ruutuun\n"
- 
--#: openbox/openbox.c:548
-+#: openbox/openbox.c:563
- #, c-format
- msgid ""
- "\n"
-@@ -388,26 +378,26 @@ msgstr ""
- "\n"
- "Ilmoita virheistä: %s\n"
- 
--#: openbox/openbox.c:617
-+#: openbox/openbox.c:645
- msgid "--config-file requires an argument\n"
- msgstr "--config-file tarvitsee argumentin\n"
- 
--#: openbox/openbox.c:660
-+#: openbox/openbox.c:688
- #, c-format
- msgid "Invalid command line argument \"%s\"\n"
- msgstr "Virheellinen valitsin \"%s\"\n"
- 
--#: openbox/screen.c:102 openbox/screen.c:190
-+#: openbox/screen.c:103 openbox/screen.c:191
- #, c-format
- msgid "A window manager is already running on screen %d"
- msgstr "Ikkunointiohjelma on jo käynnissä näytöllä %d"
- 
--#: openbox/screen.c:124
-+#: openbox/screen.c:125
- #, c-format
- msgid "Could not acquire window manager selection on screen %d"
- msgstr "Ikkunointiohjelman valinta ruudulla %d ei onnistunut"
- 
--#: openbox/screen.c:145
-+#: openbox/screen.c:146
- #, c-format
- msgid "The WM on screen %d is not exiting"
- msgstr "Ikkunointiohjelma ruudulla %d ei sulkeudu"
-@@ -416,8 +406,8 @@ msgstr "Ikkunointiohjelma ruudulla %d ei sulkeudu"
- #. arguments, you can use %1$d for the first one and %2$d for the
- #. second one. For example,
- #. "The current session has %2$d desktops, but Openbox is configured for %1$d ..."
--#: openbox/screen.c:412
--#, fuzzy, c-format
-+#: openbox/screen.c:421
-+#, c-format
- msgid ""
- "Openbox is configured for %d desktop, but the current session has %d.  "
- "Overriding the Openbox configuration."
-@@ -431,27 +421,27 @@ msgstr[1] ""
- "Openbox on asetettu käyttämään %d työtilaa, mutta nykyisessä istunnossa "
- "työtiloja on %d.  Ohitetaan Openboxin asetus."
- 
--#: openbox/screen.c:1180
-+#: openbox/screen.c:1203
- #, c-format
- msgid "desktop %i"
- msgstr "työtila %i"
- 
--#: openbox/session.c:104
-+#: openbox/session.c:105
- #, c-format
- msgid "Unable to make directory \"%s\": %s"
- msgstr "Hakemiston \"%s\" luonti epäonnistui: %s"
- 
--#: openbox/session.c:466
-+#: openbox/session.c:472
- #, c-format
- msgid "Unable to save the session to \"%s\": %s"
- msgstr "Istuntoa ei voitu tallentaa hakemistoon \"%s\": %s"
- 
--#: openbox/session.c:605
-+#: openbox/session.c:611
- #, c-format
- msgid "Error while saving the session to \"%s\": %s"
- msgstr "Virhe tallennettaessa istuntoa hakemistoon \"%s\": %s"
- 
--#: openbox/session.c:842
-+#: openbox/session.c:848
- msgid "Not connected to a session manager"
- msgstr "Ei yhteyttä istunnon hallintaan"
- 
-@@ -489,5 +479,12 @@ msgstr "X-virhe: %s"
- msgid "OK"
- msgstr "OK"
- 
-+#~ msgid ""
-+#~ "The SessionLogout action is not available since Openbox was built without "
-+#~ "session management support"
-+#~ msgstr ""
-+#~ "SessionLogout tapahtuma ei ole suoritettavissa, koska Openbox käännettiin "
-+#~ "ilman istunnon hallinnan tukea"
-+
- #~ msgid "Failed to execute \"%s\": %s"
- #~ msgstr "Ohjelman \"%s\" suorittaminen epäonnistui: %s"
-diff --git a/po/pl.po b/po/pl.po
-index b0f5d52..00546d0 100644
---- a/po/pl.po
-+++ b/po/pl.po
-@@ -4,14 +4,15 @@
- # Madej <madej at afn.no-ip.org>, 2004.
- # Paweł Rusinek <p.rusinek at gmail.com>, 2007.
- # Piotr DrÄ…g <raven at pmail.pl>, 2007.
-+# Jakub Łojewski <lojewski at ovi.com>, 2010.
- #
- msgid ""
- msgstr ""
- "Project-Id-Version: Openbox 3.4.3\n"
- "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
--"POT-Creation-Date: 2008-11-15 22:28+0100\n"
--"PO-Revision-Date: 2007-07-14 00:43+0200\n"
--"Last-Translator: Piotr DrÄ…g <raven at pmail.pl>\n"
-+"POT-Creation-Date: 2010-03-11 14:26+0100\n"
-+"PO-Revision-Date: 2010-03-11 13:55+0100\n"
-+"Last-Translator: Jakub Łojewski <lojewski at ovi.com>\n"
- "Language-Team: Polish <pl at li.org>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
-@@ -20,91 +21,84 @@ msgstr ""
- #: openbox/actions.c:149
- #, c-format
- msgid "Invalid action \"%s\" requested. No such action exists."
--msgstr ""
-+msgstr "Wywołana akcja \"%s\" nie istnieje."
- 
- #: openbox/actions/execute.c:128
- msgid "No"
--msgstr ""
-+msgstr "Nie"
- 
- #: openbox/actions/execute.c:129
- msgid "Yes"
--msgstr ""
-+msgstr "Tak"
- 
- #: openbox/actions/execute.c:133
- msgid "Execute"
--msgstr ""
-+msgstr "Wykonaj"
- 
- #: openbox/actions/execute.c:142
- #, c-format
- msgid "Failed to convert the path \"%s\" from utf8"
- msgstr "Nie można przekonwertować ścieżki \"%s\" z UTF-8"
- 
--#: openbox/actions/exit.c:52 openbox/actions/session.c:64
--#: openbox/client.c:3465
-+#: openbox/actions/exit.c:62 openbox/client.c:3506
- msgid "Cancel"
--msgstr ""
-+msgstr "Anuluj"
- 
--#: openbox/actions/exit.c:53
-+#: openbox/actions/exit.c:63
- msgid "Exit"
--msgstr ""
--
--#: openbox/actions/exit.c:56
--msgid "Are you sure you want to exit Openbox?"
--msgstr ""
--
--#: openbox/actions/exit.c:57
--msgid "Exit Openbox"
--msgstr ""
-+msgstr "Wyjście"
- 
--#. TRANSLATORS: Don't translate the word "SessionLogout" as it's the
--#. name of the action you write in rc.xml
--#: openbox/actions/session.c:43
--msgid ""
--"The SessionLogout action is not available since Openbox was built without "
--"session management support"
--msgstr ""
-+#: openbox/actions/exit.c:67
-+msgid "Are you sure you want to log out?"
-+msgstr "Czy na pewno chcesz się wylogować?"
- 
--#: openbox/actions/session.c:65 openbox/actions/session.c:70
-+#: openbox/actions/exit.c:68
- msgid "Log Out"
--msgstr ""
-+msgstr "Wyloguj"
- 
--#: openbox/actions/session.c:69
--msgid "Are you sure you want to log out?"
--msgstr ""
-+#: openbox/actions/exit.c:71
-+msgid "Are you sure you want to exit Openbox?"
-+msgstr "Czy na pewno chcesz opuścić Openboksa?"
-+
-+#: openbox/actions/exit.c:72
-+msgid "Exit Openbox"
-+msgstr "Opuść Openbox"
- 
--#: openbox/client.c:2012
-+#: openbox/client.c:2024
- msgid "Unnamed Window"
--msgstr ""
-+msgstr "Okno bez nazwy"
- 
--#: openbox/client.c:2026 openbox/client.c:2058
-+#: openbox/client.c:2038 openbox/client.c:2070
- msgid "Killing..."
--msgstr ""
-+msgstr "Kończenie..."
- 
--#: openbox/client.c:2028 openbox/client.c:2060
-+#: openbox/client.c:2040 openbox/client.c:2072
- msgid "Not Responding"
--msgstr ""
-+msgstr "Nie odpowiada"
- 
--#: openbox/client.c:3454
-+#: openbox/client.c:3495
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to force it "
- "to exit by sending the %s signal?"
- msgstr ""
-+"Okno \"%s\" nie odpowiada. Czy wymusić zakończenie poprzez wysłanie sygnału %"
-+"s?"
- 
--#: openbox/client.c:3456
-+#: openbox/client.c:3497
- msgid "End Process"
--msgstr ""
-+msgstr "Zakończ proces"
- 
--#: openbox/client.c:3460
-+#: openbox/client.c:3501
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to disconnect "
- "it from the X server?"
--msgstr ""
-+msgstr "Okno \"%s\" nie odpowiada. Odłączyć je od serwera X?"
- 
--#: openbox/client.c:3462
-+#: openbox/client.c:3503
- msgid "Disconnect"
--msgstr ""
-+msgstr "Odłącz"
- 
- #: openbox/client_list_combined_menu.c:87 openbox/client_list_menu.c:91
- msgid "Go there..."
-@@ -190,7 +184,7 @@ msgstr "Wyświetl/ukryj _dekoracje"
- msgid "_Close"
- msgstr "Z_amknij"
- 
--#: openbox/config.c:781
-+#: openbox/config.c:798
- #, c-format
- msgid "Invalid button \"%s\" specified in config file"
- msgstr "Nieprawidłowy klawisz \"%s\" określony w pliku konfiguracyjnym"
-@@ -219,7 +213,7 @@ msgstr "Nieprawidłowe wyjście z pipe-menu \"%s\""
- msgid "Attempted to access menu \"%s\" but it does not exist"
- msgstr "Spróbowano uzyskać dostęp do menu \"%s\", ale ono nie istnieje"
- 
--#: openbox/menu.c:367 openbox/menu.c:368
-+#: openbox/menu.c:370 openbox/menu.c:371
- msgid "More..."
- msgstr "Więcej..."
- 
-@@ -254,48 +248,52 @@ msgstr "Serwer X nie obsługuje ustawień lokalnych."
- msgid "Cannot set locale modifiers for the X server."
- msgstr "Nie można ustawić modyfikatorów lokalnych dla serwera X."
- 
--#: openbox/openbox.c:263
-+#: openbox/openbox.c:265
- msgid "Unable to find a valid config file, using some simple defaults"
- msgstr ""
- "Nie można znaleźć prawidłowego pliku konfiguracyjnego, używanie "
- "domyślnychwartości"
- 
--#: openbox/openbox.c:297
-+#: openbox/openbox.c:299
- msgid "Unable to load a theme."
- msgstr "Nie można wczytać motywu."
- 
--#: openbox/openbox.c:377
-+#: openbox/openbox.c:379
- #, c-format
- msgid ""
- "One or more XML syntax errors were found while parsing the Openbox "
- "configuration files.  See stdout for more information.  The last error seen "
- "was in file \"%s\" line %d, with message: %s"
- msgstr ""
-+"Jeden lub więcej błędów składniowych XML zostało znalezionych podczas "
-+"sprawdzania plików konfiguracyjnych. Zobacz stdout aby uzyskać więcej "
-+"informacji. Ostatnio błąd znaleziono w pliku \"%s\" linia %d, z wiadomością: "
-+"%s"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Openbox Syntax Error"
--msgstr ""
-+msgstr "Błąd składniowy Openboksa"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Close"
- msgstr "Zamknij"
- 
--#: openbox/openbox.c:448
-+#: openbox/openbox.c:463
- #, c-format
- msgid "Restart failed to execute new executable \"%s\": %s"
- msgstr ""
- "Wykonanie nowego pliku wykonywalnego \"%s\" podczas ponownego "
- "uruchomienianie powiodło się: %s"
- 
--#: openbox/openbox.c:518 openbox/openbox.c:520
-+#: openbox/openbox.c:533 openbox/openbox.c:535
- msgid "Copyright (c)"
- msgstr "Copyright (c)"
- 
--#: openbox/openbox.c:529
-+#: openbox/openbox.c:544
- msgid "Syntax: openbox [options]\n"
- msgstr "Składnia: openbox [opcje]\n"
- 
--#: openbox/openbox.c:530
-+#: openbox/openbox.c:545
- msgid ""
- "\n"
- "Options:\n"
-@@ -303,30 +301,30 @@ msgstr ""
- "\n"
- "Opcje:\n"
- 
--#: openbox/openbox.c:531
-+#: openbox/openbox.c:546
- msgid "  --help              Display this help and exit\n"
- msgstr "  --help              Wyświetla tę pomoc i kończy\n"
- 
--#: openbox/openbox.c:532
-+#: openbox/openbox.c:547
- msgid "  --version           Display the version and exit\n"
- msgstr "  --version           Wyświetla wersję i kończy\n"
- 
--#: openbox/openbox.c:533
-+#: openbox/openbox.c:548
- msgid "  --replace           Replace the currently running window manager\n"
- msgstr "  --replace           Zastępuje aktualnie działający menedżer okien\n"
- 
- #. TRANSLATORS: if you translate "FILE" here, make sure to keep the "Specify..."
- #. aligned still, if you have to, make a new line with \n and 22 spaces. It's
- #. fine to leave it as FILE though.
--#: openbox/openbox.c:537
-+#: openbox/openbox.c:552
- msgid "  --config-file FILE  Specify the path to the config file to use\n"
--msgstr ""
-+msgstr "  --config-file FILE  Podaj ścieżkę do pliku konfiguracji\n"
- 
--#: openbox/openbox.c:538
-+#: openbox/openbox.c:553
- msgid "  --sm-disable        Disable connection to the session manager\n"
- msgstr "  --sm-disable        Nie tworzy połączenia z menedżerem sesji\n"
- 
--#: openbox/openbox.c:539
-+#: openbox/openbox.c:554
- msgid ""
- "\n"
- "Passing messages to a running Openbox instance:\n"
-@@ -334,19 +332,19 @@ msgstr ""
- "\n"
- "Przekazywanie komunikatów do działającej instancji Openboksa:\n"
- 
--#: openbox/openbox.c:540
-+#: openbox/openbox.c:555
- msgid "  --reconfigure       Reload Openbox's configuration\n"
- msgstr "  --reconfigure       Ponownie wczytuje pliki konfiguracyjne\n"
- 
--#: openbox/openbox.c:541
-+#: openbox/openbox.c:556
- msgid "  --restart           Restart Openbox\n"
- msgstr "  --restart           Ponownie uruchamia Openboksa\n"
- 
--#: openbox/openbox.c:542
-+#: openbox/openbox.c:557
- msgid "  --exit              Exit Openbox\n"
--msgstr ""
-+msgstr "  --exit              Opuść Openbox\n"
- 
--#: openbox/openbox.c:543
-+#: openbox/openbox.c:558
- msgid ""
- "\n"
- "Debugging options:\n"
-@@ -354,24 +352,24 @@ msgstr ""
- "\n"
- "Opcje debugowania:\n"
- 
--#: openbox/openbox.c:544
-+#: openbox/openbox.c:559
- msgid "  --sync              Run in synchronous mode\n"
- msgstr "  --sync              Uruchamia w trybie synchronicznym\n"
- 
--#: openbox/openbox.c:545
-+#: openbox/openbox.c:560
- msgid "  --debug             Display debugging output\n"
- msgstr "  --debug             Wyświetla informacje o debugowaniu\n"
- 
--#: openbox/openbox.c:546
-+#: openbox/openbox.c:561
- msgid "  --debug-focus       Display debugging output for focus handling\n"
- msgstr ""
- "  --debug-focus       Wyświetla wyjście debugowania obsługi aktywacji\n"
- 
--#: openbox/openbox.c:547
-+#: openbox/openbox.c:562
- msgid "  --debug-xinerama    Split the display into fake xinerama screens\n"
- msgstr "  --debug-xinerama    Dzieli ekran na sztuczne ekrany xineramy\n"
- 
--#: openbox/openbox.c:548
-+#: openbox/openbox.c:563
- #, c-format
- msgid ""
- "\n"
-@@ -380,26 +378,26 @@ msgstr ""
- "\n"
- "Proszę zgłaszać błędy (w języku angielskim) pod adresem %s\n"
- 
--#: openbox/openbox.c:617
-+#: openbox/openbox.c:645
- msgid "--config-file requires an argument\n"
--msgstr ""
-+msgstr "--config-file wymaga argumentu\n"
- 
--#: openbox/openbox.c:660
-+#: openbox/openbox.c:688
- #, c-format
- msgid "Invalid command line argument \"%s\"\n"
- msgstr "Nieprawidłowy argument wiersza poleceń \"%s\"\n"
- 
--#: openbox/screen.c:102 openbox/screen.c:190
-+#: openbox/screen.c:103 openbox/screen.c:191
- #, c-format
- msgid "A window manager is already running on screen %d"
- msgstr "Menedżer okien jest już uruchomiony na ekranie %d"
- 
--#: openbox/screen.c:124
-+#: openbox/screen.c:125
- #, c-format
- msgid "Could not acquire window manager selection on screen %d"
- msgstr "Nie można uzyskać wyboru menedżera okien na ekranie %d"
- 
--#: openbox/screen.c:145
-+#: openbox/screen.c:146
- #, c-format
- msgid "The WM on screen %d is not exiting"
- msgstr "Menedżer okien na ekranie %d nie kończy działania"
-@@ -408,7 +406,7 @@ msgstr "Menedżer okien na ekranie %d nie kończy działania"
- #. arguments, you can use %1$d for the first one and %2$d for the
- #. second one. For example,
- #. "The current session has %2$d desktops, but Openbox is configured for %1$d ..."
--#: openbox/screen.c:412
-+#: openbox/screen.c:421
- #, c-format
- msgid ""
- "Openbox is configured for %d desktop, but the current session has %d.  "
-@@ -419,29 +417,29 @@ msgid_plural ""
- msgstr[0] ""
- msgstr[1] ""
- 
--#: openbox/screen.c:1180
-+#: openbox/screen.c:1203
- #, c-format
- msgid "desktop %i"
- msgstr "pulpit %i"
- 
--#: openbox/session.c:104
-+#: openbox/session.c:105
- #, c-format
- msgid "Unable to make directory \"%s\": %s"
- msgstr "Nie można utworzyć katalogu \"%s\": %s"
- 
--#: openbox/session.c:466
-+#: openbox/session.c:472
- #, c-format
- msgid "Unable to save the session to \"%s\": %s"
- msgstr "Nie można zapisać sesji do \"%s\": %s"
- 
--#: openbox/session.c:605
-+#: openbox/session.c:611
- #, c-format
- msgid "Error while saving the session to \"%s\": %s"
- msgstr "Wystąpił błąd podczas zapisywania sesji do \"%s\": %s"
- 
--#: openbox/session.c:842
-+#: openbox/session.c:848
- msgid "Not connected to a session manager"
--msgstr ""
-+msgstr "Nie podłączono do menedżera sesji"
- 
- #: openbox/startupnotify.c:243
- #, c-format
-@@ -476,7 +474,14 @@ msgstr "BÅ‚Ä…d X: %s"
- 
- #: openbox/prompt.c:200
- msgid "OK"
--msgstr ""
-+msgstr "OK"
-+
-+#~ msgid ""
-+#~ "The SessionLogout action is not available since Openbox was built without "
-+#~ "session management support"
-+#~ msgstr ""
-+#~ "SessionLogout jest niedostępne, ponieważ Openbox został stworzony bez "
-+#~ "wsparcia dla zarzÄ…dzania sesjÄ…"
- 
- #~ msgid "Failed to execute \"%s\": %s"
- #~ msgstr "Wykonanie \"%s\" nie powiodło się: %s"
-diff --git a/po/pt.po b/po/pt.po
-index f962756..e7504e9 100644
---- a/po/pt.po
-+++ b/po/pt.po
-@@ -1,30 +1,30 @@
- # Portuguese messages for openbox
--# Copyright (C) 2007 Mikael Magnusson
-+# Copyright (C) 2010 Mikael Magnusson
- # This file is distributed under the same license as the openbox package.
--# Gonçalo Ferreira <gonsas at gmail.com>, 2006.
--# althaser <althaser at gmail.com>, 2008.
-+# Gonçalo Ferreira <gonsas at gmail.com>, 2006.
-+# Pedro Beja <althaser at gmail.com>, 2007 2008 2010.
- #
- msgid ""
- msgstr ""
--"Project-Id-Version: Openbox 3.4.7\n"
-+"Project-Id-Version: Openbox 3.4.11.2\n"
- "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
--"POT-Creation-Date: 2008-11-15 22:28+0100\n"
--"PO-Revision-Date: 2008-03-16 15:46+0100\n"
--"Last-Translator: althaser <althaser at gmail.com>\n"
-+"POT-Creation-Date: 2010-05-14 15:50+0200\n"
-+"PO-Revision-Date: 2010-05-14 15:51+0100\n"
-+"Last-Translator: Pedro Beja <althaser at gmail.com>\n"
- "Language-Team: None\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=ISO-8859-1\n"
-+"Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
- 
- #: openbox/actions.c:149
- #, c-format
- msgid "Invalid action \"%s\" requested. No such action exists."
--msgstr "Pedido de acção \"%s\" inválido. Não existem quaisquer acções."
-+msgstr "Pedido de acção \"%s\" inválido. Não existem quaisquer acções."
- 
- #: openbox/actions/execute.c:128
- msgid "No"
--msgstr "Não"
-+msgstr "Não"
- 
- #: openbox/actions/execute.c:129
- msgid "Yes"
-@@ -39,76 +39,64 @@ msgstr "Executar"
- msgid "Failed to convert the path \"%s\" from utf8"
- msgstr "Falha a converter o caminho \"%s\" do utf8"
- 
--#: openbox/actions/exit.c:52 openbox/actions/session.c:64
--#: openbox/client.c:3465
-+#: openbox/actions/exit.c:62 openbox/client.c:3506
- msgid "Cancel"
- msgstr "Cancelar"
- 
--#: openbox/actions/exit.c:53
-+#: openbox/actions/exit.c:63
- msgid "Exit"
- msgstr "Sair"
- 
--#: openbox/actions/exit.c:56
-+#: openbox/actions/exit.c:67
-+msgid "Are you sure you want to log out?"
-+msgstr "Tem a certeza que pretende fazer log out?"
-+
-+#: openbox/actions/exit.c:68
-+msgid "Log Out"
-+msgstr "Log Out"
-+
-+#: openbox/actions/exit.c:71
- msgid "Are you sure you want to exit Openbox?"
- msgstr "Tem a certeza que pretende sair do Openbox?"
- 
--#: openbox/actions/exit.c:57
-+#: openbox/actions/exit.c:72
- msgid "Exit Openbox"
- msgstr "Sair do Openbox"
- 
--#. TRANSLATORS: Don't translate the word "SessionLogout" as it's the
--#. name of the action you write in rc.xml
--#: openbox/actions/session.c:43
--msgid ""
--"The SessionLogout action is not available since Openbox was built without "
--"session management support"
--msgstr ""
--"A acção SessãoLogout não está disponível visto que o Openbox foi construído "
--"sem suporte a gestão de sessão"
--
--#: openbox/actions/session.c:65 openbox/actions/session.c:70
--msgid "Log Out"
--msgstr "Log Out"
--
--#: openbox/actions/session.c:69
--msgid "Are you sure you want to log out?"
--msgstr "Tem a certeza que pretende fazer log out?"
--
--#: openbox/client.c:2012
-+#: openbox/client.c:2024
- msgid "Unnamed Window"
- msgstr "Janela sem nome"
- 
--#: openbox/client.c:2026 openbox/client.c:2058
-+#: openbox/client.c:2038 openbox/client.c:2070
- msgid "Killing..."
- msgstr "Terminando..."
- 
--#: openbox/client.c:2028 openbox/client.c:2060
-+#: openbox/client.c:2040 openbox/client.c:2072
- msgid "Not Responding"
--msgstr "Não está a responder"
-+msgstr "Não está a responder"
- 
--#: openbox/client.c:3454
-+#: openbox/client.c:3495
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to force it "
- "to exit by sending the %s signal?"
- msgstr ""
--"A janela \"%s\" parece não estar a responder. Pretende forçá-la a sair "
--"enviando o sinal %s?"
-+"A janela \"%s\" parece não estar a responder. Quer forçá-la a sair enviando "
-+"o sinal %s?"
- 
--#: openbox/client.c:3456
-+#: openbox/client.c:3497
- msgid "End Process"
- msgstr "Terminar Processo"
- 
--#: openbox/client.c:3460
-+#: openbox/client.c:3501
- #, c-format
- msgid ""
- "The window \"%s\" does not seem to be responding.  Do you want to disconnect "
- "it from the X server?"
- msgstr ""
--"A janela \"%s\" parece não estar a responder. Pretende desligá-la do "
--"servidor X?"
-+"A janela \"%s\" parece não estar a responder. Quer desligá-la do servidor X?"
- 
--#: openbox/client.c:3462
-+#: openbox/client.c:3503
- msgid "Disconnect"
- msgstr "Desligar"
- 
-@@ -118,15 +106,15 @@ msgstr "Ir para..."
- 
- #: openbox/client_list_combined_menu.c:94
- msgid "Manage desktops"
--msgstr "Gerir áreas de trabalho"
-+msgstr "Gerir áreas de trabalho"
- 
- #: openbox/client_list_combined_menu.c:95 openbox/client_list_menu.c:155
- msgid "_Add new desktop"
--msgstr "_Adicionar nova área de trabalho"
-+msgstr "_Adicionar nova área de trabalho"
- 
- #: openbox/client_list_combined_menu.c:96 openbox/client_list_menu.c:156
- msgid "_Remove last desktop"
--msgstr "_Remover a última área de trabalho"
-+msgstr "_Remover última área de trabalho"
- 
- #: openbox/client_list_combined_menu.c:149
- msgid "Windows"
-@@ -134,11 +122,11 @@ msgstr "Janelas"
- 
- #: openbox/client_list_menu.c:203
- msgid "Desktops"
--msgstr "Áreas de trabalho"
-+msgstr "Áreas de trabalho"
- 
- #: openbox/client_menu.c:258
- msgid "All desktops"
--msgstr "Todas as áreas de trabalho"
-+msgstr "Todas as áreas de trabalho"
- 
- #: openbox/client_menu.c:370
- msgid "_Layer"
-@@ -158,11 +146,11 @@ msgstr "Sempre no _fundo"
- 
- #: openbox/client_menu.c:379
- msgid "_Send to desktop"
--msgstr "Enviar para área de _trabalho"
-+msgstr "Enviar para área de _trabalho"
- 
- #: openbox/client_menu.c:383
- msgid "Client menu"
--msgstr "Menu do cliente"
-+msgstr "Menu cliente"
- 
- #: openbox/client_menu.c:393
- msgid "R_estore"
-@@ -196,57 +184,57 @@ msgstr "Des/_Decorar"
- msgid "_Close"
- msgstr "_Fechar"
- 
--#: openbox/config.c:781
-+#: openbox/config.c:798
- #, c-format
- msgid "Invalid button \"%s\" specified in config file"
--msgstr "Botão inválido \"%s\" especificado no ficheiro de configuração"
-+msgstr "Botão inválido \"%s\" especificado no ficheiro de configuração"
- 
- #: openbox/keyboard.c:157
- msgid "Conflict with key binding in config file"
--msgstr "Conflito com tecla de atalho no ficheiro de configuração"
-+msgstr "Conflito com tecla de atalho no ficheiro de configuração"
- 
- #: openbox/menu.c:102 openbox/menu.c:110
- #, c-format
- msgid "Unable to find a valid menu file \"%s\""
--msgstr "Incapaz de encontrar um ficheiro de menu \"%s\" válido"
-+msgstr "Incapaz de encontrar um ficheiro de menu válido \"%s\""
- 
- #: openbox/menu.c:170
- #, c-format
- msgid "Failed to execute command for pipe-menu \"%s\": %s"
--msgstr "Falha no comando de execução para o menu de processamento \"%s\": %s"
-+msgstr "Falha a executar comando para o menu de processamento \"%s\": %s"
- 
- #: openbox/menu.c:184
- #, c-format
- msgid "Invalid output from pipe-menu \"%s\""
--msgstr "Resultado inválido do menu de processamento \"%s\""
-+msgstr "Resultado inválido do menu de processamento \"%s\""
- 
- #: openbox/menu.c:197
- #, c-format
- msgid "Attempted to access menu \"%s\" but it does not exist"
--msgstr "Tentou aceder ao menu \"%s\" mas ele não existe"
-+msgstr "Tentou aceder ao menu \"%s\" mas ele não existe"
- 
--#: openbox/menu.c:367 openbox/menu.c:368
-+#: openbox/menu.c:370 openbox/menu.c:371
- msgid "More..."
- msgstr "Mais..."
- 
- #: openbox/mouse.c:373
- #, c-format
- msgid "Invalid button \"%s\" in mouse binding"
--msgstr "Botão inválido \"%s\" no atalho do rato"
-+msgstr "Botão inválido \"%s\" no atalho do rato"
- 
- #: openbox/mouse.c:379
- #, c-format
- msgid "Invalid context \"%s\" in mouse binding"
--msgstr "Contexto inválido \"%s\" no atalho do rato"
-+msgstr "Contexto inválido \"%s\" no atalho do rato"
- 
- #: openbox/openbox.c:133
- #, c-format
- msgid "Unable to change to home directory \"%s\": %s"
--msgstr "Incapaz de mudar para o directório home \"%s\": %s"
-+msgstr "Incapaz de mudar para o directório home \"%s\": %s"
- 
- #: openbox/openbox.c:152
- msgid "Failed to open the display from the DISPLAY environment variable."
--msgstr "Falha ao abrir o ecrã da variável de ambiente DISPLAY."
-+msgstr "Falha ao abrir o ecrã da variável de ambiente DISPLAY."
- 
- #: openbox/openbox.c:183
- msgid "Failed to initialize the obrender library."
-@@ -254,23 +242,23 @@ msgstr "Falha ao inicializar a biblioteca obrender"
- 
- #: openbox/openbox.c:194
- msgid "X server does not support locale."
--msgstr "O servidor X não suporta o locale."
-+msgstr "O servidor X não suporta o locale."
- 
- #: openbox/openbox.c:196
- msgid "Cannot set locale modifiers for the X server."
--msgstr "Não pode definir locales modificados para o servidor X."
-+msgstr "Não é possível configurar modificadores de locale para o servidor X."
- 
--#: openbox/openbox.c:263
-+#: openbox/openbox.c:265
- msgid "Unable to find a valid config file, using some simple defaults"
- msgstr ""
--"Incapaz de encontrar um ficheiro de configuração válido, usando algumas "
--"configurações simples de omissão"
-+"Incapaz de encontrar um ficheiro de configuração válido, usando alguns "
-+"valores simples de omissão"
- 
--#: openbox/openbox.c:297
-+#: openbox/openbox.c:299
- msgid "Unable to load a theme."
- msgstr "Incapaz de carregar o tema."
- 
--#: openbox/openbox.c:377
-+#: openbox/openbox.c:379
- #, c-format
- msgid ""
- "One or more XML syntax errors were found while parsing the Openbox "
-@@ -278,111 +266,111 @@ msgid ""
- "was in file \"%s\" line %d, with message: %s"
- msgstr ""
- "Um ou mais erros de sintaxe do XML foram encontrados enquanto analizava os "
--"ficheiros de configuração do Openbox. Veja o stdout para mais informações.  "
--"O último erro visto foi no ficheiro \"%s\" linha %d, com a mensagem: %s"
-+"ficheiros de configuração do Openbox. Veja o stdout para mais informações.  "
-+"O último erro visto foi no ficheiro \"%s\" linha %d, com a mensagem: %s"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Openbox Syntax Error"
- msgstr "Erro de Sintaxe do Openbox"
- 
--#: openbox/openbox.c:379
-+#: openbox/openbox.c:381
- msgid "Close"
- msgstr "Fechar"
- 
--#: openbox/openbox.c:448
-+#: openbox/openbox.c:463
- #, c-format
- msgid "Restart failed to execute new executable \"%s\": %s"
--msgstr "Falha a reiniciar a execução de um novo executável \"%s\": %s"
-+msgstr "Falha a reiniciar a execução de um novo executável \"%s\": %s"
- 
--#: openbox/openbox.c:518 openbox/openbox.c:520
-+#: openbox/openbox.c:533 openbox/openbox.c:535
- msgid "Copyright (c)"
- msgstr "Direitos de autor (c)"
- 
--#: openbox/openbox.c:529
-+#: openbox/openbox.c:544
- msgid "Syntax: openbox [options]\n"
--msgstr "Sintaxe: openbox [opções]\n"
-+msgstr "Sintaxe: openbox [opções]\n"
- 
--#: openbox/openbox.c:530
-+#: openbox/openbox.c:545
- msgid ""
- "\n"
- "Options:\n"
- msgstr ""
- "\n"
--"Opções:\n"
-+"Opções:\n"
- 
--#: openbox/openbox.c:531
-+#: openbox/openbox.c:546
- msgid "  --help              Display this help and exit\n"
- msgstr "  --help              Mostra esta ajuda e sai\n"
- 
--#: openbox/openbox.c:532
-+#: openbox/openbox.c:547
- msgid "  --version           Display the version and exit\n"
--msgstr "  --version           Mostra a versão e sai\n"
-+msgstr "  --version           Mostra a versão e sai\n"
- 
--#: openbox/openbox.c:533
-+#: openbox/openbox.c:548
- msgid "  --replace           Replace the currently running window manager\n"
- msgstr "  --replace           Substitui o corrente gestor de janelas\n"
- 
- #. TRANSLATORS: if you translate "FILE" here, make sure to keep the "Specify..."
- #. aligned still, if you have to, make a new line with \n and 22 spaces. It's
- #. fine to leave it as FILE though.
--#: openbox/openbox.c:537
-+#: openbox/openbox.c:552
- msgid "  --config-file FILE  Specify the path to the config file to use\n"
- msgstr ""
--" --config-file FICHEIRO\n"
--"                      Especifica o caminho do ficheiro de configuração para "
-+" --config-file ficheiro\n"
-+"                      Especifica o caminho do ficheiro de configuração a "
- "usar\n"
- 
--#: openbox/openbox.c:538
-+#: openbox/openbox.c:553
- msgid "  --sm-disable        Disable connection to the session manager\n"
--msgstr "  --sm-disable        Desactiva a ligação com o gestor de sessões\n"
-+msgstr "  --sm-disable        Desactiva a ligação com o gestor de sessões\n"
- 
--#: openbox/openbox.c:539
-+#: openbox/openbox.c:554
- msgid ""
- "\n"
- "Passing messages to a running Openbox instance:\n"
- msgstr ""
- "\n"
--"Passando mensagens para uma solicitação do Openbox em execução\n"
-+"Passando mensagens para uma instância do Openbox em execução:\n"
- 
--#: openbox/openbox.c:540
-+#: openbox/openbox.c:555
- msgid "  --reconfigure       Reload Openbox's configuration\n"
--msgstr "  --reconfigure       Recarrega a configuração do Openbox\n"
-+msgstr "  --reconfigure       Recarrega a configuração do Openbox\n"
- 
--#: openbox/openbox.c:541
-+#: openbox/openbox.c:556
- msgid "  --restart           Restart Openbox\n"
- msgstr "  --restart           Reinicia o Openbox\n"
- 
--#: openbox/openbox.c:542
-+#: openbox/openbox.c:557
- msgid "  --exit              Exit Openbox\n"
- msgstr " --sair              Sai do Openbox\n"
- 
--#: openbox/openbox.c:543
-+#: openbox/openbox.c:558
- msgid ""
- "\n"
- "Debugging options:\n"
- msgstr ""
- "\n"
--"Opções de depuração:\n"
-+"Opções de depuração:\n"
- 
--#: openbox/openbox.c:544
-+#: openbox/openbox.c:559
- msgid "  --sync              Run in synchronous mode\n"
- msgstr "  --sync              Executa em modo sincronizado\n"
- 
--#: openbox/openbox.c:545
-+#: openbox/openbox.c:560
- msgid "  --debug             Display debugging output\n"
--msgstr "  --debug             Mostra o resultado da depuração\n"
-+msgstr "  --debug             Mostra o resultado da depuração\n"
- 
--#: openbox/openbox.c:546
-+#: openbox/openbox.c:561
- msgid "  --debug-focus       Display debugging output for focus handling\n"
- msgstr ""
--"  --debug-focus       Mostra o resultado da depuração para manipulação em "
-+"  --debug-focus       Mostra o resultado de depuração para manipulação de "
- "foco\n"
- 
--#: openbox/openbox.c:547
-+#: openbox/openbox.c:562
- msgid "  --debug-xinerama    Split the display into fake xinerama screens\n"
--msgstr "  --debug-xinerama    Divide o ecrã em falsos ecrãs xinerama\n"
-+msgstr "  --debug-xinerama    Divide o ecrã em falsos ecrãs xinerama\n"
- 
--#: openbox/openbox.c:548
-+#: openbox/openbox.c:563
- #, c-format
- msgid ""
- "\n"
-@@ -391,35 +379,35 @@ msgstr ""
- "\n"
- "Por favor reporte os erros em %s\n"
- 
--#: openbox/openbox.c:617
-+#: openbox/openbox.c:645
- msgid "--config-file requires an argument\n"
- msgstr "--config-file requer um argumento\n"
- 
--#: openbox/openbox.c:660
-+#: openbox/openbox.c:688
- #, c-format
- msgid "Invalid command line argument \"%s\"\n"
--msgstr "Argumento inválido na linha de comandos \"%s\"\n"
-+msgstr "Argumento inválido na linha de comandos \"%s\"\n"
- 
--#: openbox/screen.c:102 openbox/screen.c:190
-+#: openbox/screen.c:103 openbox/screen.c:191
- #, c-format
- msgid "A window manager is already running on screen %d"
--msgstr "Um gestor de janelas já está em execução no ecrã %d"
-+msgstr "Um gestor de janelas já está em execução no ecrã %d"
- 
--#: openbox/screen.c:124
-+#: openbox/screen.c:125
- #, c-format
- msgid "Could not acquire window manager selection on screen %d"
--msgstr "Não consegui adequirir o gestor de janelas selecionado no ecrã %d"
-+msgstr "Não consegui adequirir o gestor de janelas selecionado no ecrã %d"
- 
--#: openbox/screen.c:145
-+#: openbox/screen.c:146
- #, c-format
- msgid "The WM on screen %d is not exiting"
--msgstr "O gestor de janelas no ecrã %d não está a fechar"
-+msgstr "O gestor de janelas no ecrã %d não está a fechar"
- 
- #. TRANSLATORS: If you need to specify a different order of the
- #. arguments, you can use %1$d for the first one and %2$d for the
- #. second one. For example,
- #. "The current session has %2$d desktops, but Openbox is configured for %1$d ..."
--#: openbox/screen.c:412
-+#: openbox/screen.c:421
- #, c-format
- msgid ""
- "Openbox is configured for %d desktop, but the current session has %d.  "
-@@ -428,35 +416,35 @@ msgid_plural ""
- "Openbox is configured for %d desktops, but the current session has %d.  "
- "Overriding the Openbox configuration."
- msgstr[0] ""
--"O Openbox está configurado para %d área de trabalho, mas a sessão corrente "
--"tem %d.  Sobrescrevendo a configuração do Openbox."
-+"O Openbox está configurado para %d área de trabalho, mas a sessão corrente "
-+"tem %d.  Sobrescrevendo a configuração do Openbox."
- msgstr[1] ""
--"O Openbox está configurado para %d áreas de trabalho, mas a sessão corrente "
--"tem %d.  Sobrescrevendo a configuração do Openbox."
-+"O Openbox está configurado para %d áreas de trabalho, mas a sessão corrente "
-+"tem %d.  Sobrescrevendo a configuração do Openbox."
- 
--#: openbox/screen.c:1180
-+#: openbox/screen.c:1203
- #, c-format
- msgid "desktop %i"
--msgstr "área de trabalho %i"
-+msgstr "área de trabalho %i"
- 
--#: openbox/session.c:104
-+#: openbox/session.c:105
- #, c-format
- msgid "Unable to make directory \"%s\": %s"
--msgstr "Incapaz de criar o directório \"%s\": %s "
-+msgstr "Incapaz de criar o directório \"%s\": %s"
- 
--#: openbox/session.c:466
-+#: openbox/session.c:472
- #, c-format
- msgid "Unable to save the session to \"%s\": %s"
--msgstr "Incapaz de guardar a sessão em \"%s\": %s"
-+msgstr "Incapaz de guardar a sessão em \"%s\": %s"
- 
--#: openbox/session.c:605
-+#: openbox/session.c:611
- #, c-format
- msgid "Error while saving the session to \"%s\": %s"
--msgstr "Erro enquanto guardava a sessão em \"%s\": %s"
-+msgstr "Erro enquanto guardo a sessão em \"%s\": %s"
- 
--#: openbox/session.c:842
-+#: openbox/session.c:848
- msgid "Not connected to a session manager"
--msgstr "Desligado do gestor de sessão"
-+msgstr "Não está ligado a um gestor de sessões"
- 
- #: openbox/startupnotify.c:243
- #, c-format
-@@ -466,22 +454,22 @@ msgstr "Executando %s"
- #: openbox/translate.c:59
- #, c-format
- msgid "Invalid modifier key \"%s\" in key/mouse binding"
--msgstr "Chave modificadora \"%s\" inválida no atalho de tecla/rato"
-+msgstr "Chave modificadora inválida \"%s\" no atalho de tecla/rato"
- 
- #: openbox/translate.c:138
- #, c-format
- msgid "Invalid key code \"%s\" in key binding"
--msgstr "Código chave \"%s\" inválido na tecla de atalho"
-+msgstr "Código chave inválido \"%s\" na tecla de atalho"
- 
- #: openbox/translate.c:145
- #, c-format
- msgid "Invalid key name \"%s\" in key binding"
--msgstr "Nome de chave \"%s\" inválido na tecla de atalho"
-+msgstr "Nome de chave inválido \"%s\" na tecla de atalho"
- 
- #: openbox/translate.c:151
- #, c-format
- msgid "Requested key \"%s\" does not exist on the display"
--msgstr "Chave requerida \"%s\" não existe no ecrã"
-+msgstr "Chave requerida \"%s\" não existe no ecrã"
- 
- #: openbox/xerror.c:40
- #, c-format
-@@ -492,8 +480,15 @@ msgstr "Erro no X: %s"
- msgid "OK"
- msgstr "OK"
- 
-+#~ msgid ""
-+#~ "The SessionLogout action is not available since Openbox was built without "
-+#~ "session management support"
-+#~ msgstr ""
-+#~ "A acção SessionLogout não está disponível visto que o Openbox foi "
-+#~ "construído sem suporte à gestão de sessões"
-+
- #~ msgid "Failed to execute \"%s\": %s"
- #~ msgstr "Falha a executar \"%s\": %s"
- 
- #~ msgid "Invalid use of action \"%s\". Action will be ignored."
--#~ msgstr "Uso inválido da acção \"%s\". A acção será ignorada."
-+#~ msgstr "Uso inválido da acção \"%s\". A acção será ignorada."
-diff --git a/themes/Clearlooks/openbox-3/themerc b/themes/Clearlooks/openbox-3/themerc
-index 1dde5fb..4663999 100644
---- a/themes/Clearlooks/openbox-3/themerc
-+++ b/themes/Clearlooks/openbox-3/themerc
-@@ -1,12 +1,12 @@
- !# Clearlooks-Evolving
--!# Clearlooks as it evolves in gnome-svn...
--!# Last updated 19/01/08
-+!# Clearlooks as it evolves in gnome-git...
-+!# Last updated 09/03/10
- 
- # Fonts
- # these are really halos, but who cares?
- 
- *.font: shadow=n
--window.active.label.text.font:shadow=y:shadowtint=25:shadowoffset=1
-+window.active.label.text.font:shadow=y:shadowtint=30:shadowoffset=1
- window.inactive.label.text.font:shadow=y:shadowtint=00:shadowoffset=0
- menu.items.font:shadow=y:shadowtint=0:shadowoffset=1
- 
-@@ -25,11 +25,11 @@ menu.overlap: 2
- *.bg.highlight: 50
- *.bg.shadow:    05
- 
--window.active.title.bg.highlight: 40
--window.active.title.bg.shadow:    00
-+window.active.title.bg.highlight: 35
-+window.active.title.bg.shadow:    05
- 
- window.inactive.title.bg.highlight: 30
--window.inactive.title.bg.shadow:    00
-+window.inactive.title.bg.shadow:    05
- 
- window.*.grip.bg.highlight: 50
- window.*.grip.bg.shadow:    30
-@@ -61,6 +61,11 @@ menu.items.active.bg.colorTo.splitTo: #80a7d6
- menu.items.active.bg.border.color: #4b6e99
- menu.items.active.text.color: #ffffff
- 
-+menu.separator.width: 1
-+menu.separator.padding.width: 0
-+menu.separator.padding.height: 3
-+menu.separator.color: #aaaaaa
-+
- !# set handles here and only the once?
- 
- window.*.handle.bg: Raised solid
-@@ -71,9 +76,6 @@ window.*.grip.bg.color: #eaebec
- 
- !# Active
- 
--!# no handles - kind of closer to the clearlooks border, maybe?
--!#window.active.border.color: #455d7c
--
- window.*.border.color: #585a5d
- 
- window.active.title.separator.color: #4e76a8
-@@ -135,7 +137,7 @@ window.inactive.button.*.image.color: #6D6C6C
- !# osd (pop ups and what not, dock?)
- 
- osd.border.width: 1
--osd.border.color:  #999
-+osd.border.color:  #aaaaaa
- 
- osd.bg: flat border gradient splitvertical
- osd.bg.color: #F0EFEE
diff --git a/meta-oe/recipes-graphics/openbox/openbox_3.4.11.2.bb b/meta-oe/recipes-graphics/openbox/openbox_3.5.0.bb
similarity index 81%
rename from meta-oe/recipes-graphics/openbox/openbox_3.4.11.2.bb
rename to meta-oe/recipes-graphics/openbox/openbox_3.5.0.bb
index e5d645d..ac00046 100644
--- a/meta-oe/recipes-graphics/openbox/openbox_3.4.11.2.bb
+++ b/meta-oe/recipes-graphics/openbox/openbox_3.5.0.bb
@@ -4,14 +4,10 @@ DEPENDS = "glib-2.0 pango libxml2 virtual/libx11"
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-PR = "r1"
+SRC_URI = "http://icculus.org/openbox/releases/openbox-${PV}.tar.gz"
 
-SRC_URI = "http://icculus.org/openbox/releases/openbox-${PV}.tar.gz \
-           file://fix-dialog-buttons.patch;patch=1 \
-           file://fix-decorations.patch;patch=1"
-
-SRC_URI[md5sum] = "30e669134fa81df810fe7d1dc59cd931"
-SRC_URI[sha256sum] = "2e7579389c30e6bb08cc721a2c1af512e049fec2670e71715aa1c4e129ec349d"
+SRC_URI[md5sum] = "00441b53cf14c03566c8e82643544ff9"
+SRC_URI[sha256sum] = "6fa90016530b3aa6102e254079461977439398531fb23e7ec076ff2c140fea0a"
 
 inherit autotools gettext update-alternatives
 
-- 
1.7.2.5





More information about the Openembedded-devel mailing list