Hello community, here is the log from the commit of package mutter for openSUSE:Factory checked in at 2013-07-16 15:51:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-06-29 19:43:03.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mutter.new/mutter.changes 2013-07-16 15:51:48.000000000 +0200 @@ -1,0 +2,13 @@ +Wed Jul 10 18:56:41 UTC 2013 - [email protected] + +- Update to version 3.9.4: + + Tweak window shadows (bgo#702141). + + Ignore our own focus events for focus prediction (bgo#701017). + + Add API to query if the stage is focused (bgo#700735). + + Add API to query the monitor for a given position. + + Don't force attached dialogs to be border-only (bgo#702764). + + Allow slicing of backgrounds to avoid texture size limits + (bgo#702283). + + Miscellaneous bug fixes and cleanups: (bgo#701224, bgo#702564). + +------------------------------------------------------------------- Old: ---- mutter-3.9.3.tar.xz New: ---- mutter-3.9.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mutter.spec ++++++ --- /var/tmp/diff_new_pack.Z1EqO6/_old 2013-07-16 15:51:49.000000000 +0200 +++ /var/tmp/diff_new_pack.Z1EqO6/_new 2013-07-16 15:51:49.000000000 +0200 @@ -17,7 +17,7 @@ Name: mutter -Version: 3.9.3 +Version: 3.9.4 Release: 0 Summary: Window and compositing manager based on Clutter License: GPL-2.0+ ++++++ mutter-3.9.3.tar.xz -> mutter-3.9.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/Makefile.in new/mutter-3.9.4/Makefile.in --- old/mutter-3.9.3/Makefile.in 2013-06-18 16:54:32.000000000 +0200 +++ new/mutter-3.9.4/Makefile.in 2013-07-10 18:36:01.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/NEWS new/mutter-3.9.4/NEWS --- old/mutter-3.9.3/NEWS 2013-06-18 16:53:45.000000000 +0200 +++ new/mutter-3.9.4/NEWS 2013-07-10 18:35:03.000000000 +0200 @@ -1,3 +1,16 @@ +3.9.4 +===== +* Tweak window shadows [Allan; #702141] +* Ignore our own focus events for focus prediction [Jasper; #701017] +* Add API to query if the stage is focused [Jasper; #700735] +* Add API to query the monitor for a given position [Adel] +* Don't force attached dialogs to be border-only [Florian; #702764] +* Allow slicing of backgrounds to avoid texture size limits [Ray; #702283] +* Miscellaneous bug fixes and cleanups [Adel; #701224, #702564] + +Contributors: + Allan Day, Adel Gadllah, Florian Müllner, Jasper St. Pierre, Ray Strode + 3.9.3 ===== * Ensure events are always reported to the grab window [Rui; #701219] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/aclocal.m4 new/mutter-3.9.4/aclocal.m4 --- old/mutter-3.9.3/aclocal.m4 2013-06-18 16:54:28.000000000 +0200 +++ new/mutter-3.9.4/aclocal.m4 2013-07-10 18:35:57.000000000 +0200 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.13.2 -*- Autoconf -*- +# generated automatically by aclocal 1.13.4 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -35,7 +35,7 @@ [am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.2], [], +m4_if([$1], [1.13.4], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,7 +51,7 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.13.2])dnl +[AM_AUTOMAKE_VERSION([1.13.4])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/configure new/mutter-3.9.4/configure --- old/mutter-3.9.3/configure 2013-06-18 16:54:41.000000000 +0200 +++ new/mutter-3.9.4/configure 2013-07-10 18:36:08.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.9.3. +# Generated by GNU Autoconf 2.69 for mutter 3.9.4. # # 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.9.3' -PACKAGE_STRING='mutter 3.9.3' +PACKAGE_VERSION='3.9.4' +PACKAGE_STRING='mutter 3.9.4' 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.9.3 to adapt to many kinds of systems. +\`configure' configures mutter 3.9.4 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.9.3:";; + short | recursive ) echo "Configuration of mutter 3.9.4:";; 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.9.3 +mutter configure 3.9.4 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.9.3, which was +It was created by mutter $as_me 3.9.4, 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.9.3' + VERSION='3.9.4' cat >>confdefs.h <<_ACEOF @@ -3350,7 +3350,7 @@ MUTTER_MAJOR_VERSION=3 MUTTER_MINOR_VERSION=9 -MUTTER_MICRO_VERSION=3 +MUTTER_MICRO_VERSION=4 MUTTER_PLUGIN_API_VERSION=3 @@ -18167,7 +18167,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.9.3, which was +This file was extended by mutter $as_me 3.9.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18233,7 +18233,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.9.3 +mutter config.status 3.9.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/configure.ac new/mutter-3.9.4/configure.ac --- old/mutter-3.9.3/configure.ac 2013-06-18 16:38:56.000000000 +0200 +++ new/mutter-3.9.4/configure.ac 2013-07-10 18:35:14.000000000 +0200 @@ -2,7 +2,7 @@ m4_define([mutter_major_version], [3]) m4_define([mutter_minor_version], [9]) -m4_define([mutter_micro_version], [3]) +m4_define([mutter_micro_version], [4]) m4_define([mutter_version], [mutter_major_version.mutter_minor_version.mutter_micro_version]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/doc/Makefile.in new/mutter-3.9.4/doc/Makefile.in --- old/mutter-3.9.3/doc/Makefile.in 2013-06-18 16:54:33.000000000 +0200 +++ new/mutter-3.9.4/doc/Makefile.in 2013-07-10 18:36:02.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/doc/man/Makefile.in new/mutter-3.9.4/doc/man/Makefile.in --- old/mutter-3.9.3/doc/man/Makefile.in 2013-06-18 16:54:33.000000000 +0200 +++ new/mutter-3.9.4/doc/man/Makefile.in 2013-07-10 18:36:02.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/doc/reference/Makefile.in new/mutter-3.9.4/doc/reference/Makefile.in --- old/mutter-3.9.3/doc/reference/Makefile.in 2013-06-18 16:54:34.000000000 +0200 +++ new/mutter-3.9.4/doc/reference/Makefile.in 2013-07-10 18:36:03.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/doc/reference/html/index.html new/mutter-3.9.4/doc/reference/html/index.html --- old/mutter-3.9.3/doc/reference/html/index.html 2013-06-18 16:56:20.000000000 +0200 +++ new/mutter-3.9.4/doc/reference/html/index.html 2013-07-10 18:37:48.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.9.3. + This document is for Mutter 3.9.4. 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.9.3/doc/reference/meta-docs.sgml new/mutter-3.9.4/doc/reference/meta-docs.sgml --- old/mutter-3.9.3/doc/reference/meta-docs.sgml 2013-06-18 16:55:04.000000000 +0200 +++ new/mutter-3.9.4/doc/reference/meta-docs.sgml 2013-07-10 18:36:37.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.9.3"> + <!ENTITY version "3.9.4"> ]> <book id="index"> <bookinfo> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/Makefile.in new/mutter-3.9.4/src/Makefile.in --- old/mutter-3.9.3/src/Makefile.in 2013-06-18 16:54:36.000000000 +0200 +++ new/mutter-3.9.4/src/Makefile.in 2013-07-10 18:36:04.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/compositor/compositor.c new/mutter-3.9.4/src/compositor/compositor.c --- old/mutter-3.9.3/src/compositor/compositor.c 2013-06-18 16:38:40.000000000 +0200 +++ new/mutter-3.9.4/src/compositor/compositor.c 2013-06-24 14:41:46.000000000 +0200 @@ -392,6 +392,24 @@ } gboolean +meta_stage_is_focused (MetaScreen *screen) +{ + ClutterStage *stage; + Window window; + + stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen)); + if (!stage) + return FALSE; + + window = clutter_x11_get_stage_window (stage); + + if (window == None) + return FALSE; + + return (screen->display->focus_xwindow == window); +} + +gboolean meta_begin_modal_for_plugin (MetaScreen *screen, MetaPlugin *plugin, Window grab_window, @@ -1566,8 +1584,10 @@ meta_enable_unredirect_for_screen (MetaScreen *screen) { MetaCompScreen *info = meta_screen_get_compositor_data (screen); - if (info != NULL) - info->disable_unredirect_count = MAX(0, info->disable_unredirect_count - 1); + if (info != NULL && info->disable_unredirect_count == 0) + g_warning ("Called enable_unredirect_for_screen while unredirection is enabled."); + if (info != NULL && info->disable_unredirect_count > 0) + info->disable_unredirect_count = info->disable_unredirect_count - 1; } #define FLASH_TIME_MS 50 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/compositor/meta-background.c new/mutter-3.9.4/src/compositor/meta-background.c --- old/mutter-3.9.3/src/compositor/meta-background.c 2013-06-17 16:52:45.000000000 +0200 +++ new/mutter-3.9.4/src/compositor/meta-background.c 2013-07-02 09:22:22.000000000 +0200 @@ -1060,7 +1060,7 @@ texture = cogl_texture_new_from_data (width, height, - COGL_TEXTURE_NO_SLICING, + COGL_TEXTURE_NO_ATLAS, has_alpha ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/compositor/meta-shadow-factory.c new/mutter-3.9.4/src/compositor/meta-shadow-factory.c --- old/mutter-3.9.3/src/compositor/meta-shadow-factory.c 2013-06-17 16:52:45.000000000 +0200 +++ new/mutter-3.9.4/src/compositor/meta-shadow-factory.c 2013-06-18 18:43:29.000000000 +0200 @@ -123,12 +123,12 @@ /* The first element in this array also defines the default parameters * for newly created classes */ MetaShadowClassInfo default_shadow_classes[] = { - { "normal", { 6, -1, 0, 3, 255 }, { 3, -1, 0, 3, 128 } }, - { "dialog", { 6, -1, 0, 3, 255 }, { 3, -1, 0, 3, 128 } }, - { "modal_dialog", { 6, -1, 0, 1, 255 }, { 3, -1, 0, 3, 128 } }, - { "utility", { 3, -1, 0, 1, 255 }, { 3, -1, 0, 1, 128 } }, - { "border", { 6, -1, 0, 3, 255 }, { 3, -1, 0, 3, 128 } }, - { "menu", { 6, -1, 0, 3, 255 }, { 3, -1, 0, 0, 128 } }, + { "normal", { 6, -1, 0, 3, 128 }, { 3, -1, 0, 3, 32 } }, + { "dialog", { 6, -1, 0, 3, 128 }, { 3, -1, 0, 3, 32 } }, + { "modal_dialog", { 6, -1, 0, 1, 128 }, { 3, -1, 0, 3, 32 } }, + { "utility", { 3, -1, 0, 1, 128 }, { 3, -1, 0, 1, 32 } }, + { "border", { 6, -1, 0, 3, 128 }, { 3, -1, 0, 3, 32 } }, + { "menu", { 6, -1, 0, 3, 128 }, { 3, -1, 0, 0, 32 } }, { "popup-menu", { 1, -1, 0, 1, 128 }, { 1, -1, 0, 1, 128 } }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/compositor/plugins/Makefile.in new/mutter-3.9.4/src/compositor/plugins/Makefile.in --- old/mutter-3.9.3/src/compositor/plugins/Makefile.in 2013-06-18 16:54:37.000000000 +0200 +++ new/mutter-3.9.4/src/compositor/plugins/Makefile.in 2013-07-10 18:36:05.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/core/display-private.h new/mutter-3.9.4/src/core/display-private.h --- old/mutter-3.9.3/src/core/display-private.h 2013-06-18 16:38:40.000000000 +0200 +++ new/mutter-3.9.4/src/core/display-private.h 2013-06-24 14:41:46.000000000 +0200 @@ -113,6 +113,9 @@ * or event that caused this. */ MetaWindow *focus_window; + /* For windows we've focused that don't necessarily have an X window, + * like the no_focus_window or the stage X window. */ + Window focus_xwindow; gulong focus_serial; /* last timestamp passed to XSetInputFocus */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/core/display.c new/mutter-3.9.4/src/core/display.c --- old/mutter-3.9.3/src/core/display.c 2013-06-18 16:38:40.000000000 +0200 +++ new/mutter-3.9.4/src/core/display.c 2013-06-24 14:41:46.000000000 +0200 @@ -1467,6 +1467,17 @@ return display->current_time; } +static Bool +find_timestamp_predicate (Display *xdisplay, + XEvent *ev, + XPointer arg) +{ + MetaDisplay *display = (MetaDisplay *) arg; + + return (ev->type == PropertyNotify && + ev->xproperty.atom == display->atom__MUTTER_TIMESTAMP_PING); +} + /* Get a timestamp, even if it means a roundtrip */ guint32 meta_display_get_current_time_roundtrip (MetaDisplay *display) @@ -1478,17 +1489,13 @@ { XEvent property_event; - /* Using the property XA_PRIMARY because it's safe; nothing - * would use it as a property. The type doesn't matter. - */ - XChangeProperty (display->xdisplay, - display->timestamp_pinging_window, - XA_PRIMARY, XA_STRING, 8, - PropModeAppend, NULL, 0); - XWindowEvent (display->xdisplay, - display->timestamp_pinging_window, - PropertyChangeMask, - &property_event); + XChangeProperty (display->xdisplay, display->timestamp_pinging_window, + display->atom__MUTTER_TIMESTAMP_PING, + XA_STRING, 8, PropModeAppend, NULL, 0); + XIfEvent (display->xdisplay, + &property_event, + find_timestamp_predicate, + (XPointer) display); timestamp = property_event.xproperty.time; } @@ -1876,11 +1883,12 @@ static void update_focus_window (MetaDisplay *display, MetaWindow *window, + Window xwindow, gulong serial) { display->focus_serial = serial; - if (window == display->focus_window) + if (display->focus_xwindow == xwindow) return; if (display->focus_window) @@ -1897,11 +1905,13 @@ */ previous = display->focus_window; display->focus_window = NULL; + display->focus_xwindow = None; meta_window_set_focused_internal (previous, FALSE); } display->focus_window = window; + display->focus_xwindow = xwindow; if (display->focus_window) { @@ -1952,6 +1962,7 @@ guint32 timestamp) { MetaWindow *meta_window; + gulong serial; if (timestamp_too_old (display, ×tamp)) return; @@ -1959,14 +1970,35 @@ meta_window = meta_display_lookup_x_window (display, xwindow); meta_error_trap_push (display); - update_focus_window (display, - meta_window, - XNextRequest (display->xdisplay)); + + /* In order for mutter to know that the focus request succeeded, we track + * the serial of the "focus request" we made, but if we take the serial + * of the XSetInputFocus request, then there's no way to determine the + * difference between focus events as a result of the SetInputFocus and + * focus events that other clients send around the same time. Ensure that + * we know which is which by making two requests that the server will + * process at the same time. + */ + meta_display_grab (display); + + serial = XNextRequest (display->xdisplay); XSetInputFocus (display->xdisplay, xwindow, RevertToPointerRoot, timestamp); + + XChangeProperty (display->xdisplay, display->timestamp_pinging_window, + display->atom__MUTTER_FOCUS_SET, + XA_STRING, 8, PropModeAppend, NULL, 0); + + meta_display_ungrab (display); + + update_focus_window (display, + meta_window, + xwindow, + serial); + meta_error_trap_pop (display); display->last_focus_time = timestamp; @@ -2079,9 +2111,11 @@ else g_return_if_reached (); - if (display->server_focus_serial >= display->focus_serial) + if (display->server_focus_serial > display->focus_serial) { - update_focus_window (display, focus_window, + update_focus_window (display, + focus_window, + focus_window ? focus_window->xwindow : None, display->server_focus_serial); } } @@ -2137,6 +2171,7 @@ display->focus_window->desc); update_focus_window (display, meta_display_lookup_x_window (display, display->server_focus_window), + display->server_focus_window, display->server_focus_serial); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/core/screen-private.h new/mutter-3.9.4/src/core/screen-private.h --- old/mutter-3.9.3/src/core/screen-private.h 2013-06-17 16:52:45.000000000 +0200 +++ new/mutter-3.9.4/src/core/screen-private.h 2013-06-24 14:41:46.000000000 +0200 @@ -187,6 +187,9 @@ MetaWindow *not_this_one); const MetaMonitorInfo* meta_screen_get_current_monitor_info (MetaScreen *screen); +const MetaMonitorInfo* meta_screen_get_current_monitor_info_for_pos (MetaScreen *screen, + int x, + int y); const MetaMonitorInfo* meta_screen_get_monitor_for_rect (MetaScreen *screen, MetaRectangle *rect); const MetaMonitorInfo* meta_screen_get_monitor_for_window (MetaScreen *screen, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/core/screen.c new/mutter-3.9.4/src/core/screen.c --- old/mutter-3.9.3/src/core/screen.c 2013-06-17 16:52:45.000000000 +0200 +++ new/mutter-3.9.4/src/core/screen.c 2013-06-24 18:27:55.000000000 +0200 @@ -2216,6 +2216,65 @@ return &screen->monitor_infos[monitor_index]; } +const MetaMonitorInfo* +meta_screen_get_current_monitor_info_for_pos (MetaScreen *screen, + int x, + int y) +{ + int monitor_index; + monitor_index = meta_screen_get_current_monitor_for_pos (screen, x, y); + return &screen->monitor_infos[monitor_index]; +} + + +/** + * meta_screen_get_current_monitor_for_pos: + * @screen: a #MetaScreen + * @x: The x coordinate + * @y: The y coordinate + * + * Gets the index of the monitor that contains the passed coordinates. + * + * Return value: a monitor index + */ +int +meta_screen_get_current_monitor_for_pos (MetaScreen *screen, + int x, + int y) +{ + if (screen->n_monitor_infos == 1) + return 0; + else if (screen->display->monitor_cache_invalidated) + { + int i; + MetaRectangle pointer_position; + pointer_position.x = x; + pointer_position.y = y; + pointer_position.width = pointer_position.height = 1; + + screen->display->monitor_cache_invalidated = FALSE; + screen->last_monitor_index = 0; + + for (i = 0; i < screen->n_monitor_infos; i++) + { + if (meta_rectangle_contains_rect (&screen->monitor_infos[i].rect, + &pointer_position)) + { + screen->last_monitor_index = i; + break; + } + } + + meta_topic (META_DEBUG_XINERAMA, + "Rechecked current monitor, now %d\n", + screen->last_monitor_index); + + } + + return screen->last_monitor_index; +} + + /** * meta_screen_get_current_monitor: * @screen: a #MetaScreen @@ -2241,11 +2300,7 @@ XIButtonState buttons; XIModifierState mods; XIGroupState group; - int i; - MetaRectangle pointer_position; - screen->display->monitor_cache_invalidated = FALSE; - XIQueryPointer (screen->display->xdisplay, META_VIRTUAL_CORE_POINTER_ID, screen->xroot, @@ -2260,24 +2315,7 @@ &group); free (buttons.mask); - pointer_position.x = root_x_return; - pointer_position.y = root_y_return; - pointer_position.width = pointer_position.height = 1; - - screen->last_monitor_index = 0; - for (i = 0; i < screen->n_monitor_infos; i++) - { - if (meta_rectangle_contains_rect (&screen->monitor_infos[i].rect, - &pointer_position)) - { - screen->last_monitor_index = i; - break; - } - } - - meta_topic (META_DEBUG_XINERAMA, - "Rechecked current monitor, now %d\n", - screen->last_monitor_index); + meta_screen_get_current_monitor_for_pos (screen, root_x_return, root_y_return); } return screen->last_monitor_index; @@ -3001,7 +3039,7 @@ /* Fix up monitor for all windows on this screen */ windows = meta_display_list_windows (screen->display, - META_LIST_DEFAULT); + META_LIST_INCLUDE_OVERRIDE_REDIRECT); for (tmp = windows; tmp != NULL; tmp = tmp->next) { MetaWindow *window = tmp->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/core/window.c new/mutter-3.9.4/src/core/window.c --- old/mutter-3.9.3/src/core/window.c 2013-06-18 16:38:40.000000000 +0200 +++ new/mutter-3.9.4/src/core/window.c 2013-06-24 20:19:33.000000000 +0200 @@ -145,6 +145,8 @@ static void unmaximize_window_before_freeing (MetaWindow *window); static void unminimize_window_and_all_transient_parents (MetaWindow *window); +static void meta_window_update_monitor (MetaWindow *window); + /* Idle handlers for the three queues (run with meta_later_add()). The * "data" parameter in each case will be a GINT_TO_POINTER of the * index into the queue arrays to use. @@ -4767,6 +4769,12 @@ if (window->type == META_WINDOW_DESKTOP) return; + if (window->override_redirect) + { + meta_window_update_monitor (window); + return; + } + old = window->monitor; /* Start on primary */ @@ -8243,9 +8251,6 @@ if (window->type == META_WINDOW_TOOLBAR) window->decorated = FALSE; - if (meta_window_is_attached_dialog (window)) - window->border_only = TRUE; - if (window->type == META_WINDOW_DESKTOP || window->type == META_WINDOW_DOCK || window->override_redirect) @@ -8916,7 +8921,7 @@ * refers to the monitor which contains the largest part of the window, * the latter to the one where the pointer is located. */ - monitor = meta_screen_get_current_monitor_info (window->screen); + monitor = meta_screen_get_current_monitor_info_for_pos (window->screen, x, y); meta_window_get_work_area_for_monitor (window, monitor->number, &work_area); @@ -10978,7 +10983,7 @@ /* can't add border if undecorated */ return META_FRAME_TYPE_LAST; } - else if ((window->border_only && base_type != META_FRAME_TYPE_ATTACHED) || + else if (window->border_only || (window->hide_titlebar_when_maximized && META_WINDOW_MAXIMIZED (window)) || (window->hide_titlebar_when_maximized && META_WINDOW_TILED_SIDE_BY_SIDE (window))) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/meta/atomnames.h new/mutter-3.9.4/src/meta/atomnames.h --- old/mutter-3.9.3/src/meta/atomnames.h 2013-06-17 16:52:46.000000000 +0200 +++ new/mutter-3.9.4/src/meta/atomnames.h 2013-06-24 14:41:46.000000000 +0200 @@ -70,6 +70,8 @@ item(_GNOME_PANEL_ACTION) item(_GNOME_PANEL_ACTION_MAIN_MENU) item(_GNOME_PANEL_ACTION_RUN_DIALOG) +item(_MUTTER_TIMESTAMP_PING) +item(_MUTTER_FOCUS_SET) item(_MUTTER_SENTINEL) item(_MUTTER_VERSION) item(WM_CLIENT_MACHINE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/meta/compositor-mutter.h new/mutter-3.9.4/src/meta/compositor-mutter.h --- old/mutter-3.9.3/src/meta/compositor-mutter.h 2013-06-18 16:38:40.000000000 +0200 +++ new/mutter-3.9.4/src/meta/compositor-mutter.h 2013-06-24 14:41:46.000000000 +0200 @@ -48,5 +48,6 @@ void meta_empty_stage_input_region (MetaScreen *screen); void meta_focus_stage_window (MetaScreen *screen, guint32 timestamp); +gboolean meta_stage_is_focused (MetaScreen *screen); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/meta/screen.h new/mutter-3.9.4/src/meta/screen.h --- old/mutter-3.9.3/src/meta/screen.h 2013-06-17 16:52:46.000000000 +0200 +++ new/mutter-3.9.4/src/meta/screen.h 2013-06-24 14:41:46.000000000 +0200 @@ -78,6 +78,9 @@ int meta_screen_get_n_monitors (MetaScreen *screen); int meta_screen_get_primary_monitor (MetaScreen *screen); int meta_screen_get_current_monitor (MetaScreen *screen); +int meta_screen_get_current_monitor_for_pos (MetaScreen *screen, + int x, + int y); void meta_screen_get_monitor_geometry (MetaScreen *screen, int monitor, MetaRectangle *geometry); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/tools/Makefile.in new/mutter-3.9.4/src/tools/Makefile.in --- old/mutter-3.9.3/src/tools/Makefile.in 2013-06-18 16:54:37.000000000 +0200 +++ new/mutter-3.9.4/src/tools/Makefile.in 2013-07-10 18:36:05.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mutter-3.9.3/src/wm-tester/Makefile.in new/mutter-3.9.4/src/wm-tester/Makefile.in --- old/mutter-3.9.3/src/wm-tester/Makefile.in 2013-06-18 16:54:38.000000000 +0200 +++ new/mutter-3.9.4/src/wm-tester/Makefile.in 2013-07-10 18:36:05.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.2 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
