Date: Saturday, October 15, 2016 @ 21:58:32 Author: demize Revision: 192323
Add patch to fix font handling in GTK+ 3.21 Added: girara/trunk/fix-font-handling-gtk-3.21.patch Modified: girara/trunk/PKGBUILD ----------------------------------+ PKGBUILD | 11 +- fix-font-handling-gtk-3.21.patch | 190 +++++++++++++++++++++++++++++++++++++ 2 files changed, 199 insertions(+), 2 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-10-15 20:53:29 UTC (rev 192322) +++ PKGBUILD 2016-10-15 21:58:32 UTC (rev 192323) @@ -19,9 +19,16 @@ depends=('gtk3') -source=(http://pwmt.org/projects/girara/download/girara-$pkgver.tar.gz) -sha1sums=(674e4294fe091fe93a1c186d95b3263b30cd8a5e) +source=(http://pwmt.org/projects/girara/download/girara-$pkgver.tar.gz + fix-font-handling-gtk-3.21.patch) +sha1sums=('674e4294fe091fe93a1c186d95b3263b30cd8a5e' + '609f469dc6ad4570959dea028fd36f8ba8562231') +prepare() { + cd girara-$pkgver + patch -p1 <"$srcdir"/fix-font-handling-gtk-3.21.patch +} + build() { cd girara-$pkgver touch colors.mk Added: fix-font-handling-gtk-3.21.patch =================================================================== --- fix-font-handling-gtk-3.21.patch (rev 0) +++ fix-font-handling-gtk-3.21.patch 2016-10-15 21:58:32 UTC (rev 192323) @@ -0,0 +1,190 @@ +From 949c879aa84e9496fabc7d3602060e29f9dc42a1 Mon Sep 17 00:00:00 2001 +From: Sebastian Ramacher <sebastian+...@ramacher.at> +Date: Sat, 3 Sep 2016 11:54:53 +0200 +Subject: [PATCH] Update font handling for changes in Gtk+ 3.21 + +Signed-off-by: Sebastian Ramacher <sebastian+...@ramacher.at> +--- + data/girara-post-3.20.css_t | 11 ++++++++++- + girara/config.c | 3 +-- + girara/internal.h | 2 ++ + girara/session.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 4 files changed, 103 insertions(+), 6 deletions(-) + +diff --git a/data/girara-post-3.20.css_t b/data/girara-post-3.20.css_t +index 491e08e..29758de 100644 +--- a/data/girara-post-3.20.css_t ++++ b/data/girara-post-3.20.css_t +@@ -2,7 +2,15 @@ + color: @default-fg@; + background-color: @default-bg@; + background-image: none; +- font: @font@; ++ font-family: @font-family@; ++ font-size: @font-size@; ++ font-weight: @font-weight@; ++ box-shadow: none; ++ border-style: none; ++ margin: 0px; ++ padding: @bottombox-padding1@px @bottombox-padding2@px @bottombox-padding3@px ++ @bottombox-padding4@px; ++ + } + + /* Scrollbar */ +@@ -114,4 +122,5 @@ + #@session@ scrolledwindow overshoot.right, + #@session@ scrolledwindow overshoot.right:backdrop { + background-color: transparent; ++ background-image: none; + } +diff --git a/girara/config.c b/girara/config.c +index 4e4092a..63127e8 100644 +--- a/girara/config.c ++++ b/girara/config.c +@@ -50,8 +50,7 @@ cb_font(girara_session_t* session, const char* UNUSED(name), + { + g_return_if_fail(session != NULL && value != NULL); + +- girara_template_set_variable_value(session->private_data->csstemplate, "font", +- value); ++ css_template_fill_font(session->private_data->csstemplate, value); + } + + static void +diff --git a/girara/internal.h b/girara/internal.h +index dac88b5..8e2d754 100644 +--- a/girara/internal.h ++++ b/girara/internal.h +@@ -148,6 +148,8 @@ HIDDEN bool girara_cmd_dump_config(girara_session_t* session, + HIDDEN bool girara_sc_feedkeys(girara_session_t* session, girara_argument_t* argument, + girara_event_t* event, unsigned int t); + ++HIDDEN void css_template_fill_font(GiraraTemplate* csstemplate, const char* font); ++ + /** + * Structure of a command + */ +diff --git a/girara/session.c b/girara/session.c +index b313f4d..2172fc7 100644 +--- a/girara/session.c ++++ b/girara/session.c +@@ -44,7 +44,6 @@ init_template_engine(GiraraTemplate* csstemplate) + { + static const char* variable_names[] = { + "session", +- "font", + "default-fg", + "default-bg", + "inputbar-fg", +@@ -78,6 +77,88 @@ init_template_engine(GiraraTemplate* csstemplate) + for (size_t idx = 0; idx < LENGTH(variable_names); ++idx) { + girara_template_add_variable(csstemplate, variable_names[idx]); + } ++ ++ if (gtk_check_version(3, 20, 0) == NULL) { ++ girara_template_add_variable(csstemplate, "font-family"); ++ girara_template_add_variable(csstemplate, "font-size"); ++ girara_template_add_variable(csstemplate, "font-weight"); ++ } else { ++ girara_template_add_variable(csstemplate, "font"); ++ } ++} ++ ++void ++css_template_fill_font(GiraraTemplate* csstemplate, const char* font) ++{ ++ if (gtk_check_version(3, 20, 0) != NULL) { ++ girara_template_set_variable_value(csstemplate, "font", font); ++ return; ++ } ++ ++ PangoFontDescription* descr = pango_font_description_from_string(font); ++ if (descr == NULL) { ++ return; ++ } ++ ++ girara_template_set_variable_value(csstemplate, "font-family", ++ pango_font_description_get_family(descr)); ++ ++ char* size = g_strdup_printf("%d%s", pango_font_description_get_size(descr) / PANGO_SCALE, ++ pango_font_description_get_size_is_absolute(descr) == FALSE ? "pt" : ""); ++ girara_template_set_variable_value(csstemplate, "font-size", size); ++ g_free(size); ++ ++ switch (pango_font_description_get_weight(descr)) { ++ case PANGO_WEIGHT_THIN: ++ girara_template_set_variable_value(csstemplate, "font-weight", "thin"); ++ break; ++ ++ case PANGO_WEIGHT_ULTRALIGHT: ++ girara_template_set_variable_value(csstemplate, "font-weight", "ultralight"); ++ break; ++ ++ case PANGO_WEIGHT_SEMILIGHT: ++ girara_template_set_variable_value(csstemplate, "font-weight", "light"); ++ break; ++ ++ case PANGO_WEIGHT_LIGHT: ++ girara_template_set_variable_value(csstemplate, "font-weight", "light"); ++ break; ++ ++ case PANGO_WEIGHT_BOOK: ++ girara_template_set_variable_value(csstemplate, "font-weight", "book"); ++ break; ++ ++ case PANGO_WEIGHT_MEDIUM: ++ girara_template_set_variable_value(csstemplate, "font-weight", "medium"); ++ break; ++ ++ case PANGO_WEIGHT_SEMIBOLD: ++ girara_template_set_variable_value(csstemplate, "font-weight", "semibold"); ++ break; ++ ++ case PANGO_WEIGHT_BOLD: ++ girara_template_set_variable_value(csstemplate, "font-weight", "bold"); ++ break; ++ ++ case PANGO_WEIGHT_ULTRABOLD: ++ girara_template_set_variable_value(csstemplate, "font-weight", "ultrabold"); ++ break; ++ ++ case PANGO_WEIGHT_HEAVY: ++ girara_template_set_variable_value(csstemplate, "font-weight", "heavy"); ++ break; ++ ++ case PANGO_WEIGHT_ULTRAHEAVY: ++ girara_template_set_variable_value(csstemplate, "font-weight", "ultraheavy"); ++ break; ++ ++ default: ++ girara_template_set_variable_value(csstemplate, "font-weight", "normal"); ++ break; ++ } ++ ++ pango_font_description_free(descr); + } + + static void +@@ -91,10 +172,16 @@ fill_template_with_values(girara_session_t* session) + char* font = NULL; + girara_setting_get(session, "font", &font); + if (font != NULL) { +- girara_template_set_variable_value(csstemplate, "font", font); ++ css_template_fill_font(csstemplate, font); + g_free(font); + } else { +- girara_template_set_variable_value(csstemplate, "font", "monospace normal 9"); ++ if (gtk_check_version(3, 20, 0) == NULL) { ++ girara_template_set_variable_value(csstemplate, "font-family", "monospace"); ++ girara_template_set_variable_value(csstemplate, "font-size", "9pt"); ++ girara_template_set_variable_value(csstemplate, "font-weight", "normal"); ++ } else { ++ girara_template_set_variable_value(csstemplate, "font", "monospace normal 9"); ++ } + }; + + /* parse color values */ +-- +libgit2 0.24.0 +