[gnome-builder/wip/libide-merge] dont scroll to mark when reentering focus
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/libide-merge] dont scroll to mark when reentering focus
- Date: Thu, 19 Mar 2015 21:15:35 +0000 (UTC)
commit 8e995b437780c91b4d335398055c9ee831a5e89c
Author: Christian Hergert <christian hergert me>
Date: Thu Mar 19 14:15:28 2015 -0700
dont scroll to mark when reentering focus
libide/ide-source-view.c | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index 99b08cd..75a6677 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -3282,11 +3282,11 @@ ide_source_view_real_move_error (IdeSourceView *self,
}
static void
-ide_source_view_real_restore_insert_mark (IdeSourceView *self)
+ide_source_view_real_restore_insert_mark_full (IdeSourceView *self,
+ gboolean move_mark)
{
IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
GtkTextBuffer *buffer;
- GtkTextMark *insert;
GtkTextIter iter;
GtkTextIter selection;
guint line_offset;
@@ -3315,8 +3315,19 @@ ide_source_view_real_restore_insert_mark (IdeSourceView *self)
gtk_text_buffer_select_range (buffer, &iter, &selection);
- insert = gtk_text_buffer_get_insert (buffer);
- ide_source_view_scroll_mark_onscreen (self, insert);
+ if (move_mark)
+ {
+ GtkTextMark *insert;
+
+ insert = gtk_text_buffer_get_insert (buffer);
+ ide_source_view_scroll_mark_onscreen (self, insert);
+ }
+}
+
+static void
+ide_source_view_real_restore_insert_mark (IdeSourceView *self)
+{
+ ide_source_view_real_restore_insert_mark_full (self, TRUE);
}
static void
@@ -4159,8 +4170,6 @@ ide_source_view_focus_in_event (GtkWidget *widget,
g_assert (IDE_IS_SOURCE_VIEW (self));
- ret = GTK_WIDGET_CLASS (ide_source_view_parent_class)->focus_in_event (widget, event);
-
/*
* Restore the completion window now that we have regained focus.
*/
@@ -4174,12 +4183,14 @@ ide_source_view_focus_in_event (GtkWidget *widget,
*/
priv->saved_selection_line = priv->saved_line;
priv->saved_selection_line_offset = priv->saved_line_offset;
- ide_source_view_real_restore_insert_mark (self);
+ ide_source_view_real_restore_insert_mark_full (self, FALSE);
/* restore line highlight if enabled */
if (priv->highlight_current_line)
gtk_source_view_set_highlight_current_line (GTK_SOURCE_VIEW (self), TRUE);
+ ret = GTK_WIDGET_CLASS (ide_source_view_parent_class)->focus_in_event (widget, event);
+
return ret;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]