Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: muf...@packages.debian.org, fantonifa...@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 <fantonifa...@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);