[gtk+/wip/carlosg/event-delivery] flowbox: Fix child item selection
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/carlosg/event-delivery] flowbox: Fix child item selection
- Date: Wed, 10 May 2017 10:17:27 +0000 (UTC)
commit 7a1a3c621404d953b81e5a22000c596839374b71
Author: Timm Bäder <mail baedert org>
Date: Wed May 10 12:11:58 2017 +0200
flowbox: Fix child item selection
gtk/gtkflowbox.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkflowbox.c b/gtk/gtkflowbox.c
index 02440b2..bc7d610 100644
--- a/gtk/gtkflowbox.c
+++ b/gtk/gtkflowbox.c
@@ -4136,7 +4136,8 @@ gtk_flow_box_get_child_at_index (GtkFlowBox *box,
* @x: the x coordinate of the child
* @y: the y coordinate of the child
*
- * Gets the child in the (@x, @y) position.
+ * Gets the child in the (@x, @y) position. Both @x and @y are
+ * assumed to be relative to the allocation of @box.
*
* Returns: (transfer none) (nullable): the child widget, which will
* always be a #GtkFlowBoxChild or %NULL in case no child widget
@@ -4152,6 +4153,9 @@ gtk_flow_box_get_child_at_pos (GtkFlowBox *box,
GtkWidget *child;
GSequenceIter *iter;
GtkAllocation allocation;
+ GtkAllocation box_allocation;
+
+ gtk_widget_get_allocation (GTK_WIDGET (box), &box_allocation);
for (iter = g_sequence_get_begin_iter (BOX_PRIV (box)->children);
!g_sequence_iter_is_end (iter);
@@ -4160,7 +4164,10 @@ gtk_flow_box_get_child_at_pos (GtkFlowBox *box,
child = g_sequence_get (iter);
if (!child_is_visible (child))
continue;
+
gtk_widget_get_allocation (child, &allocation);
+ allocation.x -= box_allocation.x;
+ allocation.y -= box_allocation.y;
if (x >= allocation.x && x < (allocation.x + allocation.width) &&
y >= allocation.y && y < (allocation.y + allocation.height))
return GTK_FLOW_BOX_CHILD (child);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]