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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Sep 16 09:51:23 EEST 2009
Author: kihamala
Date: 2009-09-16 09:51:21 +0300 (Wed, 16 Sep 2009)
New Revision: 19357

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/debian/changelog
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-root-window.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h
Log:

        Remove _NET_WM_ICON support since we don't use it and it has buggy
        code. Fixes: NB#138792

        * matchbox/core/mb-wm-client-window.c (icon_from_net_wm_icon):
        Removed.
        (mb_wm_client_window_sync_properties): Don't read _NET_WM_ICON.
        * matchbox/core/mb-wm-root-window.c
        (mb_wm_root_window_update_supported_props): Remove _NET_WM_ICON from
        the list of supported properties.
        * matchbox/core/mb-wm-types.h: Remove _NET_WM_ICON.
        * matchbox/core/mb-wm-atoms.c (mb_wm_atoms_init): Remove _NET_WM_ICON.
        * matchbox/core/mb-window-manager.c (mb_wm_handle_property_notify):
        Remove _NET_WM_ICON specific code.



Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-09-16 06:51:21 UTC (rev 19357)
@@ -1,6 +1,25 @@
+2009-09-16  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
+
+	Release 0.2.68
+
+	Remove _NET_WM_ICON support since we don't use it and it has buggy
+	code. Fixes: NB#138792
+
+	* matchbox/core/mb-wm-client-window.c (icon_from_net_wm_icon):
+	Removed.
+	(mb_wm_client_window_sync_properties): Don't read _NET_WM_ICON.
+	* matchbox/core/mb-wm-root-window.c
+	(mb_wm_root_window_update_supported_props): Remove _NET_WM_ICON from
+	the list of supported properties.
+	* matchbox/core/mb-wm-types.h: Remove _NET_WM_ICON.
+	* matchbox/core/mb-wm-atoms.c (mb_wm_atoms_init): Remove _NET_WM_ICON.
+	* matchbox/core/mb-window-manager.c (mb_wm_handle_property_notify):
+	Remove _NET_WM_ICON specific code.
+
 2009-09-11  Marc Ordinas i Llopis  <marc.ordinasillopis at collabora.co.uk>
 
-	Stack dialogs correctly if transient_for is None.
+	Stack dialogs correctly if transient_for is None. This is the MB2 part
+	of the NB#131703 fix.
 
 	* matchbox/client-types/mb-wm-client-dialog.c:
 

Modified: projects/haf/trunk/libmatchbox2/debian/changelog
===================================================================
--- projects/haf/trunk/libmatchbox2/debian/changelog	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/debian/changelog	2009-09-16 06:51:21 UTC (rev 19357)
@@ -1,9 +1,13 @@
-matchbox-window-manager-2 (0.2.68-1~unreleased) unstable; urgency=low
+matchbox-window-manager-2 (0.2.68-1) unstable; urgency=low
 
-  * foo
+  Kimmo:
+  * Fixes: NB#138792 - Desktop crashed in a scenario.
 
- -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Fri, 11 Sep 2009 13:35:21 +0300
+  Marc:
+  * The libmatchbox2 part of NB#131703 fix.
 
+ -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Wed, 16 Sep 2009 09:40:59 +0300
+
 matchbox-window-manager-2 (0.2.67-1) unstable; urgency=low
 
   Laszlo:

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c	2009-09-16 06:51:21 UTC (rev 19357)
@@ -610,8 +610,6 @@
     flag = MBWM_WINDOW_PROP_NAME;
   else if (xev->atom == wm->atoms[MBWM_ATOM_WM_HINTS])
     flag = MBWM_WINDOW_PROP_WM_HINTS;
-  else if (xev->atom == wm->atoms[MBWM_ATOM_NET_WM_ICON])
-    flag = MBWM_WINDOW_PROP_NET_ICON;
   else if (xev->atom == wm->atoms[MBWM_ATOM_WM_PROTOCOLS])
     flag = MBWM_WINDOW_PROP_PROTOS;
   else if (xev->atom == wm->atoms[MBWM_ATOM_WM_TRANSIENT_FOR])

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c	2009-09-16 06:51:21 UTC (rev 19357)
@@ -61,7 +61,6 @@
     "_NET_CLIENT_LIST_STACKING",
     "_NET_CURRENT_DESKTOP",
     "_NET_WM_DESKTOP",
-    "_NET_WM_ICON",
     "_NET_DESKTOP_GEOMETRY",
     "_NET_WORKAREA",
     "_NET_SHOWING_DESKTOP",

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c	2009-09-16 06:51:21 UTC (rev 19357)
@@ -167,42 +167,6 @@
   return win;
 }
 
