]> Dogcows Code - chaz/openbox/commitdiff
Merge branch 'backport' into work
authorMikael Magnusson <mikachu@gmail.com>
Thu, 29 Jan 2009 21:45:47 +0000 (22:45 +0100)
committerMikael Magnusson <mikachu@gmail.com>
Thu, 29 Jan 2009 21:45:47 +0000 (22:45 +0100)
Conflicts:
openbox/event.c
openbox/frame.c

15 files changed:
install-sh [changed mode: 0644->0755]
openbox/client.h
openbox/event.c
openbox/frame.c
openbox/frame.h
po/ca.po
po/da.po
po/de.po
po/en@boldquot.po
po/en@quot.po
po/fr.po
po/it.po
po/pt.po
po/sv.po
tools/gdm-control/gdm-control.c

old mode 100644 (file)
new mode 100755 (executable)
index 5e26ef30ea9690ccfabd7bc97ee9774be164f1a2..6d018bc6995ac718aeeaa9a26c6f7a9c56e2aa2b 100644 (file)
@@ -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 */
index 30bc656fbfb641724746a47ec6d655bb970a04c2..f69267db60c63f1dcfed979fd567ad41a2345fed 100644 (file)
@@ -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
     }
index 30630fbb53c3806598026d367c48b281e0c61ba2..c633fa6d1285b729781ba78e8fa1badfd657f33e 100644 (file)
@@ -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
 }
 
index fd5adf748701d49f943ad5a743564f3136a3ea64..8687381d0694209dc336352c79aaea28b10406aa 100644 (file)
@@ -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);
index 6baab061c665b08492d33875f4c4ba4fe05a614e..50d5a240096c213a28ad731b31944211c117bb26 100644 (file)
--- 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."
index 046a55a34549df67e825b7da4895c61f8554657d..351e1c4fd5f9033011a194140b3b25c6d7fd9071 100644 (file)
--- 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
index 880027bfd9a1767ae20795a1c9280475588cdc13..758a06c1ba68aadb760327e753680b0aa8746918 100644 (file)
--- 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."
index 27d3ab16a24c0e25d07b1e80f7d45f673a10bd35..33856fdb4a18279dda12338c9af363a7ea49ffd5 100644 (file)
@@ -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
index 4a8ed32428e654bd25eb424a002a3241d4793a24..adfbd9e6f71996c367c57e944aab944ba271508e 100644 (file)
@@ -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
index 031227ec18cf3a9918c3e026f9ca5516c2d7fe8e..a32e61cde269edc08f7c072649eaf560b3ef4ac1 100644 (file)
--- 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
index f2a7e5a38548362a37af3a15ed80917d9ed5d548..263e6ae0ebef82706919d36408792fb5b215959b 100644 (file)
--- 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
index 414b56fb3e8d85c95d739df67085dd4221398890..0a98580f4a2cc1fae22b73f15c329848d0cefb4c 100644 (file)
--- 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
index 46e5c444eff7fc42a4c04f3dd88a96e6d57ab70d..5040d2f243f0ad4963440f6ab9ee216d91c84942 100644 (file)
--- 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
index b3178e51dbaea5c7534339248c4625eb1742f47d..db28841d78efc20bf03ce3c3864e382d6c7f988b 100644 (file)
@@ -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;
         }
This page took 0.04428 seconds and 4 git commands to generate.