[gnome-builder] view: keep selection on modifier keys pressed
- From: Sébastien Lafargue <slafargue src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] view: keep selection on modifier keys pressed
- Date: Wed, 13 Jan 2016 17:14:13 +0000 (UTC)
commit 7d0e8fb28feb976810b64d9c2998902a3e9e09cf
Author: Sebastien Lafargue <slafargue gnome org>
Date: Wed Jan 13 17:42:51 2016 +0100
view: keep selection on modifier keys pressed
We have some code to keep the cursor on a char
( so that it not end on \n) but the selection
is not take into account in this case.
To reproduce this, the start of your selection
must be at the end of a non-empty line and
you must press a non-visible key like <shift>
libide/ide-source-view.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index 68031d9..cfe83a9 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -2057,16 +2057,21 @@ ide_source_view_do_mode (IdeSourceView *self,
{
GtkTextBuffer *buffer;
GtkTextMark *insert;
- GtkTextIter iter;
+ GtkTextMark *selection;
+ GtkTextIter insert_iter;
+ GtkTextIter selection_iter;
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self));
insert = gtk_text_buffer_get_insert (buffer);
- gtk_text_buffer_get_iter_at_mark (buffer, &iter, insert);
+ selection = gtk_text_buffer_get_selection_bound (buffer);
- if (gtk_text_iter_ends_line (&iter) && !gtk_text_iter_starts_line (&iter))
+ gtk_text_buffer_get_iter_at_mark (buffer, &insert_iter, insert);
+ gtk_text_buffer_get_iter_at_mark (buffer, &selection_iter, selection);
+
+ if (gtk_text_iter_ends_line (&insert_iter) && !gtk_text_iter_starts_line (&insert_iter))
{
- gtk_text_iter_backward_char (&iter);
- gtk_text_buffer_select_range (buffer, &iter, &iter);
+ gtk_text_iter_backward_char (&insert_iter);
+ gtk_text_buffer_select_range (buffer, &insert_iter, &selection_iter);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]