girara: update to 0.2.7.

This commit is contained in:
lemmi 2017-01-12 15:52:36 +01:00
parent c435019cdd
commit a90098f3c0
2 changed files with 3 additions and 160 deletions

View File

@ -1,157 +0,0 @@
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 */

View File

@ -1,7 +1,7 @@
# Template file for 'girara'
pkgname=girara
version=0.2.6
revision=2
version=0.2.7
revision=1
build_style=gnu-makefile
# COLOR=0 to avoid "tput not found" spam in the build output
make_build_args="COLOR=0"
@ -13,7 +13,7 @@ license="zlib"
homepage="http://pwmt.org/projects/girara/"
short_desc="A library implementing a user interface that focuses on minimalism"
distfiles="http://pwmt.org/projects/${pkgname}/download/${pkgname}-${version}.tar.gz"
checksum=eba69b3522b4d149e06d133de52877913275873c505993fad08b6d7884ec9a0f
checksum=98e6a343298ae46869c990bc6e0732555e19af2e386cdc1a911f109b1c5c32e5
pre_build() {
sed -i 's/^\(CFLAGS *+=\)/override \1/' config.mk