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

Bug#1034161: marked as done (unblock: muffin/5.6.4-1)



Your message dated Thu, 20 Apr 2023 21:51:38 +0200
with message-id <d2841d8f-fc07-b7e2-69fd-99a3055405f5@debian.org>
and subject line Re: Bug#1034161: unblock: muffin/5.6.4-1
has caused the Debian Bug report #1034161,
regarding unblock: muffin/5.6.4-1
to be marked as done.

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

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


-- 
1034161: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034161
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: muffin@packages.debian.org, fantonifabio@tiscali.it
Control: affects -1 + src:muffin

Please unblock package muffin

5.6.4-1 include a new bugfix release with some fixes:
- meta-gpu-xrandr: Account for the current user text scale factor when calculating the crtc scale based on Xft.dpi.
- window.c: Allow meta_window_get_xwindow() to be used with introspection.
- window.c: Restore property notify for the tile mode property.
- place.c: Add missing import.
- display.c: Make meta_display_get_pointer_window() available to cinnamon again.
- clutter-text.c: Remove redundant clutter_text_set_buffer call in finalize.

The symbol added is not a new function but only export of existant function,
making it available again to cinnamon.

I also added replace of libgdk-pixbuf2.0-dev build-dep. with libgdk-pixbuf-2.0-dev, libgdk-pixbuf2.0-dev is a transition metapackage from bullseye so should don't
be a risk FWIK.

No regression found or reported, I think is good to have in bookworm.

[ Risks ]
I consider the risk of regression small

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]

unblock muffin/5.6.4-1
diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c
index 3da410f..e18ed4c 100644
--- a/clutter/clutter/clutter-text.c
+++ b/clutter/clutter/clutter-text.c
@@ -1807,7 +1807,6 @@ clutter_text_finalize (GObject *gobject)
 
   clutter_text_dirty_paint_volume (self);
 
-  clutter_text_set_buffer (self, NULL);
   g_free (priv->font_name);
 
   g_clear_object (&priv->input_focus);
diff --git a/debian/changelog b/debian/changelog
index 88556cf..e435e28 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+muffin (5.6.4-1) unstable; urgency=medium
+
+  * New upstream bugfix version 5.6.4
+  * Replace libgdk-pixbuf2.0-dev build-dep. with libgdk-pixbuf-2.0-dev
+  * Update symbols
+
+ -- Fabio Fantoni <fantonifabio@tiscali.it>  Sun, 19 Mar 2023 22:33:27 +0100
+
 muffin (5.6.3-1) unstable; urgency=medium
 
   * New upstream version 5.6.3
diff --git a/debian/control b/debian/control
index 130f0e7..0626f50 100644
--- a/debian/control
+++ b/debian/control
@@ -149,7 +149,7 @@ Depends: gir1.2-meta-muffin-0.0 (= ${binary:Version}),
          libcinnamon-desktop-dev (>= 5.6),
          libdrm-dev,
          libegl1-mesa-dev,
-         libgdk-pixbuf2.0-dev,
+         libgdk-pixbuf-2.0-dev,
          libgles2-mesa-dev | libgles2-dev,
          libglib2.0-dev,
          libgraphene-1.0-dev (>= 1.9.3),
diff --git a/debian/libmuffin0.symbols b/debian/libmuffin0.symbols
index 2a1f2eb..279e3ed 100644
--- a/debian/libmuffin0.symbols
+++ b/debian/libmuffin0.symbols
@@ -2136,6 +2136,7 @@ libmuffin.so.0 libmuffin0 #MINVER#
  meta_display_get_monitor_scale@Base 5.4.1
  meta_display_get_n_monitors@Base 5.4.1
  meta_display_get_pad_action_label@Base 5.4.1
+ meta_display_get_pointer_window@Base 5.6.4
  meta_display_get_primary_monitor@Base 5.4.1
  meta_display_get_selection@Base 5.4.1
  meta_display_get_size@Base 5.4.1
diff --git a/meson.build b/meson.build
index 63b5fad..d4b4590 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('muffin', 'c',
-  version: '5.6.3',
+  version: '5.6.4',
   meson_version: '>= 0.50.0',
   license: 'GPLv2+'
 )
diff --git a/src/backends/meta-settings-private.h b/src/backends/meta-settings-private.h
index a7241ce..8965e1c 100644
--- a/src/backends/meta-settings-private.h
+++ b/src/backends/meta-settings-private.h
@@ -58,6 +58,8 @@ void meta_settings_update_ui_scaling_factor (MetaSettings *settings);
 gboolean meta_settings_get_global_scaling_factor (MetaSettings *settings,
                                                   int          *scaing_factor);
 
