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.hamalai...@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.ordinasillo...@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.hamalai...@nokia.com>  Fri, 11 Sep 2009 13:35:21 
+0300
+  Marc:
+  * The libmatchbox2 part of NB#131703 fix.
 
+ -- Kimmo Hämäläinen <kimmo.hamalai...@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,

_______________________________________________
maemo-commits mailing list
maemo-commits@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-commits

Reply via email to