[gitg] Load font with CSS
- From: Alberto Fanjul <albfan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Load font with CSS
- Date: Fri, 8 Mar 2019 00:51:53 +0000 (UTC)
commit 96f3fada79d9f9baa8dd32add197dc86ccfa0f51
Author: Adwait Rawat <adwait rawat gmail com>
Date: Fri Mar 8 00:52:56 2019 +0100
Load font with CSS
Avoid use deprecated method to update font
Co-authored-by: Adwait Rawat <adwait rawat gmail com>
Co-authored-by: Gaurav Agrawal <agrawalgaurav1999 gmail com>
gitg/commit/gitg-commit-dialog.vala | 18 ++++++++++++++----
gitg/gitg-create-tag-dialog.vala | 18 ++++++++++++++----
gitg/meson.build | 1 +
libgitg/gitg-diff-view-file-renderer-text.vala | 15 ++++++++++++++-
libgitg/meson.build | 1 +
meson.build | 1 +
org.gnome.gitgDevel.json | 18 ++++++++++++++++++
plugins/files/gitg-files.vala | 14 +++++++++++++-
plugins/meson.build | 1 +
9 files changed, 77 insertions(+), 10 deletions(-)
---
diff --git a/gitg/commit/gitg-commit-dialog.vala b/gitg/commit/gitg-commit-dialog.vala
index e95e855c..35ebe200 100644
--- a/gitg/commit/gitg-commit-dialog.vala
+++ b/gitg/commit/gitg-commit-dialog.vala
@@ -81,6 +81,7 @@ class Dialog : Gtk.Dialog
private GtkSpell.Checker? d_spell_checker;
private Ggit.Diff d_diff;
private bool d_infobar_shown;
+ private Gtk.CssProvider css_provider;
public Ggit.Diff? diff
{
@@ -411,6 +412,8 @@ class Dialog : Gtk.Dialog
construct
{
d_font_settings = new Settings("org.gnome.desktop.interface");
+ css_provider = new Gtk.CssProvider();
+ d_source_view_message.get_style_context().add_provider(css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_SETTINGS);
update_font_settings();
@@ -785,10 +788,17 @@ class Dialog : Gtk.Dialog
private void update_font_settings()
{
- var mfont = d_font_settings.get_string("monospace-font-name");
- var desc = Pango.FontDescription.from_string(mfont);
-
- d_source_view_message.override_font(desc);
+ var fname = d_font_settings.get_string("monospace-font-name");
+ var font_desc = Pango.FontDescription.from_string(fname);
+ var css = "textview { %s }".printf(Dazzle.pango_font_description_to_css(font_desc));
+ try
+ {
+ css_provider.load_from_data(css);
+ }
+ catch(Error e)
+ {
+ warning("Error applying font: %s", e.message);
+ }
}
public void show_infobar(string primary_msg,
diff --git a/gitg/gitg-create-tag-dialog.vala b/gitg/gitg-create-tag-dialog.vala
index 9ab3b97b..e7b201d7 100644
--- a/gitg/gitg-create-tag-dialog.vala
+++ b/gitg/gitg-create-tag-dialog.vala
@@ -38,10 +38,13 @@ class CreateTagDialog : Gtk.Dialog
private Gtk.TextTag d_info_tag;
private bool d_is_showing_user_info;
private Settings d_font_settings;
+ private Gtk.CssProvider css_provider;
construct
{
d_font_settings = new Settings("org.gnome.desktop.interface");
+ css_provider = new Gtk.CssProvider();
+ d_text_view_message.get_style_context().add_provider(css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_SETTINGS);
update_font_settings();
@@ -87,10 +90,17 @@ class CreateTagDialog : Gtk.Dialog
private void update_font_settings()
{
- var mfont = d_font_settings.get_string("monospace-font-name");
- var desc = Pango.FontDescription.from_string(mfont);
-
- d_text_view_message.override_font(desc);
+ var fname = d_font_settings.get_string("monospace-font-name");
+ var font_desc = Pango.FontDescription.from_string(fname);
+ var css = "textview { %s }".printf(Dazzle.pango_font_description_to_css(font_desc));
+ try
+ {
+ css_provider.load_from_data(css);
+ }
+ catch(Error e)
+ {
+ warning("Error applying font: %s", e.message);
+ }
}
private void show_user_info()
diff --git a/gitg/meson.build b/gitg/meson.build
index 0d01c4d7..3ccd68ed 100644
--- a/gitg/meson.build
+++ b/gitg/meson.build
@@ -60,6 +60,7 @@ deps = [
gtkspell_dep,
libgitg_ext_dep,
libpeas_dep,
+ libdazzle_dep,
]
cflags = warn_flags + [
diff --git a/libgitg/gitg-diff-view-file-renderer-text.vala b/libgitg/gitg-diff-view-file-renderer-text.vala
index b799093c..d35e5a67 100644
--- a/libgitg/gitg-diff-view-file-renderer-text.vala
+++ b/libgitg/gitg-diff-view-file-renderer-text.vala
@@ -54,6 +54,7 @@ class Gitg.DiffViewFileRendererText : Gtk.SourceView, DiffSelectable, DiffViewFi
private Gtk.SourceBuffer? d_new_highlight_buffer;
private bool d_old_highlight_ready;
private bool d_new_highlight_ready;
+ private Gtk.CssProvider css_provider;
private Region[] d_regions;
private bool d_constructed;
@@ -199,6 +200,9 @@ class Gitg.DiffViewFileRendererText : Gtk.SourceView, DiffSelectable, DiffViewFi
var settings = Gtk.Settings.get_default();
settings.notify["gtk-application-prefer-dark-theme"].connect(update_theme);
+ css_provider = new Gtk.CssProvider();
+ get_style_context().add_provider(css_provider,Gtk.STYLE_PROVIDER_PRIORITY_SETTINGS);
+
update_theme();
if (can_select)
@@ -456,7 +460,16 @@ class Gitg.DiffViewFileRendererText : Gtk.SourceView, DiffSelectable, DiffViewFi
private void update_font()
{
var fname = d_fontsettings.get_string("monospace-font-name");
- this.override_font(Pango.FontDescription.from_string(fname));
+ var font_desc = Pango.FontDescription.from_string(fname);
+ var css = "textview{%s}".printf(Dazzle.pango_font_description_to_css(font_desc));
+ try
+ {
+ css_provider.load_from_data(css);
+ }
+ catch(Error e)
+ {
+ warning("Error applying font: %s", e.message);
+ }
}
private Settings? try_settings(string schema_id)
diff --git a/libgitg/meson.build b/libgitg/meson.build
index 2961f606..e2463f9c 100644
--- a/libgitg/meson.build
+++ b/libgitg/meson.build
@@ -13,6 +13,7 @@ common_deps = [
glib_dep,
gtk_dep,
libgit2_glib_dep,
+ libdazzle_dep,
]
sources = files(
diff --git a/meson.build b/meson.build
index 0266af10..aeed1260 100644
--- a/meson.build
+++ b/meson.build
@@ -137,6 +137,7 @@ libpeas_dep = dependency('libpeas-1.0')
libsecret_dep = dependency('libsecret-1')
libsoup_dep = dependency('libsoup-2.4')
libxml_dep = dependency('libxml-2.0', version: '>= 2.9.0')
+libdazzle_dep = dependency('libdazzle-1.0')
config_dep = valac.find_library('config', dirs: vapi_dir)
gitg_platform_support_dep = valac.find_library('gitg-platform-support', dirs: vapi_dir)
diff --git a/org.gnome.gitgDevel.json b/org.gnome.gitgDevel.json
index ccaab62e..d3e5c73d 100644
--- a/org.gnome.gitgDevel.json
+++ b/org.gnome.gitgDevel.json
@@ -143,6 +143,24 @@
}
]
},
+ {
+ "name" : "libdazzle",
+ "config-opt" : [
+ "--prefix=/opt/gnome",
+ "--libdir=/opt/gnome/lib"
+ ],
+ "buildsystem" : "meson",
+ "builddir" : true,
+ "cleanup" : [
+ "/bin"
+ ],
+ "sources" : [
+ {
+ "type" : "git",
+ "url" : "https://gitlab.gnome.org/GNOME/libdazzle.git"
+ }
+ ]
+ },
{
"name" : "gitg",
"buildsystem" : "meson",
diff --git a/plugins/files/gitg-files.vala b/plugins/files/gitg-files.vala
index 94b7e76a..6f0bece8 100644
--- a/plugins/files/gitg-files.vala
+++ b/plugins/files/gitg-files.vala
@@ -39,6 +39,7 @@ namespace GitgFiles
private Gtk.Viewport d_imagevp;
private Gtk.Image d_image;
+ private Gtk.CssProvider css_provider;
private Gitg.WhenMapped d_whenMapped;
construct
@@ -87,7 +88,16 @@ namespace GitgFiles
private void update_font()
{
var fname = d_fontsettings.get_string("monospace-font-name");
- d_source.override_font(Pango.FontDescription.from_string(fname));
+ var font_desc = Pango.FontDescription.from_string(fname);
+ var css = "textview { %s }".printf(Dazzle.pango_font_description_to_css(font_desc));
+ try
+ {
+ css_provider.load_from_data(css);
+ }
+ catch(Error e)
+ {
+ warning("Error applying font. %s", e.message);
+ }
}
private void update_style()
@@ -139,6 +149,8 @@ namespace GitgFiles
d_paned = ret["paned_files"] as Gtk.Paned;
d_scrolled = ret["scrolled_window_file"] as Gtk.ScrolledWindow;
+ css_provider = new Gtk.CssProvider();
+ d_source.get_style_context().add_provider(css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_SETTINGS);
d_imagevp = new Gtk.Viewport(null, null);
d_image = new Gtk.Image();
d_imagevp.add(d_image);
diff --git a/plugins/meson.build b/plugins/meson.build
index 6ca3d33d..4b39d677 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -12,6 +12,7 @@ plugin_deps = [
libgitg_dep,
libgitg_ext_dep,
libpeas_dep,
+ libdazzle_dep,
]
plugin_dir = join_paths(gitg_pkglibdir, 'plugins')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]