+double meta_settings_get_font_scaling_factor (MetaSettings *settings);
+
 META_EXPORT_TEST
 gboolean meta_settings_is_experimental_feature_enabled (MetaSettings           *settings,
                                                         MetaExperimentalFeature feature);
diff --git a/src/backends/meta-settings.c b/src/backends/meta-settings.c
index e544d65..f4a692f 100644
--- a/src/backends/meta-settings.c
+++ b/src/backends/meta-settings.c
@@ -223,6 +223,12 @@ meta_settings_update_font_dpi (MetaSettings *settings)
     g_signal_emit (settings, signals[FONT_DPI_CHANGED], 0);
 }
 
+double
+meta_settings_get_font_scaling_factor(MetaSettings *settings)
+{
+    return g_settings_get_double (settings->interface_settings, "text-scaling-factor");
+}
+
 int
 meta_settings_get_font_dpi (MetaSettings *settings)
 {
diff --git a/src/backends/x11/meta-gpu-xrandr.c b/src/backends/x11/meta-gpu-xrandr.c
index 65a3c30..f2563e6 100644
--- a/src/backends/x11/meta-gpu-xrandr.c
+++ b/src/backends/x11/meta-gpu-xrandr.c
@@ -98,6 +98,10 @@ static int
 get_current_dpi_scale (MetaMonitorManagerXrandr *manager_xrandr,
                        MetaGpuXrandr            *gpu_xrandr)
 {
+  MetaMonitorManager *monitor_manager = META_MONITOR_MANAGER (manager_xrandr);
+  MetaBackend *backend = meta_monitor_manager_get_backend (monitor_manager);
+  MetaSettings *settings = meta_backend_get_settings (backend);
+
   Atom actual;
   int result, format;
   unsigned long n, left;
@@ -109,10 +113,6 @@ get_current_dpi_scale (MetaMonitorManagerXrandr *manager_xrandr,
   if (gpu_xrandr->resources->timestamp ==
       meta_monitor_manager_xrandr_get_config_timestamp (manager_xrandr))
     {
-      MetaMonitorManager *monitor_manager = META_MONITOR_MANAGER (manager_xrandr);
-      MetaBackend *backend = meta_monitor_manager_get_backend (monitor_manager);
-      MetaSettings *settings = meta_backend_get_settings (backend);
-
       return meta_settings_get_ui_scaling_factor (settings);
     }
 
@@ -139,7 +139,10 @@ get_current_dpi_scale (MetaMonitorManagerXrandr *manager_xrandr,
               dpi = g_ascii_strtoull (res[1], NULL, 10);
 
               if (dpi > 0 && dpi < 96 * 10)
-                return MAX (1, roundf ((float) dpi / 96.0f));
+                {
+                  double factor = meta_settings_get_font_scaling_factor (settings);
+                  return MAX (1, roundf ((float) dpi / 96.0f / factor));
+                }
             }
         }
     }
diff --git a/src/core/display-private.h b/src/core/display-private.h
index e5d8032..00501fc 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -402,9 +402,6 @@ gboolean meta_display_apply_startup_properties (MetaDisplay *display,
 void meta_display_queue_workarea_recalc  (MetaDisplay *display);
 void meta_display_queue_check_fullscreen (MetaDisplay *display);
 
-MetaWindow *meta_display_get_pointer_window (MetaDisplay *display,
-                                             MetaWindow  *not_this_one);
-
 MetaWindow *meta_display_get_window_from_id (MetaDisplay *display,
                                              uint64_t     window_id);
 uint64_t    meta_display_generate_window_id (MetaDisplay *display);
diff --git a/src/core/display.c b/src/core/display.c
index 517b881..ac9e2ae 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -3788,6 +3788,16 @@ meta_display_get_monitor_in_fullscreen (MetaDisplay *display,
   purposes */ return logical_monitor->in_fullscreen == TRUE;
 }
 
+/**
+ * meta_display_get_pointer_window:
+ * @display: the #MetaDisplay.
+ * @not_this_one: (nullable): window to be excluded
+ *
+ * Gets the #MetaWindow pointed by the mouse
+ *
+ * Return value: (transfer none): the #MetaWindow pointed by the mouse
+ *  %NULL when window not found
+ */
 MetaWindow *
 meta_display_get_pointer_window (MetaDisplay *display,
                                  MetaWindow  *not_this_one)
diff --git a/src/core/place.c b/src/core/place.c
index 9c78b65..716a74a 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -36,6 +36,7 @@
 #include "meta/meta-backend.h"
 #include "meta/prefs.h"
 #include "meta/workspace.h"
+#include "meta/meta-cursor-tracker.h"
 
 typedef enum
 {
diff --git a/src/core/window.c b/src/core/window.c
index fe2e9b3..569502a 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -171,6 +171,8 @@ static MetaWindow *meta_window_find_tile_match (MetaWindow   *window,
                                                 gboolean      vertical);
 static void update_edge_constraints (MetaWindow *window);
 
+static void notify_tile_mode (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.
@@ -3022,6 +3024,7 @@ meta_window_maximize (MetaWindow        *window,
           window->maximized_vertically = FALSE;
           window->tile_mode = META_TILE_NONE;
           from_tiled = TRUE;
+          notify_tile_mode (window);
         }
 
       meta_window_maximize_internal (window,
@@ -3491,11 +3494,20 @@ update_edge_constraints (MetaWindow *window)
     }
 }
 
+static void
+notify_tile_mode (MetaWindow *window)
+{
+  g_object_freeze_notify (G_OBJECT (window));
+  g_object_notify_by_pspec (G_OBJECT (window), obj_props[PROP_TILE_MODE]);
+  g_object_thaw_notify (G_OBJECT (window));
+}
+
 void
 meta_window_tile (MetaWindow   *window,
                   MetaTileMode  tile_mode)
 {
   MetaMaximizeFlags directions;
+  gboolean changed = FALSE;
 
   /* Maximization constraints beat tiling constraints, so if the window
    * is maximized, tiling won't have any effect unless we unmaximize it
@@ -3507,6 +3519,8 @@ meta_window_tile (MetaWindow   *window,
 
   window->maximized_horizontally = FALSE;
   window->maximized_vertically = FALSE;
+
+  changed = tile_mode != window->tile_mode;
   window->tile_mode = tile_mode;
 
   /* Don't do anything if no tiling is requested */
@@ -3561,6 +3575,9 @@ meta_window_tile (MetaWindow   *window,
 
   if (window->frame)
     meta_frame_queue_draw (window->frame);
+
+  if (changed)
+    notify_tile_mode (window);
 }
 
 MetaTileMode
@@ -3692,7 +3709,10 @@ meta_window_unmaximize (MetaWindow        *window,
       meta_window_get_buffer_rect (window, &old_buffer_rect);
 
       if (unmaximize_vertically)
-        window->tile_mode = META_TILE_NONE;
+        {
+          window->tile_mode = META_TILE_NONE;
+          notify_tile_mode (window);
+        }
 
       meta_topic (META_DEBUG_WINDOW_OPS,
                   "Unmaximizing %s%s\n",
@@ -6669,7 +6689,12 @@ update_move (MetaWindow  *window,
        * is enabled, as top edge tiling can be used in that case
        */
       window->shaken_loose = !meta_prefs_get_edge_tiling ();
-      window->tile_mode = META_TILE_NONE;
+
+      if (window->tile_mode != META_TILE_NONE)
+        {
+          window->tile_mode = META_TILE_NONE;
+          notify_tile_mode (window);
+        }
 
       /* move the unmaximized window to the cursor */
       prop =
@@ -6709,7 +6734,12 @@ update_move (MetaWindow  *window,
       MetaRectangle work_area;
       int monitor;
 
-      window->tile_mode = META_TILE_NONE;
+      if (window->tile_mode != META_TILE_NONE)
+        {
+          window->tile_mode = META_TILE_NONE;
+          notify_tile_mode (window);
+        }
+
       wmonitor = window->monitor;
       n_logical_monitors =
         meta_monitor_manager_get_num_logical_monitors (monitor_manager);
@@ -7871,9 +7901,10 @@ meta_window_get_display (MetaWindow *window)
 }
 
 /**
- * meta_window_get_xwindow: (skip)
+ * meta_window_get_xwindow:
  * @window: a #MetaWindow
  *
+ * Returns: (type gulong): The Window (XID) of @window
  */
 Window
 meta_window_get_xwindow (MetaWindow *window)
diff --git a/src/meta/display.h b/src/meta/display.h
index 961d8b3..6e821ae 100644
--- a/src/meta/display.h
+++ b/src/meta/display.h
@@ -285,6 +285,10 @@ int meta_display_get_monitor_neighbor_index (MetaDisplay         *display,
                                              int                  which_monitor,
                                              MetaDisplayDirection dir);
 
+META_EXPORT
+MetaWindow *meta_display_get_pointer_window (MetaDisplay *display,
+                                             MetaWindow  *not_this_one);
+
 META_EXPORT
 void meta_display_focus_default_window (MetaDisplay *display,
                                         guint32      timestamp);

--- End Message ---
--- Begin Message ---
Hi,

On 10-04-2023 15:17, Fabio Fantoni wrote:
unblock muffin/5.6.4-1

Done.

Paul

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


--- End Message ---

Reply to: