]> git.sur5r.net Git - i3/i3/commitdiff
Make i3-nagbar use the same font as configured for i3
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 26 Jan 2013 08:55:38 +0000 (09:55 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 26 Jan 2013 08:55:38 +0000 (09:55 +0100)
include/libi3.h
libi3/font.c
src/config_parser.c
src/key_press.c

index 6714cc5b921d6f61a201abaee51dd9f6337ba51e..53f3383d35390671e0f2621e23c57150e1d1fc0a 100644 (file)
@@ -47,6 +47,9 @@ struct Font {
     /** The height of the font, built from font_ascent + font_descent */
     int height;
 
+    /** The pattern/name used to load the font. */
+    char *pattern;
+
     union {
         struct {
             /** The xcb-id for the font */
index a2162c47cea1e0b55fd7a0b287d56157e44f0a44..8239b1f4414e8cc2ea6974c35da66c8042a7b6a4 100644 (file)
@@ -2,7 +2,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
  *
  */
 #include <assert.h>
@@ -143,13 +143,17 @@ i3Font load_font(const char *pattern, const bool fallback) {
 #if PANGO_SUPPORT
     /* Try to load a pango font if specified */
     if (strlen(pattern) > strlen("pango:") && !strncmp(pattern, "pango:", strlen("pango:"))) {
-        pattern += strlen("pango:");
-        if (load_pango_font(&font, pattern))
+        const char *font_pattern = pattern + strlen("pango:");
+        if (load_pango_font(&font, font_pattern)) {
+            font.pattern = sstrdup(pattern);
             return font;
+        }
     } else if (strlen(pattern) > strlen("xft:") && !strncmp(pattern, "xft:", strlen("xft:"))) {
-        pattern += strlen("xft:");
-        if (load_pango_font(&font, pattern))
+        const char *font_pattern = pattern + strlen("xft:");
+        if (load_pango_font(&font, font_pattern)) {
+            font.pattern = sstrdup(pattern);
             return font;
+        }
     }
 #endif
 
@@ -189,6 +193,7 @@ i3Font load_font(const char *pattern, const bool fallback) {
         }
     }
 
+    font.pattern = sstrdup(pattern);
     LOG("Using X font %s\n", pattern);
 
     /* Get information (height/name) for this font */
@@ -222,6 +227,7 @@ void set_font(i3Font *font) {
  *
  */
 void free_font(void) {
+    free(savedFont->pattern);
     switch (savedFont->type) {
         case FONT_TYPE_NONE:
             /* Nothing to do */
index 7391896bf4ef391023b5e17834ead257085f92f7..1cdc7acba8cd745fd1ba4803dbb41233996d5061 100644 (file)
@@ -4,7 +4,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
  *
  * config_parser.c: hand-written parser to parse configuration directives.
  *
@@ -1059,6 +1059,8 @@ void parse_file(const char *f) {
         sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
         char *argv[] = {
             NULL, /* will be replaced by the executable path */
+            "-f",
+            config.font.pattern,
             "-t",
             (context->has_errors ? "error" : "warning"),
             "-m",
index ca5c3a0bbd7ab105d56e34ad36ce93c164dc2d60..2f77a2a4da31b56e2bfcb8311ea1f90380e2658a 100644 (file)
@@ -4,7 +4,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
  *
  * key_press.c: key press handler
  *
@@ -145,6 +145,8 @@ void handle_key_press(xcb_key_press_event_t *event) {
             sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
             char *argv[] = {
                 NULL, /* will be replaced by the executable path */
+                "-f",
+                config.font.pattern,
                 "-t",
                 "error",
                 "-m",