From a4b65e52793eb06d1f33b2956269f918019592f5 Mon Sep 17 00:00:00 2001 From: Sofia Boldyreva Date: Fri, 17 Mar 2023 17:06:14 +0100 Subject: [PATCH] Import gala-6.3.1-3.el9 --- .gala.metadata | 1 + .gitignore | 1 + ...0-Modify-default-settings-for-Fedora.patch | 52 +++ SOURCES/1e223b3.patch | 63 +++ SOURCES/60861a4.patch | 240 +++++++++++ SOURCES/890f78d.patch | 59 +++ SOURCES/9641704.patch | 201 +++++++++ SOURCES/e009541.patch | 33 ++ SOURCES/e86a951.patch | 179 ++++++++ SOURCES/f9008e4.patch | 24 ++ SOURCES/fc838d7.patch | 29 ++ SPECS/gala.spec | 401 ++++++++++++++++++ 12 files changed, 1283 insertions(+) create mode 100644 .gala.metadata create mode 100644 .gitignore create mode 100644 SOURCES/0000-Modify-default-settings-for-Fedora.patch create mode 100644 SOURCES/1e223b3.patch create mode 100644 SOURCES/60861a4.patch create mode 100644 SOURCES/890f78d.patch create mode 100644 SOURCES/9641704.patch create mode 100644 SOURCES/e009541.patch create mode 100644 SOURCES/e86a951.patch create mode 100644 SOURCES/f9008e4.patch create mode 100644 SOURCES/fc838d7.patch create mode 100644 SPECS/gala.spec diff --git a/.gala.metadata b/.gala.metadata new file mode 100644 index 0000000..a405044 --- /dev/null +++ b/.gala.metadata @@ -0,0 +1 @@ +4bc2834ea44de004091b506c0a44869d28e5db6e SOURCES/gala-6.3.1.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..837b71f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/gala-6.3.1.tar.gz diff --git a/SOURCES/0000-Modify-default-settings-for-Fedora.patch b/SOURCES/0000-Modify-default-settings-for-Fedora.patch new file mode 100644 index 0000000..44db9b3 --- /dev/null +++ b/SOURCES/0000-Modify-default-settings-for-Fedora.patch @@ -0,0 +1,52 @@ +From be3f4b53198b0abe3cb6cb74d8f0e2b6332d68e2 Mon Sep 17 00:00:00 2001 +From: Fabio Valentini +Date: Mon, 14 Mar 2022 15:22:50 +0100 +Subject: [PATCH 0/5] Modify default settings for Fedora + +--- + data/gala.gschema.xml | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/data/gala.gschema.xml b/data/gala.gschema.xml +index 872a9795..1de3a2d9 100644 +--- a/data/gala.gschema.xml ++++ b/data/gala.gschema.xml +@@ -26,7 +26,7 @@ + + + +- "none" ++ "open-launcher" + Action for the top left corner + + +@@ -71,7 +71,7 @@ + DEPRECATED: This key is deprecated and ignored. + + +- '' ++ 'io.elementary.wingpanel --toggle-indicator=app-launcher' + Panel main menu action + Sets the command to run when the panel-main-menu keybinding is pressed. + +@@ -81,7 +81,7 @@ + + + +- '' ++ 'io.elementary.wingpanel --toggle-indicator=app-launcher' + + + +@@ -179,7 +179,7 @@ + When true, instead of having independent titlebars, modal dialogs appear attached to the titlebar of the parent window and are moved together with the parent window. + + +- 'close:maximize' ++ 'close:menu,maximize' + Arrangement of buttons on the titlebar + Arrangement of buttons on the titlebar. The value should be a string, such as "menu:minimize,maximize,spacer,close"; the colon separates the left corner of the window from the right corner, and the button names are comma-separated. Duplicate buttons are not allowed. Unknown button names are silently ignored so that buttons can be added in future metacity versions without breaking older versions. A special spacer tag can be used to insert some space between two adjacent buttons. + +-- +2.35.1 + diff --git a/SOURCES/1e223b3.patch b/SOURCES/1e223b3.patch new file mode 100644 index 0000000..48e8007 --- /dev/null +++ b/SOURCES/1e223b3.patch @@ -0,0 +1,63 @@ +From 1e223b3027913e64e61278509390ed13bfe7affa Mon Sep 17 00:00:00 2001 +From: David Hewitt +Date: Fri, 22 Apr 2022 16:00:27 +0000 +Subject: [PATCH] Move panel-main-menu schema in house (#1409) + +--- + data/gala.gschema.xml | 4 ++++ + src/WindowManager.vala | 15 +++++++++++---- + 2 files changed, 15 insertions(+), 4 deletions(-) + +diff --git a/data/gala.gschema.xml b/data/gala.gschema.xml +index 97ba140f..684c1dd8 100644 +--- a/data/gala.gschema.xml ++++ b/data/gala.gschema.xml +@@ -155,6 +155,10 @@ + Tab']]]> + Cycle to the next workspace to the right or to back to the first + ++ ++ space','F2']]]> ++ Open the applications menu ++ + + space']]]> + Cycle to next keyboard layout +diff --git a/src/WindowManager.vala b/src/WindowManager.vala +index 90a67b18..2a38dc69 100644 +--- a/src/WindowManager.vala ++++ b/src/WindowManager.vala +@@ -242,15 +242,16 @@ namespace Gala { + display.add_keybinding ("move-to-workspace-last", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_move_to_workspace_end); + display.add_keybinding ("cycle-workspaces-next", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_cycle_workspaces); + display.add_keybinding ("cycle-workspaces-previous", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_cycle_workspaces); ++#if HAS_MUTTER41 ++ display.add_keybinding ("panel-main-menu", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_applications_menu); ++#else ++ Meta.KeyBinding.set_custom_handler ("panel-main-menu", (Meta.KeyHandlerFunc) handle_applications_menu); ++#endif + + display.overlay_key.connect (() => { + launch_action ("overlay-action"); + }); + +- Meta.KeyBinding.set_custom_handler ("panel-main-menu", () => { +- launch_action ("panel-main-menu-action"); +- }); +- + Meta.KeyBinding.set_custom_handler ("toggle-recording", () => { + launch_action ("toggle-recording-action"); + }); +@@ -436,6 +437,12 @@ namespace Gala { + manager.get_workspace_by_index (index).activate (display.get_current_time ()); + } + ++ [CCode (instance_pos = -1)] ++ void handle_applications_menu (Meta.Display display, Meta.Window? window, ++ Clutter.KeyEvent event, Meta.KeyBinding binding) { ++ launch_action ("panel-main-menu-action"); ++ } ++ + private void on_gesture_detected (Gesture gesture) { + if (workspace_view.is_opened ()) { + return; diff --git a/SOURCES/60861a4.patch b/SOURCES/60861a4.patch new file mode 100644 index 0000000..d66397c --- /dev/null +++ b/SOURCES/60861a4.patch @@ -0,0 +1,240 @@ +From 60861a4c701d6318fcbed428988cf06f08c2b936 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Corentin=20No=C3=ABl?= +Date: Thu, 21 Apr 2022 22:28:36 +0000 +Subject: [PATCH] Update to latest mutter bindings and use Transition objects + (#1406) + +This allows for a better transition handling than setting properties. +--- + src/ScreenshotManager.vala | 2 +- + src/Widgets/DwellClickTimer.vala | 2 +- + src/Widgets/PointerLocator.vala | 67 +++++++++++++++----------------- + vapi/libmutter.vapi | 40 +++++++++---------- + 4 files changed, 54 insertions(+), 57 deletions(-) + +diff --git a/src/ScreenshotManager.vala b/src/ScreenshotManager.vala +index 388fee1a8..19f294cd8 100644 +--- a/src/ScreenshotManager.vala ++++ b/src/ScreenshotManager.vala +@@ -418,7 +418,7 @@ namespace Gala { + unowned Meta.CursorTracker cursor_tracker = wm.get_display ().get_cursor_tracker (); + Graphene.Point coords = {}; + #if HAS_MUTTER40 +- cursor_tracker.get_pointer (coords, null); ++ cursor_tracker.get_pointer (out coords, null); + #else + cursor_tracker.get_pointer (out coords.x, out coords.y, null); + #endif +diff --git a/src/Widgets/DwellClickTimer.vala b/src/Widgets/DwellClickTimer.vala +index 8100295c9..ec64ca833 100644 +--- a/src/Widgets/DwellClickTimer.vala ++++ b/src/Widgets/DwellClickTimer.vala +@@ -75,7 +75,7 @@ namespace Gala { + var tracker = wm.get_display ().get_cursor_tracker (); + Graphene.Point coords = {}; + #if HAS_MUTTER40 +- tracker.get_pointer (coords, null); ++ tracker.get_pointer (out coords, null); + #else + tracker.get_pointer (out coords.x, out coords.y, null); + #endif +diff --git a/src/Widgets/PointerLocator.vala b/src/Widgets/PointerLocator.vala +index f7e508a90..77efef132 100644 +--- a/src/Widgets/PointerLocator.vala ++++ b/src/Widgets/PointerLocator.vala +@@ -37,8 +37,6 @@ namespace Gala { + private Cairo.Pattern stroke_color; + private Cairo.Pattern fill_color; + +- private uint timeout_id; +- + public PointerLocator (WindowManager wm) { + Object (wm: wm); + } +@@ -53,6 +51,10 @@ namespace Gala { + update_surface (); + set_size (WIDTH_PX * scaling_factor, HEIGHT_PX * scaling_factor); + ++ var pivot = Graphene.Point (); ++ pivot.init (0.5f, 0.5f); ++ pivot_point = pivot; ++ + Meta.MonitorManager.@get ().monitors_changed.connect (update_surface); + } + +@@ -114,23 +116,41 @@ namespace Gala { + return; + } + ++ unowned var old_transition = get_transition ("circle"); ++ if (old_transition != null) { ++ old_transition.stop (); ++ } ++ ++ var transition = new Clutter.TransitionGroup (); ++ transition.remove_on_complete = true; ++ var transition_x = new Clutter.PropertyTransition ("scale-x"); ++ var transition_y = new Clutter.PropertyTransition ("scale-y"); ++ var start_val = Value (typeof (double)); ++ start_val.set_double (1); ++ var stop_val = Value (typeof (double)); ++ stop_val.set_double (0); ++ transition_x.set_from_value (start_val); ++ transition_y.set_from_value (start_val); ++ transition_x.set_to_value (stop_val); ++ transition_y.set_to_value (stop_val); ++ transition.progress_mode = Clutter.AnimationMode.EASE_OUT_QUAD; ++ transition.duration = ANIMATION_TIME_MS; ++ transition.add_transition (transition_x); ++ transition.add_transition (transition_y); ++ transition.stopped.connect (() => { visible = false; }); ++ transition.started.connect (() => { visible = true; }); ++ add_transition ("circle", transition); ++ + var rgba = InternalUtils.get_theme_accent_color (); + + /* Don't use alpha from the stylesheet to ensure contrast */ + stroke_color = new Cairo.Pattern.rgb (rgba.red, rgba.green, rgba.blue); + fill_color = new Cairo.Pattern.rgba (rgba.red, rgba.green, rgba.blue, BACKGROUND_OPACITY); + +- if (timeout_id != 0) { +- GLib.Source.remove (timeout_id); +- timeout_id = 0; +- visible = false; +- restore_easing_state (); +- } +- +- var tracker = wm.get_display ().get_cursor_tracker (); ++ unowned var tracker = wm.get_display ().get_cursor_tracker (); + Graphene.Point coords = {}; + #if HAS_MUTTER40 +- tracker.get_pointer (coords, null); ++ tracker.get_pointer (out coords, null); + #else + tracker.get_pointer (out coords.x, out coords.y, null); + #endif +@@ -138,30 +158,7 @@ namespace Gala { + x = coords.x - (width / 2); + y = coords.y - (width / 2); + +- var pivot = Graphene.Point (); +- pivot.x = 0.5f; +- pivot.y = 0.5f; +- pivot_point = pivot; +- +- scale_x = 1; +- scale_y = 1; +- +- visible = true; +- +- save_easing_state (); +- set_easing_mode (Clutter.AnimationMode.EASE_OUT_QUAD); +- set_easing_duration (ANIMATION_TIME_MS); +- +- timeout_id = Timeout.add (ANIMATION_TIME_MS, () => { +- timeout_id = 0; +- +- restore_easing_state (); +- +- return GLib.Source.REMOVE; +- }); +- +- scale_x = 0; +- scale_y = 0; ++ transition.start (); + } + } + } +diff --git a/vapi/libmutter.vapi b/vapi/libmutter.vapi +index 619476858..5edcddb19 100644 +--- a/vapi/libmutter.vapi ++++ b/vapi/libmutter.vapi +@@ -383,7 +383,7 @@ namespace Meta { + protected CursorTracker (); + public void get_hot (out int x, out int y); + #if HAS_MUTTER40 +- public void get_pointer (Graphene.Point coords, out Clutter.ModifierType mods); ++ public void get_pointer (out Graphene.Point coords, out Clutter.ModifierType mods); + #else + public void get_pointer (out int x, out int y, out Clutter.ModifierType mods); + #endif +@@ -789,19 +789,19 @@ namespace Meta { + public unowned GLib.SList get_sequences (); + [NoAccessorMethod] + public Meta.Display display { owned get; construct; } +- public signal void changed ([CCode (type = "gpointer")] Meta.StartupSequence object); ++ public signal void changed (Meta.StartupSequence object); + } + [CCode (cheader_filename = "meta/meta-startup-notification.h", type_id = "meta_startup_sequence_get_type ()")] + public class StartupSequence : GLib.Object { + [CCode (has_construct_function = false)] + protected StartupSequence (); +- public unowned string get_application_id (); ++ public unowned string? get_application_id (); + public bool get_completed (); +- public unowned string get_icon_name (); ++ public unowned string? get_icon_name (); + public unowned string get_id (); + public unowned string get_name (); + public uint64 get_timestamp (); +- public unowned string get_wmclass (); ++ public unowned string? get_wmclass (); + public int get_workspace (); + public string application_id { get; construct; } + public string icon_name { get; construct; } +@@ -862,7 +862,7 @@ namespace Meta { + public void foreach_transient (Meta.WindowForeachFunc func); + public Meta.Rectangle frame_rect_to_client_rect (Meta.Rectangle frame_rect); + public Meta.Rectangle get_buffer_rect (); +- public unowned string get_client_machine (); ++ public unowned string? get_client_machine (); + public Meta.WindowClientType get_client_type (); + public unowned GLib.Object get_compositor_private (); + public unowned string get_description (); +@@ -871,32 +871,32 @@ namespace Meta { + public unowned Cairo.Region? get_frame_bounds (); + public Meta.Rectangle get_frame_rect (); + public Meta.FrameType get_frame_type (); +- public unowned Meta.Group get_group (); +- public unowned string get_gtk_app_menu_object_path (); +- public unowned string get_gtk_application_id (); +- public unowned string get_gtk_application_object_path (); +- public unowned string get_gtk_menubar_object_path (); +- public unowned string get_gtk_theme_variant (); +- public unowned string get_gtk_unique_bus_name (); +- public unowned string get_gtk_window_object_path (); ++ public unowned Meta.Group? get_group (); ++ public unowned string? get_gtk_app_menu_object_path (); ++ public unowned string? get_gtk_application_id (); ++ public unowned string? get_gtk_application_object_path (); ++ public unowned string? get_gtk_menubar_object_path (); ++ public unowned string? get_gtk_theme_variant (); ++ public unowned string? get_gtk_unique_bus_name (); ++ public unowned string? get_gtk_window_object_path (); + public bool get_icon_geometry (out Meta.Rectangle rect); + public uint64 get_id (); + public Meta.StackLayer get_layer (); + public Meta.MaximizeFlags get_maximized (); + public int get_monitor (); +- public unowned string get_mutter_hints (); ++ public unowned string? get_mutter_hints (); + public int get_pid (); + public unowned string get_role (); +- public unowned string get_sandboxed_app_id (); ++ public unowned string? get_sandboxed_app_id (); + public uint get_stable_sequence (); +- public unowned string get_startup_id (); ++ public unowned string? get_startup_id (); + public unowned Meta.Window? get_tile_match (); + public unowned string get_title (); +- public unowned Meta.Window get_transient_for (); ++ public unowned Meta.Window? get_transient_for (); + public uint32 get_user_time (); + public Meta.WindowType get_window_type (); +- public unowned string get_wm_class (); +- public unowned string get_wm_class_instance (); ++ public unowned string? get_wm_class (); ++ public unowned string? get_wm_class_instance (); + public Meta.Rectangle get_work_area_all_monitors (); + public Meta.Rectangle get_work_area_current_monitor (); + public Meta.Rectangle get_work_area_for_monitor (int which_monitor); diff --git a/SOURCES/890f78d.patch b/SOURCES/890f78d.patch new file mode 100644 index 0000000..c65e8df --- /dev/null +++ b/SOURCES/890f78d.patch @@ -0,0 +1,59 @@ +From 890f78d7f9b3d6a651e9b65641bd3762405ac6ae Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Danielle=20For=C3=A9?= +Date: Sat, 14 May 2022 21:15:46 +0000 +Subject: [PATCH] WorkspaceClone: draw stroke with Cairo (#1419) + +--- + src/Widgets/WorkspaceClone.vala | 35 ++++++++++++++++++++++++--------- + 1 file changed, 26 insertions(+), 9 deletions(-) + +diff --git a/src/Widgets/WorkspaceClone.vala b/src/Widgets/WorkspaceClone.vala +index 40a40662..c2751801 100644 +--- a/src/Widgets/WorkspaceClone.vala ++++ b/src/Widgets/WorkspaceClone.vala +@@ -44,19 +44,36 @@ namespace Gala { + public override void paint (Clutter.PaintContext context) { + base.paint (context); + +- unowned Cogl.Framebuffer fb = context.get_framebuffer (); +- +- pipeline.set_color4ub (0, 0, 0, 100); +- fb.push_rectangle_clip (0, 0, width, height); +- fb.draw_rectangle (pipeline, 0, 0, width, height); +- fb.pop_clip (); ++ var surface = new Cairo.ImageSurface (Cairo.Format.ARGB32, (int) width, (int) height); ++ ++ var ctx = new Cairo.Context (surface); ++ ctx.set_source_rgba (255, 255, 255, 255); ++ ctx.rectangle (0, 0, (int) width, (int) height); ++ ctx.set_operator (Cairo.Operator.SOURCE); ++ ctx.stroke (); ++ ctx.restore (); ++ ctx.paint (); ++ ++ try { ++ var texture = new Cogl.Texture2D.from_data ( ++ context.get_framebuffer ().get_context (), ++ (int) width, (int) height, ++ Cogl.PixelFormat.BGRA_8888_PRE, ++ surface.get_stride (), surface.get_data () ++ ); ++ ++ pipeline.set_layer_texture (0, texture); ++ } catch (Error e) { ++ debug (e.message); ++ } + + var color = Cogl.Color.from_4ub (255, 255, 255, 25); + color.premultiply (); ++ + pipeline.set_color (color); +- fb.push_rectangle_clip (0.5f, 0.5f, width - 1, height - 1); +- fb.draw_rectangle (pipeline, 0.5f, 0.5f, width - 1, height - 1); +- fb.pop_clip (); ++ ++ unowned var fb = context.get_framebuffer (); ++ fb.draw_rectangle (pipeline, 0, 0, width, height); + } + #else + public override void paint (Clutter.PaintContext context) { diff --git a/SOURCES/9641704.patch b/SOURCES/9641704.patch new file mode 100644 index 0000000..0bb9fc8 --- /dev/null +++ b/SOURCES/9641704.patch @@ -0,0 +1,201 @@ +From 9641704ec7f8097adc96616b1ff2a64290023d32 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Corentin=20No=C3=ABl?= +Date: Thu, 21 Apr 2022 22:33:24 +0000 +Subject: [PATCH] Use Clutter.Grab with Mutter 42 (#1407) + +--- + lib/WindowManager.vala | 5 ++++- + plugins/pip/SelectionArea.vala | 2 +- + src/Widgets/MultitaskingView.vala | 2 +- + src/Widgets/PixelPicker.vala | 2 +- + src/Widgets/ScreenShield.vala | 2 +- + src/Widgets/SelectionArea.vala | 2 +- + src/Widgets/WindowOverview.vala | 2 +- + src/Widgets/WindowSwitcher.vala | 2 +- + src/WindowManager.vala | 18 ++++++++++++++---- + vapi/mutter-clutter.vapi | 2 +- + 10 files changed, 26 insertions(+), 13 deletions(-) + +diff --git a/lib/WindowManager.vala b/lib/WindowManager.vala +index 08f29eabc..199731ce9 100644 +--- a/lib/WindowManager.vala ++++ b/lib/WindowManager.vala +@@ -60,6 +60,9 @@ namespace Gala { + * to end your modal mode again with {@link WindowManager.pop_modal} + */ + public class ModalProxy : Object { ++#if HAS_MUTTER42 ++ public Clutter.Grab? grab { get; set; } ++#endif + /** + * A function which is called whenever a keybinding is pressed. If you supply a custom + * one you can filter out those that'd you like to be passed through and block all others. +@@ -132,7 +135,7 @@ namespace Gala { + * @return a {@link ModalProxy} which is needed to end the modal mode again and provides some + * some basic control on the behavior of the window manager while it is in modal mode. + */ +- public abstract ModalProxy push_modal (); ++ public abstract ModalProxy push_modal (Clutter.Actor actor); + + /** + * May exit the modal mode again, unless another component has called {@link push_modal} +diff --git a/plugins/pip/SelectionArea.vala b/plugins/pip/SelectionArea.vala +index 5eb1d2718..7a7e7b82e 100644 +--- a/plugins/pip/SelectionArea.vala ++++ b/plugins/pip/SelectionArea.vala +@@ -129,7 +129,7 @@ public class Gala.Plugins.PIP.SelectionArea : Clutter.Actor { + wm.get_display ().set_cursor (Meta.Cursor.CROSSHAIR); + grab_key_focus (); + +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + } + + private void get_selection_rectangle (out int x, out int y, out int width, out int height) { +diff --git a/src/Widgets/MultitaskingView.vala b/src/Widgets/MultitaskingView.vala +index ba1364ae0..cfaa9ff29 100644 +--- a/src/Widgets/MultitaskingView.vala ++++ b/src/Widgets/MultitaskingView.vala +@@ -592,7 +592,7 @@ namespace Gala { + } + + if (opening) { +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + modal_proxy.set_keybinding_filter (keybinding_filter); + + wm.background_group.hide (); +diff --git a/src/Widgets/PixelPicker.vala b/src/Widgets/PixelPicker.vala +index 0490f5764..649ee7661 100644 +--- a/src/Widgets/PixelPicker.vala ++++ b/src/Widgets/PixelPicker.vala +@@ -83,7 +83,7 @@ namespace Gala { + wm.get_display ().set_cursor (Meta.Cursor.CROSSHAIR); + grab_key_focus (); + +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + } + + public void get_point (out int x, out int y) { +diff --git a/src/Widgets/ScreenShield.vala b/src/Widgets/ScreenShield.vala +index 05e55aad4..ce873f8a7 100644 +--- a/src/Widgets/ScreenShield.vala ++++ b/src/Widgets/ScreenShield.vala +@@ -334,7 +334,7 @@ namespace Gala { + wm.get_display ().get_cursor_tracker ().set_pointer_visible (false); + visible = true; + grab_key_focus (); +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + + if (animate) { + animate_and_lock (animation_time); +diff --git a/src/Widgets/SelectionArea.vala b/src/Widgets/SelectionArea.vala +index d3053f00a..f776c4b73 100644 +--- a/src/Widgets/SelectionArea.vala ++++ b/src/Widgets/SelectionArea.vala +@@ -127,7 +127,7 @@ namespace Gala { + wm.get_display ().set_cursor (Meta.Cursor.CROSSHAIR); + grab_key_focus (); + +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + } + + public void get_selection_rectangle (out int x, out int y, out int width, out int height) { +diff --git a/src/Widgets/WindowOverview.vala b/src/Widgets/WindowOverview.vala +index d17497ac0..ba55323ab 100644 +--- a/src/Widgets/WindowOverview.vala ++++ b/src/Widgets/WindowOverview.vala +@@ -157,7 +157,7 @@ namespace Gala { + + grab_key_focus (); + +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + modal_proxy.set_keybinding_filter (keybinding_filter); + + visible = true; +diff --git a/src/Widgets/WindowSwitcher.vala b/src/Widgets/WindowSwitcher.vala +index 9297d314f..847f2ced3 100644 +--- a/src/Widgets/WindowSwitcher.vala ++++ b/src/Widgets/WindowSwitcher.vala +@@ -331,7 +331,7 @@ namespace Gala { + } + + void push_modal () { +- modal_proxy = wm.push_modal (); ++ modal_proxy = wm.push_modal (this); + modal_proxy.set_keybinding_filter ((binding) => { + // if it's not built-in, we can block it right away + if (!binding.is_builtin ()) +diff --git a/src/WindowManager.vala b/src/WindowManager.vala +index 0a23c9271..90a67b18c 100644 +--- a/src/WindowManager.vala ++++ b/src/WindowManager.vala +@@ -664,7 +664,7 @@ namespace Gala { + /** + * {@inheritDoc} + */ +- public ModalProxy push_modal () { ++ public ModalProxy push_modal (Clutter.Actor actor) { + var proxy = new ModalProxy (); + + modal_stack.offer_head (proxy); +@@ -674,14 +674,20 @@ namespace Gala { + return proxy; + + unowned Meta.Display display = get_display (); ++#if !HAS_MUTTER42 + var time = display.get_current_time (); ++#endif + + update_input_area (); +-#if !HAS_MUTTER42 ++#if HAS_MUTTER42 ++ proxy.grab = stage.grab (actor); ++#else + begin_modal (0, time); + #endif + +- display.disable_unredirect (); ++ if (modal_stack.size == 1) { ++ display.disable_unredirect (); ++ } + + return proxy; + } +@@ -695,6 +701,10 @@ namespace Gala { + return; + } + ++#if HAS_MUTTER42 ++ proxy.grab.dismiss (); ++#endif ++ + if (is_modal ()) + return; + +@@ -712,7 +722,7 @@ namespace Gala { + * {@inheritDoc} + */ + public bool is_modal () { +- return (modal_stack.size > 0); ++ return !modal_stack.is_empty; + } + + /** +diff --git a/vapi/mutter-clutter.vapi b/vapi/mutter-clutter.vapi +index 0c364f83f..c2a63a093 100644 +--- a/vapi/mutter-clutter.vapi ++++ b/vapi/mutter-clutter.vapi +@@ -7412,7 +7412,7 @@ namespace Clutter { + [Version (since = "0.4")] + public unowned string get_title (); + #if HAS_MUTTER42 +- public unowned Clutter.Grab grab (Clutter.Actor actor); ++ public Clutter.Grab grab (Clutter.Actor actor); + #endif + #if !HAS_MUTTER42 + [Version (since = "1.2")] diff --git a/SOURCES/e009541.patch b/SOURCES/e009541.patch new file mode 100644 index 0000000..e298f8a --- /dev/null +++ b/SOURCES/e009541.patch @@ -0,0 +1,33 @@ +From e0095415cdbfc369e6482e84b8aaffc6a04cafe7 Mon Sep 17 00:00:00 2001 +From: Vishal Rao +Date: Fri, 13 May 2022 00:46:38 +0530 +Subject: [PATCH] Fix initial alt-tab switcher indicator visibility. (#1417) + +--- + src/Widgets/WindowSwitcher.vala | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/Widgets/WindowSwitcher.vala b/src/Widgets/WindowSwitcher.vala +index c1521e52..42d9416f 100644 +--- a/src/Widgets/WindowSwitcher.vala ++++ b/src/Widgets/WindowSwitcher.vala +@@ -418,7 +418,7 @@ namespace Gala { + // are here too early, in which case all the children are at + // (0|0), so we can easily check for that and come back later + if (container.get_n_children () > 1 +- && container.get_child_at_index (1).allocation.x1 < 1) { ++ && container.get_child_at_index (1).x < 1) { + + GLib.Timeout.add (FIX_TIMEOUT_INTERVAL, () => { + update_indicator_position (initial); +@@ -427,8 +427,8 @@ namespace Gala { + return; + } + +- float x, y; +- cur_icon.allocation.get_origin (out x, out y); ++ float x = cur_icon.x; ++ float y = cur_icon.y; + + if (initial) { + indicator.visible = true; diff --git a/SOURCES/e86a951.patch b/SOURCES/e86a951.patch new file mode 100644 index 0000000..65467c2 --- /dev/null +++ b/SOURCES/e86a951.patch @@ -0,0 +1,179 @@ +From e86a9518c24b742118b8624e34f84cb0ef76c7bd Mon Sep 17 00:00:00 2001 +From: David Hewitt +Date: Sat, 23 Apr 2022 22:26:40 +0000 +Subject: [PATCH] Move screenshot shortcuts in-house (#1411) + +--- + daemon/MenuDaemon.vala | 6 ++-- + data/gala.gschema.xml | 24 +++++++++++++ + src/WindowManager.vala | 78 ++++++++++++++++++++++++++++++++++++++---- + 3 files changed, 99 insertions(+), 9 deletions(-) + +diff --git a/daemon/MenuDaemon.vala b/daemon/MenuDaemon.vala +index 7918d4c72..32bc347a5 100644 +--- a/daemon/MenuDaemon.vala ++++ b/daemon/MenuDaemon.vala +@@ -60,11 +60,11 @@ namespace Gala { + ulong on_visible_workspace_sid = 0U; + + private static GLib.Settings keybind_settings; +- private static GLib.Settings media_keys_settings; ++ private static GLib.Settings gala_keybind_settings; + + static construct { + keybind_settings = new GLib.Settings ("org.gnome.desktop.wm.keybindings"); +- media_keys_settings = new GLib.Settings ("org.gnome.settings-daemon.plugins.media-keys"); ++ gala_keybind_settings = new GLib.Settings ("org.pantheon.desktop.gala.keybindings"); + } + + [DBus (visible = false)] +@@ -269,7 +269,7 @@ namespace Gala { + move_left_accellabel.accel_string = keybind_settings.get_strv ("move-to-workspace-left")[0]; + } + +- screenshot_accellabel.accel_string = media_keys_settings.get_strv ("window-screenshot")[0]; ++ screenshot_accellabel.accel_string = gala_keybind_settings.get_strv ("window-screenshot")[0]; + + close.visible = Gala.WindowFlags.CAN_CLOSE in flags; + if (close.visible) { +diff --git a/data/gala.gschema.xml b/data/gala.gschema.xml +index 684c1dd80..1d0b2b00e 100644 +--- a/data/gala.gschema.xml ++++ b/data/gala.gschema.xml +@@ -159,6 +159,30 @@ + space','F2']]]> + Open the applications menu + ++ ++ ++ Take a screenshot ++ ++ ++ Print']]]> ++ Take a screenshot of a window ++ ++ ++ Print']]]> ++ Take a screenshot of an area ++ ++ ++ Print']]]> ++ Copy a screenshot to clipboard ++ ++ ++ Print']]]> ++ Copy a screenshot of a window to clipboard ++ ++ ++ Print']]]> ++ Copy a screenshot of an area to clipboard ++ + + space']]]> + Cycle to next keyboard layout +diff --git a/src/WindowManager.vala b/src/WindowManager.vala +index 2a38dc697..91dbaeab0 100644 +--- a/src/WindowManager.vala ++++ b/src/WindowManager.vala +@@ -248,6 +248,15 @@ namespace Gala { + Meta.KeyBinding.set_custom_handler ("panel-main-menu", (Meta.KeyHandlerFunc) handle_applications_menu); + #endif + ++#if HAS_MUTTER42 ++ display.add_keybinding ("screenshot", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_screenshot); ++ display.add_keybinding ("window-screenshot", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_screenshot); ++ display.add_keybinding ("area-screenshot", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_screenshot); ++ display.add_keybinding ("screenshot-clip", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_screenshot); ++ display.add_keybinding ("window-screenshot-clip", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_screenshot); ++ display.add_keybinding ("area-screenshot-clip", keybinding_settings, 0, (Meta.KeyHandlerFunc) handle_screenshot); ++#endif ++ + display.overlay_key.connect (() => { + launch_action ("overlay-action"); + }); +@@ -443,6 +452,31 @@ namespace Gala { + launch_action ("panel-main-menu-action"); + } + ++ [CCode (instance_pos = -1)] ++ void handle_screenshot (Meta.Display display, Meta.Window? window, ++ Clutter.KeyEvent event, Meta.KeyBinding binding) { ++ switch (binding.get_name ()) { ++ case "screenshot": ++ screenshot_screen.begin (); ++ break; ++ case "area-screenshot": ++ screenshot_area.begin (); ++ break; ++ case "window-screenshot": ++ screenshot_current_window.begin (); ++ break; ++ case "screenshot-clip": ++ screenshot_screen.begin (true); ++ break; ++ case "area-screenshot-clip": ++ screenshot_area.begin (true); ++ break; ++ case "window-screenshot-clip": ++ screenshot_current_window.begin (true); ++ break; ++ } ++ } ++ + private void on_gesture_detected (Gesture gesture) { + if (workspace_view.is_opened ()) { + return; +@@ -2115,15 +2149,47 @@ namespace Gala { + return info; + } + +- private async void screenshot_current_window () { ++ private string generate_screenshot_filename () { ++ var date_time = new GLib.DateTime.now_local ().format ("%Y-%m-%d %H.%M.%S"); ++ /// TRANSLATORS: %s represents a timestamp here ++ return _("Screenshot from %s").printf (date_time); ++ } ++ ++ private async void screenshot_current_window (bool clipboard = false) { ++ try { ++ string filename = clipboard ? "" : generate_screenshot_filename (); ++ bool success = false; ++ string filename_used = ""; ++ unowned var screenshot_manager = ScreenshotManager.init (this); ++ yield screenshot_manager.screenshot_window (true, false, true, filename, out success, out filename_used); ++ } catch (Error e) { ++ // Ignore this error ++ } ++ } ++ ++ private async void screenshot_area (bool clipboard = false) { ++ try { ++ string filename = clipboard ? "" : generate_screenshot_filename (); ++ bool success = false; ++ string filename_used = ""; ++ ++ unowned var screenshot_manager = ScreenshotManager.init (this); ++ ++ int x, y, w, h; ++ yield screenshot_manager.select_area (out x, out y, out w, out h); ++ yield screenshot_manager.screenshot_area (x, y, w, h, true, filename, out success, out filename_used); ++ } catch (Error e) { ++ // Ignore this error ++ } ++ } ++ ++ private async void screenshot_screen (bool clipboard = false) { + try { +- var date_time = new GLib.DateTime.now_local ().format ("%Y-%m-%d %H.%M.%S"); +- /// TRANSLATORS: %s represents a timestamp here +- string file_name = _("Screenshot from %s").printf (date_time); ++ string filename = clipboard ? "" : generate_screenshot_filename (); + bool success = false; + string filename_used = ""; +- var screenshot_manager = ScreenshotManager.init (this); +- yield screenshot_manager.screenshot_window (true, false, true, file_name, out success, out filename_used); ++ unowned var screenshot_manager = ScreenshotManager.init (this); ++ yield screenshot_manager.screenshot (false, true, filename, out success, out filename_used); + } catch (Error e) { + // Ignore this error + } diff --git a/SOURCES/f9008e4.patch b/SOURCES/f9008e4.patch new file mode 100644 index 0000000..096f97b --- /dev/null +++ b/SOURCES/f9008e4.patch @@ -0,0 +1,24 @@ +From f9008e4f7a028b2f5fd4c09341a0af857b9759b6 Mon Sep 17 00:00:00 2001 +From: Vishal Rao +Date: Fri, 22 Apr 2022 17:11:30 +0530 +Subject: [PATCH] WindowSwitcher: Fix missing focus on selected window upon + release key with Mutter 42 (#1408) + +--- + src/Widgets/WindowSwitcher.vala | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/Widgets/WindowSwitcher.vala b/src/Widgets/WindowSwitcher.vala +index 847f2ced..c1521e52 100644 +--- a/src/Widgets/WindowSwitcher.vala ++++ b/src/Widgets/WindowSwitcher.vala +@@ -344,7 +344,9 @@ namespace Gala { + || name == "switch-windows" || name == "switch-windows-backward"); + }); + ++#if !HAS_MUTTER42 + grab_key_focus (); ++#endif + } + + void close_switcher (uint32 time, bool cancel = false) { diff --git a/SOURCES/fc838d7.patch b/SOURCES/fc838d7.patch new file mode 100644 index 0000000..d11f01e --- /dev/null +++ b/SOURCES/fc838d7.patch @@ -0,0 +1,29 @@ +From fc838d7add2c42f8d7d9d4a09478688edce60b90 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Danielle=20For=C3=A9?= +Date: Mon, 16 May 2022 08:07:39 +0000 +Subject: [PATCH] MultitaskingView: Remove key_focus_out override (#1418) + +--- + src/Widgets/MultitaskingView.vala | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/src/Widgets/MultitaskingView.vala b/src/Widgets/MultitaskingView.vala +index cfaa9ff2..042adcd1 100644 +--- a/src/Widgets/MultitaskingView.vala ++++ b/src/Widgets/MultitaskingView.vala +@@ -164,15 +164,6 @@ namespace Gala { + } + } + +- /** +- * We generally assume that when the key-focus-out signal is emitted +- * a different component was opened, so we close in that case. +- */ +- public override void key_focus_out () { +- if (opened && !contains (get_stage ().key_focus)) +- toggle (); +- } +- + /** + * Scroll through workspaces with the mouse wheel. Smooth scrolling is handled by + * GestureTracker. diff --git a/SPECS/gala.spec b/SPECS/gala.spec new file mode 100644 index 0000000..a5a6158 --- /dev/null +++ b/SPECS/gala.spec @@ -0,0 +1,401 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.2.5) +%define autorelease(e:s:pb:) %{?-p:0.}%{lua: + release_number = 3; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{?dist} +## END: Set by rpmautospec + +%global __provides_exclude_from ^%{_libdir}/gala/.*\\.so$ + +Name: gala +Summary: Gala window manager +Version: 6.3.1 +Release: %autorelease +License: GPLv3+ + +URL: https://github.com/elementary/gala +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz + +# patch some default settings to better match Fedora +Patch0: 0000-Modify-default-settings-for-Fedora.patch + +# upstream patches for better support of mutter 42 / libmutter-10 +Patch1: %{url}/commit/60861a4.patch +Patch2: %{url}/commit/9641704.patch +Patch3: %{url}/commit/f9008e4.patch +Patch4: %{url}/commit/1e223b3.patch +Patch5: %{url}/commit/e86a951.patch +Patch6: %{url}/commit/e009541.patch +Patch7: %{url}/commit/890f78d.patch +Patch8: %{url}/commit/fc838d7.patch + +BuildRequires: desktop-file-utils +BuildRequires: gettext +BuildRequires: libappstream-glib +BuildRequires: meson >= 0.50.0 +BuildRequires: vala >= 0.28.0 + +BuildRequires: mesa-libEGL-devel + +BuildRequires: pkgconfig(clutter-1.0) >= 1.12.0 +BuildRequires: pkgconfig(clutter-gtk-1.0) +BuildRequires: pkgconfig(gee-0.8) +BuildRequires: pkgconfig(gexiv2) +BuildRequires: pkgconfig(glib-2.0) >= 2.44.0 +BuildRequires: pkgconfig(gnome-desktop-3.0) +BuildRequires: pkgconfig(gnome-settings-daemon) >= 3.15.2 +BuildRequires: pkgconfig(granite) >= 5.4.0 +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(libbamf3) +BuildRequires: pkgconfig(libcanberra) +BuildRequires: pkgconfig(mutter-clutter-8) +BuildRequires: pkgconfig(mutter-cogl-8) +BuildRequires: pkgconfig(mutter-cogl-pango-8) + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +# gala provides a generic icon (apps/multitasking-view) +Requires: hicolor-icon-theme + +# gala's multitasking view is activated via dbus +Requires: dbus-tools + +# gala relies on the new notification server +Requires: elementary-notifications + +%description +Gala is Pantheon's Window Manager, part of the elementary project. + + +%package libs +Summary: Gala window manager libraries + +%description libs +Gala is Pantheon's Window Manager, part of the elementary project. + +This package contains the shared libraries. + + +%package devel +Summary: Gala window manager development files +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +Gala is Pantheon's Window Manager, part of the elementary project. + +This package contains the development headers. + + +%prep +%autosetup -p1 + + +%build +%meson -Dsystemd=false +%meson_build + + +%install +%meson_install + +%find_lang gala + + +%check +desktop-file-validate \ + %{buildroot}/%{_sysconfdir}/xdg/autostart/gala-daemon.desktop + +desktop-file-validate \ + %{buildroot}/%{_datadir}/applications/gala*.desktop + +appstream-util validate-relax --nonet \ + %{buildroot}/%{_datadir}/metainfo/%{name}.appdata.xml + + +%files -f gala.lang +%config(noreplace) %{_sysconfdir}/xdg/autostart/gala-daemon.desktop + +%{_bindir}/gala +%{_bindir}/gala-daemon + +%{_libdir}/gala/plugins/* + +%{_datadir}/applications/gala*.desktop +%{_datadir}/glib-2.0/schemas/20_elementary.pantheon.wm.gschema.override +%{_datadir}/glib-2.0/schemas/org.pantheon.desktop.gala.gschema.xml +%{_datadir}/icons/hicolor/*/apps/multitasking-view.svg +%{_datadir}/metainfo/%{name}.appdata.xml + +%files libs +%doc AUTHORS README.md +%license COPYING + +%dir %{_libdir}/gala +%dir %{_libdir}/gala/plugins + +%{_libdir}/libgala.so.0* + +%files devel +%{_includedir}/gala/ + +%{_libdir}/libgala.so +%{_libdir}/pkgconfig/gala.pc + +%{_datadir}/vala/vapi/gala.deps +%{_datadir}/vala/vapi/gala.vapi + + +%changelog +* Thu 16 Mar 2023 Sofia Boldyreva 6.3.1-3 +- Replaced required verosion of mutter-clutter, mutter-cogl, mutter-cogl-pango from 10 to 8 to match AlmaLinux 9 repositories + +* Wed May 18 2022 Fabio Valentini 6.3.1-3 +- Add even more upstream patches for better support of mutter 42 + +* Thu May 05 2022 Fabio Valentini 6.3.1-2 +- Add upstream patches for better support of mutter 42 / libmutter-10 + +* Thu Apr 07 2022 Fabio Valentini 6.3.1-1 +- Update to version 6.3.1; Fixes RHBZ#2072919 + +* Mon Mar 14 2022 Fabio Valentini 6.3.0-1 +- Update to version 6.3.0; Fixes RHBZ#2026339 + +* Thu Jan 20 2022 Fedora Release Engineering 6.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Jan 18 2022 Fabio Valentini 6.2.1-2 +- Include upstream PR for mutter 42 / libmutter-10 support + +* Sat Oct 30 2021 Fabio Valentini 6.2.1-1 +- Update to version 6.2.1; Fixes RHBZ#2009381 + +* Tue Sep 28 2021 Fabio Valentini 6.2.0-1 +- Update to version 6.2.0; Fixes RHBZ#2007101 + +* Sat Aug 14 2021 Fabio Valentini 6.0.1-1 +- Update to version 6.0.1; Fixes RHBZ#1992897 + +* Wed Jul 21 2021 Fedora Release Engineering 6.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jul 15 2021 Fabio Valentini 6.0.0-1 +- Update to version 6.0.0 + +* Thu Feb 18 2021 Fabio Valentini - 3.3.2-8.20210218git625d40c +- Update override settings for new wingpanel binary name. + +* Fri Feb 12 2021 Fabio Valentini - 3.3.2-7.20210218.git625d40c +- Bump to commit 625d40c. +- Rebuilt for granite 6 soname bump. + +* Tue Jan 26 2021 Fedora Release Engineering - 3.3.2-6.git88e3294 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Oct 30 2020 Fabio Valentini - 3.3.2-5.git88e3294 +- Bump to commit 88e3294 on the tintou/mutter-7 branch. + +* Sat Aug 29 2020 Fabio Valentini - 3.3.2-4 +- Initial port to mutter 3.38 (uglyyy hacks inside). + +* Sat Aug 01 2020 Fedora Release Engineering - 3.3.2-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu May 07 2020 Fabio Valentini - 3.3.2-1 +- Update to version 3.3.2. + +* Sat Apr 25 2020 Fabio Valentini - 3.3.1-1 +- Update to version 3.3.1. + +* Fri Apr 03 2020 Fabio Valentini - 3.3.0-1 +- Update to version 3.3.0. + +* Tue Jan 28 2020 Fedora Release Engineering - 3.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 16 2020 Kalev Lember - 3.2.0-2 +- Rebuilt for libgnome-desktop soname bump + +* Wed Jan 08 2020 Fabio Valentini - 3.2.0-1 +- Update to version 3.2.0. + +* Thu Jul 25 2019 Fedora Release Engineering - 0.3.1-0.31.20190712.gita790d2d +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jul 21 2019 Kalev Lember - 0.3.1-0.30.20190712.gita790d2d +- Rebuilt for libgnome-desktop soname bump + +* Tue Jul 16 2019 Fabio Valentini - 0.3.1-0.29.20190712.gita790d2d +- Bump to commit a790d2d. + +* Wed Jul 03 2019 Fabio Valentini - 0.3.1-0.28.20190701.git5f1dbf1 +- Bump to commit 5f1dbf1. + +* Sat Jun 01 2019 Fabio Valentini - 0.3.1-0.27.20190531.git1024813 +- Bump to commit 1024813. + +* Mon May 20 2019 Fabio Valentini - 0.3.1-0.26.20190514.git3ae100d +- Bump to commit 3ae100d. + +* Sat May 11 2019 Fabio Valentini - 0.3.1-0.25.20190511.git4459c59 +- Bump to commit 4459c59. + +* Tue Apr 16 2019 Adam Williamson - 0.3.1-0.24.20190307.git2c610b3 +- Rebuild with Meson fix for #1699099 + +* Wed Mar 13 2019 Fabio Valentini - 0.3.1-0.23.20190307.git2c610b3 +- Bump to commit 2c610b3. + +* Sun Mar 03 2019 Fabio Valentini - 0.3.1-0.22.20190302.git395670e +- Bump to commit 395670e. + +* Tue Feb 12 2019 Fabio Valentini - 0.3.1-0.21.20190128.git1a96644 +- Bump to commit 1a96644. + +* Thu Jan 31 2019 Fedora Release Engineering - 0.3.1-0.20.20190128.git6654145 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 29 2019 Fabio Valentini - 0.3.1-0.19.20190128.git6654145 +- Bump to commit 6654145. + +* Sun Dec 16 2018 Fabio Valentini - 0.3.1-0.18.20181216.git7f1e392 +- Bump to commit 7f1e392. + +* Fri Dec 07 2018 Fabio Valentini - 0.3.1-0.17.20181205.git66a95e0 +- Bump to commit 66a95e0. + +* Mon Nov 26 2018 Fabio Valentini - 0.3.1-0.16.20181122.gitcf8d455 +- Bump to commit cf8d455. + +* Sat Oct 20 2018 Fabio Valentini - 0.3.1-0.15.20181020.gita1bad26 +- Bump to commit a1bad26. + +* Mon Oct 08 2018 Fabio Valentini - 0.3.1-0.14.20181003.gitfeffbf8 +- Make sure the right version of mutter is pulled in for builds. + +* Mon Oct 08 2018 Fabio Valentini - 0.3.1-0.13.20181003.gitfeffbf8 +- Bump to commit feffbf8. + +* Fri Sep 28 2018 Fabio Valentini - 0.3.1-0.12.20180918.git9747bd6 +- Bump to commit 9747bd6. + +* Wed Sep 12 2018 Fabio Valentini - 0.3.1-0.11.20180910.git1970bac +- Bump to commit 1970bac. + +* Wed Sep 12 2018 Fabio Valentini - 0.3.1-0.10.20180910.git2995cd6 +- Bump to commit 2995cd6. + +* Sun Sep 09 2018 Fabio Valentini - 0.3.1-0.9.20180729.git15f722a +- Use mutter328 compat package for now. + +* Thu Aug 02 2018 Fabio Valentini - 0.3.1-0.8.20180729.git15f722a +- Bump to commit 15f722a. + +* Fri Jul 13 2018 Fabio Valentini - 0.3.1-0.7.20180710.git9502677 +- Bump to commit 9502677. + +* Fri Jul 13 2018 Fedora Release Engineering - 0.3.1-0.6.20180607.git985baa0 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jun 13 2018 Fabio Valentini - 0.3.1-0.5.20180607.git985baa0 +- Rebuild for granite5 soname bump. + +* Wed Jun 13 2018 Fabio Valentini - 0.3.1-0.4.20180607.git985baa0 +- Bump to commit 985baa0 and update default settings overrides. + +* Sun Jun 03 2018 Fabio Valentini - 0.3.1-0.3.20180603.git3661cbd +- Bump to commit 3661cbd. + +* Tue May 01 2018 Fabio Valentini - 0.3.1-0.2.20180430.gitf02b776 +- Bump to commit f02b776. + +* Sun Mar 18 2018 Fabio Valentini - 0.3.1-0.1.20180318.gita71e8c1 +- Bump to version 0.3.1 snapshots, commit a71e8c1. +- Remove obsolete ldconfig scriptlets. + +* Thu Mar 15 2018 Fabio Valentini - 0.3.0-2.20180314.git22f0d95 +- Update to commit 22f0d95. + +* Mon Mar 12 2018 Fabio Valentini - 0.3.0-1.20180311.git6d3253a +- Update to commit 6d3253a and switch to meson. + +* Thu Feb 15 2018 Fabio Valentini - 0.3.0-0.git146.22e1.1 +- Update to latest snapshot (git 146-22e1). + +* Wed Feb 14 2018 Fabio Valentini - 0.3.0-0.git141.f90f.2 +- Rebuild for libgnome-desktop soname bump. + +* Wed Feb 07 2018 Fedora Release Engineering - 0.3.0-0.git141.f90f.1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 26 2018 Fabio Valentini - 0.3.0-0.git141.f90f.1 +- Update to latest snapshot (git 141-f90f). + +* Tue Jan 23 2018 Fabio Valentini - 0.3.0-0.git140.d76c.1 +- Update to latest snapshot (git 140-d76c). + +* Sat Jan 06 2018 Fabio Valentini - 0.3.0-0.git139.439f.3 +- Remove icon cache scriptlets, replaced by file triggers. + +* Wed Dec 27 2017 Fabio Valentini - 0.3.0-0.git139.439f.2 +- Add patch so window buttons match fedora's default layout. + +* Wed Dec 27 2017 Fabio Valentini - 0.3.0-0.git139.439f.1 +- Update to latest snapshot (git 139-439f). + +* Tue Nov 21 2017 Fabio Valentini - 0.3.0-0.git138.a82b.1 +- Update to latest snapshot (git 138-a82b). + +* Sat Nov 04 2017 Fabio Valentini - 0.3.0-0.git136.60ee.2 +- Rebuild for granite soname bump. + +* Fri Oct 13 2017 Fabio Valentini - 0.3.0-0.git136.60ee.1 +- Update to latest snapshot (git 136-60ee). + +* Thu Sep 21 2017 Fabio Valentini - 0.3.0-0.git126.4fe5.1 +- Update to latest snapshot (git 126-4fe5). + +* Wed Aug 23 2017 Fabio Valentini - 0.3.0-0.git124.cd28.1 +- Update to latest snapshot (git 124-cd28). + +* Sat Aug 05 2017 Fabio Valentini - 0.3.0-0.git120.87f5a.1 +- Update to latest snapshot (git 120-87f5a). + +* Mon Jul 31 2017 Fabio Valentini - 0.3.0-0.git119.c7d5.1 +- Update to latest snapshot (git 119-c7d5). + +* Wed Jul 26 2017 Fedora Release Engineering - 0.3.0-0.bzr567.1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Feb 20 2017 Fabio Valentini - 0.3.0-0.bzr567.1 +- Update to latest snapshot (rev 567). +- De-remove other configurations, now the .desktop files are valid again. + +* Sat Feb 18 2017 Fabio Valentini - 0.3.0-0.bzr562.1 +- Update to latest snapshot (rev 562). +- Filter provides to exclude internal plugins. +- Remove explicit pkgconfig BR. +- Remove unsupported / broken configurations. +- Fix build with mutter-3.24. + +* Fri Feb 10 2017 Fedora Release Engineering - 0.3.0-0.bzr552.4.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 23 2017 Fabio Valentini - 0.3.0-0.bzr552.4 +- Make BR on /usr/bin/pkg-config explicit. + +* Sat Jan 07 2017 Fabio Valentini - 0.3.0-0.bzr552.3 +- Put plugins and the plugin directory into the right respective subpackages. + +* Thu Jan 05 2017 Fabio Valentini - 0.3.0-0.bzr552.2 +- Make sure no *.la files are in the packages. + +* Thu Jan 05 2017 Fabio Valentini - 0.3.0-0.bzr552.1 +- Initial package. +