all repos — openbox @ 4145468a1984e1055a947ad957075ae51f70ca9c

openbox fork - make it a bit more like ryudo

Merge branch 'backport' into work

Conflicts:
	openbox/event.c
	openbox/frame.c
Mikael Magnusson mikachu@gmail.com
commit

4145468a1984e1055a947ad957075ae51f70ca9c

parent

90cecafa3de2f118e550622932d1d30266c71226

M openbox/client.hopenbox/client.h

@@ -246,6 +246,8 @@ #endif

/*! The window uses shape extension to be non-rectangular? */ gboolean shaped; + /*! The window uses shape extension to have non-rectangular input? */ + gboolean shaped_input; /*! The window is modal, so it must be processed before any windows it is related to can be focused */
M openbox/event.copenbox/event.c

@@ -1576,11 +1576,24 @@ break;

default: ; #ifdef SHAPE - if (obt_display_extension_shape && - e->type == obt_display_extension_shape_basep) { - client->shaped = ((XShapeEvent*)e)->shaped; - frame_adjust_shape(client->frame); + int kind; + if (obt_display_extension_shape && + e->type == obt_display_extension_shape_basep) + { + switch (((XShapeEvent*)e)->kind) { + case ShapeBounding: + case ShapeClip: + client->shaped = ((XShapeEvent*)e)->shaped; + kind = ShapeBounding; + break; + case ShapeInput: + client->shaped_input = ((XShapeEvent*)e)->shaped; + kind = ShapeInput; + break; + } + frame_adjust_shape_kind(client->frame, kind); + } } #endif }
M openbox/frame.copenbox/frame.c

@@ -265,25 +265,26 @@ free_theme_statics(self);

set_theme_statics(self); } -void frame_adjust_shape(ObFrame *self) -{ #ifdef SHAPE +void frame_adjust_shape_kind(ObFrame *self, int kind) +{ gint num; XRectangle xrect[2]; - if (!self->client->shaped) { + if (!((kind == ShapeBounding && self->client->shaped) || + (kind == ShapeInput && self->client->shaped_input))) { /* clear the shape on the frame window */ - XShapeCombineMask(obt_display, self->window, ShapeBounding, + XShapeCombineMask(obt_display, self->window, kind, self->size.left, self->size.top, None, ShapeSet); } else { /* make the frame's shape match the clients */ - XShapeCombineShape(obt_display, self->window, ShapeBounding, + XShapeCombineShape(obt_display, self->window, kind, self->size.left, self->size.top, self->client->window, - ShapeBounding, ShapeSet); + kind, ShapeSet); num = 0; if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {

@@ -309,6 +310,14 @@ XShapeCombineRectangles(obt_display, self->window,

ShapeBounding, 0, 0, xrect, num, ShapeUnion, Unsorted); } +} +#endif + +void frame_adjust_shape(ObFrame *self) +{ +#ifdef SHAPE + frame_adjust_shape_kind(self, ShapeBounding); + frame_adjust_shape_kind(self, ShapeInput); #endif }
M openbox/frame.hopenbox/frame.h

@@ -205,6 +205,9 @@

void frame_show(ObFrame *self); void frame_hide(ObFrame *self); void frame_adjust_theme(ObFrame *self); +#ifdef SHAPE +void frame_adjust_shape_kind(ObFrame *self, int kind); +#endif void frame_adjust_shape(ObFrame *self); void frame_adjust_area(ObFrame *self, gboolean moved, gboolean resized, gboolean fake);
M po/ca.popo/ca.po

@@ -14,6 +14,7 @@ "Language-Team: catalan\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format

@@ -435,8 +436,8 @@ msgid_plural ""

"Openbox is configured for %d desktops, but the current session has %d. " "Overriding the Openbox configuration." msgstr[0] "" -"El Openbox està configurat per a %d escriptori, però la sessió actual en te " -"%d. S'està modificant la configuració del Openbox." +"El Openbox està configurat per a %d escriptori, però la sessió actual en te %" +"d. S'està modificant la configuració del Openbox." msgstr[1] "" "El Openbox està configurat per a %d escriptoris, però la sessió actual en te " "%d. S'està modificant la configuració del Openbox."
M po/da.popo/da.po

@@ -14,6 +14,7 @@ "Language-Team: None\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format
M po/de.popo/de.po

@@ -18,6 +18,7 @@ "Language-Team: <de@li.org>\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format

@@ -430,8 +431,8 @@ msgid_plural ""

"Openbox is configured for %d desktops, but the current session has %d. " "Overriding the Openbox configuration." msgstr[0] "" -"Openbox wurde für %d Desktop konfiguriert, aber die aktuelle Sitzung hat %" -"d. Überschreibe die Openbox-Konfiguration." +"Openbox wurde für %d Desktop konfiguriert, aber die aktuelle Sitzung hat %d. " +"Überschreibe die Openbox-Konfiguration." msgstr[1] "" "Openbox wurde für %d Desktops konfiguriert, aber die aktuelle Sitzung hat %" "d. Überschreibe die Openbox-Konfiguration."
M po/en@boldquot.popo/en@boldquot.po

@@ -1,7 +1,7 @@

# English translations for openbox package. -# Copyright (C) 2008 Dana Jansens +# Copyright (C) 2009 Dana Jansens # This file is distributed under the same license as the openbox package. -# Automatically generated, 2008. +# Automatically generated, 2009. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation
M po/en@quot.popo/en@quot.po

@@ -1,7 +1,7 @@

# English translations for openbox package. -# Copyright (C) 2008 Dana Jansens +# Copyright (C) 2009 Dana Jansens # This file is distributed under the same license as the openbox package. -# Automatically generated, 2008. +# Automatically generated, 2009. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation
M po/fr.popo/fr.po

@@ -18,6 +18,7 @@ "Language-Team: français <fr@li.org>\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format
M po/it.popo/it.po

@@ -17,6 +17,7 @@ "Language-Team: Italian <tp@lists.linux.it>\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format
M po/pt.popo/pt.po

@@ -15,6 +15,7 @@ "Language-Team: None\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format
M po/sv.popo/sv.po

@@ -14,6 +14,7 @@ "Language-Team: None\n"

"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: openbox/actions.c:149 #, c-format
M tools/gdm-control/gdm-control.ctools/gdm-control/gdm-control.c

@@ -259,7 +259,7 @@

d = XDisplayName(NULL); if (!d) { fprintf(stderr, - "Unable to fina an X display specified by the DISPLAY " + "Unable to find the X display specified by the DISPLAY " "environment variable. Ensure that it is set correctly."); return 1; }