talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 0322d713e1a0b699e3eba4afcebde5e2acbf7afd
parent f41dd1a1a1e9d381037b96c0b18cdb75b709cc83
Author: Paweł Pękala <c0rn@gazeta.pl>
Date:   Mon,  7 Nov 2011 21:21:50 +0000

2011-11-07 [pawel]	3.7.10cvs77

	* src/mimeview.c
	* src/textview.c
	* src/textview.h
		Make Home & End keys work in textview

Diffstat:
MChangeLog | 7+++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/mimeview.c | 6+++++-
Msrc/textview.c | 23+++++++++++++++++++++--
Msrc/textview.h | 2++
6 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,10 @@ +2011-11-07 [pawel] 3.7.10cvs77 + + * src/mimeview.c + * src/textview.c + * src/textview.h + Make Home & End keys work in textview + 2011-11-06 [colin] 3.7.10cvs76 * src/mainwindow.c diff --git a/PATCHSETS b/PATCHSETS @@ -4280,3 +4280,4 @@ ( cvs diff -u -r 1.382.2.592 -r 1.382.2.593 src/compose.c; ) > 3.7.10cvs74.patchset ( cvs diff -u -r 1.274.2.333 -r 1.274.2.334 src/mainwindow.c; ) > 3.7.10cvs75.patchset ( cvs diff -u -r 1.274.2.334 -r 1.274.2.335 src/mainwindow.c; ) > 3.7.10cvs76.patchset +( cvs diff -u -r 1.83.2.178 -r 1.83.2.179 src/mimeview.c; cvs diff -u -r 1.96.2.235 -r 1.96.2.236 src/textview.c; cvs diff -u -r 1.12.2.27 -r 1.12.2.28 src/textview.h; ) > 3.7.10cvs77.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=10 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=76 +EXTRA_VERSION=77 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/mimeview.c b/src/mimeview.c @@ -473,7 +473,6 @@ void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo, const gchar *file) { GtkCMCTree *ctree = GTK_CMCTREE(mimeview->ctree); - GtkCMCTreeNode *node; mimeview_clear(mimeview); @@ -1444,6 +1443,11 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event, return FALSE; switch (event->keyval) { + case GDK_KEY_Home: + case GDK_KEY_End: + textview_scroll_max(mimeview->textview, + (event->keyval == GDK_KEY_Home)); + return TRUE; case GDK_KEY_Page_Down: case GDK_KEY_space: if (mimeview_scroll_page(mimeview, diff --git a/src/textview.c b/src/textview.c @@ -2262,6 +2262,23 @@ gboolean textview_scroll_page(TextView *textview, gboolean up) return gtkutils_scroll_page(GTK_WIDGET(text), vadj, up); } +void textview_scroll_max(TextView *textview, gboolean up) +{ + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview->text)); + GtkTextIter iter; + + if (up) { + gtk_text_buffer_get_start_iter(buffer, &iter); + gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview->text), + &iter, 0.0, TRUE, 0.0, 1.0); + + } else { + gtk_text_buffer_get_end_iter(buffer, &iter); + gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview->text), + &iter, 0.0, TRUE, 0.0, 0.0); + } +} + #define KEY_PRESS_EVENT_STOP() \ g_signal_stop_emission_by_name(G_OBJECT(widget), \ "key_press_event"); @@ -2279,17 +2296,19 @@ static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event, switch (event->keyval) { case GDK_KEY_Tab: - case GDK_KEY_Home: case GDK_KEY_Left: case GDK_KEY_Up: case GDK_KEY_Right: case GDK_KEY_Down: case GDK_KEY_Page_Up: case GDK_KEY_Page_Down: - case GDK_KEY_End: case GDK_KEY_Control_L: case GDK_KEY_Control_R: return FALSE; + case GDK_KEY_Home: + case GDK_KEY_End: + textview_scroll_max(textview,(event->keyval == GDK_KEY_Home)); + return TRUE; case GDK_KEY_space: if (summaryview) summary_pass_key_press_event(summaryview, event); diff --git a/src/textview.h b/src/textview.h @@ -108,6 +108,8 @@ void textview_scroll_one_line (TextView *textview, gboolean up); gboolean textview_scroll_page (TextView *textview, gboolean up); +void textview_scroll_max (TextView *textview, + gboolean up); gboolean textview_search_string (TextView *textview, const gchar *str,