diff options
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | PKGBUILD | 14 | ||||
-rw-r--r-- | rounded_corners.patch | 62 |
3 files changed, 46 insertions, 40 deletions
@@ -1,14 +1,14 @@ pkgbase = mutter-rounded pkgdesc = A window manager for GNOME, with rounded corners patch - pkgver = 41.2 - pkgrel = 2.1 + pkgver = 41.3 + pkgrel = 1 url = https://gitlab.gnome.org/GNOME/mutter install = mutter.install arch = x86_64 groups = gnome license = GPL checkdepends = xorg-server-xvfb - checkdepends = wireplumber + checkdepends = pipewire-media-session checkdepends = python-dbusmock makedepends = gobject-introspection makedepends = git @@ -38,7 +38,7 @@ pkgbase = mutter-rounded provides = libmutter-9.so provides = mutter conflicts = mutter - source = mutter-rounded::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=664ac09eecfd365b5258f53d2c9e6c8410a37919 + source = mutter-rounded::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=f51ad2911419ee2ab88b5548581227a57d0fd987 source = mutter_settings::git+https://github.com/yilozt/mutter-rounded-setting source = rounded_corners.patch source = shell_blur_effect.patch @@ -49,7 +49,7 @@ pkgbase = mutter-rounded source = https://gitlab.gnome.org/GNOME/gnome-shell/-/raw/41.1/src/shell-blur-effect.c sha256sums = SKIP sha256sums = SKIP - sha256sums = f161768e446deb36ea787f03daf3162b517f091a1690b1938c99b777687f44f0 + sha256sums = 347cb5fd030d693b9d7892e8f27157f5fbc12c6e2611a12acc0174d89c4c6cf3 sha256sums = 895f35f5e8a458c71b4312061cf7d2b0108a3c6df4b0324ab342c5a3576ee09a sha256sums = dc4279ec3c0995ba9a9ee3ecd581376140c78089a058863dea0bd9ec7894dc49 sha256sums = 2ec553a260497f0ac0180512201c9819b10159a15fcbc6d5007932d8e2a44844 @@ -6,8 +6,8 @@ # Contributor: Michael Kanis <mkanis_at_gmx_dot_de> pkgname=mutter-rounded -pkgver=41.2 -pkgrel=2.1 +pkgver=41.3 +pkgrel=1 pkgdesc="A window manager for GNOME, with rounded corners patch" url="https://gitlab.gnome.org/GNOME/mutter" arch=(x86_64) @@ -18,13 +18,13 @@ depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas xorg-xwayland graphene libxkbfile libsysprof-capture) makedepends=(gobject-introspection git egl-wayland meson xorg-server wayland-protocols sysprof) -checkdepends=(xorg-server-xvfb wireplumber python-dbusmock) +checkdepends=(xorg-server-xvfb pipewire-media-session python-dbusmock) provides=(libmutter-9.so mutter) conflicts=(mutter) groups=(gnome) install=mutter.install -_commit=664ac09eecfd365b5258f53d2c9e6c8410a37919 # tags/41.2^0 +_commit=f51ad2911419ee2ab88b5548581227a57d0fd987 # tags/41.3^0 _mutter_src="$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit" _shell_blur_h_src="https://gitlab.gnome.org/GNOME/gnome-shell/-/raw/41.1/src/shell-blur-effect.h" _shell_blur_c_src="https://gitlab.gnome.org/GNOME/gnome-shell/-/raw/41.1/src/shell-blur-effect.c" @@ -32,7 +32,7 @@ _settings_src="mutter_settings::git+https://github.com/yilozt/mutter-rounded-set # Mirrors in Gitee if [ "${LANG}" = "zh_CN.UTF-8" ] ; then - _mutter_src="$pkgname::git+https://gitee.com/mirrors_GNOME/mutter.git#commit=$_commit" + # _mutter_src="$pkgname::git+https://gitee.com/mirrors_GNOME/mutter.git#commit=$_commit" _settings_src="mutter_settings::git+https://gitee.com/lluo/mutter-rounded-setting/" fi @@ -48,7 +48,7 @@ source=("$_mutter_src" ) sha256sums=('SKIP' 'SKIP' - 'f161768e446deb36ea787f03daf3162b517f091a1690b1938c99b777687f44f0' + '347cb5fd030d693b9d7892e8f27157f5fbc12c6e2611a12acc0174d89c4c6cf3' '895f35f5e8a458c71b4312061cf7d2b0108a3c6df4b0324ab342c5a3576ee09a' 'dc4279ec3c0995ba9a9ee3ecd581376140c78089a058863dea0bd9ec7894dc49' '2ec553a260497f0ac0180512201c9819b10159a15fcbc6d5007932d8e2a44844' @@ -89,7 +89,7 @@ _check() ( pipewire & _p1=$! - wireplumber & + pipewire-media-session & _p2=$! trap "kill $_p1 $_p2; wait" EXIT diff --git a/rounded_corners.patch b/rounded_corners.patch index 8a0274cee7e2..ec007b8a15cf 100644 --- a/rounded_corners.patch +++ b/rounded_corners.patch @@ -277,7 +277,7 @@ index adae06547..eea31fa41 100644 +void meta_window_actor_update_blur_window_opacity (MetaWindowActor *self); #endif /* META_WINDOW_ACTOR_PRIVATE_H */ diff --git a/src/compositor/meta-window-actor-wayland.c b/src/compositor/meta-window-actor-wayland.c -index 641c924db..28f1920f8 100644 +index bdc5c5a53..4e8418334 100644 --- a/src/compositor/meta-window-actor-wayland.c +++ b/src/compositor/meta-window-actor-wayland.c @@ -24,10 +24,36 @@ @@ -660,7 +660,7 @@ index 641c924db..28f1920f8 100644 } static void -@@ -149,15 +488,34 @@ meta_window_actor_wayland_can_freeze_commits (MetaWindowActor *actor) +@@ -149,12 +488,29 @@ meta_window_actor_wayland_can_freeze_commits (MetaWindowActor *actor) return FALSE; } @@ -678,24 +678,19 @@ index 641c924db..28f1920f8 100644 + G_OBJECT_CLASS (meta_window_actor_wayland_parent_class)->constructed (object); +} + ++ static void meta_window_actor_wayland_dispose (GObject *object) { MetaWindowActor *window_actor = META_WINDOW_ACTOR (object); -+ MetaWindowActorWayland *actor_wayland = META_WINDOW_ACTOR_WAYLAND (object); -+ MetaSurfaceActor *surface_actor = meta_window_actor_get_surface (window_actor); - GList *children; ++ MetaWindowActorWayland *actor_wayland = META_WINDOW_ACTOR_WAYLAND (object); ++ + g_autoptr (GList) children = NULL; GList *l; -+ g_clear_signal_handler (&actor_wayland->size_changed_id, surface_actor); -+ g_clear_signal_handler (&actor_wayland->repaint_scheduled_id, surface_actor); -+ - children = clutter_actor_get_children (CLUTTER_ACTOR (window_actor)); - for (l = children; l; l = l->next) - { -@@ -167,7 +525,17 @@ meta_window_actor_wayland_dispose (GObject *object) +@@ -167,7 +523,19 @@ meta_window_actor_wayland_dispose (GObject *object) child_actor != CLUTTER_ACTOR (surface_actor)) clutter_actor_remove_child (CLUTTER_ACTOR (window_actor), child_actor); } @@ -708,6 +703,8 @@ index 641c924db..28f1920f8 100644 + g_clear_pointer (&actor_wayland->unfocused_shadow, meta_shadow_unref); + g_clear_pointer (&actor_wayland->shadow_shape, meta_window_shape_unref); ++ g_clear_signal_handler (&actor_wayland->size_changed_id, surface_actor); ++ g_clear_signal_handler (&actor_wayland->repaint_scheduled_id, surface_actor); + g_clear_signal_handler (&actor_wayland->shadow_factory_changed_handler_id, + actor_wayland->shadow_factory); G_OBJECT_CLASS (meta_window_actor_wayland_parent_class)->dispose (object); @@ -857,7 +854,7 @@ index 9e64462ea..7c003a342 100644 /* The frame bounds are already subtracted from actor_x11->shadow_clip diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c -index b32df2010..932b2904d 100644 +index b32df2010..9d2994e74 100644 --- a/src/compositor/meta-window-actor.c +++ b/src/compositor/meta-window-actor.c @@ -41,6 +41,9 @@ @@ -1166,11 +1163,11 @@ index b32df2010..932b2904d 100644 +on_visible_changed (MetaWindowActor *self) +{ + MetaWindowActorPrivate *priv = meta_window_actor_get_instance_private (self); -+ ++ + if (!priv->blur_actor) + return; + -+ if (priv->visible && !priv->unminimize_in_progress) ++ if (priv->visible && !meta_window_actor_effect_in_progress (self)) + clutter_actor_show(priv->blur_actor); + else + clutter_actor_hide(priv->blur_actor); @@ -1203,14 +1200,14 @@ index b32df2010..932b2904d 100644 meta_window_actor_sync_actor_geometry (self, priv->window->placed); + -+ priv->visible_changed_id = -+ g_signal_connect (object, "notify::visible", G_CALLBACK (on_visible_changed), NULL); -+ + if (type == META_WINDOW_CLIENT_TYPE_WAYLAND) + { + priv->wm_class_changed_id = + g_signal_connect (window, "notify::wm-class", G_CALLBACK (on_wm_class_changed), object); + } ++ ++ priv->visible_changed_id = ++ g_signal_connect (object, "notify::visible", G_CALLBACK (on_visible_changed), NULL); } static void @@ -1230,7 +1227,15 @@ index b32df2010..932b2904d 100644 g_signal_connect_object (priv->window, "notify::appears-focused", G_CALLBACK (window_appears_focused_notify), self, 0); break; -@@ -606,6 +906,47 @@ is_freeze_thaw_effect (MetaPluginEffect event) +@@ -588,6 +888,7 @@ meta_window_actor_effect_in_progress (MetaWindowActor *self) + meta_window_actor_get_instance_private (self); + + return (priv->minimize_in_progress || ++ priv->unminimize_in_progress || + priv->size_change_in_progress || + priv->map_in_progress || + priv->destroy_in_progress); +@@ -606,6 +907,47 @@ is_freeze_thaw_effect (MetaPluginEffect event) } } @@ -1269,7 +1274,7 @@ index b32df2010..932b2904d 100644 + if (!priv->blur_actor) + return; + -+ if (priv->visible && !priv->unminimize_in_progress) ++ if (priv->visible && !meta_window_actor_effect_in_progress (self)) + clutter_actor_show(priv->blur_actor); + else + clutter_actor_hide(priv->blur_actor); @@ -1278,7 +1283,7 @@ index b32df2010..932b2904d 100644 static gboolean start_simple_effect (MetaWindowActor *self, MetaPluginEffect event) -@@ -625,15 +966,29 @@ start_simple_effect (MetaWindowActor *self, +@@ -625,15 +967,33 @@ start_simple_effect (MetaWindowActor *self, case META_PLUGIN_NONE: return FALSE; case META_PLUGIN_MINIMIZE: @@ -1296,6 +1301,10 @@ index b32df2010..932b2904d 100644 counter = &priv->unminimize_in_progress; break; case META_PLUGIN_MAP: ++ if (priv->round_clip_effect) ++ { ++ meta_window_actor_hide_blur(self); ++ } counter = &priv->map_in_progress; break; case META_PLUGIN_DESTROY: @@ -1308,18 +1317,15 @@ index b32df2010..932b2904d 100644 counter = &priv->destroy_in_progress; break; case META_PLUGIN_SIZE_CHANGE: -@@ -682,6 +1037,10 @@ meta_window_actor_after_effects (MetaWindowActor *self) +@@ -682,6 +1042,7 @@ meta_window_actor_after_effects (MetaWindowActor *self) g_signal_emit (self, signals[EFFECTS_COMPLETED], 0); meta_window_actor_sync_visibility (self); meta_window_actor_sync_actor_geometry (self, FALSE); -+ if (priv->round_clip_effect && !priv->unminimize_in_progress) -+ { -+ meta_window_actor_show_blur(self); -+ } ++ meta_window_actor_show_blur(self); } clutter_stage_repick_device (stage, clutter_seat_get_pointer (seat)); -@@ -803,6 +1162,19 @@ meta_window_actor_queue_destroy (MetaWindowActor *self) +@@ -803,6 +1164,19 @@ meta_window_actor_queue_destroy (MetaWindowActor *self) clutter_actor_destroy (CLUTTER_ACTOR (self)); } @@ -1339,7 +1345,7 @@ index b32df2010..932b2904d 100644 MetaWindowActorChanges meta_window_actor_sync_actor_geometry (MetaWindowActor *self, gboolean did_placement) -@@ -1031,7 +1403,7 @@ meta_window_actor_sync_visibility (MetaWindowActor *self) +@@ -1031,7 +1405,7 @@ meta_window_actor_sync_visibility (MetaWindowActor *self) if (CLUTTER_ACTOR_IS_VISIBLE (self) != priv->visible) { |