r48935 - in /desktop/unstable/metacity/debian: changelog patches/ patches/fix_xerror_in_free_win.diff patches/frames_ignore_event_outside.diff patches/iconcache_fixes.diff patches/series

mitya57 at users.alioth.debian.org mitya57 at users.alioth.debian.org
Thu May 26 12:45:12 UTC 2016


Author: mitya57
Date: Thu May 26 12:45:10 2016
New Revision: 48935

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=48935
Log:
* Updates from upstream gnome-3-18 branch:
  - Fixes to the icon cache code.
  - Ignoring events outside of frame in get_control.
  - Fix for XError crash in free_win function (LP: #1582687).

Added:
    desktop/unstable/metacity/debian/patches/
    desktop/unstable/metacity/debian/patches/fix_xerror_in_free_win.diff
    desktop/unstable/metacity/debian/patches/frames_ignore_event_outside.diff
    desktop/unstable/metacity/debian/patches/iconcache_fixes.diff
    desktop/unstable/metacity/debian/patches/series
Modified:
    desktop/unstable/metacity/debian/changelog

Modified: desktop/unstable/metacity/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/metacity/debian/changelog?rev=48935&op=diff
==============================================================================
--- desktop/unstable/metacity/debian/changelog	[utf-8] (original)
+++ desktop/unstable/metacity/debian/changelog	[utf-8] Thu May 26 12:45:10 2016
@@ -1,3 +1,12 @@
+metacity (1:3.18.4-2) unstable; urgency=medium
+
+  * Updates from upstream gnome-3-18 branch:
+    - Fixes to the icon cache code.
+    - Ignoring events outside of frame in get_control.
+    - Fix for XError crash in free_win function (LP: #1582687).
+
+ -- Dmitry Shachnev <mitya57 at debian.org>  Thu, 26 May 2016 15:42:03 +0300
+
 metacity (1:3.18.4-1) unstable; urgency=medium
 
   * New upstream release.

Added: desktop/unstable/metacity/debian/patches/fix_xerror_in_free_win.diff
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/metacity/debian/patches/fix_xerror_in_free_win.diff?rev=48935&op=file
==============================================================================
--- desktop/unstable/metacity/debian/patches/fix_xerror_in_free_win.diff	(added)
+++ desktop/unstable/metacity/debian/patches/fix_xerror_in_free_win.diff	[utf-8] Thu May 26 12:45:10 2016
@@ -0,0 +1,22 @@
+Description: compositor: add error trap in free_win
+ It seems that picture might be destroyed with window if it is
+ created by passing window id as drawable to XRenderCreatePicture.
+ .
+ Add error trap around XRenderFreePicture to avoid Metacity crash
+ with RenderBadPicture error.
+Origin: upstream, https://git.gnome.org/browse/metacity/commit/?id=1243d34816398ec9
+Last-Update: 2016-05-26
+
+--- a/src/compositor/compositor-xrender.c
++++ b/src/compositor/compositor-xrender.c
+@@ -1957,7 +1957,10 @@
+ 
+   if (cw->picture)
+     {
++      meta_error_trap_push (display);
+       XRenderFreePicture (xdisplay, cw->picture);
++      meta_error_trap_pop (display, FALSE);
++
+       cw->picture = None;
+     }
+ 

Added: desktop/unstable/metacity/debian/patches/frames_ignore_event_outside.diff
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/metacity/debian/patches/frames_ignore_event_outside.diff?rev=48935&op=file
==============================================================================
--- desktop/unstable/metacity/debian/patches/frames_ignore_event_outside.diff	(added)
+++ desktop/unstable/metacity/debian/patches/frames_ignore_event_outside.diff	[utf-8] Thu May 26 12:45:10 2016
@@ -0,0 +1,16 @@
+Description: frames: ignore event outside of frame in get_control
+Origin: upstream, https://git.gnome.org/browse/metacity/commit/?id=072f77b4da0e3f9b
+Last-Update: 2016-05-26
+
+--- a/src/ui/frames.c
++++ b/src/ui/frames.c
+@@ -2819,6 +2819,9 @@
+   meta_frames_calc_geometry (frames, frame, &fgeom);
+   get_client_rect (&fgeom, fgeom.width, fgeom.height, &client);
+ 
++  if (x < 0 || y < 0 || x > fgeom.width || y > fgeom.height)
++    return META_FRAME_CONTROL_NONE;
++
+   if (POINT_IN_RECT (x, y, client))
+     return META_FRAME_CONTROL_CLIENT_AREA;
+ 

Added: desktop/unstable/metacity/debian/patches/iconcache_fixes.diff
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/metacity/debian/patches/iconcache_fixes.diff?rev=48935&op=file
==============================================================================
--- desktop/unstable/metacity/debian/patches/iconcache_fixes.diff	(added)
+++ desktop/unstable/metacity/debian/patches/iconcache_fixes.diff	[utf-8] Thu May 26 12:45:10 2016
@@ -0,0 +1,108 @@
+Description: icon cache fixes ported from mutter
+Origin: upstream, commits
+ https://git.gnome.org/browse/metacity/commit/?id=e2ee54b388d9c3e7
+ https://git.gnome.org/browse/metacity/commit/?id=a2250539217fba3b
+ https://git.gnome.org/browse/metacity/commit/?id=06a2ea4c32375ff2
+Last-Update: 2016-05-26
+
+--- a/src/core/iconcache.c
++++ b/src/core/iconcache.c
+@@ -321,6 +321,40 @@
+     *d = depth;
+ }
+ 
++static void
++apply_foreground_background (GdkPixbuf *pixbuf)
++{
++  int w, h;
++  int i, j;
++  guchar *pixels;
++  int stride;
++
++  w = gdk_pixbuf_get_width (pixbuf);
++  h = gdk_pixbuf_get_height (pixbuf);
++  pixels = gdk_pixbuf_get_pixels (pixbuf);
++  stride = gdk_pixbuf_get_rowstride (pixbuf);
++
++  i = 0;
++  while (i < h)
++    {
++      j = 0;
++      while (j < w)
++        {
++          guchar *p = pixels + i * stride + j * 4;
++          if (p[3] == 0)
++            p[0] = p[1] = p[2] =  0xff; /* white background */
++          else
++            p[0] = p[1] = p[2] = 0x00; /* black foreground */
++
++          p[3] = 0xff;
++
++          ++j;
++        }
++
++      ++i;
++    }
++}
++
+ static GdkPixbuf*
+ apply_mask (GdkPixbuf *pixbuf,
+             GdkPixbuf *mask)
+@@ -350,16 +384,10 @@
+       j = 0;
+       while (j < w)
+         {
+-          guchar *s = src + i * src_stride + j * 3;
++          guchar *s = src + i * src_stride + j * 4;
+           guchar *d = dest + i * dest_stride + j * 4;
+ 
+-          /* s[0] == s[1] == s[2], they are 255 if the bit was set, 0
+-           * otherwise
+-           */
+-          if (s[0] == 0)
+-            d[3] = 0;   /* transparent */
+-          else
+-            d[3] = 255; /* opaque */
++          d[3] = s[3];
+ 
+           ++j;
+         }
+@@ -383,25 +411,32 @@
+ {
+   GdkPixbuf *unscaled = NULL;
+   GdkPixbuf *mask = NULL;
+-  int w, h;
++  int w, h, d;
+ 
+   if (src_pixmap == None)
+     return FALSE;
+ 
+   meta_error_trap_push (display);
+ 
+-  get_pixmap_geometry (display, src_pixmap, &w, &h, NULL);
++  get_pixmap_geometry (display, src_pixmap, &w, &h, &d);
+ 
+   unscaled = meta_gdk_pixbuf_get_from_pixmap (src_pixmap,
+                                               0, 0,
+                                               w, h);
+ 
++  /* A depth 1 pixmap has 0 background, and 1 foreground, but
++   * cairo and meta_gdk_pixbuf_get_from_pixmap consider it
++   * to be 0 transparent, 1 opaque */
++  if (d == 1)
++    apply_foreground_background (unscaled);
++
+   if (unscaled && src_mask != None)
+     {
+-      get_pixmap_geometry (display, src_mask, &w, &h, NULL);
+-      mask = meta_gdk_pixbuf_get_from_pixmap (src_mask,
+-                                              0, 0,
+-                                              w, h);
++      get_pixmap_geometry (display, src_mask, &w, &h, &d);
++      if (d == 1)
++        mask = meta_gdk_pixbuf_get_from_pixmap (src_mask,
++                                                0, 0,
++                                                w, h);
+     }
+ 
+   meta_error_trap_pop (display, FALSE);

Added: desktop/unstable/metacity/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/metacity/debian/patches/series?rev=48935&op=file
==============================================================================
--- desktop/unstable/metacity/debian/patches/series	(added)
+++ desktop/unstable/metacity/debian/patches/series	[utf-8] Thu May 26 12:45:10 2016
@@ -0,0 +1,3 @@
+iconcache_fixes.diff
+frames_ignore_event_outside.diff
+fix_xerror_in_free_win.diff




More information about the pkg-gnome-commits mailing list