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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Mar 17 12:43:47 EET 2009
Author: aendrodi
Date: 2009-03-17 12:43:27 +0200 (Tue, 17 Mar 2009)
New Revision: 17704

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-override.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h
Log:
	Regression fix: stack override-redirect windows where they belong.
	Otherwise these clients are left where they happen to be by
	mb_wm_stack_ensure().

	* matchbox/core/mb-wm-client-base.h
	* matchbox/core/mb-wm-client-base.c:
	  Export mb_wm_client_base_stack().
	* matchbox/client-types/mb-wm-client-override.c:
	  Use it for MBWMClientOverride.


Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-03-17 10:24:33 UTC (rev 17703)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-03-17 10:43:27 UTC (rev 17704)
@@ -1,3 +1,15 @@
+2009-03-17  Adam Endrodi  <adam.endrodi at blumsoft.eu>
+
+	Regression fix: stack override-redirect windows where they belong.
+	Otherwise these clients are left where they happen to be by
+	mb_wm_stack_ensure().
+
+	* matchbox/core/mb-wm-client-base.h
+	* matchbox/core/mb-wm-client-base.c:
+	  Export mb_wm_client_base_stack().
+	* matchbox/client-types/mb-wm-client-override.c:
+	  Use it for MBWMClientOverride.
+
 2009-03-16  Thomas Thurman  <thomas.thurman at collabora.co.uk>
 
 	Fixes: NB#103836 (or at least its test case).

Modified: projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-override.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-override.c	2009-03-17 10:24:33 UTC (rev 17703)
+++ projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-override.c	2009-03-17 10:43:27 UTC (rev 17704)
@@ -21,24 +21,9 @@
 #include "mb-wm-client-override.h"
 
 #include "mb-wm-theme.h"
+#include "mb-wm-client-base.h"
 
-#if 0  /* we have to respect stacking layers */
 static void
-mb_wm_client_override_stack (MBWindowManagerClient *client,
-			     int                    flags)
-{
-  MBWMList * t = mb_wm_client_get_transients (client);
-
-  mb_wm_stack_move_top(client);
-
-  mb_wm_util_list_foreach (t, (MBWMListForEachCB)mb_wm_client_stack,
-			   (void*)flags);
-
-  mb_wm_util_list_free (t);
-}
-#endif
-
-static void
 mb_wm_client_override_class_init (MBWMObjectClass *klass)
 {
   MBWindowManagerClientClass *client;
@@ -47,10 +32,14 @@
 
   client = (MBWindowManagerClientClass *)klass;
 
+  /*
+   * Inherit from MB_WM_CLIENT but use MB_WM_CLIENT_BASE's stack() method
+   * for, well, stacking.  Because otherwise ->stacking_layer is ignored.
+   * In other words poor client is not stacked at all.  Which means it is
+   * left rotten at the bottom.
+   */
   client->client_type  = MBWMClientTypeOverride;
-/*
-  client->stack        = mb_wm_client_override_stack;
-  */
+  client->stack        = mb_wm_client_base_stack;
 
 #if MBWM_WANT_DEBUG
   klass->klass_name = "MBWMClientOverride";

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c	2009-03-17 10:24:33 UTC (rev 17703)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c	2009-03-17 10:43:27 UTC (rev 17704)
@@ -36,9 +36,6 @@
 mb_wm_client_base_realize (MBWindowManagerClient *client);
 
 static void
-mb_wm_client_base_stack (MBWindowManagerClient *client,
-			 int                    flags);
-static void
 mb_wm_client_base_show (MBWindowManagerClient *client);
 
 static void
@@ -299,7 +296,7 @@
 	}
 }
 
-static void
+void
 mb_wm_client_base_stack (MBWindowManagerClient *client,
 			 int                    flags)
 {

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h	2009-03-17 10:24:33 UTC (rev 17703)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h	2009-03-17 10:43:27 UTC (rev 17704)
@@ -48,6 +48,11 @@
 int
 mb_wm_client_base_class_type ();
 
+/* Export it for MB_WM_CLIENT_OVERRIDE. */
+void
+mb_wm_client_base_stack (MBWindowManagerClient *client,
+			 int                    flags);
+
 /** A nasty hack to work around linking issues. */
 void base_foo(void);
 


More information about the maemo-commits mailing list