girara: add patch to fix zathura theme errors (#5111)
This commit is contained in:
parent
6316af211c
commit
f33e1640b3
|
@ -0,0 +1,157 @@
|
|||
Decription: Fix font handling for Gtk+ >= 3.21
|
||||
Origin: upstream
|
||||
|
||||
--- data/girara-post-3.20.css_t
|
||||
+++ data/girara-post-3.20.css_t
|
||||
@@ -9,7 +9,9 @@
|
||||
color: @default-fg@;
|
||||
background-color: @default-bg@;
|
||||
background-image: none;
|
||||
- font: @font@;
|
||||
+ font-family: @font-family@;
|
||||
+ font-size: @font-size@;
|
||||
+ font-weight: @font-weight@;
|
||||
}
|
||||
|
||||
/* Inputbar */
|
||||
--- girara/config.c
|
||||
+++ girara/config.c
|
||||
@@ -50,8 +50,7 @@
|
||||
{
|
||||
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
|
||||
--- girara/internal.h
|
||||
+++ girara/internal.h
|
||||
@@ -148,6 +148,8 @@
|
||||
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
|
||||
*/
|
||||
--- girara/session.c
|
||||
+++ girara/session.c
|
||||
@@ -44,7 +44,6 @@
|
||||
{
|
||||
static const char* variable_names[] = {
|
||||
"session",
|
||||
- "font",
|
||||
"default-fg",
|
||||
"default-bg",
|
||||
"inputbar-fg",
|
||||
@@ -78,6 +77,88 @@
|
||||
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 @@
|
||||
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 */
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'girara'
|
||||
pkgname=girara
|
||||
version=0.2.6
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=gnu-makefile
|
||||
# COLOR=0 to avoid "tput not found" spam in the build output
|
||||
make_build_args="COLOR=0"
|
||||
|
|
Loading…
Reference in New Issue