[gtksourceview] gutter: selected state optimisation
- From: Sebastien Lafargue <slafargue src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] gutter: selected state optimisation
- Date: Sat, 29 Nov 2014 14:29:04 +0000 (UTC)
commit be244c6a42492834e9b9d7a7457ce09f869ae1cc
Author: Sebastien Lafargue <slafargue gnome org>
Date: Sat Nov 29 15:24:35 2014 +0100
gutter: selected state optimisation
https://bugzilla.gnome.org/show_bug.cgi?id=740883
gtksourceview/gtksourcegutter.c | 23 ++++++++---------------
1 files changed, 8 insertions(+), 15 deletions(-)
---
diff --git a/gtksourceview/gtksourcegutter.c b/gtksourceview/gtksourcegutter.c
index e7872e2..d2171d8 100644
--- a/gtksourceview/gtksourcegutter.c
+++ b/gtksourceview/gtksourcegutter.c
@@ -1058,6 +1058,8 @@ draw_cells (GtkSourceGutter *gutter,
gint cur_line;
GtkTextIter selection_start;
GtkTextIter selection_end;
+ gint selection_start_line = 0;
+ gint selection_end_line = 0;
gboolean has_selection;
GtkTextIter start;
gint i;
@@ -1070,23 +1072,14 @@ draw_cells (GtkSourceGutter *gutter,
cur_line = gtk_text_iter_get_line (&insert_iter);
- gtk_text_buffer_get_selection_bounds (buffer,
- &selection_start,
- &selection_end);
-
- has_selection = !gtk_text_iter_equal (&selection_start, &selection_end);
+ has_selection = gtk_text_buffer_get_selection_bounds (buffer,
+ &selection_start,
+ &selection_end);
if (has_selection)
{
- if (!gtk_text_iter_starts_line (&selection_start))
- {
- gtk_text_iter_set_line_offset (&selection_start, 0);
- }
-
- if (!gtk_text_iter_ends_line (&selection_end))
- {
- gtk_text_iter_forward_to_line_end (&selection_end);
- }
+ selection_start_line = gtk_text_iter_get_line (&selection_start);
+ selection_end_line = gtk_text_iter_get_line (&selection_end);
}
start = info->start;
@@ -1135,7 +1128,7 @@ draw_cells (GtkSourceGutter *gutter,
}
if (has_selection &&
- gtk_text_iter_in_range (&start, &selection_start, &selection_end))
+ selection_start_line <= line_to_paint && line_to_paint <= selection_end_line)
{
state |= GTK_SOURCE_GUTTER_RENDERER_STATE_SELECTED;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]