[gimp] Don't lose the active item when reordering between containers of a tree
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Don't lose the active item when reordering between containers of a tree
- Date: Wed, 16 Sep 2009 18:02:13 +0000 (UTC)
commit ff3ca8eee3242a0112725c0ae99410cb0bd0c4ce
Author: Michael Natterer <mitch gimp org>
Date: Wed Sep 16 20:00:48 2009 +0200
Don't lose the active item when reordering between containers of a tree
Implement GimpContainerView::insert_item_after() and select the newly
inserted item if it is the active item in the image.
app/widgets/gimpitemtreeview.c | 33 +++++++++++++++++++++++++++------
1 files changed, 27 insertions(+), 6 deletions(-)
---
diff --git a/app/widgets/gimpitemtreeview.c b/app/widgets/gimpitemtreeview.c
index 060c503..da7d8da 100644
--- a/app/widgets/gimpitemtreeview.c
+++ b/app/widgets/gimpitemtreeview.c
@@ -121,6 +121,9 @@ static gpointer gimp_item_tree_view_insert_item (GimpContainerView *view,
GimpViewable *viewable,
gpointer parent_insert_data,
gint index);
+static void gimp_item_tree_view_insert_item_after (GimpContainerView *view,
+ GimpViewable *viewable,
+ gpointer insert_data);
static gboolean gimp_item_tree_view_select_item (GimpContainerView *view,
GimpViewable *item,
gpointer insert_data);
@@ -275,12 +278,13 @@ gimp_item_tree_view_view_iface_init (GimpContainerViewInterface *iface)
{
parent_view_iface = g_type_interface_peek_parent (iface);
- iface->set_container = gimp_item_tree_view_set_container;
- iface->set_context = gimp_item_tree_view_set_context;
- iface->insert_item = gimp_item_tree_view_insert_item;
- iface->select_item = gimp_item_tree_view_select_item;
- iface->activate_item = gimp_item_tree_view_activate_item;
- iface->context_item = gimp_item_tree_view_context_item;
+ iface->set_container = gimp_item_tree_view_set_container;
+ iface->set_context = gimp_item_tree_view_set_context;
+ iface->insert_item = gimp_item_tree_view_insert_item;
+ iface->insert_item_after = gimp_item_tree_view_insert_item_after;
+ iface->select_item = gimp_item_tree_view_select_item;
+ iface->activate_item = gimp_item_tree_view_activate_item;
+ iface->context_item = gimp_item_tree_view_context_item;
}
static void
@@ -931,6 +935,23 @@ gimp_item_tree_view_insert_item (GimpContainerView *view,
return iter;
}
+static void
+gimp_item_tree_view_insert_item_after (GimpContainerView *view,
+ GimpViewable *viewable,
+ gpointer insert_data)
+{
+ GimpItemTreeView *item_view = GIMP_ITEM_TREE_VIEW (view);
+ GimpItemTreeViewClass *item_view_class;
+ GimpItem *active_item;
+
+ item_view_class = GIMP_ITEM_TREE_VIEW_GET_CLASS (item_view);
+
+ active_item = item_view_class->get_active_item (item_view->priv->image);
+
+ if (active_item == (GimpItem *) viewable)
+ gimp_container_view_select_item (view, viewable);
+}
+
static gboolean
gimp_item_tree_view_select_item (GimpContainerView *view,
GimpViewable *item,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]