Hello community,

here is the log from the commit of package mutter for openSUSE:Factory checked 
in at 2013-05-28 07:41:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
 and      /work/SRC/openSUSE:Factory/.mutter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mutter"

Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes    2013-04-26 
15:52:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mutter.new/mutter.changes       2013-05-28 
07:41:22.000000000 +0200
@@ -1,0 +2,7 @@
+Wed May  1 08:18:03 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.9.1:
+  + Fix miscellaneous memory leaks (bgo#698710).
+  + Misc fixes and cleanups (bgo#698179, bgo#697758).
+
+-------------------------------------------------------------------

Old:
----
  mutter-3.8.1.tar.xz

New:
----
  mutter-3.9.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mutter.spec ++++++
--- /var/tmp/diff_new_pack.LdBZTJ/_old  2013-05-28 07:41:23.000000000 +0200
+++ /var/tmp/diff_new_pack.LdBZTJ/_new  2013-05-28 07:41:23.000000000 +0200
@@ -17,13 +17,13 @@
 
 
 Name:           mutter
-Version:        3.8.1
+Version:        3.9.1
 Release:        0
 Summary:        Window and compositing manager based on Clutter
 License:        GPL-2.0+
 Group:          System/GUI/GNOME
 Url:            http://www.gnome.org
-Source:         
http://download.gnome.org/sources/mutter/3.8/%{name}-%{version}.tar.xz
+Source:         
http://download.gnome.org/sources/mutter/3.9/%{name}-%{version}.tar.xz
 BuildRequires:  fdupes
 BuildRequires:  gobject-introspection-devel >= 0.9.5
 BuildRequires:  intltool

++++++ mutter-3.8.1.tar.xz -> mutter-3.9.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/NEWS new/mutter-3.9.1/NEWS
--- old/mutter-3.8.1/NEWS       2013-04-16 20:38:28.000000000 +0200
+++ new/mutter-3.9.1/NEWS       2013-04-30 23:27:53.000000000 +0200
@@ -1,3 +1,11 @@
+3.9.1
+=====
+* Fix miscellaneous memory leaks [Pavel; #698710]
+* Misc fixes and cleanups [Stef, Simon; #698179, #697758]
+
+Contributors:
+  Simon McVittie, Pavel Vasin, Stef Walter
+
 3.8.1
 =====
 * Fix crash when getting default font [Bastien; #696814]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/configure new/mutter-3.9.1/configure
--- old/mutter-3.8.1/configure  2013-04-16 20:39:23.000000000 +0200
+++ new/mutter-3.9.1/configure  2013-04-30 23:29:09.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mutter 3.8.1.
+# Generated by GNU Autoconf 2.69 for mutter 3.9.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=mutter>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='mutter'
 PACKAGE_TARNAME='mutter'
-PACKAGE_VERSION='3.8.1'
-PACKAGE_STRING='mutter 3.8.1'
+PACKAGE_VERSION='3.9.1'
+PACKAGE_STRING='mutter 3.9.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=mutter'
 PACKAGE_URL=''
 
@@ -1465,7 +1465,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures mutter 3.8.1 to adapt to many kinds of systems.
+\`configure' configures mutter 3.9.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1539,7 +1539,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mutter 3.8.1:";;
+     short | recursive ) echo "Configuration of mutter 3.9.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1698,7 +1698,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-mutter configure 3.8.1
+mutter configure 3.9.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2250,7 +2250,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by mutter $as_me 3.8.1, which was
+It was created by mutter $as_me 3.9.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3118,7 +3118,7 @@
 
 # Define the identity of the package.
  PACKAGE='mutter'
- VERSION='3.8.1'
+ VERSION='3.9.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3309,7 +3309,7 @@
 
 
 MUTTER_MAJOR_VERSION=3
-MUTTER_MINOR_VERSION=8
+MUTTER_MINOR_VERSION=9
 MUTTER_MICRO_VERSION=1
 MUTTER_PLUGIN_API_VERSION=3
 
@@ -18127,7 +18127,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by mutter $as_me 3.8.1, which was
+This file was extended by mutter $as_me 3.9.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18193,7 +18193,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-mutter config.status 3.8.1
+mutter config.status 3.9.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -20027,7 +20027,7 @@
 "
 
 
-MUTTER_MINOR_VERSION=8
+MUTTER_MINOR_VERSION=9
 if expr $MUTTER_MINOR_VERSION % 2 > /dev/null ; then
    stable_version=`expr $MUTTER_MINOR_VERSION - 1`
    echo "This is the UNSTABLE branch of mutter"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/configure.ac 
new/mutter-3.9.1/configure.ac
--- old/mutter-3.8.1/configure.ac       2013-04-16 20:38:34.000000000 +0200
+++ new/mutter-3.9.1/configure.ac       2013-04-30 23:28:06.000000000 +0200
@@ -1,7 +1,7 @@
 AC_PREREQ(2.50)
 
 m4_define([mutter_major_version], [3])
-m4_define([mutter_minor_version], [8])
+m4_define([mutter_minor_version], [9])
 m4_define([mutter_micro_version], [1])
 
 m4_define([mutter_version],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/doc/reference/html/MetaDisplay.html 
new/mutter-3.9.1/doc/reference/html/MetaDisplay.html
--- old/mutter-3.8.1/doc/reference/html/MetaDisplay.html        2013-04-16 
20:40:13.000000000 +0200
+++ new/mutter-3.9.1/doc/reference/html/MetaDisplay.html        2013-04-30 
23:30:55.000000000 +0200
@@ -155,6 +155,7 @@
   "<a class="link" href="MetaDisplay.html#MetaDisplay-accelerator-activated" 
title='The "accelerator-activated" signal'>accelerator-activated</a>"           
               : <code class="literal">Run Last</code>
   "<a class="link" href="MetaDisplay.html#MetaDisplay-grab-op-begin" 
title='The "grab-op-begin" signal'>grab-op-begin</a>"                           
       : <code class="literal">Run Last</code>
   "<a class="link" href="MetaDisplay.html#MetaDisplay-grab-op-end" title='The 
"grab-op-end" signal'>grab-op-end</a>"                                    : 
<code class="literal">Run Last</code>
+  "<a class="link" 
href="MetaDisplay.html#MetaDisplay-modifiers-accelerator-activated" title='The 
"modifiers-accelerator-activated" signal'>modifiers-accelerator-activated</a>"  
              : <code class="literal">Run Last</code>
   "<a class="link" href="MetaDisplay.html#MetaDisplay-overlay-key" title='The 
"overlay-key" signal'>overlay-key</a>"                                    : 
<code class="literal">Run Last</code>
   "<a class="link" href="MetaDisplay.html#MetaDisplay-window-created" 
title='The "window-created" signal'>window-created</a>"                         
        : <code class="literal">Run Last</code>
   "<a class="link" 
href="MetaDisplay.html#MetaDisplay-window-demands-attention" title='The 
"window-demands-attention" signal'>window-demands-attention</a>"                
       : <code class="literal">Run Last</code>
@@ -1079,6 +1080,12 @@
                                                         <span 
class="type">gpointer</span>     user_data)        : <code class="literal">Run 
Last</code></pre>
 </div>
 <hr>
+<div class="refsect2">
+<a name="MetaDisplay-modifiers-accelerator-activated"></a><h3>The <code 
class="literal">"modifiers-accelerator-activated"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>              
  user_function                      (<a class="link" href="MetaDisplay.html" 
title="MetaDisplay"><span class="type">MetaDisplay</span></a> *metadisplay,
+                                                        <span 
class="type">gpointer</span>     user_data)        : <code class="literal">Run 
Last</code></pre>
+</div>
+<hr>
 <div class="refsect2">
 <a name="MetaDisplay-overlay-key"></a><h3>The <code 
class="literal">"overlay-key"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>              
  user_function                      (<a class="link" href="MetaDisplay.html" 
title="MetaDisplay"><span class="type">MetaDisplay</span></a> *metadisplay,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/doc/reference/html/api-index-full.html 
new/mutter-3.9.1/doc/reference/html/api-index-full.html
--- old/mutter-3.8.1/doc/reference/html/api-index-full.html     2013-04-16 
20:40:13.000000000 +0200
+++ new/mutter-3.9.1/doc/reference/html/api-index-full.html     2013-04-30 
23:30:55.000000000 +0200
@@ -180,6 +180,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" 
href="MetaDisplay.html#MetaDisplay-modifiers-accelerator-activated" title='The 
"modifiers-accelerator-activated" 
signal'>MetaDisplay::modifiers-accelerator-activated</a>, object signal in <a 
class="link" href="MetaDisplay.html" title="MetaDisplay">MetaDisplay</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="MetaDisplay.html#MetaDisplay-overlay-key" title='The 
"overlay-key" signal'>MetaDisplay::overlay-key</a>, object signal in <a 
class="link" href="MetaDisplay.html" title="MetaDisplay">MetaDisplay</a>
 </dt>
 <dd></dd>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/doc/reference/html/index.html 
new/mutter-3.9.1/doc/reference/html/index.html
--- old/mutter-3.8.1/doc/reference/html/index.html      2013-04-16 
20:40:13.000000000 +0200
+++ new/mutter-3.9.1/doc/reference/html/index.html      2013-04-30 
23:30:55.000000000 +0200
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" 
cellspacing="0"><tr><th valign="middle"><p class="title">Mutter Reference 
Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      This document is for Mutter 3.8.1.
+      This document is for Mutter 3.9.1.
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://developer.gnome.org/meta/"; 
target="_top">http://developer.gnome.org/meta/</a>.
     </p></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/doc/reference/html/index.sgml 
new/mutter-3.9.1/doc/reference/html/index.sgml
--- old/mutter-3.8.1/doc/reference/html/index.sgml      2013-04-16 
20:40:13.000000000 +0200
+++ new/mutter-3.9.1/doc/reference/html/index.sgml      2013-04-30 
23:30:55.000000000 +0200
@@ -646,6 +646,7 @@
 <ANCHOR id="MetaDisplay-accelerator-activated" 
href="meta/MetaDisplay.html#MetaDisplay-accelerator-activated">
 <ANCHOR id="MetaDisplay-grab-op-begin" 
href="meta/MetaDisplay.html#MetaDisplay-grab-op-begin">
 <ANCHOR id="MetaDisplay-grab-op-end" 
href="meta/MetaDisplay.html#MetaDisplay-grab-op-end">
+<ANCHOR id="MetaDisplay-modifiers-accelerator-activated" 
href="meta/MetaDisplay.html#MetaDisplay-modifiers-accelerator-activated">
 <ANCHOR id="MetaDisplay-overlay-key" 
href="meta/MetaDisplay.html#MetaDisplay-overlay-key">
 <ANCHOR id="MetaDisplay-window-created" 
href="meta/MetaDisplay.html#MetaDisplay-window-created">
 <ANCHOR id="MetaDisplay-window-demands-attention" 
href="meta/MetaDisplay.html#MetaDisplay-window-demands-attention">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/doc/reference/html/meta.devhelp2 
new/mutter-3.9.1/doc/reference/html/meta.devhelp2
--- old/mutter-3.8.1/doc/reference/html/meta.devhelp2   2013-04-16 
20:40:13.000000000 +0200
+++ new/mutter-3.9.1/doc/reference/html/meta.devhelp2   2013-04-30 
23:30:55.000000000 +0200
@@ -299,6 +299,7 @@
     <keyword type="signal" name="The &quot;accelerator-activated&quot; signal" 
link="MetaDisplay.html#MetaDisplay-accelerator-activated"/>
     <keyword type="signal" name="The &quot;grab-op-begin&quot; signal" 
link="MetaDisplay.html#MetaDisplay-grab-op-begin"/>
     <keyword type="signal" name="The &quot;grab-op-end&quot; signal" 
link="MetaDisplay.html#MetaDisplay-grab-op-end"/>
+    <keyword type="signal" name="The 
&quot;modifiers-accelerator-activated&quot; signal" 
link="MetaDisplay.html#MetaDisplay-modifiers-accelerator-activated"/>
     <keyword type="signal" name="The &quot;overlay-key&quot; signal" 
link="MetaDisplay.html#MetaDisplay-overlay-key"/>
     <keyword type="signal" name="The &quot;window-created&quot; signal" 
link="MetaDisplay.html#MetaDisplay-window-created"/>
     <keyword type="signal" name="The &quot;window-demands-attention&quot; 
signal" link="MetaDisplay.html#MetaDisplay-window-demands-attention"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/doc/reference/meta-docs.sgml 
new/mutter-3.9.1/doc/reference/meta-docs.sgml
--- old/mutter-3.8.1/doc/reference/meta-docs.sgml       2013-04-16 
20:39:41.000000000 +0200
+++ new/mutter-3.9.1/doc/reference/meta-docs.sgml       2013-04-30 
23:29:49.000000000 +0200
@@ -3,7 +3,7 @@
                "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd";
 [
   <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 
'http://www.w3.org/2003/XInclude'">
-  <!ENTITY version "3.8.1">
+  <!ENTITY version "3.9.1">
 ]>
 <book id="index">
   <bookinfo>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/compositor/meta-background.c 
new/mutter-3.9.1/src/compositor/meta-background.c
--- old/mutter-3.8.1/src/compositor/meta-background.c   2013-04-16 
20:29:13.000000000 +0200
+++ new/mutter-3.9.1/src/compositor/meta-background.c   2013-04-30 
23:21:40.000000000 +0200
@@ -473,6 +473,17 @@
 }
 
 static void
+meta_background_finalize (GObject *object)
+{
+  MetaBackground        *self = META_BACKGROUND (object);
+  MetaBackgroundPrivate *priv = self->priv;
+
+  g_free (priv->filename);
+
+  G_OBJECT_CLASS (meta_background_parent_class)->finalize (object);
+}
+
+static void
 ensure_pipeline (MetaBackground *self)
 {
   if (self->priv->pipeline == NULL)
@@ -643,6 +654,7 @@
   g_type_class_add_private (klass, sizeof (MetaBackgroundPrivate));
 
   object_class->dispose = meta_background_dispose;
+  object_class->finalize = meta_background_finalize;
   object_class->set_property = meta_background_set_property;
   object_class->get_property = meta_background_get_property;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/compositor/meta-window-actor.c 
new/mutter-3.9.1/src/compositor/meta-window-actor.c
--- old/mutter-3.8.1/src/compositor/meta-window-actor.c 2013-03-18 
20:46:34.000000000 +0100
+++ new/mutter-3.9.1/src/compositor/meta-window-actor.c 2013-04-30 
23:21:40.000000000 +0200
@@ -1993,73 +1993,6 @@
     }
 }
 
-#define TAU (2*M_PI)
-
-static void
-install_corners (MetaWindow       *window,
-                 MetaFrameBorders *borders,
-                 cairo_t          *cr)
-{
-  float top_left, top_right, bottom_left, bottom_right;
-  int x, y;
-  MetaRectangle outer;
-
-  meta_frame_get_corner_radiuses (window->frame,
-                                  &top_left,
-                                  &top_right,
-                                  &bottom_left,
-                                  &bottom_right);
-
-  meta_window_get_outer_rect (window, &outer);
-
-  /* top left */
-  x = borders->invisible.left;
-  y = borders->invisible.top;
-
-  cairo_arc (cr,
-             x + top_left,
-             y + top_left,
-             top_left,
-             2 * TAU / 4,
-             3 * TAU / 4);
-
-  /* top right */
-  x = borders->invisible.left + outer.width - top_right;
-  y = borders->invisible.top;
-
-  cairo_arc (cr,
-             x,
-             y + top_right,
-             top_right,
-             3 * TAU / 4,
-             4 * TAU / 4);
-
-  /* bottom right */
-  x = borders->invisible.left + outer.width - bottom_right;
-  y = borders->invisible.top + outer.height - bottom_right;
-
-  cairo_arc (cr,
-             x,
-             y,
-             bottom_right,
-             0 * TAU / 4,
-             1 * TAU / 4);
-
-  /* bottom left */
-  x = borders->invisible.left;
-  y = borders->invisible.top + outer.height - bottom_left;
-
-  cairo_arc (cr,
-             x + bottom_left,
-             y,
-             bottom_left,
-             1 * TAU / 4,
-             2 * TAU / 4);
-
-  cairo_set_source_rgba (cr, 1, 1, 1, 1);
-  cairo_fill (cr);
-}
-
 static cairo_region_t *
 scan_visible_region (guchar         *mask_data,
                      int             stride,
@@ -2099,7 +2032,6 @@
 
 static void
 build_and_scan_frame_mask (MetaWindowActor       *self,
-                           MetaFrameBorders      *borders,
                            cairo_rectangle_int_t *client_area,
                            cairo_region_t        *shape_region)
 {
@@ -2145,7 +2077,7 @@
       gdk_cairo_region (cr, frame_paint_region);
       cairo_clip (cr);
 
-      install_corners (priv->window, borders, cr);
+      meta_frame_get_mask (priv->window->frame, cr);
 
       cairo_surface_flush (surface);
       scanned_region = scan_visible_region (mask_data, stride, 
frame_paint_region);
@@ -2308,7 +2240,7 @@
        * and scans the mask looking for all opaque pixels,
        * adding it to region.
        */
-      build_and_scan_frame_mask (self, &borders, &client_area, region);
+      build_and_scan_frame_mask (self, &client_area, region);
     }
 
   priv->shape_region = region;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/core/barrier.c 
new/mutter-3.9.1/src/core/barrier.c
--- old/mutter-3.8.1/src/core/barrier.c 2013-03-18 20:46:34.000000000 +0100
+++ new/mutter-3.9.1/src/core/barrier.c 2013-04-30 23:21:40.000000000 +0200
@@ -59,6 +59,8 @@
   PointerBarrier xbarrier;
 };
 
+static void meta_barrier_event_unref (MetaBarrierEvent *event);
+
 static void
 meta_barrier_get_property (GObject    *object,
                            guint       prop_id,
@@ -359,6 +361,8 @@
     default:
       g_assert_not_reached ();
     }
+
+  meta_barrier_event_unref (event);
 }
 
 gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/core/frame.c 
new/mutter-3.9.1/src/core/frame.c
--- old/mutter-3.8.1/src/core/frame.c   2012-08-06 21:20:16.000000000 +0200
+++ new/mutter-3.9.1/src/core/frame.c   2013-04-30 23:21:40.000000000 +0200
@@ -332,19 +332,6 @@
                                borders);
 }
 
-void
-meta_frame_get_corner_radiuses (MetaFrame *frame,
-                                float     *top_left,
-                                float     *top_right,
-                                float     *bottom_left,
-                                float     *bottom_right)
-{
-  meta_ui_get_corner_radiuses (frame->window->screen->ui,
-                               frame->xwindow,
-                               top_left, top_right,
-                               bottom_left, bottom_right);
-}
-
 gboolean
 meta_frame_sync_to_window (MetaFrame *frame,
                            int        resize_gravity,
@@ -401,6 +388,14 @@
 }
 
 void
+meta_frame_get_mask (MetaFrame                    *frame,
+                     cairo_t                      *cr)
+{
+  meta_ui_get_frame_mask (frame->window->screen->ui, frame->xwindow,
+                          frame->rect.width, frame->rect.height, cr);
+}
+
+void
 meta_frame_queue_draw (MetaFrame *frame)
 {
   meta_ui_queue_frame_draw (frame->window->screen->ui,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/core/frame.h 
new/mutter-3.9.1/src/core/frame.h
--- old/mutter-3.8.1/src/core/frame.h   2011-08-29 23:34:12.000000000 +0200
+++ new/mutter-3.9.1/src/core/frame.h   2013-04-30 23:21:40.000000000 +0200
@@ -63,12 +63,6 @@
 void meta_frame_calc_borders      (MetaFrame        *frame,
                                    MetaFrameBorders *borders);
 
-void meta_frame_get_corner_radiuses (MetaFrame *frame,
-                                     float     *top_left,
-                                     float     *top_right,
-                                     float     *bottom_left,
-                                     float     *bottom_right);
-
 gboolean meta_frame_sync_to_window (MetaFrame         *frame,
                                     int                gravity,
                                     gboolean           need_move,
@@ -76,6 +70,9 @@
 
 cairo_region_t *meta_frame_get_frame_bounds (MetaFrame *frame);
 
+void meta_frame_get_mask (MetaFrame *frame,
+                          cairo_t   *cr);
+
 void meta_frame_set_screen_cursor (MetaFrame   *frame,
                                   MetaCursor   cursor);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/core/prefs.c 
new/mutter-3.9.1/src/core/prefs.c
--- old/mutter-3.8.1/src/core/prefs.c   2013-04-16 20:29:07.000000000 +0200
+++ new/mutter-3.9.1/src/core/prefs.c   2013-04-30 23:21:40.000000000 +0200
@@ -1708,12 +1708,13 @@
 {
   MetaBasePreference *pref;
 
-  find_pref (preferences_int, sizeof(MetaIntPreference),
-             KEY_NUM_WORKSPACES, &pref);
-
-  g_settings_set_int (SETTINGS (pref->schema),
-                      KEY_NUM_WORKSPACES,
-                      n_workspaces);
+  if (find_pref (preferences_int, sizeof(MetaIntPreference),
+                 KEY_NUM_WORKSPACES, &pref))
+    {
+      g_settings_set_int (SETTINGS (pref->schema),
+                          KEY_NUM_WORKSPACES,
+                          n_workspaces);
+    }
 }
 
 static GHashTable *key_bindings;
@@ -2216,9 +2217,11 @@
 {
   MetaBasePreference *pref;
 
-  find_pref (preferences_bool, sizeof(MetaBoolPreference),
-             KEY_NO_TAB_POPUP, &pref);
-  g_settings_set_boolean (SETTINGS (pref->schema), KEY_NO_TAB_POPUP, whether);
+  if (find_pref (preferences_bool, sizeof(MetaBoolPreference),
+                 KEY_NO_TAB_POPUP, &pref))
+    {
+      g_settings_set_boolean (SETTINGS (pref->schema), KEY_NO_TAB_POPUP, 
whether);
+    }
 }
 
 int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/core/window.c 
new/mutter-3.9.1/src/core/window.c
--- old/mutter-3.8.1/src/core/window.c  2013-04-16 20:29:07.000000000 +0200
+++ new/mutter-3.9.1/src/core/window.c  2013-04-30 23:21:40.000000000 +0200
@@ -253,6 +253,8 @@
   g_free (window->gtk_window_object_path);
   g_free (window->gtk_app_menu_object_path);
   g_free (window->gtk_menubar_object_path);
+
+  G_OBJECT_CLASS (meta_window_parent_class)->finalize (object);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/ui/frames.c 
new/mutter-3.9.1/src/ui/frames.c
--- old/mutter-3.8.1/src/ui/frames.c    2013-04-16 20:29:13.000000000 +0200
+++ new/mutter-3.9.1/src/ui/frames.c    2013-04-30 23:21:40.000000000 +0200
@@ -740,22 +740,6 @@
 }
 
 void
-meta_frames_get_corner_radiuses (MetaFrames *frames,
-                                 Window      xwindow,
-                                 float      *top_left,
-                                 float      *top_right,
-                                 float      *bottom_left,
-                                 float      *bottom_right)
-{
-  MetaUIFrame *frame;
-
-  frame = meta_frames_lookup_window (frames, xwindow);
-
-  meta_ui_frame_get_corner_radiuses (frames, frame, top_left, top_right,
-                                     bottom_left, bottom_right);
-}
-
-void
 meta_frames_reset_bg (MetaFrames *frames,
                       Window  xwindow)
 {
@@ -1851,6 +1835,102 @@
   cairo_region_destroy (frame_border);
 }
 
+#define TAU (2*M_PI)
+
+/*
+ * Draw the opaque and semi-opaque pixels of this frame into a mask.
+ *
+ * (0,0) in Cairo coordinates is assumed to be the top left corner of the
+ * invisible border.
+ *
+ * The parts of @cr's surface in the clip region are assumed to be
+ * initialized to fully-transparent, and the clip region is assumed to
+ * contain the invisible border and the visible parts of the frame, but
+ * not the client area.
+ *
+ * This function uses @cr to draw pixels of arbitrary color (it will
+ * typically be drawing in a %CAIRO_FORMAT_A8 surface, so the color is
+ * discarded anyway) with appropriate alpha values to reproduce this
+ * frame's alpha channel, as a mask to be applied to an opaque pixmap.
+ *
+ * @frame: This frame
+ * @xwindow: The X window for the frame, which has the client window as a child
+ * @width: The width of the framed window including any invisible borders
+ * @height: The height of the framed window including any invisible borders
+ * @cr: Used to draw the resulting mask
+ */
+void
+meta_frames_get_mask (MetaFrames          *frames,
+                      Window               xwindow,
+                      guint                width,
+                      guint                height,
+                      cairo_t             *cr)
+{
+  MetaUIFrame *frame = meta_frames_lookup_window (frames, xwindow);
+  float top_left, top_right, bottom_left, bottom_right;
+  int x, y;
+  MetaFrameBorders borders;
+
+  if (frame == NULL)
+    meta_bug ("No such frame 0x%lx\n", xwindow);
+
+  cairo_save (cr);
+
+  meta_ui_frame_get_borders (frames, frame, &borders);
+  meta_ui_frame_get_corner_radiuses (frames, frame,
+                                     &top_left, &top_right,
+                                     &bottom_left, &bottom_right);
+
+  /* top left */
+  x = borders.invisible.left;
+  y = borders.invisible.top;
+
+  cairo_arc (cr,
+             x + top_left,
+             y + top_left,
+             top_left,
+             2 * TAU / 4,
+             3 * TAU / 4);
+
+  /* top right */
+  x = width - borders.invisible.right - top_right;
+  y = borders.invisible.top;
+
+  cairo_arc (cr,
+             x,
+             y + top_right,
+             top_right,
+             3 * TAU / 4,
+             4 * TAU / 4);
+
+  /* bottom right */
+  x = width - borders.invisible.right - bottom_right;
+  y = height - borders.invisible.bottom - bottom_right;
+
+  cairo_arc (cr,
+             x,
+             y,
+             bottom_right,
+             0 * TAU / 4,
+             1 * TAU / 4);
+
+  /* bottom left */
+  x = borders.invisible.left;
+  y = height - borders.invisible.bottom - bottom_left;
+
+  cairo_arc (cr,
+             x + bottom_left,
+             y,
+             bottom_left,
+             1 * TAU / 4,
+             2 * TAU / 4);
+
+  cairo_set_source_rgba (cr, 1, 1, 1, 1);
+  cairo_fill (cr);
+
+  cairo_restore (cr);
+}
+
 static gboolean
 meta_frames_draw (GtkWidget *widget,
                   cairo_t   *cr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/ui/frames.h 
new/mutter-3.9.1/src/ui/frames.h
--- old/mutter-3.8.1/src/ui/frames.h    2012-08-06 21:20:16.000000000 +0200
+++ new/mutter-3.9.1/src/ui/frames.h    2013-04-30 23:21:40.000000000 +0200
@@ -140,12 +140,11 @@
                                               int         window_width,
                                               int         window_height);
 
-void meta_frames_get_corner_radiuses (MetaFrames *frames,
-                                      Window      xwindow,
-                                      float      *top_left,
-                                      float      *top_right,
-                                      float      *bottom_left,
-                                      float      *bottom_right);
+void meta_frames_get_mask (MetaFrames *frames,
+                           Window      xwindow,
+                           guint       width,
+                           guint       height,
+                           cairo_t    *cr);
 
 void meta_frames_move_resize_frame (MetaFrames *frames,
                                    Window      xwindow,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/ui/ui.c new/mutter-3.9.1/src/ui/ui.c
--- old/mutter-3.8.1/src/ui/ui.c        2013-04-16 20:29:13.000000000 +0200
+++ new/mutter-3.9.1/src/ui/ui.c        2013-04-30 23:21:40.000000000 +0200
@@ -325,6 +325,16 @@
 }
 
 void
+meta_ui_get_frame_mask (MetaUI  *ui,
+                        Window   frame_xwindow,
+                        guint    width,
+                        guint    height,
+                        cairo_t *cr)
+{
+  meta_frames_get_mask (ui->frames, frame_xwindow, width, height, cr);
+}
+
+void
 meta_ui_get_frame_borders (MetaUI *ui,
                            Window frame_xwindow,
                            MetaFrameBorders *borders)
@@ -333,19 +343,6 @@
                            borders);
 }
 
-void
-meta_ui_get_corner_radiuses (MetaUI *ui,
-                             Window  xwindow,
-                             float  *top_left,
-                             float  *top_right,
-                             float  *bottom_left,
-                             float  *bottom_right)
-{
-  meta_frames_get_corner_radiuses (ui->frames, xwindow,
-                                   top_left, top_right,
-                                   bottom_left, bottom_right);
-}
-
 Window
 meta_ui_create_frame_window (MetaUI *ui,
                              Display *xdisplay,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.8.1/src/ui/ui.h new/mutter-3.9.1/src/ui/ui.h
--- old/mutter-3.8.1/src/ui/ui.h        2013-03-01 16:11:17.000000000 +0100
+++ new/mutter-3.9.1/src/ui/ui.h        2013-04-30 23:21:40.000000000 +0200
@@ -66,6 +66,13 @@
 void meta_ui_get_frame_borders (MetaUI *ui,
                                 Window frame_xwindow,
                                 MetaFrameBorders *borders);
+
+void meta_ui_get_frame_mask (MetaUI *ui,
+                             Window frame_xwindow,
+                             guint width,
+                             guint height,
+                             cairo_t *cr);
+
 Window meta_ui_create_frame_window (MetaUI *ui,
                                     Display *xdisplay,
                                     Visual *xvisual,
@@ -102,13 +109,6 @@
                                           int      window_width,
                                           int      window_height);
 
-void meta_ui_get_corner_radiuses (MetaUI *ui,
-                                  Window  xwindow,
-                                  float  *top_left,
-                                  float  *top_right,
-                                  float  *bottom_left,
-                                  float  *bottom_right);
-
 void meta_ui_queue_frame_draw (MetaUI *ui,
                                Window xwindow);
 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to