[libgd/wip/rishi/main-box: 12/12] main icon box
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgd/wip/rishi/main-box: 12/12] main icon box
- Date: Mon, 19 Dec 2016 14:29:37 +0000 (UTC)
commit 4527a7ac50d8f683081565a850a11386f59a82d1
Author: Debarshi Ray <debarshir gnome org>
Date: Fri Dec 16 23:54:54 2016 +0100
main icon box
libgd/gd-main-icon-box.c | 37 +++++++++++++++----------------------
1 files changed, 15 insertions(+), 22 deletions(-)
---
diff --git a/libgd/gd-main-icon-box.c b/libgd/gd-main-icon-box.c
index 06eeabe..8e29f0b 100644
--- a/libgd/gd-main-icon-box.c
+++ b/libgd/gd-main-icon-box.c
@@ -32,7 +32,6 @@ typedef struct _GdMainIconBoxPrivate GdMainIconBoxPrivate;
struct _GdMainIconBoxPrivate
{
GListModel *model;
- GdMainIconBoxChild *child_button_released;
gboolean selection_changed;
gboolean key_pressed;
gboolean key_shift_pressed;
@@ -56,17 +55,6 @@ G_DEFINE_TYPE_WITH_CODE (GdMainIconBox, gd_main_icon_box, GTK_TYPE_FLOW_BOX,
G_IMPLEMENT_INTERFACE (GD_TYPE_MAIN_BOX_GENERIC,
gd_main_box_generic_interface_init))
static void
-gd_main_icon_box_child_button_released_cb (GdMainIconBoxChild *child, gpointer user_data)
-{
- GdMainIconBox *self = GD_MAIN_ICON_BOX (user_data);
- GdMainIconBoxPrivate *priv;
-
- /* Workaround for lack of gtk_flow_box_get_child_at_pos. */
- priv = gd_main_icon_box_get_instance_private (self);
- priv->child_button_released = child;
-}
-
-static void
gd_main_icon_box_update_last_selected_id (GdMainIconBox *self, GdMainBoxChild *child)
{
GdMainIconBoxPrivate *priv;
@@ -98,8 +86,6 @@ gd_main_icon_box_create_widget_func (gpointer item, gpointer user_data)
child = gd_main_icon_box_child_new (GD_MAIN_BOX_ITEM (item), priv->selection_mode);
gtk_widget_show_all (child);
- g_signal_connect (child, "button-released", G_CALLBACK (gd_main_icon_box_child_button_released_cb), self);
-
return child;
}
@@ -320,20 +306,27 @@ gd_main_icon_box_button_release_event (GtkWidget *widget, GdkEventButton *event)
}
else if (event->button == 3)
{
+ GtkFlowBoxChild *child;
+
/* GtkFlowBox completely ignores the right mouse
* button. Hence, all the right-click handling is done
* here.
*/
- gd_main_box_generic_toggle_selection_for_child (GD_MAIN_BOX_GENERIC (self),
- GD_MAIN_BOX_CHILD (priv->child_button_released),
- (!initiating && (event->state & GDK_SHIFT_MASK) !=
0));
-
- if (priv->selection_changed)
+ child = gtk_flow_box_get_child_at_pos (GTK_FLOW_BOX (self), (gint) event->x, (gint) event->y);
+ if (child != NULL)
{
- g_signal_emit_by_name (self, "selection-changed");
- gd_main_icon_box_update_last_selected_id (self, GD_MAIN_BOX_CHILD
(priv->child_button_released));
- priv->selection_changed = FALSE;
+ gd_main_box_generic_toggle_selection_for_child (GD_MAIN_BOX_GENERIC (self),
+ GD_MAIN_BOX_CHILD (child),
+ (!initiating &&
+ (event->state & GDK_SHIFT_MASK) != 0));
+
+ if (priv->selection_changed)
+ {
+ g_signal_emit_by_name (self, "selection-changed");
+ gd_main_icon_box_update_last_selected_id (self, GD_MAIN_BOX_CHILD (child));
+ priv->selection_changed = FALSE;
+ }
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]