From 48511d7dd0b2607e71c9ac77b2b38a1ab7cfd6e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20No=C3=ABl?= Date: Thu, 30 May 2024 23:36:57 +0200 Subject: [PATCH] Dialogs: Fix Mutter bindings around dialog creation (#1941) --- src/Dialogs.vala | 8 -------- src/WindowManager.vala | 11 ++--------- vapi/Meta-14.metadata | 3 +++ vapi/libmutter.vapi | 4 ++-- vapi/meson.build | 3 +++ vapi/mutter-cogl-14.deps | 1 + 6 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/Dialogs.vala b/src/Dialogs.vala index 658f9cb1..b576b4de 100644 --- a/src/Dialogs.vala +++ b/src/Dialogs.vala @@ -130,8 +130,6 @@ namespace Gala { construct { parent = value; } } - public static Gee.Set open_dialogs = new Gee.HashSet (); - // this function isn't exported in glib.vapi [CCode (cname = "g_locale_from_utf8")] extern static string locale_from_utf8 ( @@ -146,10 +144,6 @@ namespace Gala { Object (window: window); } - ~CloseDialog () { - open_dialogs.remove (this); - } - construct { icon = "computer-fail"; @@ -163,8 +157,6 @@ namespace Gala { body = _("You may choose to wait a short while for the application to continue, or force it to quit entirely."); accept_label = _("Force Quit"); deny_label = _("Wait"); - - open_dialogs.add (this); } public override void show () { diff --git a/src/WindowManager.vala b/src/WindowManager.vala index 80aa321d..a085c14f 100644 --- a/src/WindowManager.vala +++ b/src/WindowManager.vala @@ -2332,15 +2332,8 @@ namespace Gala { dialog.show (); } - public override unowned Meta.CloseDialog create_close_dialog (Meta.Window window) { - var new_dialog = CloseDialog.open_dialogs.first_match ((d) => d.window == window); - - if (new_dialog == null) { - new_dialog = new CloseDialog (window); - } - - unowned var dialog = new_dialog; - return dialog; + public override Meta.CloseDialog? create_close_dialog (Meta.Window window) { + return new CloseDialog (window); } public override unowned Meta.PluginInfo? plugin_info () { diff --git a/vapi/Meta-14.metadata b/vapi/Meta-14.metadata index a066790e..0c39b96d 100644 --- a/vapi/Meta-14.metadata +++ b/vapi/Meta-14.metadata @@ -168,6 +168,9 @@ unsigned_long_hash.v type="ulong?" warning parent="Meta.Util" cheader_filename="meta/util.h" create_context parent="Meta.Context" name="new" symbol_type="constructor" cheader_filename="meta/meta-context.h" +Plugin.create_close_dialog unowned=false nullable +Plugin.create_inhibit_shortcuts_dialog unowned=false + BackgroundActor sealed BackgroundContent sealed BackgroundImage sealed diff --git a/vapi/libmutter.vapi b/vapi/libmutter.vapi index 0f420548..c9c3584c 100644 --- a/vapi/libmutter.vapi +++ b/vapi/libmutter.vapi @@ -690,9 +690,9 @@ namespace Meta { [NoWrapper] public virtual void confirm_display_change (); [NoWrapper] - public virtual unowned Meta.CloseDialog create_close_dialog (Meta.Window window); + public virtual Meta.CloseDialog? create_close_dialog (Meta.Window window); [NoWrapper] - public virtual unowned Meta.InhibitShortcutsDialog create_inhibit_shortcuts_dialog (Meta.Window window); + public virtual Meta.InhibitShortcutsDialog create_inhibit_shortcuts_dialog (Meta.Window window); [NoWrapper] public virtual void destroy (Meta.WindowActor actor); public void destroy_completed (Meta.WindowActor actor); diff --git a/vapi/meson.build b/vapi/meson.build index 3f3ee61c..ee23d858 100644 --- a/vapi/meson.build +++ b/vapi/meson.build @@ -328,6 +328,7 @@ if mutter46_dep.found() '--pkg=gio-2.0', '--pkg=cairo', '--pkg=graphene-gobject-1.0', + '--pkg=x11', vapigen_args, files('Cogl-14-custom.vala') ], @@ -345,6 +346,7 @@ if mutter46_dep.found() '--pkg=pangocairo', '--pkg=gio-2.0', '--pkg=glib-2.0', + '--pkg=x11', vapigen_args ], depends: [mtk_target, cogl_target], @@ -364,6 +366,7 @@ if mutter46_dep.found() '--pkg=gio-2.0', '--pkg=json-glib-1.0', '--pkg=pangocairo', + '--pkg=x11', vapigen_args, files('Clutter-14-custom.vala') ], diff --git a/vapi/mutter-cogl-14.deps b/vapi/mutter-cogl-14.deps index d73ec164..06e943f9 100644 --- a/vapi/mutter-cogl-14.deps +++ b/vapi/mutter-cogl-14.deps @@ -2,3 +2,4 @@ pango glib-2.0 gio-2.0 mutter-mtk-14 +x11