-/*
- * Creates MBWMIcon from raw _NET_WM_ICON property data, returning
- * pointer to where the next icon might be in the data
- */
-static unsigned long *
-icon_from_net_wm_icon (unsigned long * data, void ** mb_icon)
-{
-  MBWMRgbaIcon * icon = mb_wm_rgba_icon_new ();
-  size_t byte_len;
-
-  *((MBWMRgbaIcon**)mb_icon) = icon;
-
-  if (!icon)
-    return 0;
-
-  icon->width  = *data++;
-  icon->height = *data++;
-
-  byte_len = sizeof (unsigned long) * icon->width * icon->height;
-
-  /* don't support insanely big icons, limit 200kB */
-  if (byte_len > 200 * 1024 || (icon->pixels = malloc (byte_len)) == NULL)
-    {
-      g_warning ("%s: won't/couldn't allocate %u bytes", __func__, byte_len);
-      mb_wm_rgba_icon_free (icon);
-      *mb_icon = NULL;
-      return 0;
-    }
-
-  memcpy (icon->pixels, data, byte_len);
-
-  MBWM_DBG("@@@ Icon %d x %d @@@", icon->width, icon->height);
-
-  return (data + icon->width * icon->height);
-}
-
 Bool
 mb_wm_client_window_sync_properties ( MBWMClientWindow *win,
 				     unsigned long     props_req)
@@ -329,14 +293,6 @@
 				       wm->atoms[MBWM_ATOM_NET_WM_PID]);
     }
 
-  if (props_req & MBWM_WINDOW_PROP_NET_ICON)
-    {
-      cookies[COOKIE_WIN_ICON]
-	= mb_wm_property_cardinal_req (wm,
-				       xwin,
-				       wm->atoms[MBWM_ATOM_NET_WM_ICON]);
-    }
-
   if (props_req & MBWM_WINDOW_PROP_NET_USER_TIME)
     {
       cookies[COOKIE_WIN_USER_TIME]
@@ -1025,77 +981,6 @@
 	XFree (translucency);
     }
 
-  if (props_req & MBWM_WINDOW_PROP_NET_ICON)
-    {
-      unsigned char *icons = NULL;
-
-      mb_wm_property_reply (wm,
-			    cookies[COOKIE_WIN_ICON],
-			    &actual_type_return,
-			    &actual_format_return,
-			    &nitems_return,
-			    &bytes_after_return,
-			    &icons,
-			    &x_error_code);
-
-      if (x_error_code
-	  || actual_type_return != XA_CARDINAL
-	  || actual_format_return != 32
-	  || icons == NULL
-	  )
-	{
-	  MBWM_DBG("### Warning net icon prop failed ###");
-          if (x_error_code == BadWindow)
-            goto badwindow_error;
-	}
-      else
-	{
-	  MBWMList *l = win->icons;
-	  MBWMList *list_end = NULL;
-	  unsigned long *p = (unsigned long *)icons;
-	  unsigned long *p_end = (unsigned long *)icons + nitems_return;
-
-	  while (l)
-	    {
-	      MBWMRgbaIcon * ic = l->data;
-
-	      mb_wm_rgba_icon_free (ic);
-
-	      l = l->next;
-	    }
-
-	  while (p < p_end)
-	    {
-	      l = mb_wm_util_malloc0 (sizeof (MBWMList));
-	      if (!l || (p = icon_from_net_wm_icon (p, &l->data)) == 0)
-                {
-                  /* zero return in case of OOM or too big icon */
-                  if (l)
-                    free (l);
-                  break;
-                }
-
-	      if (list_end)
-		{
-		  l->prev = list_end;
-		  list_end->next = l;
-		}
-	      else
-		{
-		  win->icons = l;
-		}
-
-	      list_end = l;
-	    }
-	}
-
-      if (icons)
-	XFree(icons);
-
-      changes |= MBWM_WINDOW_PROP_NET_ICON;
-
-    }
-
   if (props_req & MBWM_WINDOW_PROP_NET_USER_TIME)
     {
       unsigned char *user_time = NULL;

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-root-window.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-root-window.c	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-root-window.c	2009-09-16 06:51:21 UTC (rev 19357)
@@ -215,7 +215,6 @@
     wm->atoms[MBWM_ATOM_NET_CLIENT_LIST_STACKING],
     wm->atoms[MBWM_ATOM_NET_SHOWING_DESKTOP],
     wm->atoms[MBWM_ATOM_NET_WM_NAME],
-    wm->atoms[MBWM_ATOM_NET_WM_ICON],
     wm->atoms[MBWM_ATOM_NET_WM_ALLOWED_ACTIONS],
     wm->atoms[MBWM_ATOM_NET_WM_ACTION_MOVE],
     wm->atoms[MBWM_ATOM_NET_WM_ACTION_FULLSCREEN],

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h	2009-09-15 13:09:33 UTC (rev 19356)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h	2009-09-16 06:51:21 UTC (rev 19357)
@@ -232,7 +232,6 @@
   MBWM_ATOM_NET_CLIENT_LIST_STACKING,
   MBWM_ATOM_NET_CURRENT_DESKTOP,
   MBWM_ATOM_NET_WM_DESKTOP,
-  MBWM_ATOM_NET_WM_ICON,
   MBWM_ATOM_NET_DESKTOP_GEOMETRY,
   MBWM_ATOM_NET_WORKAREA,
   MBWM_ATOM_NET_SHOWING_DESKTOP,

More information about the maemo-commits mailing list