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