From 4184031faba9e0e24c11c8869d6dbaf8b7258aeb Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 24 Jan 2003 00:54:41 +0000 Subject: [PATCH] Make move bindings viewport-based when the cursor is invisible. (#78669) 2003-01-24 Matthias Clasen * gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make move bindings viewport-based when the cursor is invisible. (#78669) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtktextview.c | 26 ++++++++++++++++++++++++++ 6 files changed, 51 insertions(+) diff --git a/ChangeLog b/ChangeLog index 2470ed3a6b..d14a44e08a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-01-24 Matthias Clasen + + * gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make + move bindings viewport-based when the cursor is invisible. (#78669) + 2003-01-23 Daniel Elstner Merge from HEAD. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 2470ed3a6b..d14a44e08a 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2003-01-24 Matthias Clasen + + * gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make + move bindings viewport-based when the cursor is invisible. (#78669) + 2003-01-23 Daniel Elstner Merge from HEAD. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 2470ed3a6b..d14a44e08a 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +2003-01-24 Matthias Clasen + + * gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make + move bindings viewport-based when the cursor is invisible. (#78669) + 2003-01-23 Daniel Elstner Merge from HEAD. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 2470ed3a6b..d14a44e08a 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +2003-01-24 Matthias Clasen + + * gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make + move bindings viewport-based when the cursor is invisible. (#78669) + 2003-01-23 Daniel Elstner Merge from HEAD. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 2470ed3a6b..d14a44e08a 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +2003-01-24 Matthias Clasen + + * gtk/gtktextview.c (gtk_text_view_move_cursor_internal): Make + move bindings viewport-based when the cursor is invisible. (#78669) + 2003-01-23 Daniel Elstner Merge from HEAD. diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 9a6c0f6091..4bd2351c31 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -4553,6 +4553,32 @@ gtk_text_view_move_cursor_internal (GtkTextView *text_view, return; } + if (!text_view->cursor_visible) + { + GtkAdjustment *adj; + + switch (step) + { + case GTK_MOVEMENT_LOGICAL_POSITIONS: + case GTK_MOVEMENT_VISUAL_POSITIONS: + case GTK_MOVEMENT_WORDS: + adj = get_hadjustment (text_view); + break; + case GTK_MOVEMENT_DISPLAY_LINES: + case GTK_MOVEMENT_DISPLAY_LINE_ENDS: + case GTK_MOVEMENT_PARAGRAPHS: + adj = get_vadjustment (text_view); + break; + } + + if (count > 0) + set_adjustment_clamped (adj, adj->value + adj->step_increment); + else + set_adjustment_clamped (adj, adj->value - adj->step_increment); + + return; + } + gtk_text_buffer_get_iter_at_mark (get_buffer (text_view), &insert, gtk_text_buffer_get_mark (get_buffer (text_view), "insert"));