[gnome-shell/gnome-3-38] st/viewport: Don't trigger relayout when picking
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-3-38] st/viewport: Don't trigger relayout when picking
- Date: Wed, 16 Dec 2020 15:54:59 +0000 (UTC)
commit e6369547dd86f395a8d44eea71f999fa1e5fbe42
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Wed Dec 9 19:02:55 2020 +0100
st/viewport: Don't trigger relayout when picking
Calling clutter_actor_get_allocation_box() might still implicitly
trigger a full relayout, which has many side effects not expected to
occur during picking. Avoid a particular case which caused a reentry
issue by using the current allocation instead of forcing a relayout when
picking in StViewport.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1436
(cherry picked from commit 4e57119f40259ab5ecfd013256ac9fc81f234646)
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1540>
src/st/st-viewport.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/src/st/st-viewport.c b/src/st/st-viewport.c
index 0eb1868ab9..5556a772ff 100644
--- a/src/st/st-viewport.c
+++ b/src/st/st-viewport.c
@@ -435,7 +435,7 @@ st_viewport_pick (ClutterActor *actor,
StViewportPrivate *priv = st_viewport_get_instance_private (viewport);
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (actor));
double x, y;
- ClutterActorBox allocation_box;
+ g_autoptr (ClutterActorBox) allocation_box = NULL;
ClutterActorBox content_box;
ClutterActor *child;
CoglFramebuffer *fb = clutter_pick_context_get_framebuffer (pick_context);
@@ -455,8 +455,8 @@ st_viewport_pick (ClutterActor *actor,
if (clutter_actor_get_n_children (actor) == 0)
return;
- clutter_actor_get_allocation_box (actor, &allocation_box);
- st_theme_node_get_content_box (theme_node, &allocation_box, &content_box);
+ g_object_get (actor, "allocation", &allocation_box, NULL);
+ st_theme_node_get_content_box (theme_node, allocation_box, &content_box);
content_box.x1 += x;
content_box.y1 += y;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]