diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-05-13 07:26:51 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-05-13 07:26:51 +0000 |
commit | 1977a44c91ed03d7fa6ea519073c9e138387a7b4 (patch) | |
tree | d540344060332c0979734c7d544debc17c2599d7 | |
parent | b94fe912483746d9981914246176f0c5eae1e531 (diff) |
modified the handling of middle-click and double-click.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@250 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 4 | ||||
-rw-r--r-- | src/summaryview.c | 64 |
3 files changed, 41 insertions, 32 deletions
@@ -1,5 +1,10 @@ 2005-05-13 + * src/summaryview.c: modified the handling of middle-click and + double-click. + +2005-05-13 + * src/summaryview.c: adjusted the width of icon-titled columns. 2005-05-12 diff --git a/ChangeLog.ja b/ChangeLog.ja index 8760b620..2a7bf4ae 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,9 @@ 2005-05-13 + * src/summaryview.c: 中クリックとダブルクリックの処理を修正。 + +2005-05-13 + * src/summaryview.c: アイコンタイトルのカラム幅を調整。 2005-05-12 diff --git a/src/summaryview.c b/src/summaryview.c index 1f0378d5..ed4800fa 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -162,6 +162,8 @@ static void summary_display_msg_full (SummaryView *summaryview, gboolean all_headers, gboolean redisplay); +static void summary_activate_selected (SummaryView *summaryview); + /* message handling */ static void summary_mark_row (SummaryView *summaryview, GtkTreeIter *iter); @@ -215,11 +217,6 @@ static gboolean summary_key_pressed (GtkWidget *treeview, GdkEventKey *event, SummaryView *summaryview); -static void summary_row_activated (GtkTreeView *treeview, - GtkTreePath *path, - GtkTreeViewColumn *column, - SummaryView *summaryview); - static void summary_row_expanded (GtkTreeView *treeview, GtkTreeIter *iter, GtkTreePath *path, @@ -2120,6 +2117,21 @@ void summary_open_msg(SummaryView *summaryview) summary_display_msg_selected(summaryview, TRUE, FALSE); } +static void summary_activate_selected(SummaryView *summaryview) +{ + if (!summaryview->folder_item) + return; + + if (summaryview->folder_item->stype == F_OUTBOX || + summaryview->folder_item->stype == F_DRAFT || + summaryview->folder_item->stype == F_QUEUE) + summary_reedit(summaryview); + else + summary_open_msg(summaryview); + + summaryview->display_msg = FALSE; +} + void summary_view_source(SummaryView *summaryview) { GtkTreeIter iter; @@ -3801,9 +3813,6 @@ static GtkWidget *summary_tree_view_create(SummaryView *summaryview) g_signal_connect(G_OBJECT(treeview), "key_press_event", G_CALLBACK(summary_key_pressed), summaryview); - g_signal_connect(G_OBJECT(treeview), "row-activated", - G_CALLBACK(summary_row_activated), summaryview); - g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(summary_selection_changed), summaryview); @@ -3869,6 +3878,7 @@ static gboolean summary_button_pressed(GtkWidget *treeview, GdkEventButton *event, SummaryView *summaryview) { + GtkTreeIter iter; GtkTreePath *path; GtkTreeViewColumn *column = NULL; gboolean is_selected; @@ -3880,6 +3890,9 @@ static gboolean summary_button_pressed(GtkWidget *treeview, event->x, event->y, &path, &column, NULL, NULL)) return FALSE; + if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(summaryview->store), + &iter, path)) + return FALSE; is_selected = gtk_tree_selection_path_is_selected (summaryview->selection, path); @@ -3887,13 +3900,8 @@ static gboolean summary_button_pressed(GtkWidget *treeview, (GDK_SHIFT_MASK|GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0); if ((event->button == 1 || event->button == 2)) { - GtkTreeIter iter; MsgInfo *msginfo; - if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(summaryview->store), - &iter, path)) - return FALSE; - GET_MSG_INFO(msginfo, &iter); if (column == summaryview->columns[S_COL_MARK]) { @@ -3941,13 +3949,19 @@ static gboolean summary_button_pressed(GtkWidget *treeview, summaryview->can_toggle_selection = FALSE; summaryview->pressed_path = gtk_tree_path_copy(path); } else { - summaryview->can_toggle_selection = TRUE; - if (!mod_pressed && - messageview_is_visible(summaryview->messageview)) - summaryview->display_msg = TRUE; + if (event->type == GDK_2BUTTON_PRESS && is_selected) + summary_activate_selected(summaryview); + else { + summaryview->can_toggle_selection = TRUE; + if (!mod_pressed && + messageview_is_visible(summaryview->messageview)) + summaryview->display_msg = TRUE; + } } } else if (event->button == 2) { - summaryview->display_msg = TRUE; + summary_select_row(summaryview, &iter, TRUE, FALSE); + gtk_tree_path_free(path); + return TRUE; } else if (event->button == 3) { /* right clicked */ gtk_menu_popup(GTK_MENU(summaryview->popupmenu), NULL, NULL, @@ -4068,20 +4082,6 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event, return FALSE; } -static void summary_row_activated(GtkTreeView *treeview, GtkTreePath *path, - GtkTreeViewColumn *column, - SummaryView *summaryview) -{ - if (summaryview->folder_item->stype == F_OUTBOX || - summaryview->folder_item->stype == F_DRAFT || - summaryview->folder_item->stype == F_QUEUE) - summary_reedit(summaryview); - else - summary_open_msg(summaryview); - - summaryview->display_msg = FALSE; -} - static void summary_set_bold_recursive(SummaryView *summaryview, GtkTreeIter *iter) { |