[gtk/popover-flip-arrow-fix] popover: Allocate after setting final_position
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/popover-flip-arrow-fix] popover: Allocate after setting final_position
- Date: Tue, 28 Apr 2020 01:02:56 +0000 (UTC)
commit 473709fee31a040b1fdbb36ebbee26f5bffabd68
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Apr 27 20:58:03 2020 -0400
popover: Allocate after setting final_position
When we find out that we've been flipped, set
final_position and final_rect before allocating
the popover. This prevents 'smashed-in beak' disease.
Fixes: #2671
gtk/gtkpopover.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 89e5912e66..7de2713771 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -379,11 +379,6 @@ update_popover_layout (GtkPopover *popover,
did_flip_vertically (gdk_popup_layout_get_surface_anchor (layout),
gdk_popup_get_surface_anchor (popup));
- gtk_widget_allocate (GTK_WIDGET (popover),
- gdk_surface_get_width (priv->surface),
- gdk_surface_get_height (priv->surface),
- -1, NULL);
-
priv->final_rect = final_rect;
switch (priv->position)
@@ -405,6 +400,11 @@ update_popover_layout (GtkPopover *popover,
break;
}
+ gtk_widget_allocate (GTK_WIDGET (popover),
+ gdk_surface_get_width (priv->surface),
+ gdk_surface_get_height (priv->surface),
+ -1, NULL);
+
g_clear_pointer (&priv->arrow_render_node, gsk_render_node_unref);
gtk_widget_queue_draw (GTK_WIDGET (popover));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]