Hello community, here is the log from the commit of package xfce4-panel for openSUSE:Factory checked in at 2020-03-23 12:51:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xfce4-panel (Old) and /work/SRC/openSUSE:Factory/.xfce4-panel.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-panel" Mon Mar 23 12:51:37 2020 rev:71 rq:787366 version:4.14.3 Changes: -------- --- /work/SRC/openSUSE:Factory/xfce4-panel/xfce4-panel.changes 2020-01-13 22:21:15.402510780 +0100 +++ /work/SRC/openSUSE:Factory/.xfce4-panel.new.3160/xfce4-panel.changes 2020-03-23 12:53:00.052048362 +0100 @@ -1,0 +2,6 @@ +Sun Mar 22 12:10:12 UTC 2020 - Maurizio Galli <maurizio.ga...@gmail.com> + +- Added systray-symbolic-icons.patch. Backport to enable symbolic + icons in systray + +------------------------------------------------------------------- New: ---- systray-symbolic-icons.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xfce4-panel.spec ++++++ --- /var/tmp/diff_new_pack.SqfNo0/_old 2020-03-23 12:53:00.896048892 +0100 +++ /var/tmp/diff_new_pack.SqfNo0/_new 2020-03-23 12:53:00.900048895 +0100 @@ -31,6 +31,8 @@ Source1: %{name}-rpmlintrc Source2: %{name}-restore-defaults Source3: %{name}-restore-defaults.desktop +# PATCH-FIX-UPSTREAM systray-symbolic-icons.patch maurizio.ga...@gmail.com -- Backport to enable symbolic icons in systray +Patch0: systray-symbolic-icons.patch BuildRequires: desktop-file-utils BuildRequires: ed BuildRequires: fdupes @@ -130,7 +132,7 @@ %lang_package %prep -%autosetup +%autosetup -p1 %build %if %{with git} ++++++ systray-symbolic-icons.patch ++++++ Only in b/common: .deps Only in b/common: libpanel-common.la Only in b/common: libpanel_common_la-panel-debug.lo Only in b/common: libpanel_common_la-panel-utils.lo Only in b/common: libpanel_common_la-panel-xfconf.lo Only in b/common: .libs Only in b/common: Makefile Only in b: config.h Only in b: config.log Only in b: config.status Only in b/docs: Makefile Only in b/docs/references: Makefile Only in b/icons/16x16: Makefile Only in b/icons/22x22: Makefile Only in b/icons/24x24: Makefile Only in b/icons/32x32: Makefile Only in b/icons/48x48: Makefile Only in b/icons: Makefile Only in b/icons/scalable: Makefile Only in b: libtool Only in b/libxfce4panel: .deps Only in b/libxfce4panel: .libs Only in b/libxfce4panel: libxfce4panel-1.0.la Only in b/libxfce4panel: libxfce4panel_1_0_la-libxfce4panel-aliasdef.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-libxfce4panel-config.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-libxfce4panel-enum-types.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-libxfce4panel-marshal.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-xfce-arrow-button.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-xfce-hvbox.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-xfce-panel-convenience.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-xfce-panel-image.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-xfce-panel-plugin.lo Only in b/libxfce4panel: libxfce4panel_1_0_la-xfce-panel-plugin-provider.lo Only in b/libxfce4panel: libxfce4panel-1.0.pc Only in b/libxfce4panel: libxfce4panel-2.0.la Only in b/libxfce4panel: libxfce4panel_2_0_la-libxfce4panel-aliasdef.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-libxfce4panel-config.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-libxfce4panel-enum-types.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-libxfce4panel-marshal.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-xfce-arrow-button.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-xfce-panel-convenience.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-xfce-panel-image.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-xfce-panel-plugin.lo Only in b/libxfce4panel: libxfce4panel_2_0_la-xfce-panel-plugin-provider.lo Only in b/libxfce4panel: libxfce4panel-2.0.pc Only in b/libxfce4panel: Makefile Only in b: Makefile Only in b/migrate: .deps Only in b/migrate: .libs Only in b/migrate: Makefile Only in b/migrate: migrate Only in b/migrate: migrate-main.o Only in b/migrate: migrate-migrate-46.o Only in b/migrate: migrate-migrate-config.o Only in b/migrate: migrate-migrate-default.o Only in b/panel: .deps Only in b/panel: .libs Only in b/panel: Makefile Only in b/panel: xfce4-panel Only in b/panel: xfce4_panel-main.o Only in b/panel: xfce4_panel-panel-application.o Only in b/panel: xfce4_panel-panel-base-window.o Only in b/panel: xfce4_panel-panel-dbus-client.o Only in b/panel: xfce4_panel-panel-dbus-service.o Only in b/panel: xfce4_panel-panel-dialogs.o Only in b/panel: xfce4_panel-panel-gdbus-exported-service.o Only in b/panel: xfce4_panel-panel-itembar.o Only in b/panel: xfce4_panel-panel-item-dialog.o Only in b/panel: xfce4_panel-panel-marshal.o Only in b/panel: xfce4_panel-panel-module-factory.o Only in b/panel: xfce4_panel-panel-module.o Only in b/panel: xfce4_panel-panel-plugin-external-46.o Only in b/panel: xfce4_panel-panel-plugin-external.o Only in b/panel: xfce4_panel-panel-plugin-external-wrapper-exported.o Only in b/panel: xfce4_panel-panel-plugin-external-wrapper.o Only in b/panel: xfce4_panel-panel-preferences-dialog.o Only in b/panel: xfce4_panel-panel-tic-tac-toe.o Only in b/panel: xfce4_panel-panel-window.o Only in b: panel-desktop-handler.desktop Only in b: panel-preferences.desktop Only in b/plugins/actions: actions.desktop Only in b/plugins/actions: actions.desktop.in Only in b/plugins/actions: .deps Only in b/plugins/actions: libactions.la Only in b/plugins/actions: libactions_la-actions.lo Only in b/plugins/actions: .libs Only in b/plugins/actions: Makefile Only in b/plugins/applicationsmenu: applicationsmenu.desktop Only in b/plugins/applicationsmenu: applicationsmenu.desktop.in Only in b/plugins/applicationsmenu: .deps Only in b/plugins/applicationsmenu: libapplicationsmenu.la Only in b/plugins/applicationsmenu: libapplicationsmenu_la-applicationsmenu.lo Only in b/plugins/applicationsmenu: .libs Only in b/plugins/applicationsmenu: Makefile Only in b/plugins/applicationsmenu: xfce4-popup-applicationsmenu Only in b/plugins/clock: clock.desktop Only in b/plugins/clock: clock.desktop.in Only in b/plugins/clock: .deps Only in b/plugins/clock: libclock.la Only in b/plugins/clock: libclock_la-clock-analog.lo Only in b/plugins/clock: libclock_la-clock-binary.lo Only in b/plugins/clock: libclock_la-clock-digital.lo Only in b/plugins/clock: libclock_la-clock-fuzzy.lo Only in b/plugins/clock: libclock_la-clock-lcd.lo Only in b/plugins/clock: libclock_la-clock.lo Only in b/plugins/clock: libclock_la-clock-time.lo Only in b/plugins/clock: .libs Only in b/plugins/clock: Makefile Only in b/plugins/directorymenu: .deps Only in b/plugins/directorymenu: directorymenu.desktop Only in b/plugins/directorymenu: directorymenu.desktop.in Only in b/plugins/directorymenu: libdirectorymenu.la Only in b/plugins/directorymenu: libdirectorymenu_la-directorymenu.lo Only in b/plugins/directorymenu: .libs Only in b/plugins/directorymenu: Makefile Only in b/plugins/directorymenu: xfce4-popup-directorymenu Only in b/plugins/launcher: .deps Only in b/plugins/launcher: launcher.desktop Only in b/plugins/launcher: launcher.desktop.in Only in b/plugins/launcher: liblauncher.la Only in b/plugins/launcher: liblauncher_la-launcher-dialog.lo Only in b/plugins/launcher: liblauncher_la-launcher.lo Only in b/plugins/launcher: .libs Only in b/plugins/launcher: Makefile Only in b/plugins: Makefile Only in b/plugins/pager: .deps Only in b/plugins/pager: libpager.la Only in b/plugins/pager: libpager_la-pager-buttons.lo Only in b/plugins/pager: libpager_la-pager.lo Only in b/plugins/pager: .libs Only in b/plugins/pager: Makefile Only in b/plugins/pager: pager.desktop Only in b/plugins/pager: pager.desktop.in Only in b/plugins/separator: .deps Only in b/plugins/separator: .libs Only in b/plugins/separator: libseparator.la Only in b/plugins/separator: libseparator_la-separator.lo Only in b/plugins/separator: Makefile Only in b/plugins/separator: separator.desktop Only in b/plugins/separator: separator.desktop.in Only in b/plugins/showdesktop: .deps Only in b/plugins/showdesktop: .libs Only in b/plugins/showdesktop: libshowdesktop.la Only in b/plugins/showdesktop: libshowdesktop_la-showdesktop.lo Only in b/plugins/showdesktop: Makefile Only in b/plugins/showdesktop: showdesktop.desktop Only in b/plugins/showdesktop: showdesktop.desktop.in Only in b/plugins/systray: .deps Only in b/plugins/systray: .libs Only in b/plugins/systray: libsystray.la Only in b/plugins/systray: libsystray_la-systray-box.lo Only in b/plugins/systray: libsystray_la-systray.lo Only in b/plugins/systray: libsystray_la-systray-manager.lo Only in b/plugins/systray: libsystray_la-systray-marshal.lo Only in b/plugins/systray: libsystray_la-systray-socket.lo Only in b/plugins/systray: Makefile diff -rub a/plugins/systray/systray.c b/plugins/systray/systray.c --- a/plugins/systray/systray.c 2020-01-13 05:50:04.000000000 +0800 +++ b/plugins/systray/systray.c 2020-03-23 11:39:25.831790959 +0800 @@ -21,6 +21,10 @@ #include <config.h> #endif +#include <gdk/gdk.h> +#include <gdk/gdkx.h> +#include <gtk/gtk.h> + #include <libxfce4util/libxfce4util.h> #include <libxfce4ui/libxfce4ui.h> #include <common/panel-private.h> @@ -34,7 +38,7 @@ #include "systray-manager.h" #include "systray-dialog_ui.h" -#define ICON_SIZE (22) +#define ICON_SIZE (16) #define BUTTON_SIZE (16) #define FRAME_SPACING (1) @@ -565,12 +569,37 @@ { SystrayPlugin *plugin = XFCE_SYSTRAY_PLUGIN (panel_plugin); + gtk_orientable_set_orientation (GTK_ORIENTABLE (plugin->hvbox), orientation); systray_box_set_orientation (XFCE_SYSTRAY_BOX (plugin->box), orientation); if (G_LIKELY (plugin->manager != NULL)) systray_manager_set_orientation (plugin->manager, orientation); + /* apply symbolic colors */ + if (G_LIKELY (plugin->manager != NULL)) { + GtkStyleContext *context; + GdkRGBA rgba; + GdkColor color; + GdkColor fg; + GdkColor error; + GdkColor warning; + GdkColor success; + + context = gtk_widget_get_style_context (GTK_WIDGET (plugin->box)); + gtk_style_context_get_color (context, GTK_STATE_NORMAL, &rgba); + + color.pixel = 0; + color.red = rgba.red * G_MAXUSHORT; + color.green = rgba.green * G_MAXUSHORT; + color.blue = rgba.blue * G_MAXUSHORT; + + fg = error = warning = success = color; + + systray_manager_set_colors (plugin->manager, &fg, &error, &warning, &success); + } + + if (orientation == GTK_ORIENTATION_HORIZONTAL) gtk_widget_set_size_request (plugin->button, BUTTON_SIZE, -1); else Only in b/plugins/systray: systray.desktop Only in b/plugins/systray: systray.desktop.in diff -rub a/plugins/systray/systray-manager.c b/plugins/systray/systray-manager.c --- a/plugins/systray/systray-manager.c 2019-09-27 06:23:37.000000000 +0800 +++ b/plugins/systray/systray-manager.c 2020-03-22 21:21:04.844060806 +0800 @@ -78,6 +78,7 @@ static gboolean systray_manager_handle_undock_request (GtkSocket *socket, gpointer user_data); static void systray_manager_set_visual (SystrayManager *manager); +static void systray_manager_set_colors_property (SystrayManager *manager); static void systray_manager_message_free (SystrayMessage *message); static void systray_manager_message_remove_from_list (SystrayManager *manager, XClientMessageEvent *xevent); @@ -109,6 +110,12 @@ /* list of client sockets */ GHashTable *sockets; + /* symbolic colors */ + GdkColor fg; + GdkColor error; + GdkColor warning; + GdkColor success; + /* orientation of the tray */ GtkOrientation orientation; @@ -218,6 +225,23 @@ manager->orientation = GTK_ORIENTATION_HORIZONTAL; manager->messages = NULL; manager->sockets = g_hash_table_new (NULL, NULL); + + /* initialize symbolic colors */ + manager->fg.red = 0.0; + manager->fg.green = 0.0; + manager->fg.blue = 0.0; + + manager->error.red = 1.0; + manager->error.green = 0.0; + manager->error.blue = 0.0; + + manager->warning.red = 1.0; + manager->warning.green = 1.0; + manager->warning.blue = 0.0; + + manager->success.red = 0.0; + manager->success.green = 1.0; + manager->success.blue = 0.0; } @@ -344,9 +368,12 @@ /* set the invisible window and take a reference */ manager->invisible = GTK_WIDGET (g_object_ref (G_OBJECT (invisible))); - /* set the visial property for transparent tray icons */ + /* set the visual property for transparent tray icons */ systray_manager_set_visual (manager); + /* set the property for symbolic color support */ + systray_manager_set_colors_property (manager); + /* get the current x server time stamp */ timestamp = gdk_x11_get_server_time (gtk_widget_get_window (GTK_WIDGET (invisible))); @@ -792,6 +819,63 @@ } + +void +systray_manager_set_colors (SystrayManager *manager, + GdkColor *fg, + GdkColor *error, + GdkColor *warning, + GdkColor *success) +{ + panel_return_if_fail (XFCE_IS_SYSTRAY_MANAGER (manager)); + + manager->fg = *fg; + manager->error = *error; + manager->warning = *warning; + manager->success = *success; + + systray_manager_set_colors_property (manager); +} + + + +static void +systray_manager_set_colors_property (SystrayManager *manager) +{ + GdkWindow *window; + GdkDisplay *display; + Atom atom; + gulong data[12]; + + g_return_if_fail (manager->invisible != NULL); + window = gtk_widget_get_window (manager->invisible); + g_return_if_fail (window != NULL); + + display = gtk_widget_get_display (manager->invisible); + atom = gdk_x11_get_xatom_by_name_for_display (display, "_NET_SYSTEM_TRAY_COLORS"); + + data[0] = manager->fg.red; + data[1] = manager->fg.green; + data[2] = manager->fg.blue; + data[3] = manager->error.red; + data[4] = manager->error.green; + data[5] = manager->error.blue; + data[6] = manager->warning.red; + data[7] = manager->warning.green; + data[8] = manager->warning.blue; + data[9] = manager->success.red; + data[10] = manager->success.green; + data[11] = manager->success.blue; + + XChangeProperty (GDK_DISPLAY_XDISPLAY (display), + GDK_WINDOW_XID (window), + atom, + XA_CARDINAL, 32, + PropModeReplace, + (guchar *) &data, 12); +} + + void systray_manager_set_orientation (SystrayManager *manager, diff -rub a/plugins/systray/systray-manager.h b/plugins/systray/systray-manager.h --- a/plugins/systray/systray-manager.h 2018-11-22 03:28:02.000000000 +0800 +++ b/plugins/systray/systray-manager.h 2020-03-22 21:21:57.727822642 +0800 @@ -64,6 +64,12 @@ void systray_manager_unregister (SystrayManager *manager); +void systray_manager_set_colors (SystrayManager *manager, + GdkColor *fg, + GdkColor *error, + GdkColor *warning, + GdkColor *success); + void systray_manager_set_orientation (SystrayManager *manager, GtkOrientation orientation); Only in b/plugins/tasklist: .deps Only in b/plugins/tasklist: .libs Only in b/plugins/tasklist: libtasklist.la Only in b/plugins/tasklist: libtasklist_la-tasklist.lo Only in b/plugins/tasklist: libtasklist_la-tasklist-widget.lo Only in b/plugins/tasklist: Makefile Only in b/plugins/tasklist: tasklist.desktop Only in b/plugins/tasklist: tasklist.desktop.in Only in b/plugins/windowmenu: .deps Only in b/plugins/windowmenu: .libs Only in b/plugins/windowmenu: libwindowmenu.la Only in b/plugins/windowmenu: libwindowmenu_la-windowmenu.lo Only in b/plugins/windowmenu: Makefile Only in b/plugins/windowmenu: windowmenu.desktop Only in b/plugins/windowmenu: windowmenu.desktop.in Only in b/plugins/windowmenu: xfce4-popup-windowmenu Only in b/po: am.gmo Only in b/po: ar.gmo Only in b/po: ast.gmo Only in b/po: be.gmo Only in b/po: bg.gmo Only in b/po: bn.gmo Only in b/po: ca.gmo Only in b/po: cs.gmo Only in b/po: da.gmo Only in b/po: de.gmo Only in b/po: el.gmo Only in b/po: en_AU.gmo Only in b/po: en_GB.gmo Only in b/po: eo.gmo Only in b/po: es.gmo Only in b/po: et.gmo Only in b/po: eu.gmo Only in b/po: fa_IR.gmo Only in b/po: fi.gmo Only in b/po: fr.gmo Only in b/po: gl.gmo Only in b/po: he.gmo Only in b/po: hr.gmo Only in b/po: hu.gmo Only in b/po: hy_AM.gmo Only in b/po: id.gmo Only in b/po: ie.gmo Only in b/po: .intltool-merge-cache Only in b/po: .intltool-merge-cache.lock Only in b/po: is.gmo Only in b/po: it.gmo Only in b/po: ja.gmo Only in b/po: ka.gmo Only in b/po: kk.gmo Only in b/po: ko.gmo Only in b/po: lt.gmo Only in b/po: lv.gmo Only in b/po: Makefile Only in b/po: Makefile.in Only in b/po: ms.gmo Only in b/po: nb.gmo Only in b/po: nl.gmo Only in b/po: nn.gmo Only in b/po: oc.gmo Only in b/po: pa.gmo Only in b/po: pl.gmo Only in b/po: POTFILES Only in b/po: pt_BR.gmo Only in b/po: pt.gmo Only in b/po: ro.gmo Only in b/po: ru.gmo Only in b/po: si.gmo Only in b/po: sk.gmo Only in b/po: sl.gmo Only in b/po: sq.gmo Only in b/po: sr.gmo Only in b/po: stamp-it Only in b/po: sv.gmo Only in b/po: te.gmo Only in b/po: th.gmo Only in b/po: tr.gmo Only in b/po: ug.gmo Only in b/po: uk.gmo Only in b/po: ur.gmo Only in b/po: ur_PK.gmo Only in b/po: vi.gmo Only in b/po: zh_CN.gmo Only in b/po: zh_HK.gmo Only in b/po: zh_TW.gmo Only in b: stamp-h1 Only in b/wrapper: .deps Only in b/wrapper: .libs Only in b/wrapper: Makefile Only in b/wrapper: wrapper-1.0 Only in b/wrapper: wrapper_1_0-main.o Only in b/wrapper: wrapper_1_0-wrapper-module.o Only in b/wrapper: wrapper_1_0-wrapper-plug.o Only in b/wrapper: wrapper-2.0 Only in b/wrapper: wrapper_2_0-main.o Only in b/wrapper: wrapper_2_0-wrapper-module.o Only in b/wrapper: wrapper_2_0-wrapper-plug.o