[maemo-commits] [maemo-commits] r18199 - in projects/haf/trunk/libmatchbox2: . debian matchbox/client-types matchbox/core

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Apr 30 11:12:10 EEST 2009
Author: kihamala
Date: 2009-04-30 11:12:09 +0300 (Thu, 30 Apr 2009)
New Revision: 18199

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/debian/changelog
   projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.c
   projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.h
   projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-dialog.h
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h
Log:
apply patch from Laszlo for Bug 106208



Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-04-30 07:48:21 UTC (rev 18198)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-04-30 08:12:09 UTC (rev 18199)
@@ -1,3 +1,15 @@
+2009-04-30  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
+
+	Apply a second patch from Laszlo Pere for NB#106208.
+
+	* matchbox/client-types/mb-wm-client-app.c (mb_wm_client_app_init):
+	Set transiency properly if the parent is mapped after the child (in
+	transiency sense).
+	* matchbox/client-types/mb-wm-client-app.h,
+	matchbox/client-types/mb-wm-client-dialog.h,
+	matchbox/core/mb-wm-object.h: Add macros for checking type of the
+	parent class.
+
 2009-04-30  Adam Endrodi  <adam.endrodi at blumsoft.eu>
 
 	Fix for missing textures after restarting the wm.
@@ -2,3 +14,4 @@
 
-	* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c (mb_wm_comp_mgr_clutter_map_notify_real):
+	* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c
+	(mb_wm_comp_mgr_clutter_map_notify_real):
 	  Fetch the texture unconditionally when the client is mapped.

Modified: projects/haf/trunk/libmatchbox2/debian/changelog
===================================================================
--- projects/haf/trunk/libmatchbox2/debian/changelog	2009-04-30 07:48:21 UTC (rev 18198)
+++ projects/haf/trunk/libmatchbox2/debian/changelog	2009-04-30 08:12:09 UTC (rev 18199)
@@ -4,6 +4,9 @@
   * A fix related to NB#101437 - Invoking CSM on the left side of page area is
     displayed in wrong location. (Works when widget side has been fixed.)
 
+  Laszlo:
+  * Fixes: NB#106208 - Wrong window shown after pushing 2 windows
+
  -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Mon, 27 Apr 2009 17:32:26 +0300
 
 matchbox-window-manager-2 (0.2.35-1) unstable; urgency=low

Modified: projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.c	2009-04-30 07:48:21 UTC (rev 18198)
+++ projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.c	2009-04-30 08:12:09 UTC (rev 18199)
@@ -1,4 +1,8 @@
 #include "mb-wm-client-app.h"
+#include "mb-wm-client-dialog.h"
+#include "mb-wm-client-menu.h"
+#include "mb-wm-client-override.h"
+#include "mb-wm-client-input.h"
 
 #include "mb-wm-theme.h"
 
@@ -99,6 +103,29 @@
       mb_wm_theme_create_decor (wm->theme, client, MBWMDecorTypeEast);
     }
 
+  /*
+   * The transient parent might be mapped after the client is mapped so we go
+   * back and if we find the client we register the transient parent now.
+   */
+  MBWMList *l = wm->clients;
+  MBWindowManagerClient *c;
+  while (l)
+    {
+       c = l->data;
+       if (c->window->xwin_transient_for &&
+           client->window->xwindow == c->window->xwin_transient_for &&
+           (MB_WM_IS_CLIENT_APP(c) || MB_WM_PARENT_IS_CLIENT_APP(c) ||
+            MB_WM_IS_CLIENT_DIALOG(c) || MB_WM_PARENT_IS_CLIENT_DIALOG(c) ||
+            MB_WM_IS_CLIENT_MENU(c) ||
+            MB_WM_IS_CLIENT_OVERRIDE(c) ||
+            MB_WM_IS_CLIENT_INPUT(c))) {
+         mb_wm_client_add_transient (client, c);
+         c->stacking_layer = client->stacking_layer;
+       }
+       
+       l = l->next;
+    }
+
   return 1;
 }
 

Modified: projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.h	2009-04-30 07:48:21 UTC (rev 18198)
+++ projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-app.h	2009-04-30 08:12:09 UTC (rev 18199)
@@ -30,6 +30,7 @@
 #define MB_WM_CLIENT_APP_CLASS(c) ((MBWMClientAppClass*)(c))
 #define MB_WM_TYPE_CLIENT_APP (mb_wm_client_app_class_type ())
 #define MB_WM_IS_CLIENT_APP(c) (MB_WM_OBJECT_TYPE(c)==MB_WM_TYPE_CLIENT_APP)
+#define MB_WM_PARENT_IS_CLIENT_APP(c) (MB_WM_OBJECT_PARENT_TYPE(c)==MB_WM_TYPE_CLIENT_APP)
 
 /**
  * A MBWMClientBase for applications: that is, those whose type is

Modified: projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-dialog.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-dialog.h	2009-04-30 07:48:21 UTC (rev 18198)
+++ projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-dialog.h	2009-04-30 08:12:09 UTC (rev 18199)
@@ -30,6 +30,7 @@
 #define MB_WM_CLIENT_DIALOG_CLASS(c) ((MBWMClientDialogClass*)(c))
 #define MB_WM_TYPE_CLIENT_DIALOG (mb_wm_client_dialog_class_type ())
 #define MB_WM_IS_CLIENT_DIALOG(c) (MB_WM_OBJECT_TYPE(c)==MB_WM_TYPE_CLIENT_DIALOG)
+#define MB_WM_PARENT_IS_CLIENT_DIALOG(c) (MB_WM_OBJECT_PARENT_TYPE(c)==MB_WM_TYPE_CLIENT_DIALOG)
 
 /**
  * A MBWMClientBase for dialogue windows: that is, those whose type is

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h	2009-04-30 07:48:21 UTC (rev 18198)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h	2009-04-30 08:12:09 UTC (rev 18199)
@@ -38,6 +38,7 @@
 #define MB_WM_OBJECT_GET_CLASS(x) (mb_wm_object_get_class (MB_WM_OBJECT(x)))
 #define MB_WM_OBJECT_GET_PARENT_CLASS(x) \
     ((mb_wm_object_get_class (MB_WM_OBJECT(x)))->parent)
+#define MB_WM_OBJECT_PARENT_TYPE(x) (MB_WM_OBJECT_GET_PARENT_CLASS(x)->type)
 
 typedef enum  MBWMObjectClassType
 {


More information about the maemo-commits mailing list