File systray-symbolic-icons.patch of Package xfce4-panel
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