Hello community,

here is the log from the commit of package muffin for openSUSE:Factory checked 
in at 2016-03-16 10:35:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/muffin (Old)
 and      /work/SRC/openSUSE:Factory/.muffin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "muffin"

Changes:
--------
--- /work/SRC/openSUSE:Factory/muffin/muffin.changes    2016-01-22 
01:03:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.muffin.new/muffin.changes       2016-03-16 
10:35:07.000000000 +0100
@@ -1,0 +2,20 @@
+Wed Mar  9 18:09:32 UTC 2016 - [email protected]
+
+- Update to 2.8.5:
+  * tiling: Account for gtk frame extents when evaluating whether a
+    c-s-d window can be tiled or not.
+  * prefs.c: Update keybindings even when the new keybinding is
+    empty - this prevents old built-in (muffin) keybindings from
+    continuing to work even after they've been cleared.
+  * prefs: Don't attach modal dialogs by default.
+  * cogl wrappers: Perform a sanity check on the width/height
+    request and clamp the sizes to a maximum of (x) screen size.
+  * display.c: prevent assertion errors when clicking out of
+    window menus.
+  * Disable frame sync when used when OpenGL version used by the
+    driver is < 3.0.
+  * meta-sync-ring.c: Simplify openGL version check to only check
+    the major version number. Make the COGL_DRIVER_GL check a bit
+    safer.
+
+-------------------------------------------------------------------

Old:
----
  muffin-2.8.4.tar.gz

New:
----
  muffin-2.8.5.tar.gz

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

Other differences:
------------------
++++++ muffin.spec ++++++
--- /var/tmp/diff_new_pack.RQ6fJg/_old  2016-03-16 10:35:08.000000000 +0100
+++ /var/tmp/diff_new_pack.RQ6fJg/_new  2016-03-16 10:35:08.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package muffin
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
 %define sover   0
 %define typelib typelib-1_0-MetaMuffin-0_0
 Name:           muffin
-Version:        2.8.4
+Version:        2.8.5
 Release:        0
 Summary:        Cinnamon Desktop default window manager
 License:        GPL-2.0+ and MIT

++++++ muffin-2.8.4.tar.gz -> muffin-2.8.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/configure.ac 
new/muffin-2.8.5/configure.ac
--- old/muffin-2.8.4/configure.ac       2015-11-20 18:26:31.000000000 +0100
+++ new/muffin-2.8.5/configure.ac       2016-03-07 18:14:38.000000000 +0100
@@ -2,7 +2,7 @@
 
 m4_define([muffin_major_version], [2])
 m4_define([muffin_minor_version], [8])
