Notification time stamped 2022-11-30 13:28:58 UTC
From 3c9243686f6b45a2d71b326e70693fa61ec55f03 Mon Sep 17 00:00:00 2001
From: Leigh Scott <leigh123linux(a)gmail.com>
Date: Nov 30 2022 13:28:46 +0000
Subject: Update to 5.6.1 release
---
diff --git a/muffin.spec b/muffin.spec
index 42b8296..3da555a 100644
--- a/muffin.spec
+++ b/muffin.spec
@@ -1,12 +1,11 @@
Name: muffin
-Version: 5.6.0
-Release: 2%{?dist}
+Version: 5.6.1
+Release: 1%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
URL:
https://github.com/linuxmint/%{name}
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
-Patch0: %{url}/pull/649.patch#/window_placement.patch
ExcludeArch: %{ix86}
@@ -92,6 +91,9 @@ rm -rf %{buildroot}%{_datadir}/applications/
%{_libdir}/pkgconfig/*
%changelog
+* Wed Nov 30 2022 Leigh Scott <leigh123linux(a)gmail.com> - 5.6.1-1
+- Update to 5.6.1 release
+
* Mon Nov 28 2022 Leigh Scott <leigh123linux(a)gmail.com> - 5.6.0-2
- Readd lost window placement modes
diff --git a/sources b/sources
index afcd874..710af26 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (muffin-5.6.0.tar.gz) =
9d36ac4f9e9ee91c2712c51b7a7ec0223ddb3178739b6b2e644d54e425420ceb99bd72e5da129d2f8a42c5693eba144a4b0713bc550f09339a3d15136d0953dd
+SHA512 (muffin-5.6.1.tar.gz) =
ee33a2f48603f007635590b3c300df787c6d389eed610016ae02702a5fbcf0d2dc9fbb0e10c4e8d9e11aa7d8be31c464c9d85fbd03443833d5b6ee829b363b3d
diff --git a/window_placement.patch b/window_placement.patch
deleted file mode 100644
index 4bddd65..0000000
--- a/window_placement.patch
+++ /dev/null
@@ -1,316 +0,0 @@
-From ae5351e44e45cab44a8997bea60cabe2a34c1dc5 Mon Sep 17 00:00:00 2001
-From: Duncan Grisby <duncan-github(a)grisby.org>
-Date: Fri, 25 Nov 2022 12:54:59 +0000
-Subject: [PATCH] Bring back window placement-mode to allow pointer and manual
- window placement.
-
----
- data/org.cinnamon.muffin.gschema.xml.in | 28 +++++++++++++++++
- debian/libmuffin0.symbols | 2 +-
- src/core/place.c | 42 ++++++++++++++++++++++++-
- src/core/prefs.c | 26 +++++++--------
- src/core/window-private.h | 1 +
- src/core/window.c | 9 ++++++
- src/meta/common.h | 19 +++++++++++
- src/meta/prefs.h | 6 ++--
- 8 files changed, 115 insertions(+), 18 deletions(-)
-
-diff --git a/data/org.cinnamon.muffin.gschema.xml.in
b/data/org.cinnamon.muffin.gschema.xml.in
-index 5ee5c4edd..05099509c 100644
---- a/data/org.cinnamon.muffin.gschema.xml.in
-+++ b/data/org.cinnamon.muffin.gschema.xml.in
-@@ -5,6 +5,13 @@
- <value value="2" nick="blend"/>
- </enum>
-
-+ <enum id="placement_mode">
-+ <value value="0" nick="automatic"/>
-+ <value value="1" nick="pointer"/>
-+ <value value="2" nick="manual"/>
-+ <value value="3" nick="center"/>
-+ </enum>
-+
- <schema id="org.cinnamon.muffin" path="/org/cinnamon/muffin/"
- gettext-domain="@GETTEXT_DOMAIN@">
-
-@@ -138,6 +145,27 @@
- </description>
- </key>
-
-+ <key name="placement-mode" enum="placement_mode">
-+ <default>'automatic'</default>
-+ <summary>Window placement mode</summary>
-+ <description>
-+ The window placement mode indicates how new windows are positioned.
-+
-+ • “automatic” — the system chooses a location automatically based on
-+ the space available on the desktop, or by a simple
-+ cascade if there is no space
-+
-+ • “pointer” — new windows are placed according to the mouse pointer
-+ position
-+
-+ • “manual” — the user must manually place the new window with the
-+ mouse or keyboard.
-+
-+ • “center” — new windows are always put in the center of the active
-+ screen of the monitor
-+ </description>
-+ </key>
-+
- <key name="background-transition"
enum="background_transition">
- <default>'blend'</default>
- <summary>Background transition</summary>
-diff --git a/debian/libmuffin0.symbols b/debian/libmuffin0.symbols
-index 1f2dd49e6..00249da37 100644
---- a/debian/libmuffin0.symbols
-+++ b/debian/libmuffin0.symbols
-@@ -2386,7 +2386,7 @@ libmuffin.so.0 libmuffin0 #MINVER#
- meta_prefs_get_auto_raise@Base 5.3.0
- meta_prefs_get_auto_raise_delay@Base 5.3.0
- meta_prefs_get_button_layout@Base 5.3.0
-- meta_prefs_get_center_new_windows@Base 5.3.0
-+ meta_prefs_get_new_window_placement_mode@Base 5.3.0
- meta_prefs_get_check_alive_timeout@Base 5.3.0
- meta_prefs_get_cursor_size@Base 5.3.0
- meta_prefs_get_cursor_theme@Base 5.3.0
-diff --git a/src/core/place.c b/src/core/place.c
-index 846845376..9c78b659c 100644
---- a/src/core/place.c
-+++ b/src/core/place.c
-@@ -75,6 +75,32 @@ northwestcmp (gconstpointer a, gconstpointer b)
- return 0;
- }
-
-+
-+static gboolean
-+place_by_pointer(MetaWindow *window,
-+ MetaPlacementMode placement_mode,
-+ int *new_x,
-+ int *new_y)
-+{
-+ MetaBackend *backend = meta_get_backend ();
-+ MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
-+ int root_x, root_y;
-+
-+ meta_cursor_tracker_get_pointer (cursor_tracker, &root_x, &root_y, NULL);
-+
-+ MetaRectangle frame_rect;
-+ meta_window_get_frame_rect (window, &frame_rect);
-+
-+ *new_x = root_x - frame_rect.width / 2;
-+ *new_y = root_y - frame_rect.height / 2;
-+
-+ if (placement_mode == META_PLACEMENT_MODE_MANUAL)
-+ window->move_after_placement = TRUE;
-+
-+ return TRUE;
-+}
-+
-+
- static void
- find_next_cascade (MetaWindow *window,
- /* visible windows on relevant workspaces */
-@@ -323,7 +349,8 @@ window_place_centered (MetaWindow *window)
- return (type == META_WINDOW_DIALOG ||
- type == META_WINDOW_MODAL_DIALOG ||
- type == META_WINDOW_SPLASHSCREEN ||
-- (type == META_WINDOW_NORMAL && meta_prefs_get_center_new_windows ()));
-+ (type == META_WINDOW_NORMAL &&
-+ meta_prefs_get_new_window_placement_mode () == META_PLACEMENT_MODE_CENTER));
- }
-
- static void
-@@ -668,6 +695,7 @@ meta_window_place (MetaWindow *window,
- MetaBackend *backend = meta_get_backend ();
- GList *windows = NULL;
- MetaLogicalMonitor *logical_monitor;
-+ MetaPlacementMode placement_mode;
-
- meta_topic (META_DEBUG_PLACEMENT, "Placing window %s\n", window->desc);
-
-@@ -884,6 +912,18 @@ meta_window_place (MetaWindow *window,
- x = logical_monitor->rect.x;
- y = logical_monitor->rect.y;
-
-+
-+ /* Placement based on pointer position */
-+ placement_mode = meta_prefs_get_new_window_placement_mode();
-+
-+ if (placement_mode == META_PLACEMENT_MODE_POINTER ||
-+ placement_mode == META_PLACEMENT_MODE_MANUAL)
-+ {
-+ if (place_by_pointer (window, placement_mode, &x, &y))
-+ goto done_check_denied_focus;
-+ }
-+
-+
- if (find_first_fit (window, windows,
- logical_monitor,
- x, y, &x, &y))
-diff --git a/src/core/prefs.c b/src/core/prefs.c
-index aed5b6d9b..c07359abc 100644
---- a/src/core/prefs.c
-+++ b/src/core/prefs.c
-@@ -93,7 +93,7 @@ static MetaKeyCombo locate_pointer_key_combo = { 0, 0, 0 };
- static CDesktopFocusMode focus_mode = C_DESKTOP_FOCUS_MODE_CLICK;
- static CDesktopFocusNewWindows focus_new_windows = C_DESKTOP_FOCUS_NEW_WINDOWS_SMART;
- static gboolean raise_on_click = TRUE;
--static gboolean center_new_windows = FALSE;
-+static MetaPlacementMode new_window_placement_mode = META_PLACEMENT_MODE_AUTOMATIC;
- static gboolean attach_modal_dialogs = FALSE;
- static int num_workspaces = 4;
- static gboolean workspace_cycle = FALSE;
-@@ -270,6 +270,13 @@ static MetaEnumPreference preferences_enum[] =
- },
- &focus_mode,
- },
-+ {
-+ { "placement-mode",
-+ SCHEMA_MUFFIN,
-+ META_PREF_NEW_WINDOW_PLACEMENT_MODE,
-+ },
-+ &new_window_placement_mode,
-+ },
- {
- { "visual-bell-type",
- SCHEMA_GENERAL,
-@@ -324,13 +331,6 @@ static MetaBoolPreference preferences_bool[] =
- },
- &attach_modal_dialogs,
- },
-- {
-- { "center-new-windows",
-- SCHEMA_MUFFIN,
-- META_PREF_CENTER_NEW_WINDOWS,
-- },
-- ¢er_new_windows,
-- },
- {
- { "raise-on-click",
- SCHEMA_GENERAL,
-@@ -1311,10 +1311,10 @@ meta_prefs_get_focus_new_windows (void)
- return focus_new_windows;
- }
-
--gboolean
--meta_prefs_get_center_new_windows (void)
-+MetaPlacementMode
-+meta_prefs_get_new_window_placement_mode (void)
- {
-- return center_new_windows;
-+ return new_window_placement_mode;
- }
-
- gboolean
-@@ -1850,8 +1850,8 @@ meta_preference_to_string (MetaPreference pref)
- case META_PREF_FOCUS_NEW_WINDOWS:
- return "FOCUS_NEW_WINDOWS";
-
-- case META_PREF_CENTER_NEW_WINDOWS:
-- return "CENTER_NEW_WINDOWS";
-+ case META_PREF_NEW_WINDOW_PLACEMENT_MODE:
-+ return "NEW_WINDOW_PLACEMENT_MODE";
-
- case META_PREF_ATTACH_MODAL_DIALOGS:
- return "ATTACH_MODAL_DIALOGS";
-diff --git a/src/core/window-private.h b/src/core/window-private.h
-index 65b32f31f..cf859c2cd 100644
---- a/src/core/window-private.h
-+++ b/src/core/window-private.h
-@@ -238,6 +238,7 @@ struct _MetaWindow
- guint maximize_horizontally_after_placement : 1;
- guint maximize_vertically_after_placement : 1;
- guint minimize_after_placement : 1;
-+ guint move_after_placement : 1;
-
- /* The current tile mode */
- MetaTileMode tile_mode;
-diff --git a/src/core/window.c b/src/core/window.c
-index 0027f4f2b..e5df4bfd5 100644
---- a/src/core/window.c
-+++ b/src/core/window.c
-@@ -1127,6 +1127,7 @@ _meta_window_shared_new (MetaDisplay *display,
- window->maximize_horizontally_after_placement = FALSE;
- window->maximize_vertically_after_placement = FALSE;
- window->minimize_after_placement = FALSE;
-+ window->move_after_placement = FALSE;
- window->fullscreen = FALSE;
- window->require_fully_onscreen = TRUE;
- window->require_on_single_monitor = TRUE;
-@@ -2631,6 +2632,14 @@ meta_window_show (MetaWindow *window)
- timestamp = meta_display_get_current_time_roundtrip (window->display);
-
- meta_window_focus (window, timestamp);
-+
-+ if (window->move_after_placement)
-+ {
-+ timestamp = meta_display_get_current_time_roundtrip (window->display);
-+ meta_window_begin_grab_op(window, META_GRAB_OP_KEYBOARD_MOVING,
-+ FALSE, timestamp);
-+ window->move_after_placement = FALSE;
-+ }
- }
- else if (display->x11_display)
- {
-diff --git a/src/meta/common.h b/src/meta/common.h
-index 201d53755..99e1cf20f 100644
---- a/src/meta/common.h
-+++ b/src/meta/common.h
-@@ -548,6 +548,25 @@ typedef enum
- META_LAYER_LAST = 8
- } MetaStackLayer;
-
-+
-+/**
-+ * MetaPlacementMode:
-+ * @META_PLACEMENT_MODE_AUTOMATIC: Automatic
-+ * @META_PLACEMENT_MODE_POINTER: Pointer
-+ * @META_PLACEMENT_MODE_MANUAL: Manual
-+ * @META_PLACEMENT_MODE_CENTER: Center
-+ *
-+ * How new windows should be placed.
-+ */
-+typedef enum
-+{
-+ META_PLACEMENT_MODE_AUTOMATIC,
-+ META_PLACEMENT_MODE_POINTER,
-+ META_PLACEMENT_MODE_MANUAL,
-+ META_PLACEMENT_MODE_CENTER
-+} MetaPlacementMode;
-+
-+
- /* MetaGravity: (skip)
- *
- * Identical to the corresponding gravity value macros from libX11.
-diff --git a/src/meta/prefs.h b/src/meta/prefs.h
-index 8996379f7..fda8a175e 100644
---- a/src/meta/prefs.h
-+++ b/src/meta/prefs.h
-@@ -65,7 +65,7 @@
- * @META_PREF_WORKSPACES_ONLY_ON_PRIMARY: workspaces only on primary
- * @META_PREF_DRAGGABLE_BORDER_WIDTH: draggable border width
- * @META_PREF_AUTO_MAXIMIZE: auto-maximize
-- * @META_PREF_CENTER_NEW_WINDOWS: center new windows
-+ * @META_PREF_NEW_WINDOW_PLACEMENT_MODE: new window placement mode
- * @META_PREF_DRAG_THRESHOLD: drag threshold
- * @META_PREF_LOCATE_POINTER: show pointer location
- * @META_PREF_GTK_THEME: gtk theme name
-@@ -110,7 +110,7 @@ typedef enum
- META_PREF_WORKSPACES_ONLY_ON_PRIMARY,
- META_PREF_DRAGGABLE_BORDER_WIDTH,
- META_PREF_AUTO_MAXIMIZE,
-- META_PREF_CENTER_NEW_WINDOWS,
-+ META_PREF_NEW_WINDOW_PLACEMENT_MODE,
- META_PREF_DRAG_THRESHOLD,
- META_PREF_LOCATE_POINTER,
- META_PREF_CHECK_ALIVE_TIMEOUT,
-@@ -211,7 +211,7 @@ META_EXPORT
- gboolean meta_prefs_get_auto_maximize (void);
-
- META_EXPORT
--gboolean meta_prefs_get_center_new_windows (void);
-+MetaPlacementMode meta_prefs_get_new_window_placement_mode (void);
-
- META_EXPORT
- gboolean meta_prefs_get_show_fallback_app_menu (void);
https://src.fedoraproject.org/rpms/muffin/c/3c9243686f6b45a2d71b326e70693...