[maemo-commits] [maemo-commits] r14426 - in projects/haf/trunk/hildon-desktop: . libhildonwm src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Oct 11 15:59:22 EEST 2007
Author: jobi
Date: 2007-10-11 15:59:20 +0300 (Thu, 11 Oct 2007)
New Revision: 14426

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm-window.c
   projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
   projects/haf/trunk/hildon-desktop/src/hn-app-switcher.c
Log:

2007-10-11  Johan Bilien  <johan.bilien at nokia.com>

	* libhildonwm/hd-wm-window.c (hd_wm_window_finalize):
	do not return when the window is hibernating. We do destroy
	windows which are hibernating when an application has not
	set up its WINDOW_ROLE, in which case all its windows have the
	same hibernation key.
	* src/hd-switcher-menu.c: do not check urgency of hibernating windows
	* src/hn-app-switcher.c: do not check urgency and icon geometry
	of hibernated window.
	Fixes: NB#72572



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-10-11 11:36:32 UTC (rev 14425)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-10-11 12:59:20 UTC (rev 14426)
@@ -1,5 +1,17 @@
 2007-10-11  Johan Bilien  <johan.bilien at nokia.com>
 
+	* libhildonwm/hd-wm-window.c (hd_wm_window_finalize):
+	do not return when the window is hibernating. We do destroy
+	windows which are hibernating when an application has not
+	set up its WINDOW_ROLE, in which case all its windows have the
+	same hibernation key.
+	* src/hd-switcher-menu.c: do not check urgency of hibernating windows
+	* src/hn-app-switcher.c: do not check urgency and icon geometry
+	of hibernated window.
+	Fixes: NB#72572
+
+2007-10-11  Johan Bilien  <johan.bilien at nokia.com>
+
 	* libhildonwm/hd-wm.c (hd_wm_prepare_close_application_dialog):
 	plugged the leak of an X property
 
@@ -21,7 +33,7 @@
 2007-10-10  Moises Martinez <moises.martinez at nokia.com>
 
 	* libhildonwm/hd-keys.c: (hd_keys_handle_keypress):
-	- Trap possible X errors.
+	- Trap possible X errors. Fixes potential crash.
 
 2007-10-10  Johan Bilien  <johan.bilien at nokia.com>
 

Modified: projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm-window.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm-window.c	2007-10-11 11:36:32 UTC (rev 14425)
+++ projects/haf/trunk/hildon-desktop/libhildonwm/hd-wm-window.c	2007-10-11 12:59:20 UTC (rev 14426)
@@ -458,13 +458,6 @@
   hd_wm_debug("Removing '%s'", win->priv->name);
 
   g_signal_emit_by_name (object, "close-window", win);
-
-  /* Dont destroy windows that are hiberating */
-  if (hd_wm_window_is_hibernating (win))
-    {
-      hd_wm_debug ("### Aborting destroying '%s' as hibernating ###", win->priv->name);
-      return;
-    }
   
   /* If ping timeout note is displayed.. */
   note = hd_wm_application_get_ping_timeout_note (win->priv->app_parent);

Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-10-11 11:36:32 UTC (rev 14425)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-10-11 12:59:20 UTC (rev 14426)
@@ -2255,6 +2255,10 @@
   {
     hd_switcher_menu_item_set_entry_info (HD_SWITCHER_MENU_ITEM (menu_item), info);
   }
+
+  /* The rest does not apply to hibernating entries (hopefully) */
+  if (hd_wm_entry_info_is_hibernating (info))
+    return;
   
   if (!hd_wm_entry_info_is_urgent (info) &&
        hd_wm_entry_info_get_ignore_urgent (info))

Modified: projects/haf/trunk/hildon-desktop/src/hn-app-switcher.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hn-app-switcher.c	2007-10-11 11:36:32 UTC (rev 14425)
+++ projects/haf/trunk/hildon-desktop/src/hn-app-switcher.c	2007-10-11 12:59:20 UTC (rev 14426)
@@ -573,39 +573,44 @@
 
   gdk_window_get_position (panel->window, &panel_x, &panel_y);  
 
-  /* deal with urgency flags */
-  for (l = children; l != NULL; l = l->next)
+  if (!hd_wm_entry_info_is_hibernating (entry))
   {
-    HDWMEntryInfo *_info = HD_WM_ENTRY_INFO (l->data);	  
-	  
-    {	    
-      hd_wm_window_set_icon_geometry (HD_WM_WINDOW (l->data),	    
-	      		              GTK_WIDGET (app_button)->allocation.x + panel_x,
-				      GTK_WIDGET (app_button)->allocation.y + panel_y,
-				      GTK_WIDGET (app_button)->allocation.width,
-				      GTK_WIDGET (app_button)->allocation.height,
-				      TRUE);
-    }
-    /*
-     * If the entry is urgent and the ignore flag is not set, the button
-     * should blink
-     */
-    if (hd_wm_entry_info_is_urgent (_info) &&
-        !hd_wm_entry_info_get_ignore_urgent (_info))
+    /* deal with urgency flags */
+    for (l = children; l != NULL; l = l->next)
     {
-      hd_wm_debug("Found an urgent button");
-      urgent = TRUE;
+      HDWMEntryInfo *_info = HD_WM_ENTRY_INFO (l->data);	  
+
+      {	    
+        hd_wm_window_set_icon_geometry (HD_WM_WINDOW (l->data),	    
+                                        GTK_WIDGET (app_button)->allocation.x + panel_x,
+                                        GTK_WIDGET (app_button)->allocation.y + panel_y,
+                                        GTK_WIDGET (app_button)->allocation.width,
+                                        GTK_WIDGET (app_button)->allocation.height,
+                                        TRUE);
+      }
+      /*
+       * If the entry is urgent and the ignore flag is not set, the button
+       * should blink
+       */
+      if (hd_wm_entry_info_is_urgent (_info) &&
+          !hd_wm_entry_info_get_ignore_urgent (_info))
+      {
+        hd_wm_debug("Found an urgent button");
+        urgent = TRUE;
+      }
+
+      /*
+       * if the info is not urgent, we need to clear any leftover
+       * ignore_urgent flag
+       */
+      if(!hd_wm_entry_info_is_urgent (_info) &&
+         hd_wm_entry_info_get_ignore_urgent (_info))
+      {
+        hd_wm_entry_info_set_ignore_urgent (_info, FALSE);
+      }
     }
 
-   /*
-    * if the info is not urgent, we need to clear any leftover
-    * ignore_urgent flag
-    */
-    if(!hd_wm_entry_info_is_urgent (_info) &&
-       hd_wm_entry_info_get_ignore_urgent (_info))
-    {
-      hd_wm_entry_info_set_ignore_urgent (_info, FALSE);
-    }
+    hn_app_button_set_is_blinking (app_button, urgent);
   }
   
   /* bind the entry info to the widget, so that we can
@@ -620,7 +625,6 @@
   hd_wm_debug ("buttons_group.size := %d",
 	  g_slist_length (priv->buttons_group));
 
-  hn_app_button_set_is_blinking (app_button, urgent);
 
   if (hd_wm_entry_info_is_active (entry))
   {


More information about the maemo-commits mailing list