aboutsummaryrefslogtreecommitdiff
path: root/src/folderview.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-07-04 06:28:36 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-07-04 06:28:36 +0000
commit8644ba8917c984017852e950784e5828772ec216 (patch)
tree57bc602525f5ae47478569f6072fcfc466c7337b /src/folderview.c
parente15e2513a81f0eb179508b633aca7d2cfa232450 (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.c10
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,