From: Paweł Pękala Date: Mon, 31 Oct 2011 21:46:22 +0000 (+0000) Subject: 2011-10-31 [pawel] 3.7.10cvs66 X-Git-Tag: REL_3_8_0~48 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=b1a7cd1f82ee41f96fa35a49517bcf3cf9a90ee4;hp=a4bbca4efbc79a0313fc1bc4f0ed9c34380ddd33 2011-10-31 [pawel] 3.7.10cvs66 * src/messageview.c * src/mimeview.c * src/mimeview.h * src/summaryview.c Fix bug #2526 'When reading message in separate window, n and p keys do not work' - fix key event handling in messageview - remove bindings for 'n' and 'p' keys in mimeview (next-part and prev-part actions) - instead add 'z' key for prev-part, we have 'a' key for next-part already --- diff --git a/ChangeLog b/ChangeLog index dab38cd3b..628a9f4f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2011-10-31 [pawel] 3.7.10cvs66 + + * src/messageview.c + * src/mimeview.c + * src/mimeview.h + * src/summaryview.c + Fix bug #2526 'When reading message in separate window, + n and p keys do not work' + - fix key event handling in messageview + - remove bindings for 'n' and 'p' keys in mimeview (next-part + and prev-part actions) + - instead add 'z' key for prev-part, we have 'a' key + for next-part already + 2011-10-31 [colin] 3.7.10cvs65 * src/common/defs.h diff --git a/PATCHSETS b/PATCHSETS index 28a9dd829..d8e4a8270 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -4269,3 +4269,4 @@ ( cvs diff -u -r 1.12.2.78 -r 1.12.2.79 src/prefs_template.c; ) > 3.7.10cvs63.patchset ( cvs diff -u -r 1.395.2.434 -r 1.395.2.435 src/summaryview.c; cvs diff -u -r 1.5.2.100 -r 1.5.2.101 src/gtk/gtkutils.c; ) > 3.7.10cvs64.patchset ( cvs diff -u -r 1.9.2.52 -r 1.9.2.53 src/common/defs.h; ) > 3.7.10cvs65.patchset +( cvs diff -u -r 1.94.2.221 -r 1.94.2.222 src/messageview.c; cvs diff -u -r 1.83.2.176 -r 1.83.2.177 src/mimeview.c; cvs diff -u -r 1.20.2.33 -r 1.20.2.34 src/mimeview.h; cvs diff -u -r 1.395.2.435 -r 1.395.2.436 src/summaryview.c; ) > 3.7.10cvs66.patchset diff --git a/configure.ac b/configure.ac index 3f47e1297..a15dccd50 100644 --- a/configure.ac +++ b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=10 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=65 +EXTRA_VERSION=66 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/messageview.c b/src/messageview.c index 5524362fe..6e94f5e8d 100644 --- a/src/messageview.c +++ b/src/messageview.c @@ -1727,10 +1727,7 @@ static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, if (event && (event->state & GDK_SHIFT_MASK) && event->keyval != GDK_KEY_space) return FALSE; - g_signal_stop_emission_by_name(G_OBJECT(widget), - "key_press_event"); - mimeview_pass_key_press_event(messageview->mimeview, event); - return FALSE; + return mimeview_pass_key_press_event(messageview->mimeview, event); } #endif diff --git a/src/mimeview.c b/src/mimeview.c index 7bf8510f6..57688f59e 100644 --- a/src/mimeview.c +++ b/src/mimeview.c @@ -194,6 +194,11 @@ static void mimeview_select_next_part_cb(GtkAction *action, gpointer data) mimeview_select_next_part((MimeView *)data); } +static void mimeview_select_prev_part_cb(GtkAction *action, gpointer data) +{ + mimeview_select_prev_part((MimeView *)data); +} + static GtkActionEntry mimeview_menu_actions[] = { { "MimeView", NULL, "MimeView" }, { "MimeView/Open", NULL, N_("_Open (l)"), NULL, "Open MIME part", G_CALLBACK(mimeview_launch_cb) }, @@ -203,7 +208,8 @@ static GtkActionEntry mimeview_menu_actions[] = { { "MimeView/DisplayAsText", NULL, N_("_Display as text (t)"), NULL, "Display as text", G_CALLBACK(mimeview_display_as_text_cb) }, { "MimeView/SaveAs", NULL, N_("_Save as (y)..."), NULL, "Save as", G_CALLBACK(mimeview_save_as_cb) }, { "MimeView/SaveAll", NULL, N_("Save _all..."), NULL, "Save all parts", G_CALLBACK(mimeview_save_all_cb) }, - { "MimeView/NextPart", NULL, N_("Next part (a)"), NULL, "Next part", G_CALLBACK(mimeview_select_next_part_cb) } + { "MimeView/NextPart", NULL, N_("Next part (a)"), NULL, "Next part", G_CALLBACK(mimeview_select_next_part_cb) }, + { "MimeView/PrevPart", NULL, N_("Previous part (z)"), NULL, "Previous part", G_CALLBACK(mimeview_select_prev_part_cb) } }; static GtkTargetEntry mimeview_mime_types[] = @@ -387,6 +393,9 @@ MimeView *mimeview_create(MainWindow *mainwin) MENUITEM_ADDUI_MANAGER(mimeview->ui_manager, "/Menus/MimeView/", "NextPart", "MimeView/NextPart", GTK_UI_MANAGER_MENUITEM); + MENUITEM_ADDUI_MANAGER(mimeview->ui_manager, + "/Menus/MimeView/", "PrevPart", "MimeView/PrevPart", + GTK_UI_MANAGER_MENUITEM); popupmenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM( gtk_ui_manager_get_widget(mimeview->ui_manager, "/Menus/MimeView")) ); @@ -1378,9 +1387,9 @@ static gboolean part_button_pressed(MimeView *mimeview, GdkEventButton *event, } -void mimeview_pass_key_press_event(MimeView *mimeview, GdkEventKey *event) +gboolean mimeview_pass_key_press_event(MimeView *mimeview, GdkEventKey *event) { - mimeview_key_pressed(mimeview->ctree, event, mimeview); + return mimeview_key_pressed(mimeview->ctree, event, mimeview); } static void mimeview_select_next_part(MimeView *mimeview) @@ -1465,18 +1474,6 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event, case GDK_KEY_Down: mimeview_scroll_one_line(mimeview, (event->keyval == GDK_KEY_Up)); return TRUE; - case GDK_KEY_n: - case GDK_KEY_N: - BREAK_ON_MODIFIER_KEY(); - mimeview_select_next_part(mimeview); - return TRUE; - - case GDK_KEY_p: - case GDK_KEY_P: - BREAK_ON_MODIFIER_KEY(); - mimeview_select_prev_part(mimeview); - return TRUE; - case GDK_KEY_y: BREAK_ON_MODIFIER_KEY(); mimeview_save_as(mimeview); @@ -1503,11 +1500,15 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event, BREAK_ON_MODIFIER_KEY(); mimeview_select_next_part(mimeview); return TRUE; + case GDK_KEY_z: + BREAK_ON_MODIFIER_KEY(); + mimeview_select_prev_part(mimeview); + return TRUE; default: break; } - if (!mimeview->messageview->mainwin) return FALSE; + if (mimeview->messageview->new_window) return FALSE; return summary_pass_key_press_event(summaryview, event); } @@ -2168,19 +2169,6 @@ static gint icon_key_pressed(GtkWidget *button, GdkEventKey *event, mimeview_scroll_one_line(mimeview, (event->state & GDK_MOD1_MASK) != 0); return TRUE; - - case GDK_KEY_n: - case GDK_KEY_N: - BREAK_ON_MODIFIER_KEY(); - mimeview_select_next_part(mimeview); - return TRUE; - - case GDK_KEY_p: - case GDK_KEY_P: - BREAK_ON_MODIFIER_KEY(); - mimeview_select_prev_part(mimeview); - break; - case GDK_KEY_y: BREAK_ON_MODIFIER_KEY(); mimeview_save_as(mimeview); diff --git a/src/mimeview.h b/src/mimeview.h index 043255928..7a974148a 100644 --- a/src/mimeview.h +++ b/src/mimeview.h @@ -161,7 +161,7 @@ void mimeview_clear (MimeView *mimeview); MimeInfo *mimeview_get_selected_part (MimeView *mimeview); -void mimeview_pass_key_press_event (MimeView *mimeview, +gboolean mimeview_pass_key_press_event (MimeView *mimeview, GdkEventKey *event); void mimeview_register_viewer_factory (MimeViewerFactory *factory); diff --git a/src/summaryview.c b/src/summaryview.c index aa5b39ab3..b468f41c5 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -6670,6 +6670,7 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event, case GDK_KEY_o: case GDK_KEY_c: case GDK_KEY_a: + case GDK_KEY_z: if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) == 0) { g_signal_stop_emission_by_name(G_OBJECT(widget), "key_press_event");