[gnome-builder/wip/chergert/gutter] adjust size calculation based on properties
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/chergert/gutter] adjust size calculation based on properties
- Date: Mon, 18 Sep 2017 06:43:49 +0000 (UTC)
commit 260ef300d9d455494b0418e5c8d376d7352e9f1a
Author: Christian Hergert <chergert redhat com>
Date: Sun Sep 17 23:43:26 2017 -0700
adjust size calculation based on properties
libide/sourceview/ide-omni-gutter-renderer.c | 40 ++++++++++++++-----------
1 files changed, 22 insertions(+), 18 deletions(-)
---
diff --git a/libide/sourceview/ide-omni-gutter-renderer.c b/libide/sourceview/ide-omni-gutter-renderer.c
index b3f8467..b2a61d2 100644
--- a/libide/sourceview/ide-omni-gutter-renderer.c
+++ b/libide/sourceview/ide-omni-gutter-renderer.c
@@ -373,6 +373,7 @@ ide_omni_gutter_renderer_recalculate_size (IdeOmniGutterRenderer *self)
GtkTextIter end;
guint line;
int height;
+ gint size = 0;
g_assert (IDE_IS_OMNI_GUTTER_RENDERER (self));
@@ -400,20 +401,23 @@ ide_omni_gutter_renderer_recalculate_size (IdeOmniGutterRenderer *self)
pango_layout_get_pixel_size (layout, &self->number_width, &height);
g_clear_object (&layout);
- /*
- * The spacing for the different items in the gutter looks like:
- *
- * Spacing (2px) Diagnostics (16px) Numbers(N) Changes(2) Spacing(2px)
+ size = 2;
+
+ if (self->show_line_diagnostics)
+ size += DIAGNOSTICS_SIZE + 2;
+
+ if (self->show_line_numbers)
+ size += self->number_width + 2;
+
+ /* The arrow overlaps the changes if we can have breakpoints,
+ * otherwise we just need the space for the line changes.
*/
+ if (self->breakpoints != NULL)
+ size += ARROW_WIDTH + 2;
+ else if (self->show_line_changes)
+ size += CHANGE_WIDTH + 2;
- gtk_source_gutter_renderer_set_size (GTK_SOURCE_GUTTER_RENDERER (self),
- (2 +
- DIAGNOSTICS_SIZE +
- 2 +
- self->number_width +
- 2 +
- ARROW_WIDTH +
- 2));
+ gtk_source_gutter_renderer_set_size (GTK_SOURCE_GUTTER_RENDERER (self), size );
gtk_source_gutter_renderer_queue_draw (GTK_SOURCE_GUTTER_RENDERER (self));
}
@@ -1163,18 +1167,15 @@ ide_omni_gutter_renderer_set_property (GObject *object,
switch (prop_id)
{
case PROP_SHOW_LINE_CHANGES:
- self->show_line_changes = g_value_get_boolean (value);
- ide_omni_gutter_renderer_recalculate_size (self);
+ ide_omni_gutter_renderer_set_show_line_changes (self, g_value_get_boolean (value));
break;
case PROP_SHOW_LINE_DIAGNOSTICS:
- self->show_line_diagnostics = g_value_get_boolean (value);
- ide_omni_gutter_renderer_recalculate_size (self);
+ ide_omni_gutter_renderer_set_show_line_diagnostics (self, g_value_get_boolean (value));
break;
case PROP_SHOW_LINE_NUMBERS:
- self->show_line_numbers = g_value_get_boolean (value);
- ide_omni_gutter_renderer_recalculate_size (self);
+ ide_omni_gutter_renderer_set_show_line_numbers (self, g_value_get_boolean (value));
break;
default:
@@ -1310,6 +1311,7 @@ ide_omni_gutter_renderer_set_show_line_changes (IdeOmniGutterRenderer *self,
{
self->show_line_changes = show_line_changes;
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_SHOW_LINE_CHANGES]);
+ ide_omni_gutter_renderer_recalculate_size (self);
}
}
@@ -1325,6 +1327,7 @@ ide_omni_gutter_renderer_set_show_line_diagnostics (IdeOmniGutterRenderer *self,
{
self->show_line_diagnostics = show_line_diagnostics;
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_SHOW_LINE_DIAGNOSTICS]);
+ ide_omni_gutter_renderer_recalculate_size (self);
}
}
@@ -1340,5 +1343,6 @@ ide_omni_gutter_renderer_set_show_line_numbers (IdeOmniGutterRenderer *self,
{
self->show_line_numbers = show_line_numbers;
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_SHOW_LINE_NUMBERS]);
+ ide_omni_gutter_renderer_recalculate_size (self);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]