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 "accelerator-activated" signal" link="MetaDisplay.html#MetaDisplay-accelerator-activated"/> <keyword type="signal" name="The "grab-op-begin" signal" link="MetaDisplay.html#MetaDisplay-grab-op-begin"/> <keyword type="signal" name="The "grab-op-end" signal" link="MetaDisplay.html#MetaDisplay-grab-op-end"/> + <keyword type="signal" name="The "modifiers-accelerator-activated" signal" link="MetaDisplay.html#MetaDisplay-modifiers-accelerator-activated"/> <keyword type="signal" name="The "overlay-key" signal" link="MetaDisplay.html#MetaDisplay-overlay-key"/> <keyword type="signal" name="The "window-created" signal" link="MetaDisplay.html#MetaDisplay-window-created"/> <keyword type="signal" name="The "window-demands-attention" 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