[gnome-shell/shell-toolkit: 32/32] lookingGlass: Get font from GConf



commit 3bbdc1e1e1cd76ee1343af1b07e9a625bb23ada3
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Mon Sep 21 20:13:00 2009 -0400

    lookingGlass: Get font from GConf
    
    Instead of using "Monospace", pick the users configured monospace font
    name up from GConf. (This is a nice touch, but is more done here to
    demonstrate that we can do it rather than for any great utility.)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=591245

 data/theme/gnome-shell.css |    1 -
 js/ui/lookingGlass.js      |   20 ++++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index 78ff5b3..bb184c9 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -70,7 +70,6 @@ StScrollBar StButton#vhandle:hover
   padding: 4px;
   border: 1px solid rgba(0,0,172,0.85);
   border-radius: 4px;
-  font-family: Monospace;
 
   color: #88ff66;
 }
diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js
index 0c22bda..fea5c1a 100644
--- a/js/ui/lookingGlass.js
+++ b/js/ui/lookingGlass.js
@@ -305,6 +305,13 @@ LookingGlass.prototype = {
         this.actor = new St.BoxLayout({ name: "LookingGlassDialog",
                                         vertical: true,
                                         visible: false });
+
+        let gconf = Shell.GConf.get_default();
+        gconf.watch_directory("/desktop/gnome/interface");
+        gconf.connect("changed::/desktop/gnome/interface/monospace_font_name",
+                      Lang.bind(this, this._updateFont));
+        this._updateFont();
+
         global.stage.add_actor(this.actor);
 
         let toolbar = new St.BoxLayout({ name: "Toolbar" });
@@ -409,6 +416,19 @@ LookingGlass.prototype = {
         }));
     },
 
+    _updateFont: function() {
+        let gconf = Shell.GConf.get_default();
+        let fontName = gconf.get_string("/desktop/gnome/interface/monospace_font_name");
+        // This is mishandled by the scanner - should by Pango.FontDescription_from_string(fontName);
+        // https://bugzilla.gnome.org/show_bug.cgi?id=595889
+        let fontDesc = Pango.Font.description_from_string(fontName);
+        // We ignore everything but size and style; you'd be crazy to set your system-wide
+        // monospace font to be bold/oblique/etc. Could easily be added here.
+        this.actor.style =
+            'font-size: ' + fontDesc.get_size() / 1024. + (fontDesc.get_size_is_absolute() ? 'px' : 'pt') + ';'
+            + 'font-family: "' + fontDesc.get_family() + '";';
+    },
+
     _readHistory: function () {
         if (!this._historyFile.query_exists(null))
             return;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]