summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]install-sh0
-rw-r--r--openbox/client.h2
-rw-r--r--openbox/event.c21
-rw-r--r--openbox/frame.c21
-rw-r--r--openbox/frame.h3
-rw-r--r--po/ca.po5
-rw-r--r--po/da.po1
-rw-r--r--po/de.po5
-rw-r--r--po/en@boldquot.po4
-rw-r--r--po/en@quot.po4
-rw-r--r--po/fr.po1
-rw-r--r--po/it.po1
-rw-r--r--po/pt.po1
-rw-r--r--po/sv.po1
-rw-r--r--tools/gdm-control/gdm-control.c2
15 files changed, 53 insertions, 19 deletions
diff --git a/install-sh b/install-sh
index 36f96f3e..36f96f3e 100644..100755
--- a/install-sh
+++ b/install-sh
diff --git a/openbox/client.h b/openbox/client.h
index 5e26ef30..6d018bc6 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -246,6 +246,8 @@ struct _ObClient
/*! 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 */
diff --git a/openbox/event.c b/openbox/event.c
index 30bc656f..f69267db 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1576,11 +1576,24 @@ static void event_handle_client(ObClient *client, XEvent *e)
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
}
diff --git a/openbox/frame.c b/openbox/frame.c
index 30630fbb..c633fa6d 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -265,25 +265,26 @@ void frame_adjust_theme(ObFrame *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 @@ void frame_adjust_shape(ObFrame *self)
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
}
diff --git a/openbox/frame.h b/openbox/frame.h
index fd5adf74..8687381d 100644
--- a/openbox/frame.h
+++ b/openbox/frame.h
@@ -205,6 +205,9 @@ void frame_free(ObFrame *self);
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);
diff --git a/po/ca.po b/po/ca.po
index 6baab061..50d5a240 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -14,6 +14,7 @@ msgstr ""
"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."
diff --git a/po/da.po b/po/da.po
index 046a55a3..351e1c4f 100644
--- a/po/da.po
+++ b/po/da.po
@@ -14,6 +14,7 @@ msgstr ""
"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
diff --git a/po/de.po b/po/de.po
index 880027bf..758a06c1 100644
--- a/po/de.po
+++ b/po/de.po
@@ -18,6 +18,7 @@ msgstr ""
"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."
diff --git a/po/en@boldquot.po b/po/en@boldquot.po
index 27d3ab16..33856fdb 100644
--- a/po/en@boldquot.po
+++ b/po/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
diff --git a/po/en@quot.po b/po/en@quot.po
index 4a8ed324..adfbd9e6 100644
--- a/po/en@quot.po
+++ b/po/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
diff --git a/po/fr.po b/po/fr.po
index 031227ec..a32e61cd 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -18,6 +18,7 @@ msgstr ""
"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
diff --git a/po/it.po b/po/it.po
index f2a7e5a3..263e6ae0 100644
--- a/po/it.po
+++ b/po/it.po
@@ -17,6 +17,7 @@ msgstr ""
"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
diff --git a/po/pt.po b/po/pt.po
index 414b56fb..0a98580f 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -15,6 +15,7 @@ msgstr ""
"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
diff --git a/po/sv.po b/po/sv.po
index 46e5c444..5040d2f2 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -14,6 +14,7 @@ msgstr ""
"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
diff --git a/tools/gdm-control/gdm-control.c b/tools/gdm-control/gdm-control.c
index b3178e51..db28841d 100644
--- a/tools/gdm-control/gdm-control.c
+++ b/tools/gdm-control/gdm-control.c
@@ -259,7 +259,7 @@ int main(int argc, char **argv)
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;
}