[gnome-builder/wip/plugins] source-view: use hard coded font scales
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/plugins] source-view: use hard coded font scales
- Date: Thu, 11 Jun 2015 20:00:07 +0000 (UTC)
commit 10bfce22cc2d0ab8e46ae6658e88e02ee4662924
Author: Christian Hergert <christian hergert me>
Date: Thu Jun 11 11:59:52 2015 -0700
source-view: use hard coded font scales
This way, we can actually return to 1.0 naturally with ctrl+plus/ctrl+minus
libide/ide-source-view.c | 54 ++++++++++++++++++++++++++++++++++------------
1 files changed, 40 insertions(+), 14 deletions(-)
---
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index f3be0fb..fa14197 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -127,7 +127,7 @@ typedef struct
GdkRGBA bubble_color1;
GdkRGBA bubble_color2;
- gdouble font_scale;
+ guint font_scale;
guint auto_indent : 1;
guint completion_blocked : 1;
@@ -244,8 +244,25 @@ enum {
TARGET_URI_LIST = 100
};
+enum {
+ FONT_SCALE_XX_SMALL,
+ FONT_SCALE_X_SMALL,
+ FONT_SCALE_SMALL,
+ FONT_SCALE_NORMAL,
+ FONT_SCALE_LARGE,
+ FONT_SCALE_X_LARGE,
+ FONT_SCALE_XX_LARGE,
+ FONT_SCALE_XXX_LARGE,
+ LAST_FONT_SCALE
+};
+
static GParamSpec *gParamSpecs [LAST_PROP];
static guint gSignals [LAST_SIGNAL];
+static gdouble gFontScale [LAST_FONT_SCALE] = {
+ 0.57870, 0.69444, 0.83333,
+ 1.0,
+ 1.2, 1.44, 1.728, 2.48832,
+};
static void ide_source_view_real_save_insert_mark (IdeSourceView *self);
static void ide_source_view_real_restore_insert_mark (IdeSourceView *self);
@@ -1127,13 +1144,16 @@ ide_source_view_rebuild_css (IdeSourceView *self)
const PangoFontDescription *font_desc = priv->font_desc;
PangoFontDescription *copy = NULL;
- if (priv->font_scale != 1.0)
+ if (priv->font_scale != FONT_SCALE_NORMAL)
{
+ gdouble font_scale;
guint font_size;
+ font_scale = gFontScale [priv->font_scale];
+
copy = pango_font_description_copy (priv->font_desc);
font_size = pango_font_description_get_size (priv->font_desc);
- pango_font_description_set_size (copy, font_size * priv->font_scale);
+ pango_font_description_set_size (copy, font_size * font_scale);
font_desc = copy;
}
@@ -4834,9 +4854,11 @@ ide_source_view_real_reset_font_size (IdeSourceView *self)
g_assert (IDE_IS_SOURCE_VIEW (self));
- priv->font_scale = 1.0;
-
- ide_source_view_rebuild_css (self);
+ if (priv->font_scale != FONT_SCALE_NORMAL)
+ {
+ priv->font_scale = FONT_SCALE_NORMAL;
+ ide_source_view_rebuild_css (self);
+ }
}
static void
@@ -4846,9 +4868,11 @@ ide_source_view_real_increase_font_size (IdeSourceView *self)
g_assert (IDE_IS_SOURCE_VIEW (self));
- priv->font_scale *= PANGO_SCALE_LARGE;
-
- ide_source_view_rebuild_css (self);
+ if (priv->font_scale < LAST_FONT_SCALE - 1)
+ {
+ priv->font_scale++;
+ ide_source_view_rebuild_css (self);
+ }
}
static void
@@ -4858,9 +4882,11 @@ ide_source_view_real_decrease_font_size (IdeSourceView *self)
g_assert (IDE_IS_SOURCE_VIEW (self));
- priv->font_scale *= PANGO_SCALE_SMALL;
-
- ide_source_view_rebuild_css (self);
+ if (priv->font_scale > 0)
+ {
+ priv->font_scale--;
+ ide_source_view_rebuild_css (self);
+ }
}
static void
@@ -5885,7 +5911,7 @@ ide_source_view_init (IdeSourceView *self)
priv->snippets = g_queue_new ();
priv->selections = g_queue_new ();
priv->show_line_diagnostics = TRUE;
- priv->font_scale = 1.0;
+ priv->font_scale = FONT_SCALE_NORMAL;
priv->file_setting_bindings = egg_binding_group_new ();
egg_binding_group_bind (priv->file_setting_bindings, "indent-width",
@@ -6018,7 +6044,7 @@ ide_source_view_set_font_desc (IdeSourceView *self,
else
priv->font_desc = pango_font_description_from_string (DEFAULT_FONT_DESC);
- priv->font_scale = 1.0;
+ priv->font_scale = FONT_SCALE_NORMAL;
ide_source_view_rebuild_css (self);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]