aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.ja6
-rw-r--r--src/folderview.c16
3 files changed, 28 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ee7457b8..0ea3d61f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2005-04-07
+ * src/folderview.c: folderview_selection_changed(): don't let
+ GtkTreeView::gtk_tree_view_button_press() grab focus after opening
+ a folder by button press.
+
+2005-04-07
+
* src/folderview.[ch]: reimplemented folder view with GtkTreeView
(DnD is not implemented yet).
* src/folder.[ch]: folder_item_compare(): compare function to sort
diff --git a/ChangeLog.ja b/ChangeLog.ja
index d44fc746..ed112f9a 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,11 @@
2005-04-07
+ * src/folderview.c: folderview_selection_changed(): ボタン押下で
+ フォルダを開いた後 GtkTreeView::gtk_tree_view_button_press() に
+ フォーカスを取得させないようにした。
+
+2005-04-07
+
* src/folderview.[ch]: フォルダビューを GtkTreeView で再実装
(DnD は未実装)。
* src/folder.[ch]: folder_item_compare(): FolderItem のソート用の
diff --git a/src/folderview.c b/src/folderview.c
index 05930860..15bcd746 100644
--- a/src/folderview.c
+++ b/src/folderview.c
@@ -1568,6 +1568,15 @@ static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
return FALSE;
}
+static gboolean folderview_focus_idle_func(gpointer data)
+{
+ FolderView *folderview = (FolderView *)data;
+
+ GTK_WIDGET_SET_FLAGS(folderview->treeview, GTK_CAN_FOCUS);
+
+ return FALSE;
+}
+
static void folderview_selection_changed(GtkTreeSelection *selection,
FolderView *folderview)
{
@@ -1624,6 +1633,13 @@ static void folderview_selection_changed(GtkTreeSelection *selection,
gtk_tree_view_scroll_to_cell
(GTK_TREE_VIEW(folderview->treeview), path, NULL, FALSE,
0.0, 0.0);
+ if (item->total > 0) {
+ /* don't let GtkTreeView::gtk_tree_view_button_press()
+ * grab focus */
+ GTK_WIDGET_UNSET_FLAGS(folderview->treeview,
+ GTK_CAN_FOCUS);
+ g_idle_add(folderview_focus_idle_func, folderview);
+ }
} else
folderview_select_row_ref(folderview, folderview->opened);