-m4_define([muffin_micro_version], [4])
+m4_define([muffin_micro_version], [5])
 
 m4_define([muffin_version],
           [muffin_major_version.muffin_minor_version.muffin_micro_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/debian/changelog 
new/muffin-2.8.5/debian/changelog
--- old/muffin-2.8.4/debian/changelog   2015-11-20 18:26:31.000000000 +0100
+++ new/muffin-2.8.5/debian/changelog   2016-03-07 18:14:38.000000000 +0100
@@ -1,3 +1,16 @@
+muffin (2.8.5) rosa; urgency=medium
+
+  [ Michael Webster ]
+  * tiling:  account for gtk frame extents when evaluating whether a c-s-d 
window can be tiled or not.
+  * prefs.c: Update keybindings even when the new keybinding is empty - this 
prevents old built-in (muffin) keybindings from continuing to work even after 
they've been cleared.
+  * prefs: don't attach modal dialogs by default
+  * cogl wrappers: Perform a sanity check on the width/height request and 
clamp the sizes to a maximum of (x) screen size.
+  * display.c: prevent assertion errors when clicking out of window menus.
+  * Disable frame sync when used when OpenGL version used by the driver is < 
3.0.
+  * meta-sync-ring.c: simplify openGL version check to only check the major 
version number. Make the COGL_DRIVER_GL check a bit safer.
+
+ -- Clement Lefebvre <[email protected]>  Mon, 07 Mar 2016 17:13:48 +0000
+
 muffin (2.8.4) rosa; urgency=medium
 
   [ Michael Webster ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/compositor/cogl-utils.c 
new/muffin-2.8.5/src/compositor/cogl-utils.c
--- old/muffin-2.8.4/src/compositor/cogl-utils.c        2015-11-20 
18:26:31.000000000 +0100
+++ new/muffin-2.8.5/src/compositor/cogl-utils.c        2016-03-07 
18:14:38.000000000 +0100
@@ -25,6 +25,7 @@
 #include <config.h>
 #endif
 #include "cogl-utils.h"
+#include <gdk/gdk.h>
 
 /**
  * meta_create_color_texture_4ub:
@@ -118,6 +119,9 @@
 static CoglContext *cogl_context = NULL;
 static gboolean supports_npot = FALSE;
 
+static gint screen_width = 0;
+static gint screen_height = 0;
+
 inline static gboolean
 hardware_supports_npot_sizes (void)
 {
@@ -131,6 +135,22 @@
     return supports_npot;
 }
 
+inline static void
+clamp_sizes (gint *width,
+             gint *height)
+{
+    if (screen_width == 0)
+      {
+        GdkScreen *screen = gdk_screen_get_default ();
+
+        screen_width = gdk_screen_get_width (screen);
+        screen_height = gdk_screen_get_height (screen);
+      }
+
+    *width = MIN (*width, screen_width);
+    *height = MIN (*height, screen_height);
+}
+
 /**
  * meta_cogl_texture_new_from_data_wrapper: (skip)
  *
@@ -150,6 +170,8 @@
 {
     CoglTexture *texture = NULL;
 
+    clamp_sizes (&width, &height);
+
     if (hardware_supports_npot_sizes ())
       {
         texture = COGL_TEXTURE (cogl_texture_2d_new_from_data (cogl_context, 
width, height,
@@ -226,6 +248,8 @@
 {
     CoglTexture *texture = NULL;
 
+    clamp_sizes (&width, &height);
+
     if (hardware_supports_npot_sizes ())
       {
         texture = COGL_TEXTURE (cogl_texture_2d_new_with_size (cogl_context,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/compositor/meta-sync-ring.c 
new/muffin-2.8.5/src/compositor/meta-sync-ring.c
--- old/muffin-2.8.4/src/compositor/meta-sync-ring.c    2015-11-20 
18:26:31.000000000 +0100
+++ new/muffin-2.8.5/src/compositor/meta-sync-ring.c    2016-03-07 
18:14:38.000000000 +0100
@@ -29,6 +29,7 @@
  */
 
 #include <string.h>
+#include <stdlib.h>
 
 #include <GL/gl.h>
 #include <GL/glx.h>
@@ -161,6 +162,17 @@
     {
     case COGL_DRIVER_GL3:
       {
+
+        int major, minor;
+        gboolean version_ok = FALSE;
+
+        meta_gl_get_integerv (GL_MAJOR_VERSION, &major);
+        meta_gl_get_integerv (GL_MINOR_VERSION, &minor);
+
+        version_ok = (major >= 3);
+
+        g_printerr ("openGL version %d.%d detected (GL3 Cogl Driver)\n", 
major, minor);
+
         int num_extensions, i;
         gboolean arb_sync = FALSE;
         gboolean x11_sync_object = FALSE;
@@ -177,12 +189,39 @@
               x11_sync_object = TRUE;
           }
 
-        return arb_sync && x11_sync_object;
+        return version_ok && arb_sync && x11_sync_object;
       }
     case COGL_DRIVER_GL:
       {
+        gboolean version_ok = FALSE;
+
+        const char *version_string = meta_gl_get_string (GL_VERSION);
+
+        /* From the spec:
+
+           The string returned starts with "<major version>.<minor version>".
+           Following the minor version, there can be another '.',
+           then a vendor-specific build number. The string may have more 
content,
+           which is completely vendor-specific (thus not a part of the OpenGL 
standard).
+
+           So, we can split this by . and care only about the first two 
substrings returned.
+           Anything else is dumped in the third substring.
+         */
+
+        gchar **split = g_strsplit (version_string, ".", 3);
+
+        if (g_strv_length (split) >= 2)
+          {
+            g_printerr ("openGL version %s.%s detected (GL Cogl Driver)\n", 
split[0], split[1]);
+
+            version_ok = (atoi (split[0]) >= 3);
+          }
+
+        g_strfreev (split);
+
         const char *extensions = meta_gl_get_string (GL_EXTENSIONS);
-        return (extensions != NULL &&
+        return version_ok && 
+               (extensions != NULL &&
                 strstr (extensions, "GL_ARB_sync") != NULL &&
                 strstr (extensions, "GL_EXT_x11_sync_object") != NULL);
       }
@@ -215,7 +254,7 @@
 
   if (!check_gl_extensions ())
     {
-      meta_verbose ("MetaSyncRing: couldn't find required GL extensions\n");
+      g_printerr ("MetaSyncRing disabled: couldn't find required GL 
extensions, or the minimum safe openGL version was not met\n");
       goto out;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/core/constraints.c 
new/muffin-2.8.5/src/core/constraints.c
--- old/muffin-2.8.4/src/core/constraints.c     2015-11-20 18:26:31.000000000 
+0100
+++ new/muffin-2.8.5/src/core/constraints.c     2016-03-07 18:14:38.000000000 
+0100
@@ -204,12 +204,6 @@
                                           ConstraintInfo *info);
 static void update_onscreen_requirements (MetaWindow     *window,
                                           ConstraintInfo *info);
-static void extend_by_frame              (MetaWindow *window,
-                                          MetaRectangle           *rect,
-                                          const MetaFrameBorders  *borders);
-static void unextend_by_frame            (MetaWindow *window,
-                                          MetaRectangle           *rect,
-                                          const MetaFrameBorders  *borders);
 
 static inline void get_size_limits   (const MetaWindow        *window,
                                       const MetaFrameBorders  *borders,
@@ -680,7 +674,7 @@
   /* The require onscreen/on-single-monitor and titlebar_visible
    * stuff is relative to the outer window, not the inner
    */
-  extend_by_frame (window, &info->current, info->borders);
+  meta_window_extend_by_frame (window, &info->current, info->borders);
 
   /* Update whether we want future constraint runs to require the
    * window to be on fully onscreen.
@@ -732,51 +726,7 @@
 
 
   /* Don't forget to restore the position of the window */
-  unextend_by_frame (window, &info->current, info->borders);
-}
-
-static void
-extend_by_frame (MetaWindow              *window,
-                 MetaRectangle           *rect,
-                 const MetaFrameBorders  *borders)
-{
-  if (window->frame)
-    {
-      rect->x -= borders->visible.left;
-      rect->y -= borders->visible.top;
-      rect->width  += borders->visible.left + borders->visible.right;
-      rect->height += borders->visible.top + borders->visible.bottom;
-    }
-  else if (meta_window_is_client_decorated (window))
-    {
-      const GtkBorder *extents = &window->custom_frame_extents;
-      rect->x += extents->left;
-      rect->y += extents->top;
-      rect->width -= extents->left + extents->right;
-      rect->height -= extents->top + extents->bottom;
-    }
-}
-
-static void
-unextend_by_frame (MetaWindow              *window,
-                   MetaRectangle           *rect,
-                   const MetaFrameBorders  *borders)
-{
-  if (window->frame)
-    {
-      rect->x += borders->visible.left;
-      rect->y += borders->visible.top;
-      rect->width  -= borders->visible.left + borders->visible.right;
-      rect->height -= borders->visible.top + borders->visible.bottom;
-    }
-  else if (meta_window_is_client_decorated (window))
-    {
-      const GtkBorder *extents = &window->custom_frame_extents;
-      rect->x -= extents->left;
-      rect->y -= extents->top;
-      rect->width += extents->left + extents->right;
-      rect->height += extents->top + extents->bottom;
-    }
+  meta_window_unextend_by_frame (window, &info->current, info->borders);
 }
 
 static inline void
@@ -915,7 +865,7 @@
         }
 
         target_size = info->current;
-        extend_by_frame (window, &target_size, info->borders);
+        meta_window_extend_by_frame (window, &target_size, info->borders);
         meta_rectangle_expand_to_snapped_borders (&target_size,
                                                   &info->entire_monitor,
                                                    active_workspace_struts,
@@ -924,7 +874,7 @@
         g_slist_free (snapped_windows_as_struts);
       } else {
           target_size = info->current;
-          extend_by_frame (window, &target_size, info->borders);
+          meta_window_extend_by_frame (window, &target_size, info->borders);
           meta_rectangle_expand_to_avoiding_struts (&target_size,
                                                     &info->entire_monitor,
                                                     direction,
@@ -932,7 +882,7 @@
       }
    }
   /* Now make target_size = maximized size of client window */
-  unextend_by_frame (window, &target_size, info->borders);
+  meta_window_unextend_by_frame (window, &target_size, info->borders);
 
   /* Check min size constraints; max size constraints are ignored for maximized
    * windows, as per bug 327543.
@@ -1087,7 +1037,7 @@
       }
   }
 
-  unextend_by_frame (window, &target_size, info->borders);
+  meta_window_unextend_by_frame (window, &target_size, info->borders);
 
   /* Check min size constraints; max size constraints are ignored as for
    * maximized windows.
@@ -1438,7 +1388,7 @@
   /* Determine whether constraint applies; exit if it doesn't */
   how_far_it_can_be_smushed = info->current;
   get_size_limits (window, info->borders, TRUE, &min_size, &max_size);
-  extend_by_frame (window, &info->current, info->borders);
+  meta_window_extend_by_frame (window, &info->current, info->borders);
 
   if (info->action_type != ACTION_MOVE)
     {
@@ -1458,7 +1408,7 @@
                                         &info->current);
   if (exit_early || constraint_satisfied || check_only)
     {
-      unextend_by_frame (window, &info->current, info->borders);
+      meta_window_unextend_by_frame (window, &info->current, info->borders);
       return constraint_satisfied;
     }
 
@@ -1484,7 +1434,7 @@
                                         &info->current);
     }
 
-  unextend_by_frame (window, &info->current, info->borders);
+  meta_window_unextend_by_frame (window, &info->current, info->borders);
   return TRUE;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/core/display.c 
new/muffin-2.8.5/src/core/display.c
--- old/muffin-2.8.4/src/core/display.c 2015-11-20 18:26:31.000000000 +0100
+++ new/muffin-2.8.5/src/core/display.c 2016-03-07 18:14:38.000000000 +0100
@@ -1897,7 +1897,8 @@
                */
               if (!frame_was_receiver)
                 {
-                  if (meta_prefs_get_raise_on_click ()) 
+                  if (meta_prefs_get_raise_on_click () &&
+                      !meta_ui_window_is_widget (display->active_screen->ui, 
modified))
                     meta_window_raise (window);
                   else
                     meta_topic (META_DEBUG_FOCUS,
@@ -1906,7 +1907,8 @@
                   /* Don't focus panels--they must explicitly request focus.
                    * See bug 160470
                    */
-                 if (window->type != META_WINDOW_DOCK)
+                  if (window->type != META_WINDOW_DOCK &&
+                      !meta_ui_window_is_widget (display->active_screen->ui, 
modified))
                     {
                       meta_topic (META_DEBUG_FOCUS,
                                   "Focusing %s due to unmodified button %u 
press (display.c)\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/core/prefs.c 
new/muffin-2.8.5/src/core/prefs.c
--- old/muffin-2.8.4/src/core/prefs.c   2015-11-20 18:26:31.000000000 +0100
+++ new/muffin-2.8.5/src/core/prefs.c   2016-03-07 18:14:38.000000000 +0100
@@ -1959,7 +1959,6 @@
   unsigned int keysym;
   unsigned int keycode;
   MetaVirtualModifier mods;
-  gboolean changed = FALSE;
   MetaKeyCombo *combo;
   int i;
 
@@ -2008,8 +2007,7 @@
            * Changing the key in response to a modification could lead to 
cyclic calls. */
           continue;
         }
-  
-      changed = TRUE;
+
       combo = g_malloc0 (sizeof (MetaKeyCombo));
       combo->keysym = keysym;
       combo->keycode = keycode;
@@ -2020,7 +2018,7 @@
                       "New keybinding for \"%s\" is keysym = 0x%x keycode = 
0x%x mods = 0x%x\n",
                       binding->name, keysym, keycode, mods);
     }
-  return changed;
+  return TRUE;
 }
 
 static gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/core/window-private.h 
new/muffin-2.8.5/src/core/window-private.h
--- old/muffin-2.8.4/src/core/window-private.h  2015-11-20 18:26:31.000000000 
+0100
+++ new/muffin-2.8.5/src/core/window-private.h  2016-03-07 18:14:38.000000000 
+0100
@@ -812,4 +812,10 @@
 
 gboolean meta_window_updates_are_frozen (MetaWindow *window);
 
+void meta_window_extend_by_frame (MetaWindow              *window,
+                                  MetaRectangle           *rect,
+                                  const MetaFrameBorders  *borders);
+void meta_window_unextend_by_frame (MetaWindow              *window,
+                                    MetaRectangle           *rect,
+                                    const MetaFrameBorders  *borders);
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/core/window.c 
new/muffin-2.8.5/src/core/window.c
--- old/muffin-2.8.4/src/core/window.c  2015-11-20 18:26:31.000000000 +0100
+++ new/muffin-2.8.5/src/core/window.c  2016-03-07 18:14:38.000000000 +0100
@@ -3909,9 +3909,7 @@
   tile_area.width /= 2;
 
   meta_frame_calc_borders (window->frame, &borders);
-
-  tile_area.width  -= (borders.visible.left + borders.visible.right);
-  tile_area.height -= (borders.visible.top + borders.visible.bottom);
+  meta_window_unextend_by_frame (window, &tile_area, &borders);
 
   return tile_area.width >= window->size_hints.min_width &&
          tile_area.height >= window->size_hints.min_height;
@@ -3933,9 +3931,7 @@
   tile_area.height /= 2;
 
   meta_frame_calc_borders (window->frame, &borders);
-
-  tile_area.width  -= (borders.visible.left + borders.visible.right);
-  tile_area.height -= (borders.visible.top + borders.visible.bottom);
+  meta_window_unextend_by_frame (window, &tile_area, &borders);
 
   return tile_area.width >= window->size_hints.min_width &&
          tile_area.height >= window->size_hints.min_height;
@@ -3958,9 +3954,7 @@
   tile_area.height /= 2;
 
   meta_frame_calc_borders (window->frame, &borders);
-
-  tile_area.width  -= (borders.visible.left + borders.visible.right);
-  tile_area.height -= (borders.visible.top + borders.visible.bottom);
+  meta_window_unextend_by_frame (window, &tile_area, &borders);
 
   return tile_area.width >= window->size_hints.min_width &&
          tile_area.height >= window->size_hints.min_height;
@@ -9495,6 +9489,9 @@
     if (window->tile_mode != META_TILE_NONE) {
         get_size_limits (window, NULL, FALSE, &min_size, &max_size);
         meta_window_get_current_tile_area (window, &target_size);
+        MetaFrameBorders borders;
+        meta_frame_calc_borders (window->frame, &borders);
+        meta_window_unextend_by_frame (window, &target_size, &borders);
         hminbad = target_size.width < min_size.width;
         vminbad = target_size.height < min_size.height;
     }
@@ -10550,6 +10547,50 @@
   return window->has_custom_frame_extents;
 }
 
+void
+meta_window_extend_by_frame (MetaWindow              *window,
+                             MetaRectangle           *rect,
+                             const MetaFrameBorders  *borders)
+{
+  if (window->frame)
+    {
+      rect->x -= borders->visible.left;
+      rect->y -= borders->visible.top;
+      rect->width  += borders->visible.left + borders->visible.right;
+      rect->height += borders->visible.top + borders->visible.bottom;
+    }
+  else if (meta_window_is_client_decorated (window))
+    {
+      const GtkBorder *extents = &window->custom_frame_extents;
+      rect->x += extents->left;
+      rect->y += extents->top;
+      rect->width -= extents->left + extents->right;
+      rect->height -= extents->top + extents->bottom;
+    }
+}
+
+void
+meta_window_unextend_by_frame (MetaWindow              *window,
+                               MetaRectangle           *rect,
+                               const MetaFrameBorders  *borders)
+{
+  if (window->frame)
+    {
+      rect->x += borders->visible.left;
+      rect->y += borders->visible.top;
+      rect->width  -= borders->visible.left + borders->visible.right;
+      rect->height -= borders->visible.top + borders->visible.bottom;
+    }
+  else if (meta_window_is_client_decorated (window))
+    {
+      const GtkBorder *extents = &window->custom_frame_extents;
+      rect->x -= extents->left;
+      rect->y -= extents->top;
+      rect->width += extents->left + extents->right;
+      rect->height += extents->top + extents->bottom;
+    }
+}
+
 LOCAL_SYMBOL void
 meta_window_refresh_resize_popup (MetaWindow *window)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/muffin-2.8.4/src/org.cinnamon.muffin.gschema.xml.in 
new/muffin-2.8.5/src/org.cinnamon.muffin.gschema.xml.in
--- old/muffin-2.8.4/src/org.cinnamon.muffin.gschema.xml.in     2015-11-20 
18:26:31.000000000 +0100
+++ new/muffin-2.8.5/src/org.cinnamon.muffin.gschema.xml.in     2016-03-07 
18:14:38.000000000 +0100
@@ -10,7 +10,7 @@
           gettext-domain="@GETTEXT_DOMAIN">
 
     <key name="attach-modal-dialogs" type="b">
-      <default>true</default>
+      <default>false</default>
       <_summary>Attach modal dialogs</_summary>
       <_description>
         When true, instead of having independent titlebars, modal dialogs


Reply via email to