it won't work right unless we XUngrabKeyboard first,
even though we grabbed the key/button Asychronously.
e.g. "gnome-panel-control --main-menu" */
- XUngrabKeyboard(ob_display, event_lasttime);
+ XUngrabKeyboard(ob_display, event_curtime);
}
for (it = acts; it; it = g_slist_next(it)) {
void action_activate(union ActionData *data)
{
- client_activate(data->activate.any.c, data->activate.here);
+ /* similar to the openbox dock for dockapps, don't let user actions give
+ focus to 3rd-party docks (panels) either (unless they ask for it
+ themselves). */
+ if (data->client.any.c->type != OB_CLIENT_TYPE_DOCK) {
+ /* if using focus_delay, stop the timer now so that focus doesn't go
+ moving on us */
+ event_halt_focus_delay();
+
+ client_activate(data->activate.any.c, data->activate.here, TRUE);
+ }
}
void action_focus(union ActionData *data)
{
- /* if using focus_delay, stop the timer now so that focus doesn't go moving
- on us */
- event_halt_focus_delay();
+ /* similar to the openbox dock for dockapps, don't let user actions give
+ focus to 3rd-party docks (panels) either (unless they ask for it
+ themselves). */
+ if (data->client.any.c->type != OB_CLIENT_TYPE_DOCK) {
+ /* if using focus_delay, stop the timer now so that focus doesn't go
+ moving on us */
+ event_halt_focus_delay();
- client_focus(data->client.any.c);
+ client_focus(data->client.any.c);
+ }
}
void action_unfocus (union ActionData *data)
/* focus the new window? */
if (ob_state() != OB_STATE_STARTING &&
- (config_focus_new || client_search_focus_parent(self)) ||
- (settings && settings->focus == TRUE) &&
+ ((settings && settings->focus == TRUE) ||
+ (!settings && (config_focus_new ||
+ client_search_focus_parent(self)))) &&
/* note the check against Type_Normal/Dialog, not client_normal(self),
which would also include other types. in this case we want more
strict rules for focus */
static void client_get_all(ObClient *self)
{
client_get_area(self);
- client_update_transient_for(self);
- client_update_wmhints(self);
- client_get_startup_id(self);
- client_get_desktop(self);
- client_get_shaped(self);
-
client_get_mwm_hints(self);
- client_get_type(self);/* this can change the mwmhints for special cases */
/* The transient hint is used to pick a type, but the type can also affect
- transiency (dialogs are always made transients). This is Havoc's idea,
- but it is needed to make some apps work right (eg tsclient). */
+ transiency (dialogs are always made transients of their group if they
+ have one). This is Havoc's idea, but it is needed to make some apps
+ work right (eg tsclient). */
+ client_update_transient_for(self);
+ client_get_type(self);/* this can change the mwmhints for special cases */
client_update_transient_for(self);
+ client_update_wmhints(self);
+ client_get_startup_id(self);
+ client_get_desktop(self);/* uses transient data/group/startup id if a
+ desktop is not specified */
+ client_get_shaped(self);
+
client_get_state(self);
{
if (! (self->mwmhints.decorations & OB_MWM_DECOR_ALL)) {
if (! ((self->mwmhints.decorations & OB_MWM_DECOR_HANDLE) ||
(self->mwmhints.decorations & OB_MWM_DECOR_TITLE)))
+ {
/* if the mwm hints request no handle or title, then all
decorations are disabled, but keep the border if that's
specified */
self->decorations = OB_FRAME_DECOR_BORDER;
else
self->decorations = 0;
+ }
}
}
ce.xclient.window = self->window;
ce.xclient.format = 32;
ce.xclient.data.l[0] = prop_atoms.wm_delete_window;
- ce.xclient.data.l[1] = event_lasttime;
+ ce.xclient.data.l[1] = event_curtime;
ce.xclient.data.l[2] = 0l;
ce.xclient.data.l[3] = 0l;
ce.xclient.data.l[4] = 0l;
#799. So now it is RevertToNone again.
*/
XSetInputFocus(ob_display, self->window, RevertToNone,
- event_lasttime);
+ event_curtime);
}
if (self->focus_notify) {
ce.xclient.window = self->window;
ce.xclient.format = 32;
ce.xclient.data.l[0] = prop_atoms.wm_take_focus;
- ce.xclient.data.l[1] = event_lasttime;
+ ce.xclient.data.l[1] = event_curtime;
ce.xclient.data.l[2] = 0l;
ce.xclient.data.l[3] = 0l;
ce.xclient.data.l[4] = 0l;
#ifdef DEBUG_FOCUS
ob_debug("%sively focusing %lx at %d\n",
(self->can_focus ? "act" : "pass"),
- self->window, (gint) event_lasttime);
+ self->window, (gint) event_curtime);
#endif
/* Cause the FocusIn to come back to us. Important for desktop switches,
}
}
-void client_activate(ObClient *self, gboolean here)
+void client_activate(ObClient *self, gboolean here, gboolean user)
{
+ /* XXX do some stuff here if user is false to determine if we really want
+ to activate it or not (a parent or group member is currently active) */
+
if (client_normal(self) && screen_showing_desktop)
screen_show_desktop(FALSE);
if (self->iconic)
continue;
if(cur->iconic)
continue;
- if(client_focus_target(cur) == cur &&
- !(cur->can_focus || cur->focus_notify))
+ if(!(client_focus_target(cur) == cur &&
+ client_can_focus(cur)))
continue;
/* find the centre coords of this window, from the
when the user deliberately selects a window for use.
@param here If true, then the client is brought to the current desktop;
otherwise, the desktop is changed to where the client lives.
+ @param user If true, then a user action is what requested the activation;
+ otherwise, it means an application requested it on its own
*/
-void client_activate(ObClient *self, gboolean here);
+void client_activate(ObClient *self, gboolean here, gboolean user);
/*! Calculates the stacking layer for the client window */
void client_calc_layer(ObClient *self);
#ifndef ob__client_list_combined_menu_h
#define ob__client_list_combined_menu_h
-void client_list_menu_combined_startup(gboolean reconfig);
-void client_list_menu_combined_shutdown(gboolean reconfig);
+void client_list_combined_menu_startup(gboolean reconfig);
+void client_list_combined_menu_shutdown(gboolean reconfig);
#endif
gint config_desktops_num;
GSList *config_desktops_names;
-gint config_screen_firstdesk;
+guint config_screen_firstdesk;
gboolean config_resize_redraw;
gboolean config_resize_four_corners;
if ((n = parse_find_node("firstdesk", node))) {
gint d = parse_int(doc, n);
if (d > 0)
- config_screen_firstdesk = d;
+ config_screen_firstdesk = (unsigned) d;
}
if ((n = parse_find_node("names", node))) {
GSList *it;
uact = OB_USER_ACTION_MOUSE_DOUBLE_CLICK; break;
case OB_MOUSE_ACTION_MOTION:
uact = OB_USER_ACTION_MOUSE_MOTION; break;
- case OB_NUM_MOUSE_ACTIONS:
+ default:
g_assert_not_reached();
}
mouse_bind(it->button, it->context, it->mact,
/*! The number of desktops */
extern gint config_desktops_num;
/*! Desktop to start on, put 5 to start in the center of a 3x3 grid */
-extern gint config_screen_firstdesk;
+extern guint config_screen_firstdesk;
/*! Names for the desktops */
extern GSList *config_desktops_names;
dock->y = a->height;
gravity = SouthEastGravity;
break;
+ default:
+ g_assert_not_reached();
}
}
case OB_ORIENTATION_VERT:
after = (y > over->h / 2);
break;
+ default:
+ g_assert_not_reached();
}
/* remove before doing the it->next! */
(e)->xfocus.detail == NotifyAncestor || \
(e)->xfocus.detail > NotifyNonlinearVirtual)
-Time event_lasttime = 0;
+/* The most recent time at which an event with a timestamp occured. */
+static Time event_lasttime = 0;
+/* The time for the current event being processed
+ (it's the event_lasttime for events without times, if this is a bug then
+ use CurrentTime instead, but it seems ok) */
+Time event_curtime = CurrentTime;
/*! The value of the mask for the NumLock modifier */
guint NumLockMask;
break;
}
- if (t > event_lasttime)
+ if (t > event_lasttime) {
event_lasttime = t;
+ event_curtime = event_lasttime;
+ } else if (t == 0) {
+ event_curtime = event_lasttime;
+ } else {
+ event_curtime = t;
+ }
}
#define STRIP_MODS(s) \
it can happen now when the window is on
another desktop, but we still don't
want it! */
- client_activate(client, FALSE);
+ client_activate(client, FALSE, TRUE);
break;
case ClientMessage:
/* validate cuz we query stuff off the client here */
ob_debug("net_close_window for 0x%lx\n", client->window);
client_close(client);
} else if (msgtype == prop_atoms.net_active_window) {
- ob_debug("net_active_window for 0x%lx\n", client->window);
- client_activate(client, FALSE);
+ ob_debug("net_active_window for 0x%lx source=%s\n",
+ client->window,
+ (e->xclient.data.l[0] == 0 ? "unknown" :
+ (e->xclient.data.l[0] == 1 ? "application" :
+ (e->xclient.data.l[0] == 2 ? "user" : "INVALID"))));
+ /* XXX make use of data.l[1] and [2] ! */
+ client_activate(client, FALSE,
+ (e->xclient.data.l[0] == 0 ||
+ e->xclient.data.l[0] == 2));
} else if (msgtype == prop_atoms.net_wm_moveresize) {
ob_debug("net_wm_moveresize for 0x%lx\n", client->window);
if ((Atom)e->xclient.data.l[2] ==
struct _ObClient;
/*! Time at which the last event with a timestamp occured. */
-extern Time event_lasttime;
+extern Time event_curtime;
/*! The value of the mask for the NumLock modifier */
extern guint NumLockMask;
g_free(focus_order);
/* reset focus to root */
- XSetInputFocus(ob_display, PointerRoot, RevertToNone, event_lasttime);
+ XSetInputFocus(ob_display, PointerRoot, RevertToNone, CurrentTime);
RrColorFree(color_white);
#endif
/* when nothing will be focused, send focus to the backup target */
XSetInputFocus(ob_display, screen_support_win, RevertToNone,
- event_lasttime);
+ event_curtime);
XSync(ob_display, FALSE);
}
if (client_normal(it->data) && client_can_focus(it->data))
return it->data;
+ /* XXX fallback to the "desktop window" if one exists ?
+ could store it while going through all the windows in the loop right
+ above this..
+ */
+
return NULL;
}
done_cycle:
if (done && focus_cycle_target)
- client_activate(focus_cycle_target, FALSE);
+ client_activate(focus_cycle_target, FALSE, TRUE);
t = NULL;
first = NULL;
done_cycle:
if (done && focus_cycle_target)
- client_activate(focus_cycle_target, FALSE);
+ client_activate(focus_cycle_target, FALSE, TRUE);
first = NULL;
focus_cycle_target = NULL;
if (kgrabs++ == 0) {
ret = XGrabKeyboard(ob_display, RootWindow(ob_display, ob_screen),
FALSE, GrabModeAsync, GrabModeAsync,
- event_lasttime) == Success;
+ event_curtime) == Success;
if (!ret)
--kgrabs;
} else
ret = TRUE;
} else if (kgrabs > 0) {
if (--kgrabs == 0)
- XUngrabKeyboard(ob_display, event_lasttime);
+ XUngrabKeyboard(ob_display, event_curtime);
ret = TRUE;
}
ret = XGrabPointer(ob_display, screen_support_win,
False, GRAB_PTR_MASK, GrabModeAsync,
GrabModeAsync, None,
- ob_cursor(cur), event_lasttime) == Success;
+ ob_cursor(cur), event_curtime) == Success;
if (!ret)
--pgrabs;
} else
ret = TRUE;
} else if (pgrabs > 0) {
if (--pgrabs == 0) {
- XUngrabPointer(ob_display, event_lasttime);
+ XUngrabPointer(ob_display, event_curtime);
}
ret = TRUE;
}
ret = XGrabPointer(ob_display, win, False, GRAB_PTR_MASK,
GrabModeAsync, GrabModeAsync, None,
ob_cursor(cur),
- event_lasttime) == Success;
+ event_curtime) == Success;
if (!ret)
--pgrabs;
} else
ret = TRUE;
} else if (pgrabs > 0) {
if (--pgrabs == 0) {
- XUngrabPointer(ob_display, event_lasttime);
+ XUngrabPointer(ob_display, event_curtime);
}
ret = TRUE;
}
/* XXX special case for signals that default to core dump.
but throw some helpful output here... */
- fprintf(stderr, "Fuck yah. Core dump. (Signal=%d)\n", sig);
+ fprintf(stderr, "How are you gentlemen? All your base are"
+ " belong to us. (Signal=%d)\n", sig);
/* die with a core dump */
abort();
case OB_MENU_ENTRY_TYPE_SEPARATOR:
th = SEPARATOR_HEIGHT + 2*PADDING;
break;
+ default:
+ g_assert_not_reached();
}
RECT_SET_SIZE(self->area, self->frame->inner_w, th);
XResizeWindow(ob_display, self->window,
if (CLIENT_CONTEXT(context, client)) {
/* Replay the event, so it goes to the client*/
- XAllowEvents(ob_display, ReplayPointer, event_lasttime);
+ XAllowEvents(ob_display, ReplayPointer, event_curtime);
/* Fall through to the release case! */
} else
break;
static Rect *pick_head(ObClient *c)
{
Rect *area = NULL;
- gint i, px, py;
+ guint i;
+ gint px, py;
/* try direct parent first */
if (c->transient_for && c->transient_for != OB_TRAN_GROUP) {
static gboolean place_smart(ObClient *client, gint *x, gint *y,
ObSmartType type)
{
- guint i;
gboolean ret = FALSE;
GSList *spaces = NULL, *sit;
GList *it;
static gboolean place_under_mouse(ObClient *client, gint *x, gint *y)
{
- guint i;
gint l, r, t, b;
gint px, py;
Rect *area;
msgstr ""
"Project-Id-Version: Openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2004-11-25 10:29+0100\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-01-25 20:41+0100\n"
"Last-Translator: David Majà Martínez <davidmaja@gmail.com>\n"
"Language-Team: catalan\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Vés aquí..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Escriptoris"
msgid "Unable to make directory '%s': %s"
msgstr "No és pot crear el directori '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "No s'ha pogut inicialitzar Xft."
-#: render/font.c:170 render/font.c:175
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "No és pot carregar el tipus de lletra: %s\n"
-#: render/font.c:171
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "S'està carregant el tipus de lletra de recanvi: %s\n"
msgstr ""
"Project-Id-Version: Openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2005-09-01 18:05+0200\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2006-06-11 10:41+0200\n"
"Last-Translator: Sebastian Vahl <svahl@web.de>\n"
"Language-Team: <de@li.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Gehe zu..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr ""
msgid "Unable to make directory '%s': %s"
msgstr ""
-#: render/font.c:57
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Konnte Xft nicht initializieren"
-#: render/font.c:194 render/font.c:199
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Font konnte nicht geladen werden: %s\n"
-#: render/font.c:195
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr ""
-
msgid ""
msgstr ""
"Project-Id-Version: openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@comhem.se\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-11-07 12:52+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Go there..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Desktops"
msgid "Unable to make directory '%s': %s"
msgstr "Unable to make directory '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Couldn't initialize Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Unable to load font: %s\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Trying fallback font: %s\n"
msgid ""
msgstr ""
"Project-Id-Version: openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@comhem.se\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-11-07 12:52+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Go there..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Desktops"
msgid "Unable to make directory '%s': %s"
msgstr "Unable to make directory '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Couldn't initialize Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Unable to load font: %s\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Trying fallback font: %s\n"
msgstr ""
"Project-Id-Version: Openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2005-03-25 00:39+0100\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2005-03-25 09:31+0100\n"
"Last-Translator: Miguel Calleja Gómez <mcg79@lycos.es>\n"
"Language-Team: None\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Ir ahí..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Escritorios"
msgid "Unable to make directory '%s': %s"
msgstr "No se puede crear el directorio '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "No se pudo iniciar Xft."
-#: render/font.c:164 render/font.c:169
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "No se puede cargar la fuente: %s\n"
-#: render/font.c:165
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Intentando recurrir a la fuente: %s\n"
msgstr ""
"Project-Id-Version: openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2005-04-11 23:11+0300\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2005-03-15 21:29+0200\n"
"Last-Translator: Pauli Virtanen <pauli.virtanen@hut.fi>\n"
"Language-Team: Finnish <fi@li.org>\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Näytä tämä..."
-#: ../openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Työtilat"
-#: ../openbox/client_menu.c:78
+#: openbox/client_menu.c:78
msgid "Restore"
msgstr "Palauta"
-#: ../openbox/client_menu.c:78
+#: openbox/client_menu.c:78
msgid "Maximize"
msgstr "Suurenna"
-#: ../openbox/client_menu.c:84
+#: openbox/client_menu.c:84
msgid "Roll down"
msgstr "Rullaa auki"
-#: ../openbox/client_menu.c:84
+#: openbox/client_menu.c:84
msgid "Roll up"
msgstr "Rullaa"
-#: ../openbox/client_menu.c:146
+#: openbox/client_menu.c:146
msgid "All desktops"
msgstr "Kaikkiin työtiloihin"
-#: ../openbox/client_menu.c:170
+#: openbox/client_menu.c:170
msgid "Layer"
msgstr "Kerros"
-#: ../openbox/client_menu.c:175
+#: openbox/client_menu.c:175
msgid "Always on top"
msgstr "Aina päällimmäinen"
-#: ../openbox/client_menu.c:180
+#: openbox/client_menu.c:180
msgid "Normal"
msgstr "Tavallinen"
-#: ../openbox/client_menu.c:185
+#: openbox/client_menu.c:185
msgid "Always on bottom"
msgstr "Aina alimmainen"
-#: ../openbox/client_menu.c:188
+#: openbox/client_menu.c:188
msgid "Send to desktop"
msgstr "Siirrä työtilaan"
-#: ../openbox/client_menu.c:192
+#: openbox/client_menu.c:192
msgid "Client menu"
msgstr "Ikkunan valikko"
-#: ../openbox/client_menu.c:205
+#: openbox/client_menu.c:205
msgid "Iconify"
msgstr "Pienennä"
-#: ../openbox/client_menu.c:222
+#: openbox/client_menu.c:222
msgid "Raise to top"
msgstr "Nosta päällimmäiseksi"
-#: ../openbox/client_menu.c:226
+#: openbox/client_menu.c:226
msgid "Lower to bottom"
msgstr "Laske alimmaiseksi"
-#: ../openbox/client_menu.c:239
+#: openbox/client_menu.c:239
msgid "Decorate"
msgstr "Piirrä/poista kehykset"
-#: ../openbox/client_menu.c:245
+#: openbox/client_menu.c:245
msgid "Move"
msgstr "Siirrä"
-#: ../openbox/client_menu.c:249
+#: openbox/client_menu.c:249
msgid "Resize"
msgstr "Muuta kokoa"
-#: ../openbox/client_menu.c:255
+#: openbox/client_menu.c:255
msgid "Close"
msgstr "Sulje"
-#. no args left
-#: ../openbox/session.c:124
+#: openbox/session.c:124
msgid "--sm-client-id requires an argument\n"
msgstr "--sm-client-id tarvitsee parametrin\n"
-#. no args left
-#: ../openbox/session.c:132
+#: openbox/session.c:132
msgid "--sm-save-file requires an argument\n"
msgstr "--sm-save-file tarvitsee parametrin\n"
-#: ../openbox/session.c:160
+#: openbox/session.c:160
#, c-format
msgid "Unable to make directory '%s': %s"
msgstr "Hakemiston \"%s\" luonti epäonnistui: %s"
-#: ../render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Xft:n käynnistys epäonnistui."
-#: ../render/font.c:164 ../render/font.c:169
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Kirjasinlajin lataaminen epäonnistui: %s\n"
-#: ../render/font.c:165
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Kokeillaan varakirjasinlajia: %s\n"
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@comhem.se\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-06-11 23:06+0200\n"
"Last-Translator: Julien Louis <leonptitlouis@wanadoo.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Aller à..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Bureaux"
msgid "Unable to make directory '%s': %s"
msgstr "Impossible de créer le répertoire '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Impossible d'initialiser Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Impossible de charger la police : %s\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Tentative de remplacement de la police : %s\n"
msgstr ""
"Project-Id-Version: Openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2006-08-27 00:26+0200\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2006-09-05 16:45+0100\n"
"Last-Translator: Daniel Radetic <drade@boobah.info>\n"
"Language-Team: None\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:96
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Odi na..."
-#: openbox/client_list_menu.c:186
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Radne površine"
msgid "Couldn't initialize Xft."
msgstr "Nemogu pokrenuti Xft."
-#: render/font.c:193
-#: render/font.c:198
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Nemogu učitati slova: %s\n"
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Isprobavam osnovni tip slova: %s\n"
-
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.0\n"
-"Report-Msgid-Bugs-To: mikachu@comhem.se\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2003-11-20 15:00+0900\n"
"Last-Translator: Yukihiro Nakai <nakai@gnome.gr.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "移動する..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "デスクトップ"
msgid "Unable to make directory '%s': %s"
msgstr "ディレクトリ'%s'を作れません: %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr ""
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr ""
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr ""
msgstr ""
"Project-Id-Version: openbox 3.2\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2004-11-07 12:59+0100\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-03-29 18:33:39+0200\n"
"Last-Translator: Øyvind Albrigtsen\n"
"Language-Team: None\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Gå dit"
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Skrivebord"
msgid "Unable to make directory '%s': %s"
msgstr "Kunde ikke lage katalogen '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Kunde ikke initialisere Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Kunde ikke laste fonten \"%s\"\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Prøver med reservefonten: %s\n"
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.2\n"
-"Report-Msgid-Bugs-To: mikachu@comhem.se\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-09-07 21:17+0200\n"
"Last-Translator: Madej <madej@afn.no-ip.org>\n"
"Language-Team: NONE\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Przejdź..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Pulpit"
msgid "Unable to make directory '%s': %s"
msgstr "Nie mogę utworzyć katalogu '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Błąd przy inicjalizacji Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Nie mogę załadować czcionki: %s\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Próbuję użyć czcionki: %s\n"
msgstr ""
"Project-Id-Version: Openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2006-08-20 21:54+0200\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-03-29 18:33:39+0200\n"
"Last-Translator: Gonçalo Ferreira <gonsas@gmail.com>\n"
"Language-Team: None\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Ir até..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Áreas de trabalho"
msgid "Unable to make directory '%s': %s"
msgstr "Incapaz de criar o directório '%s': %s "
-#: render/font.c:57
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Incapaz de inicializar Xft."
msgstr ""
"Project-Id-Version: openbox 3.2\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-04-23 13:00+0300\n"
"Last-Translator: Alexey Remizov <alexey@remizov.pp.ru>\n"
"Language-Team: Russian <gnome-cyr@gnome.org>\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Перейти..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Рабочие места"
msgid "Unable to make directory '%s': %s"
msgstr "Невозможно создать каталог '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Не удалось инициализировать Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Невозможно загрузить шрифт: %s\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Попытка вернуть шрифт: %s\n"
msgstr ""
"Project-Id-Version: Openbox-3.3rc2\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2005-09-01 18:05+0200\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2006-08-25 00:52+0200\n"
"Last-Translator: Jozef Riha <jose1711@gmail.com\n"
"Language-Team: Slovak <LL@li.org>\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Prejsť na..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Plochy"
msgid "Unable to make directory '%s': %s"
msgstr "Nebolo možné vytvoriť adresár '%s': %s"
-#: render/font.c:57
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Nepodarilo sa inicializovať Xft."
-#: render/font.c:194 render/font.c:199
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Nepodarilo sa načítať font: %s\n"
-#: render/font.c:195
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Pokus o návrat k fontu: %s\n"
msgstr ""
"Project-Id-Version: openbox 3.3\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2004-11-07 12:52+0100\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2004-03-29 18:33:39+0200\n"
"Last-Translator: Mikael Magnusson <mikachu@icculus.org>\n"
"Language-Team: None\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "Gå dit"
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "Skrivbord"
msgid "Unable to make directory '%s': %s"
msgstr "Kunde inte skapa katalogen '%s': %s"
-#: render/font.c:50
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "Kunde inte initialisera Xft."
-#: render/font.c:122 render/font.c:127
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "Kunde inte ladda fonten \"%s\"\n"
-#: render/font.c:123
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "Försöker med reservfonten \"%s\"\n"
msgstr ""
"Project-Id-Version: openbox 3.3rc2\n"
"Report-Msgid-Bugs-To: mikachu@icculus.org\n"
-"POT-Creation-Date: 2005-09-01 18:05+0200\n"
+"POT-Creation-Date: 2007-02-28 12:50-0500\n"
"PO-Revision-Date: 2006-03-01 12:00+0800\n"
"Last-Translator: Wei-Lun Chao <william.chao@ossii.com.tw>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: openbox/client_list_menu.c:95
+#: openbox/client_list_menu.c:97
msgid "Go there..."
msgstr "到那裡去..."
-#: openbox/client_list_menu.c:161
+#: openbox/client_list_menu.c:187
msgid "Desktops"
msgstr "桌面"
msgid "Unable to make directory '%s': %s"
msgstr "無法製作目錄 '%s': %s"
-#: render/font.c:57
+#: render/font.c:58
msgid "Couldn't initialize Xft."
msgstr "無法初始化 Xft。"
-#: render/font.c:194 render/font.c:199
+#: render/font.c:193 render/font.c:198
#, c-format
msgid "Unable to load font: %s\n"
msgstr "無法載入字型:%s\n"
-#: render/font.c:195
+#: render/font.c:194
#, c-format
msgid "Trying fallback font: %s\n"
msgstr "正在嘗試權宜字型:%s\n"
if (FcPatternGetString(match, "style", 0, &tmp_string) !=
FcResultTypeMismatch) {
/* Bold ? */
- if (!strcasecmp("bold", (gchar *)tmp_string)) {
+ if (!g_ascii_strcasecmp("bold", (gchar *)tmp_string)) {
pango_font_description_set_weight(out->pango_font_description,
PANGO_WEIGHT_BOLD);
}
/* Italic ? */
- else if (!strcasecmp("italic", (gchar *)tmp_string)) {
+ else if (!g_ascii_strcasecmp("italic", (gchar *)tmp_string)) {
pango_font_description_set_style(out->pango_font_description,
PANGO_STYLE_ITALIC);
}
}
/* based on gtkmain.c gtk_get_default_language() */
- gchar *locale, *p;
- locale = g_strdup(setlocale(LC_CTYPE, NULL));
- if ((p = strchr(locale, '.')))
- *p = '\0';
- if ((p = strchr(locale, '@')))
- *p = '\0';
- PangoFontMetrics *metrics =
- pango_context_get_metrics(context, out->pango_font_description,
- pango_language_from_string(locale));
- out->pango_ascent = pango_font_metrics_get_ascent(metrics);
- out->pango_descent = pango_font_metrics_get_descent(metrics);
- g_free(locale);
- pango_font_metrics_unref(metrics);
+ {
+ gchar *locale, *p;
+ PangoFontMetrics *metrics;
+
+ locale = g_strdup(setlocale(LC_CTYPE, NULL));
+ if ((p = strchr(locale, '.')))
+ *p = '\0';
+ if ((p = strchr(locale, '@')))
+ *p = '\0';
+ metrics =
+ pango_context_get_metrics(context, out->pango_font_description,
+ pango_language_from_string(locale));
+ out->pango_ascent = pango_font_metrics_get_ascent(metrics);
+ out->pango_descent = pango_font_metrics_get_descent(metrics);
+ g_free(locale);
+ pango_font_metrics_unref(metrics);
+ }
#endif /* USE_PANGO */
if (FcPatternGetBool(match, OB_SHADOW, 0, &out->shadow) != FcResultMatch)
"To recreate this file, save an image as \"C-Source\" in The Gimp. Use \"ob_default_icon\" as the Prefixed Name. Enable Glib Types. Enable Save Alpha Channel. Enable Use Macros instead of Struct."
#define OB_DEFAULT_ICON_PIXEL_DATA ((guint8*) OB_DEFAULT_ICON_pixel_data)
static const guint8 OB_DEFAULT_ICON_pixel_data[48 * 48 * 4 + 1] =
-("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0");
+ "\0\0\0\0";
RR_SURFACE_DIAGONAL,
RR_SURFACE_CROSS_DIAGONAL,
RR_SURFACE_PYRAMID,
- RR_SURFACE_MIRROR_HORIZONTAL,
+ RR_SURFACE_MIRROR_HORIZONTAL
} RrSurfaceColorType;
typedef enum {