[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#696357: marked as done (unblock: metacity/1:2.34.3-4)



Your message dated Thu, 20 Dec 2012 13:37:05 +0000
with message-id <3e4e6c693d3f564911943a995b8ee070@mail.adsl.funky-badger.org>
and subject line Re: Bug#696357: unblock: metacity/1:2.34.3-4
has caused the Debian Bug report #696357,
regarding unblock: metacity/1:2.34.3-4
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
696357: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696357
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package metacity for a bug fix and a performance/UI 
improvement.

metacity (1:2.34.3-4) unstable; urgency=low

  * Cherry-pick some upstream patches.
    + 10_leak.patch: small memory leak.
    + 11_remove_thumbnails.patch: remove the code to make thumbnails of 
      active windows. It is too slow. Closes: #696323.
    + 12_icons_96px.patch: use 96x96 icons by default.

unblock metacity/1:2.34.3-4

Thanks,
-- 
 .''`.      Josselin Mouette
: :' :
`. `'
  `-
Index: debian/patches/12_icons_96px.patch
===================================================================
--- debian/patches/12_icons_96px.patch	(révision 0)
+++ debian/patches/12_icons_96px.patch	(révision 36495)
@@ -0,0 +1,65 @@
+From 861d49c2a11c1a7f0fa49d0fcdbc8dfd22342e0a Mon Sep 17 00:00:00 2001
+From: Jasper St. Pierre <jstpierre@mecheye.net>
+Date: Tue, 18 Dec 2012 13:02:29 +0000
+Subject: screen: Increase typical alt-tab icon size to 96
+
+Now we removed thumbnailing in the alt-tab switcher, the switcher is
+more difficult to use with its small icons.
+
+We switch to mutter-like higher resolution icons to be able to distinct
+them better (the new size is about the same order as the thumbnails),
+as more and more applications are providing high-res icons.
+
+This patch is ported from mutter, cf
+https://bugzilla.gnome.org/show_bug.cgi?id=689651
+
+https://bugzilla.gnome.org/show_bug.cgi?id=504729
+---
+diff --git a/src/core/screen.c b/src/core/screen.c
+index 52e020a..85d2165 100644
+--- a/src/core/screen.c
++++ b/src/core/screen.c
+@@ -119,14 +119,21 @@ set_wm_icon_size_hint (MetaScreen *screen)
+ #define N_VALS 6
+   gulong vals[N_VALS];
+ 
++  /* We've bumped the real icon size up to 96x96, but
++   * we really should not add these sorts of constraints
++   * on clients still using the legacy WM_HINTS interface.
++   */
++#define LEGACY_ICON_SIZE 32
++
+   /* min width, min height, max w, max h, width inc, height inc */
+-  vals[0] = META_ICON_WIDTH;
+-  vals[1] = META_ICON_HEIGHT;
+-  vals[2] = META_ICON_WIDTH;
+-  vals[3] = META_ICON_HEIGHT;
++  vals[0] = LEGACY_ICON_SIZE;
++  vals[1] = LEGACY_ICON_SIZE;
++  vals[2] = LEGACY_ICON_SIZE;
++  vals[3] = LEGACY_ICON_SIZE;
+   vals[4] = 0;
+   vals[5] = 0;
+-  
++#undef LEGACY_ICON_SIZE
++
+   XChangeProperty (screen->display->xdisplay, screen->xroot,
+                    screen->display->atom_WM_ICON_SIZE,
+                    XA_CARDINAL,
+diff --git a/src/include/common.h b/src/include/common.h
+index 4ce800b..651fa07 100644
+--- a/src/include/common.h
++++ b/src/include/common.h
+@@ -258,8 +258,8 @@ struct _MetaButtonLayout
+ };
+ 
+ /* should investigate changing these to whatever most apps use */
+-#define META_ICON_WIDTH 32
+-#define META_ICON_HEIGHT 32
++#define META_ICON_WIDTH 96
++#define META_ICON_HEIGHT 96
+ #define META_MINI_ICON_WIDTH 16
+ #define META_MINI_ICON_HEIGHT 16
+ 
+--
+cgit v0.9.0.2
Index: debian/patches/11_remove_thumbnails.patch
===================================================================
--- debian/patches/11_remove_thumbnails.patch	(révision 0)
+++ debian/patches/11_remove_thumbnails.patch	(révision 36495)
@@ -0,0 +1,126 @@
+From 04ad17378e0f366dd503cf0881e3a3f9ae603699 Mon Sep 17 00:00:00 2001
+From: Stéphane Démurget <stephane.demurget@free.fr>
+Date: Tue, 18 Dec 2012 12:44:53 +0000
+Subject: screen: Remove alt-tab thumbnails
+
+gdk_pixbuf_scale_simple generates very nice thumbnails at the expense of
+a very slow rendering. So slow that the alt-tab popup is not usable: it
+needs 3.6 seconds to downscale 30 windows of dimension 1600x900 on an
+fairly recent computer.
+
+We remove the thumbnailing to makes alt-tab blazing fast again in the
+composited mode.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=504729
+---
+diff --git a/src/core/screen.c b/src/core/screen.c
+index 34dcdc3..52e020a 100644
+--- a/src/core/screen.c
++++ b/src/core/screen.c
+@@ -1197,49 +1197,6 @@ meta_screen_update_cursor (MetaScreen *screen)
+   XFreeCursor (screen->display->xdisplay, xcursor);
+ }
+ 
+-#define MAX_PREVIEW_SIZE 150.0
+-
+-static GdkPixbuf *
+-get_window_pixbuf (MetaWindow *window,
+-                   int        *width,
+-                   int        *height)
+-{
+-  Pixmap pmap;
+-  GdkPixbuf *pixbuf, *scaled;
+-  double ratio;
+-
+-  pmap = meta_compositor_get_window_pixmap (window->display->compositor,
+-                                            window);
+-  if (pmap == None)
+-    return NULL;
+-
+-  pixbuf = meta_ui_get_pixbuf_from_pixmap (pmap);
+-  if (pixbuf == NULL) 
+-    return NULL;
+-
+-  *width = gdk_pixbuf_get_width (pixbuf);
+-  *height = gdk_pixbuf_get_height (pixbuf);
+-
+-  /* Scale pixbuf to max dimension MAX_PREVIEW_SIZE */
+-  if (*width > *height)
+-    {
+-      ratio = ((double) *width) / MAX_PREVIEW_SIZE;
+-      *width = (int) MAX_PREVIEW_SIZE;
+-      *height = (int) (((double) *height) / ratio);
+-    }
+-  else
+-    {
+-      ratio = ((double) *height) / MAX_PREVIEW_SIZE;
+-      *height = (int) MAX_PREVIEW_SIZE;
+-      *width = (int) (((double) *width) / ratio);
+-    }
+-
+-  scaled = gdk_pixbuf_scale_simple (pixbuf, *width, *height,
+-                                    GDK_INTERP_BILINEAR);
+-  g_object_unref (pixbuf);
+-  return scaled;
+-}
+-                                         
+ void
+ meta_screen_ensure_tab_popup (MetaScreen      *screen,
+                               MetaTabList      list_type,
+@@ -1272,41 +1229,23 @@ meta_screen_ensure_tab_popup (MetaScreen      *screen,
+     {
+       MetaWindow *window;
+       MetaRectangle r;
+-      GdkPixbuf *win_pixbuf;
+-      int width, height;
+ 
+       window = tmp->data;
+-      
++
++      /* Metacity used to generated a thumbnail of the window contents
++       * using gdk_pixbuf_simple_scale which is so slow with bilinear
++       * interpolation that it has been removed.
++       *
++       * The cairo downscale could have been an alternative, but the
++       * result is terrible ATM, so it is simply better to have the
++       * same user story as the non-composited case (no thumbnail).
++       *
++       * https://bugzilla.gnome.org/show_bug.cgi?id=504729
++       */
++
+       entries[i].key = (MetaTabEntryKey) window->xwindow;
+       entries[i].title = window->title;
+-
+-      win_pixbuf = get_window_pixbuf (window, &width, &height);
+-      if (win_pixbuf == NULL)
+-        entries[i].icon = g_object_ref (window->icon);
+-      else
+-        {
+-          int icon_width, icon_height, t_width, t_height;
+-#define ICON_OFFSET 6
+-
+-          icon_width = gdk_pixbuf_get_width (window->icon);
+-          icon_height = gdk_pixbuf_get_height (window->icon);
+-
+-          t_width = width + ICON_OFFSET;
+-          t_height = height + ICON_OFFSET;
+-
+-          entries[i].icon = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
+-                                            t_width, t_height);
+-          gdk_pixbuf_fill (entries[i].icon, 0x00000000);
+-          gdk_pixbuf_copy_area (win_pixbuf, 0, 0, width, height,
+-                                entries[i].icon, 0, 0);
+-          g_object_unref (win_pixbuf);
+-          gdk_pixbuf_composite (window->icon, entries[i].icon, 
+-                                t_width - icon_width, t_height - icon_height,
+-                                icon_width, icon_height,
+-                                t_width - icon_width, t_height - icon_height, 
+-                                1.0, 1.0, GDK_INTERP_BILINEAR, 255);
+-        }
+-                                
++      entries[i].icon = g_object_ref (window->icon);
+       entries[i].blank = FALSE;
+       entries[i].hidden = !meta_window_showing_on_its_workspace (window);
+       entries[i].demands_attention = window->wm_state_demands_attention;
+--
+cgit v0.9.0.2
Index: debian/patches/10_leak.patch
===================================================================
--- debian/patches/10_leak.patch	(révision 0)
+++ debian/patches/10_leak.patch	(révision 36495)
@@ -0,0 +1,38 @@
+From d2b82ba621df8693e560bf0e10c6c56d155cb107 Mon Sep 17 00:00:00 2001
+From: Pavel Vasin <rat4vier@gmail.com>
+Date: Fri, 23 Mar 2012 08:45:50 +0000
+Subject: meta_display_get_tab_list(): Fix leaked GSList
+
+https://bugzilla.gnome.org/show_bug.cgi?id=672640
+---
+diff --git a/src/core/display.c b/src/core/display.c
+index caae7ff..b70112d 100644
+--- a/src/core/display.c
++++ b/src/core/display.c
+@@ -4385,12 +4385,13 @@ meta_display_get_tab_list (MetaDisplay   *display,
+   tab_list = g_list_reverse (tab_list);
+ 
+   {
+-    GSList *tmp;
++    GSList *windows, *tmp;
+     MetaWindow *l_window;
+ 
+-    tmp = meta_display_list_windows (display);
++    windows = meta_display_list_windows (display);
+ 
+     /* Go through all windows */
++    tmp = windows;
+     while (tmp != NULL)
+       {
+         l_window=tmp->data;
+@@ -4406,6 +4407,8 @@ meta_display_get_tab_list (MetaDisplay   *display,
+ 
+         tmp = tmp->next;
+       } /* End while tmp!=NULL */
++
++    g_slist_free (windows);
+   }
+   
+   return tab_list;
+--
+cgit v0.9.0.2
Index: debian/patches/series
===================================================================
--- debian/patches/series	(révision 36000)
+++ debian/patches/series	(copie de travail)
@@ -1,2 +1,5 @@
 01_focus_new_window.patch
 03_gtop_error.patch
+10_leak.patch
+11_remove_thumbnails.patch
+12_icons_96px.patch
Index: debian/changelog
===================================================================
--- debian/changelog	(révision 36000)
+++ debian/changelog	(copie de travail)
@@ -1,3 +1,13 @@
+metacity (1:2.34.3-4) unstable; urgency=low
+
+  * Cherry-pick some upstream patches.
+    + 10_leak.patch: small memory leak.
+    + 11_remove_thumbnails.patch: remove the code to make thumbnails of 
+      active windows. It is too slow. Closes: #696323.
+    + 12_icons_96px.patch: use 96x96 icons by default.
+
+ -- Josselin Mouette <joss@debian.org>  Thu, 20 Dec 2012 00:21:46 +0100
+
 metacity (1:2.34.3-3) unstable; urgency=low
 
   [ Josselin Mouette ]

--- End Message ---
--- Begin Message ---
On 19.12.2012 23:51, Josselin Mouette wrote:
metacity (1:2.34.3-4) unstable; urgency=low

  * Cherry-pick some upstream patches.
    + 10_leak.patch: small memory leak.
+ 11_remove_thumbnails.patch: remove the code to make thumbnails of
      active windows. It is too slow. Closes: #696323.
    + 12_icons_96px.patch: use 96x96 icons by default.

Unblocked; thanks.

Regards,

Adam

--- End Message ---

Reply to: