Revision: 1492
http://geeqie.svn.sourceforge.net/geeqie/?rev=1492&view=rev
Author: nadvornik
Date: 2009-03-08 12:42:23 +0000 (Sun, 08 Mar 2009)
Log Message:
-----------
dnd fixes
Modified Paths:
--------------
trunk/src/bar_keywords.c
trunk/src/metadata.c
trunk/src/metadata.h
Modified: trunk/src/bar_keywords.c
===================================================================
--- trunk/src/bar_keywords.c 2009-03-08 11:32:12 UTC (rev 1491)
+++ trunk/src/bar_keywords.c 2009-03-08 12:42:23 UTC (rev 1492)
@@ -527,6 +527,7 @@
GtkSelectionData *selection_data,
guint info,
guint time, gpointer data)
{
+ PaneKeywordsData *pkd = data;
GtkTreePath *tpath = NULL;
GtkTreeViewDropPosition pos;
GtkTreeModel *model;
@@ -578,6 +579,12 @@
return;
}
+ if (src_valid && keyword_compare(keyword_tree, &src_kw_iter,
&dest_kw_iter) == 0)
+ {
+ /* can't move to itself */
+ return;
+ }
+
if ((pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE || pos ==
GTK_TREE_VIEW_DROP_INTO_OR_AFTER) &&
!gtk_tree_model_iter_has_child(keyword_tree, &dest_kw_iter))
{
@@ -622,6 +629,7 @@
}
}
string_list_free(new_keywords);
+ bar_keyword_tree_sync(pkd);
}
static gint bar_pane_keywords_dnd_motion(GtkWidget *tree_view, GdkDragContext
*context,
Modified: trunk/src/metadata.c
===================================================================
--- trunk/src/metadata.c 2009-03-08 11:32:12 UTC (rev 1491)
+++ trunk/src/metadata.c 2009-03-08 12:42:23 UTC (rev 1492)
@@ -729,6 +729,16 @@
g_free(casefold);
}
+gboolean keyword_compare(GtkTreeModel *keyword_tree, GtkTreeIter *a,
GtkTreeIter *b)
+{
+ GtkTreePath *pa = gtk_tree_model_get_path(keyword_tree, a);
+ GtkTreePath *pb = gtk_tree_model_get_path(keyword_tree, b);
+ gint ret = gtk_tree_path_compare(pa, pb);
+ gtk_tree_path_free(pa);
+ gtk_tree_path_free(pb);
+ return ret;
+}
+
void keyword_copy(GtkTreeStore *keyword_tree, GtkTreeIter *to, GtkTreeIter
*from)
{
Modified: trunk/src/metadata.h
===================================================================
--- trunk/src/metadata.h 2009-03-08 11:32:12 UTC (rev 1491)
+++ trunk/src/metadata.h 2009-03-08 12:42:23 UTC (rev 1492)
@@ -55,6 +55,8 @@
gchar *keyword_get_casefold(GtkTreeModel *keyword_tree, GtkTreeIter *iter);
gboolean keyword_get_is_keyword(GtkTreeModel *keyword_tree, GtkTreeIter *iter);
+gboolean keyword_compare(GtkTreeModel *keyword_tree, GtkTreeIter *a,
GtkTreeIter *b);
+
void keyword_copy(GtkTreeStore *keyword_tree, GtkTreeIter *to, GtkTreeIter
*from);
void keyword_copy_recursive(GtkTreeStore *keyword_tree, GtkTreeIter *to,
GtkTreeIter *from);
void keyword_move_recursive(GtkTreeStore *keyword_tree, GtkTreeIter *to,
GtkTreeIter *from);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn