diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-07-04 06:28:36 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-07-04 06:28:36 +0000 |
commit | 8644ba8917c984017852e950784e5828772ec216 (patch) | |
tree | 57bc602525f5ae47478569f6072fcfc466c7337b /src/folderview.c | |
parent | e15e2513a81f0eb179508b633aca7d2cfa232450 (diff) |
fixed selection becoming wrong when another folder was clicked quickly.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@392 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/folderview.c')
-rw-r--r-- | src/folderview.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/folderview.c b/src/folderview.c index 15b7f86a..eff37d90 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -1555,6 +1555,9 @@ static gboolean folderview_button_pressed(GtkWidget *widget, &path, NULL, NULL, NULL)) return TRUE; + if (folderview->selection_locked) + return TRUE; + if (event->button == 1 || event->button == 2) { folderview->open_folder = TRUE; } else if (event->button == 3) { @@ -1588,6 +1591,9 @@ static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event, if (!event) return FALSE; + if (folderview->selection_locked) + return TRUE; + switch (event->keyval) { case GDK_Return: if (folderview->selected) { @@ -1688,6 +1694,8 @@ static void folderview_selection_changed(GtkTreeSelection *selection, gtk_tree_path_free(open_path); } + folderview->selection_locked = TRUE; + GTK_EVENTS_FLUSH(); opened = summary_show(folderview->summaryview, item, FALSE); @@ -1708,6 +1716,8 @@ static void folderview_selection_changed(GtkTreeSelection *selection, folderview_select_row_ref(folderview, folderview->opened); gtk_tree_path_free(path); + + folderview->selection_locked = FALSE; } static void folderview_row_expanded(GtkTreeView *treeview, GtkTreeIter *iter, |