aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-01 04:47:35 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-01 04:47:35 +0000
commit5dd19bbb924c5b952a1ee5cca9238faa442766a5 (patch)
tree99741a2839e74704da599f50629ccd99750586cb
parent9a70fe7151ed28bc9c00c4666e9ff0d3d5b7cc0d (diff)
modified folderview key handling code.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2594 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog10
-rw-r--r--src/folderview.c15
2 files changed, 18 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index b3cbfda2..f2ad4229 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2010-07-01
+ * src/folderview.c: folderview_key_pressed(): modified key handling
+ code.
+
+2010-07-01
+
+ * src/folderview.c: folderview_key_pressed(): move up/collapse/expand
+ row with left/right key (like Windows Explorer).
+
+2010-07-01
+
* src/mimeview.c: mimeview_selection_changed(): don't display images
when inline image setting is off (workaround for vulnerability).
diff --git a/src/folderview.c b/src/folderview.c
index f0c3ea26..ac971906 100644
--- a/src/folderview.c
+++ b/src/folderview.c
@@ -1861,6 +1861,7 @@ static gboolean folderview_button_released(GtkWidget *treeview,
static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
FolderView *folderview)
{
+ GtkTreeView *treeview = GTK_TREE_VIEW(widget);
GtkTreePath *opened = NULL, *selected = NULL;
GtkAdjustment *adj;
gboolean moved;
@@ -1907,21 +1908,21 @@ static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
return FALSE;
adj = gtk_scrolled_window_get_hadjustment
(GTK_SCROLLED_WINDOW(folderview->scrolledwin));
- if (adj->lower != adj->value)
+ if (adj->lower < adj->value)
return FALSE;
if (folderview->selected) {
selected = gtk_tree_row_reference_get_path
(folderview->selected);
if (selected) {
- if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(folderview->treeview), selected)) {
- gtk_tree_view_collapse_row(GTK_TREE_VIEW(folderview->treeview), selected);
+ if (gtk_tree_view_row_expanded(treeview, selected)) {
+ gtk_tree_view_collapse_row(treeview, selected);
gtk_tree_path_free(selected);
return TRUE;
}
gtk_tree_path_free(selected);
}
}
- g_signal_emit_by_name(G_OBJECT(folderview->treeview),
+ g_signal_emit_by_name(G_OBJECT(treeview),
"select-cursor-parent", &moved);
return TRUE;
case GDK_Right:
@@ -1931,14 +1932,14 @@ static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
return FALSE;
adj = gtk_scrolled_window_get_hadjustment
(GTK_SCROLLED_WINDOW(folderview->scrolledwin));
- if (adj->upper - adj->page_size != adj->value)
+ if (adj->upper - adj->page_size > adj->value)
return FALSE;
if (folderview->selected) {
selected = gtk_tree_row_reference_get_path
(folderview->selected);
if (selected) {
- if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(folderview->treeview), selected)) {
- gtk_tree_view_expand_row(GTK_TREE_VIEW(folderview->treeview), selected, FALSE);
+ if (!gtk_tree_view_row_expanded(treeview, selected)) {
+ gtk_tree_view_expand_row(treeview, selected, FALSE);
gtk_tree_path_free(selected);
return TRUE;
}