diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-04-07 09:04:51 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-04-07 09:04:51 +0000 |
commit | 3030a5e737c738c7b9466786c8696ee68c04f547 (patch) | |
tree | da41d0acfb2e660675dbf5d4473881d481039798 | |
parent | 39c49cbb79d346f277d236c6b069a9de7dad4211 (diff) |
don't let GtkTreeView grab focus after opening a folder by button press.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@203 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.ja | 6 | ||||
-rw-r--r-- | src/folderview.c | 16 |
3 files changed, 28 insertions, 0 deletions
@@ -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); |