diff options
Diffstat (limited to 'distro-logo.patch')
-rw-r--r-- | distro-logo.patch | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/distro-logo.patch b/distro-logo.patch new file mode 100644 index 0000000..d59e43a --- /dev/null +++ b/distro-logo.patch @@ -0,0 +1,195 @@ +From 4369e31ec541172e1c0d7c64645c7990e413bbca Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro <mcatanzaro@gnome.org> +Date: Tue, 9 Mar 2021 14:51:54 -0600 +Subject: [PATCH 1/3] info-overview: add build option to control distributor + logo + +Currently, we display a 256x256 version of the OS icon from +/etc/os-release. This is too big for my taste, and it's also not +sufficient for distros that want to display a logo that is not an icon. +For instance, because we no longer display the operating system name +immediately beneath the logo, it may be desirable to use a logo variant +that includes text. This patch adds a meson build option that +distributions can use to override the logo. + +Because the logo might include text, distributions may want to vary the +logo used in dark mode. A subsequent commit will add a second option for +this. +--- + meson.build | 6 ++++++ + meson_options.txt | 1 + + panels/info-overview/cc-info-overview-panel.c | 4 ++++ + 3 files changed, 11 insertions(+) + +diff --git a/meson.build b/meson.build +index e8333c0da..1661caa4b 100644 +--- a/meson.build ++++ b/meson.build +@@ -50,6 +50,12 @@ foreach define: set_defines + config_h.set_quoted(define[0], define[1]) + endforeach + ++distributor_logo = get_option('distributor_logo') ++if (distributor_logo != '') ++ config_h.set_quoted('DISTRIBUTOR_LOGO', distributor_logo, ++ description: 'Define to absolute path of distributor logo') ++endif ++ + # meson does not support octal values, so it must be handled as a + # string. See: https://github.com/mesonbuild/meson/issues/2047 + config_h.set('USER_DIR_MODE', '0700', +diff --git a/meson_options.txt b/meson_options.txt +index 1b7b54810..93e551373 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -8,3 +8,4 @@ option('tracing', type: 'boolean', value: false, description: 'add extra debuggi + option('wayland', type: 'boolean', value: true, description: 'build with Wayland support') + option('profile', type: 'combo', choices: ['default','development'], value: 'default') + option('malcontent', type: 'boolean', value: false, description: 'build with malcontent support') ++option('distributor_logo', type: 'string', description: 'absolute path to distributor logo for the About panel') +diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c +index bd0e07762..95a5904df 100644 +--- a/panels/info-overview/cc-info-overview-panel.c ++++ b/panels/info-overview/cc-info-overview-panel.c +@@ -869,6 +869,9 @@ cc_info_panel_row_activated_cb (CcInfoOverviewPanel *self, + static void + setup_os_logo (CcInfoOverviewPanel *panel) + { ++#ifdef DISTRIBUTOR_LOGO ++ gtk_image_set_from_file (panel->os_logo, DISTRIBUTOR_LOGO); ++#else + g_autofree char *logo_name = g_get_os_info ("LOGO"); + if (logo_name != NULL) + { +@@ -879,6 +882,7 @@ setup_os_logo (CcInfoOverviewPanel *panel) + { + gtk_image_set_from_resource (panel->os_logo, "/org/gnome/control-center/info-overview/GnomeLogoVerticalMedium.svg"); + } ++#endif + } + + static void +-- +GitLab + + +From f08669767ca87ff99fc08e1a7334c8f2e7f18f0b Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro <mcatanzaro@gnome.org> +Date: Tue, 9 Mar 2021 16:02:46 -0600 +Subject: [PATCH 2/3] info-overview: add build option to specify a dark mode + logo variant + +Let's allow distributions to specify a different logo to use when using +a dark GTK theme. This is best-effort only since it relies on the +convention that dark themes must end with "dark" and therefore will fail +for a theme named "midnight" or anything that doesn't match convention. +--- + meson.build | 5 ++++ + meson_options.txt | 1 + + panels/info-overview/cc-info-overview-panel.c | 27 +++++++++++++++++++ + 3 files changed, 33 insertions(+) + +diff --git a/meson.build b/meson.build +index 1661caa4b..124171626 100644 +--- a/meson.build ++++ b/meson.build +@@ -54,6 +54,11 @@ distributor_logo = get_option('distributor_logo') + if (distributor_logo != '') + config_h.set_quoted('DISTRIBUTOR_LOGO', distributor_logo, + description: 'Define to absolute path of distributor logo') ++ dark_mode_distributor_logo = get_option('dark_mode_distributor_logo') ++ if (dark_mode_distributor_logo != '') ++ config_h.set_quoted('DARK_MODE_DISTRIBUTOR_LOGO', dark_mode_distributor_logo, ++ description: 'Define to absolute path of distributor logo for use in dark mode') ++ endif + endif + + # meson does not support octal values, so it must be handled as a +diff --git a/meson_options.txt b/meson_options.txt +index 93e551373..5305c8606 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -9,3 +9,4 @@ option('wayland', type: 'boolean', value: true, description: 'build with Wayland + option('profile', type: 'combo', choices: ['default','development'], value: 'default') + option('malcontent', type: 'boolean', value: false, description: 'build with malcontent support') + option('distributor_logo', type: 'string', description: 'absolute path to distributor logo for the About panel') ++option('dark_mode_distributor_logo', type: 'string', description: 'absolute path to distributor logo dark mode variant') +diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c +index 95a5904df..cb20e16b1 100644 +--- a/panels/info-overview/cc-info-overview-panel.c ++++ b/panels/info-overview/cc-info-overview-panel.c +@@ -866,10 +866,37 @@ cc_info_panel_row_activated_cb (CcInfoOverviewPanel *self, + open_software_update (self); + } + ++#ifdef DARK_MODE_DISTRIBUTOR_LOGO ++static gboolean ++is_dark_mode (CcInfoOverviewPanel *panel) ++{ ++ GdkScreen *screen; ++ GtkSettings *settings; ++ g_autofree char *theme_name = NULL; ++ ++ theme_name = g_strdup (g_getenv ("GTK_THEME")); ++ if (theme_name != NULL) ++ return g_str_has_suffix (theme_name, "dark"); ++ ++ screen = gtk_widget_get_screen (GTK_WIDGET (panel)); ++ settings = gtk_settings_get_for_screen (screen); ++ ++ g_object_get (settings, "gtk-theme-name", &theme_name, NULL); ++ return theme_name != NULL && g_str_has_suffix (theme_name, "dark"); ++} ++#endif ++ + static void + setup_os_logo (CcInfoOverviewPanel *panel) + { + #ifdef DISTRIBUTOR_LOGO ++#ifdef DARK_MODE_DISTRIBUTOR_LOGO ++ if (is_dark_mode (panel)) ++ { ++ gtk_image_set_from_file (panel->os_logo, DARK_MODE_DISTRIBUTOR_LOGO); ++ return; ++ } ++#endif + gtk_image_set_from_file (panel->os_logo, DISTRIBUTOR_LOGO); + #else + g_autofree char *logo_name = g_get_os_info ("LOGO"); +-- +GitLab + + +From c379ccc4e8f0bcdee78361f134ba29d3a25f7528 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro <mcatanzaro@gnome.org> +Date: Wed, 10 Mar 2021 11:30:57 -0600 +Subject: [PATCH 3/3] info-overview: reduce size of logo when using icon from + /etc/os-release + +When using the icon from /etc/os-release, display it as 128x128 rather +than 256x256. In distributions that don't ship a 128x128, such as +Fedora, this results in the 256x256 icon being scaled down to a +reasonable size. 256x256 is so large here as to be clearly undesirable. +128x128 is also the size that Ubuntu uses in its downstream patch. Might +as well reduce the need for patching as far as possible, even though +Fedora doesn't plan to use this codepath. +--- + panels/info-overview/cc-info-overview-panel.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c +index cb20e16b1..3575b90c5 100644 +--- a/panels/info-overview/cc-info-overview-panel.c ++++ b/panels/info-overview/cc-info-overview-panel.c +@@ -903,7 +903,7 @@ setup_os_logo (CcInfoOverviewPanel *panel) + if (logo_name != NULL) + { + gtk_image_set_from_icon_name (panel->os_logo, logo_name, GTK_ICON_SIZE_INVALID); +- gtk_image_set_pixel_size (panel->os_logo, 256); ++ gtk_image_set_pixel_size (panel->os_logo, 128); + } + else + { +-- +GitLab + |