Add mr2751 & update mr2671
Signed-off-by: Mingi Sung <FiestaLake@protonmail.com>
This commit is contained in:
parent
2366728001
commit
ab7fabf446
4 changed files with 118 additions and 27 deletions
6
.SRCINFO
6
.SRCINFO
|
@ -1,7 +1,7 @@
|
|||
pkgbase = mutter-performance
|
||||
pkgdesc = A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync
|
||||
pkgver = 43.2
|
||||
pkgrel = 1
|
||||
pkgrel = 2
|
||||
url = https://gitlab.gnome.org/GNOME/mutter
|
||||
arch = x86_64
|
||||
license = GPL
|
||||
|
@ -36,11 +36,13 @@ pkgbase = mutter-performance
|
|||
source = mr1880.patch
|
||||
source = mr2702.patch
|
||||
source = mr2671.patch
|
||||
source = mr2751.patch
|
||||
sha256sums = SKIP
|
||||
sha256sums = d7a014965cbb90892ccbe65d0de49ddce50191dbd7521467d7f11c2f4825045c
|
||||
sha256sums = 65981409a5fc5ebfa95c7178f588cb2564f405cf55cbc7a315ecd4ac6c892b1c
|
||||
sha256sums = 1b0647ab0d39db3b334e86c39dbb81b80030339c8d1a9cd43ff88003e966dec2
|
||||
sha256sums = dc0520fd8e9e9d4e76ebfe9e95f72f25bad18a149d04db9d0d35806f1903326c
|
||||
sha256sums = 3737094e4d9c71b31a7e38922ad67d64e77a78524e492ecc9fc4172e129c9acc
|
||||
sha256sums = dfa55caa40e970fca74e68a74d104db92438950b4fc954717963b857e4cd28f1
|
||||
|
||||
pkgname = mutter-performance
|
||||
groups = gnome
|
||||
|
|
22
PKGBUILD
22
PKGBUILD
|
@ -12,8 +12,8 @@
|
|||
|
||||
### PACKAGE OPTIONS
|
||||
## MERGE REQUESTS SELECTION
|
||||
# Merge Requests List: ('579' '1441' '1880' '2671' '2702')
|
||||
_merge_requests_to_use=('1441' '1880' '2671' '2702')
|
||||
# Merge Requests List: ('579' '1441' '1880' '2671' '2702' '2751')
|
||||
_merge_requests_to_use=('1441' '1880' '2671' '2702' '2751')
|
||||
|
||||
## Disable building the DOCS package (Enabled if not set)
|
||||
# Remember to unset this variable when producing .SRCINFO
|
||||
|
@ -32,7 +32,7 @@ else
|
|||
pkgname=(mutter-performance mutter-performance-docs)
|
||||
fi
|
||||
pkgver=43.2
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
pkgdesc="A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync"
|
||||
url="https://gitlab.gnome.org/GNOME/mutter"
|
||||
arch=(x86_64)
|
||||
|
@ -51,12 +51,14 @@ source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit
|
|||
'mr1441.patch'
|
||||
'mr1880.patch'
|
||||
'mr2702.patch'
|
||||
'mr2671.patch')
|
||||
'mr2671.patch'
|
||||
'mr2751.patch')
|
||||
sha256sums=('SKIP'
|
||||
'd7a014965cbb90892ccbe65d0de49ddce50191dbd7521467d7f11c2f4825045c'
|
||||
'65981409a5fc5ebfa95c7178f588cb2564f405cf55cbc7a315ecd4ac6c892b1c'
|
||||
'1b0647ab0d39db3b334e86c39dbb81b80030339c8d1a9cd43ff88003e966dec2'
|
||||
'dc0520fd8e9e9d4e76ebfe9e95f72f25bad18a149d04db9d0d35806f1903326c')
|
||||
'3737094e4d9c71b31a7e38922ad67d64e77a78524e492ecc9fc4172e129c9acc'
|
||||
'dfa55caa40e970fca74e68a74d104db92438950b4fc954717963b857e4cd28f1')
|
||||
|
||||
pkgver() {
|
||||
cd $pkgname
|
||||
|
@ -168,6 +170,16 @@ prepare() {
|
|||
# NOTE: This changes mutter's behaviors, which can bring regressions when using some extensions.
|
||||
pick_mr '2671' 'mr2671.patch' 'patch'
|
||||
|
||||
# Title: [43] tiling: Skip the resize effect for tiled windows during user grabs
|
||||
# Author: Michael Webster <miketwebster@gmail.com>
|
||||
# Author: Robert Mader <robert.mader@posteo.de>
|
||||
# URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2751
|
||||
# Type: 1
|
||||
# Status: 2
|
||||
# Comment: The incremental changes don't need to be animated.
|
||||
# Closes: #2246 (closed)
|
||||
pick_mr '2751' 'mr2751.patch' 'patch'
|
||||
|
||||
}
|
||||
|
||||
build() {
|
||||
|
|
58
mr2671.patch
58
mr2671.patch
|
@ -1,8 +1,8 @@
|
|||
Author: Robert Mader <robert.mader@posteo.de>
|
||||
Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2671
|
||||
Editor: Mingi Sung <FiestaLake@protonmail.com>
|
||||
Commit: 81caa2f08e8d95ceba405b414802fb740d906fdf
|
||||
Last Updated: 12/3/22 (Mutter 43.1+r24+g030e9b8b2-1)
|
||||
Commit: a7c4ee8c8b38363e9173dec4eaeb7ba07b0212fe
|
||||
Last Updated: 12/12/22 (Mutter 43.2-2)
|
||||
---
|
||||
|
||||
Avoid some allocations, save some CPU cycles and make the code easier
|
||||
|
@ -22,8 +22,34 @@ not fully obscurred and has clones on other views, as well as generally
|
|||
fewer lookups and less code in most common cases, compensate for that.
|
||||
|
||||
---
|
||||
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
|
||||
index da5ea1470..e52fbb510 100644
|
||||
--- a/clutter/clutter/clutter-actor.c
|
||||
+++ b/clutter/clutter/clutter-actor.c
|
||||
@@ -15719,11 +15719,21 @@ clutter_actor_is_effectively_on_stage_view (ClutterActor *self,
|
||||
ClutterActor *clone = key;
|
||||
GList *clone_views;
|
||||
|
||||
+ if (!CLUTTER_ACTOR_IS_MAPPED (clone))
|
||||
+ continue;
|
||||
+
|
||||
clone_views = clutter_actor_peek_stage_views (clone);
|
||||
if (g_list_find (clone_views, view))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ /* Clones will force-show their own source actor but not children of
|
||||
+ * it, so if we're hidden and an actor up the hierarchy has a clone,
|
||||
+ * we won't be visible.
|
||||
+ */
|
||||
+ if (!CLUTTER_ACTOR_IS_VISIBLE (actor))
|
||||
+ return FALSE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
diff --git a/src/compositor/meta-surface-actor-wayland.c b/src/compositor/meta-surface-actor-wayland.c
|
||||
index b58f328dc3272b9f418beda90c607b1759d5b345..1dcadde660e0a26075730667a3dd664891d8fe0f 100644
|
||||
index b58f328dc..b8d354627 100644
|
||||
--- a/src/compositor/meta-surface-actor-wayland.c
|
||||
+++ b/src/compositor/meta-surface-actor-wayland.c
|
||||
@@ -67,60 +67,79 @@ meta_surface_actor_wayland_is_opaque (MetaSurfaceActor *actor)
|
||||
|
@ -34,7 +60,7 @@ index b58f328dc3272b9f418beda90c607b1759d5b345..1dcadde660e0a26075730667a3dd6648
|
|||
-meta_surface_actor_wayland_get_current_primary_view (MetaSurfaceActor *actor,
|
||||
- ClutterStage *stage)
|
||||
+gboolean
|
||||
+meta_surface_actor_wayland_is_stage_view_current_primary_view (MetaSurfaceActor *actor,
|
||||
+meta_surface_actor_wayland_is_view_primary (MetaSurfaceActor *actor,
|
||||
+ ClutterStageView *stage_view)
|
||||
{
|
||||
ClutterStageView *current_primary_view = NULL;
|
||||
|
@ -94,11 +120,11 @@ index b58f328dc3272b9f418beda90c607b1759d5b345..1dcadde660e0a26075730667a3dd6648
|
|||
+ }
|
||||
+
|
||||
+ l = clutter_actor_peek_stage_views (CLUTTER_ACTOR (actor));
|
||||
+ g_assert (l != NULL);
|
||||
+ g_return_val_if_fail (l, FALSE);
|
||||
+
|
||||
+ if (!l->next)
|
||||
+ {
|
||||
+ g_warn_if_fail (l->data == stage_view);
|
||||
+ g_return_val_if_fail (l->data == stage_view, FALSE);
|
||||
+ return !meta_surface_actor_is_obscured (actor);
|
||||
+ }
|
||||
+
|
||||
|
@ -136,7 +162,7 @@ index b58f328dc3272b9f418beda90c607b1759d5b345..1dcadde660e0a26075730667a3dd6648
|
|||
|
||||
static void
|
||||
diff --git a/src/compositor/meta-surface-actor-wayland.h b/src/compositor/meta-surface-actor-wayland.h
|
||||
index 1a349af91f250978ff356a3114d1da3817010089..1898147d55e0180efdb7320efbf421ad67958b24 100644
|
||||
index 1a349af91..fa0550f66 100644
|
||||
--- a/src/compositor/meta-surface-actor-wayland.h
|
||||
+++ b/src/compositor/meta-surface-actor-wayland.h
|
||||
@@ -44,8 +44,8 @@ MetaSurfaceActor * meta_surface_actor_wayland_new (MetaWaylandSurface *surface);
|
||||
|
@ -145,16 +171,16 @@ index 1a349af91f250978ff356a3114d1da3817010089..1898147d55e0180efdb7320efbf421ad
|
|||
|
||||
-ClutterStageView * meta_surface_actor_wayland_get_current_primary_view (MetaSurfaceActor *actor,
|
||||
- ClutterStage *stage);
|
||||
+gboolean meta_surface_actor_wayland_is_stage_view_current_primary_view (MetaSurfaceActor *actor,
|
||||
+gboolean meta_surface_actor_wayland_is_view_primary (MetaSurfaceActor *actor,
|
||||
+ ClutterStageView *stage_view);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
diff --git a/src/wayland/meta-wayland-actor-surface.c b/src/wayland/meta-wayland-actor-surface.c
|
||||
index f4ad2d0e4fadb0ec7cfc783a767428ef130ec01c..a00ab4361ef6c2de5612514254d6983f293391e6 100644
|
||||
index 362785c89..2b76d943a 100644
|
||||
--- a/src/wayland/meta-wayland-actor-surface.c
|
||||
+++ b/src/wayland/meta-wayland-actor-surface.c
|
||||
@@ -307,10 +307,15 @@ meta_wayland_actor_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
|
||||
@@ -304,10 +304,15 @@ meta_wayland_actor_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
|
||||
priv->actor &&
|
||||
!meta_surface_actor_is_obscured (priv->actor))
|
||||
{
|
||||
|
@ -174,7 +200,7 @@ index f4ad2d0e4fadb0ec7cfc783a767428ef130ec01c..a00ab4361ef6c2de5612514254d6983f
|
|||
|
||||
meta_wayland_actor_surface_queue_frame_callbacks (actor_surface, pending);
|
||||
diff --git a/src/wayland/meta-wayland-presentation-time.c b/src/wayland/meta-wayland-presentation-time.c
|
||||
index fb99445eb70dd72d95e8e425a3230be8505b8b25..0025b62e1e6a0381f30b70e3ef2da817dc3dc214 100644
|
||||
index fb99445eb..5fe17191c 100644
|
||||
--- a/src/wayland/meta-wayland-presentation-time.c
|
||||
+++ b/src/wayland/meta-wayland-presentation-time.c
|
||||
@@ -156,7 +156,6 @@ on_after_paint (ClutterStage *stage,
|
||||
|
@ -192,16 +218,16 @@ index fb99445eb70dd72d95e8e425a3230be8505b8b25..0025b62e1e6a0381f30b70e3ef2da817
|
|||
- surface_primary_view =
|
||||
- meta_surface_actor_wayland_get_current_primary_view (actor, stage);
|
||||
- if (stage_view != surface_primary_view)
|
||||
+ if (!meta_surface_actor_wayland_is_stage_view_current_primary_view (actor,
|
||||
+ if (!meta_surface_actor_wayland_is_view_primary (actor,
|
||||
+ stage_view))
|
||||
continue;
|
||||
|
||||
if (!wl_list_empty (&surface->presentation_time.feedback_list))
|
||||
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
|
||||
index 1db0838bb6da99dd25d7e6bb565a1ce5f723bfe3..df70daa624f6ec64cb9d0d9e4f795976618afdf0 100644
|
||||
index 9d066b19c..b3888650a 100644
|
||||
--- a/src/wayland/meta-wayland.c
|
||||
+++ b/src/wayland/meta-wayland.c
|
||||
@@ -229,7 +229,6 @@ on_after_update (ClutterStage *stage,
|
||||
@@ -224,7 +224,6 @@ on_after_update (ClutterStage *stage,
|
||||
MetaWaylandSurface *surface = l->data;
|
||||
MetaSurfaceActor *actor;
|
||||
MetaWaylandActorSurface *actor_surface;
|
||||
|
@ -209,14 +235,14 @@ index 1db0838bb6da99dd25d7e6bb565a1ce5f723bfe3..df70daa624f6ec64cb9d0d9e4f795976
|
|||
|
||||
l = l->next;
|
||||
|
||||
@@ -237,9 +236,8 @@ on_after_update (ClutterStage *stage,
|
||||
@@ -232,9 +231,8 @@ on_after_update (ClutterStage *stage,
|
||||
if (!actor)
|
||||
continue;
|
||||
|
||||
- surface_primary_view =
|
||||
- meta_surface_actor_wayland_get_current_primary_view (actor, stage);
|
||||
- if (stage_view != surface_primary_view)
|
||||
+ if (!meta_surface_actor_wayland_is_stage_view_current_primary_view (actor,
|
||||
+ if (!meta_surface_actor_wayland_is_view_primary (actor,
|
||||
+ stage_view))
|
||||
continue;
|
||||
|
||||
|
|
51
mr2751.patch
Normal file
51
mr2751.patch
Normal file
|
@ -0,0 +1,51 @@
|
|||
Author: Michael Webster <miketwebster@gmail.com>
|
||||
Author: Robert Mader <robert.mader@posteo.de>
|
||||
Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2751
|
||||
Editor: Mingi Sung <FiestaLake@protonmail.com>
|
||||
Commit: d93f5cf293863b11b326291cab2c79eb6871d0b6
|
||||
Last Updated: 12/12/22 (Mutter 43.2-2)
|
||||
---
|
||||
|
||||
meta_window_tile ends up being called during each update_resize,
|
||||
but the incremental changes don't need to be animated.
|
||||
|
||||
Closes: #2246 (closed)
|
||||
|
||||
---
|
||||
diff --git a/src/core/window.c b/src/core/window.c
|
||||
index 744e7369632e7f3a0a44c190fdbe3051122e26da..c5ee5af50674d90780fdb61e3b37398cd6ec9816 100644
|
||||
--- a/src/core/window.c
|
||||
+++ b/src/core/window.c
|
||||
@@ -2910,7 +2910,6 @@ meta_window_tile (MetaWindow *window,
|
||||
MetaTileMode tile_mode)
|
||||
{
|
||||
MetaMaximizeFlags directions;
|
||||
- MetaRectangle old_frame_rect, old_buffer_rect;
|
||||
|
||||
g_return_if_fail (META_IS_WINDOW (window));
|
||||
|
||||
@@ -2936,15 +2935,17 @@ meta_window_tile (MetaWindow *window,
|
||||
meta_window_maximize_internal (window, directions, NULL);
|
||||
meta_display_update_tile_preview (window->display, FALSE);
|
||||
|
||||
- /* Setup the edge constraints */
|
||||
- update_edge_constraints (window);
|
||||
+ if (!window->tile_match || window->tile_match != window->display->grab_window)
|
||||
+ {
|
||||
+ MetaRectangle old_frame_rect, old_buffer_rect;
|
||||
|
||||
- meta_window_get_frame_rect (window, &old_frame_rect);
|
||||
- meta_window_get_buffer_rect (window, &old_buffer_rect);
|
||||
+ meta_window_get_frame_rect (window, &old_frame_rect);
|
||||
+ meta_window_get_buffer_rect (window, &old_buffer_rect);
|
||||
|
||||
- meta_compositor_size_change_window (window->display->compositor, window,
|
||||
- META_SIZE_CHANGE_MAXIMIZE,
|
||||
- &old_frame_rect, &old_buffer_rect);
|
||||
+ meta_compositor_size_change_window (window->display->compositor, window,
|
||||
+ META_SIZE_CHANGE_MAXIMIZE,
|
||||
+ &old_frame_rect, &old_buffer_rect);
|
||||
+ }
|
||||
|
||||
meta_window_move_resize_internal (window,
|
||||
(META_MOVE_RESIZE_MOVE_ACTION |
|
Loading…
Reference in a new issue