summaryrefslogtreecommitdiffstats
path: root/icon-padding.patch
diff options
context:
space:
mode:
Diffstat (limited to 'icon-padding.patch')
-rw-r--r--icon-padding.patch255
1 files changed, 255 insertions, 0 deletions
diff --git a/icon-padding.patch b/icon-padding.patch
new file mode 100644
index 0000000..5ccf4c0
--- /dev/null
+++ b/icon-padding.patch
@@ -0,0 +1,255 @@
+diff -u -r gnome-panel-2.28.0/applets/notification_area/main.c hacked/applets/notification_area/main.c
+--- gnome-panel-2.28.0/applets/notification_area/main.c 2009-07-01 09:06:23.000000000 -0400
++++ hacked/applets/notification_area/main.c 2009-10-17 23:06:01.001313433 -0400
+@@ -25,6 +25,7 @@
+
+ #include <panel-applet.h>
+ #include <panel-applet-gconf.h>
++#include <gconf/gconf-client.h>
+
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+@@ -34,6 +35,7 @@
+ #include "fixedtip.h"
+
+ #define NOTIFICATION_AREA_ICON "gnome-panel-notification-area"
++#define SCHEMA_DIR "/schemas/apps/notification_area_applet/prefs"
+
+ typedef struct
+ {
+@@ -231,6 +233,39 @@
+ gtk_widget_set_name (widget, "na-tray");
+ }
+
++static void
++padding_changed (GConfClient *client,
++ guint cnxn_id,
++ GConfEntry *entry,
++ gpointer user_data)
++{
++ AppletData *data = user_data;
++ gint value;
++
++ if (!entry->value || entry->value->type != GCONF_VALUE_INT)
++ return;
++
++ value = gconf_value_get_int (entry->value);
++
++ na_tray_set_padding (data->tray, value);
++}
++
++static void
++setup_gconf (AppletData *data)
++{
++ GConfClient *client;
++ char *key;
++ int value;
++
++ client = gconf_client_get_default ();
++ key = panel_applet_gconf_get_full_key (data->applet, "padding");
++ value = gconf_client_get_int (client, key, NULL);
++ na_tray_set_padding (data->tray, value);
++ gconf_client_notify_add (client, key, padding_changed, data, NULL, NULL);
++ g_free (key);
++ g_object_unref (client);
++}
++
+ static gboolean
+ applet_factory (PanelApplet *applet,
+ const gchar *iid,
+@@ -260,9 +295,10 @@
+ atko = gtk_widget_get_accessible (GTK_WIDGET (applet));
+ atk_object_set_name (atko, _("Panel Notification Area"));
+
++ panel_applet_add_preferences (applet, SCHEMA_DIR, NULL);
+ panel_applet_set_flags (applet,
+ PANEL_APPLET_HAS_HANDLE|PANEL_APPLET_EXPAND_MINOR);
+-
++
+ g_signal_connect (applet, "change_orient",
+ G_CALLBACK (applet_change_orientation), data);
+ g_signal_connect (applet, "change_background",
+@@ -270,6 +306,8 @@
+ g_signal_connect (applet, "destroy",
+ G_CALLBACK (applet_destroy), data);
+
++ setup_gconf (data);
++
+ panel_applet_set_background_widget (applet, GTK_WIDGET (applet));
+
+ gtk_container_add (GTK_CONTAINER (applet), GTK_WIDGET (tray));
+diff -u -r gnome-panel-2.28.0/applets/notification_area/Makefile.am hacked/applets/notification_area/Makefile.am
+--- gnome-panel-2.28.0/applets/notification_area/Makefile.am 2009-07-21 13:25:43.000000000 -0400
++++ hacked/applets/notification_area/Makefile.am 2009-10-17 23:16:42.401072682 -0400
+@@ -66,6 +66,24 @@
+
+ @INTLTOOL_SERVER_RULE@
+
++schemasdir = $(GCONF_SCHEMA_FILE_DIR)
++schemas_in_files = notification_area_applet.schemas.in
++schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
++
++@INTLTOOL_SCHEMAS_RULE@
++
++if GCONF_SCHEMAS_INSTALL
++# don't do this if we are building in eg. rpm
++install-data-local:
++ if test -z "$(DESTDIR)" ; then \
++ for p in $(schemas_DATA) ; do \
++ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/applets/notification_area/$$p ; \
++ done \
++ fi
++else
++install-data-local:
++endif
++
+ uidir = $(datadir)/gnome-2.0/ui
+ ui_DATA = GNOME_NotificationAreaApplet.xml
+
+diff -u -r gnome-panel-2.28.0/applets/notification_area/na-tray.c hacked/applets/notification_area/na-tray.c
+--- gnome-panel-2.28.0/applets/notification_area/na-tray.c 2009-10-17 23:22:01.095308064 -0400
++++ hacked/applets/notification_area/na-tray.c 2009-10-17 23:00:01.304062848 -0400
+@@ -602,6 +602,8 @@
+ {
+ trays_screens [screen_number].tray_manager = tray_manager;
+
++ na_tray_manager_set_padding (tray_manager, 0);
++
+ g_signal_connect (tray_manager, "tray_icon_added",
+ G_CALLBACK (tray_added),
+ &trays_screens [screen_number]);
+@@ -804,6 +806,16 @@
+ }
+
+ void
++na_tray_set_padding (NaTray *tray,
++ gint padding)
++{
++ NaTrayPrivate *priv = tray->priv;
++
++ if (get_tray (priv->trays_screen) == tray)
++ na_tray_manager_set_padding (priv->trays_screen->tray_manager, padding);
++}
++
++void
+ na_tray_force_redraw (NaTray *tray)
+ {
+ NaTrayPrivate *priv = tray->priv;
+diff -u -r gnome-panel-2.28.0/applets/notification_area/na-tray.h hacked/applets/notification_area/na-tray.h
+--- gnome-panel-2.28.0/applets/notification_area/na-tray.h 2009-04-19 13:45:09.000000000 -0400
++++ hacked/applets/notification_area/na-tray.h 2009-10-17 23:00:30.491375187 -0400
+@@ -60,6 +60,8 @@
+ void na_tray_set_orientation (NaTray *tray,
+ GtkOrientation orientation);
+ GtkOrientation na_tray_get_orientation (NaTray *tray);
++void na_tray_set_padding (NaTray *tray,
++ gint padding);
+ void na_tray_force_redraw (NaTray *tray);
+
+ G_END_DECLS
+diff -u -r gnome-panel-2.28.0/applets/notification_area/na-tray-manager.c hacked/applets/notification_area/na-tray-manager.c
+--- gnome-panel-2.28.0/applets/notification_area/na-tray-manager.c 2009-07-27 08:01:39.000000000 -0400
++++ hacked/applets/notification_area/na-tray-manager.c 2009-10-17 21:55:00.582062966 -0400
+@@ -653,6 +653,32 @@
+ #endif
+ }
+
++static void
++na_tray_manager_set_padding_property (NaTrayManager *manager)
++{
++#ifdef GDK_WINDOWING_X11
++ GdkDisplay *display;
++ Atom orientation_atom;
++ gulong data[1];
++
++ if (!manager->invisible || !manager->invisible->window)
++ return;
++
++ display = gtk_widget_get_display (manager->invisible);
++ orientation_atom = gdk_x11_get_xatom_by_name_for_display (display,
++ "_NET_SYSTEM_TRAY_PADDING");
++
++ data[0] = manager->padding;
++
++ XChangeProperty (GDK_DISPLAY_XDISPLAY (display),
++ GDK_WINDOW_XWINDOW (manager->invisible->window),
++ orientation_atom,
++ XA_CARDINAL, 32,
++ PropModeReplace,
++ (guchar *) &data, 1);
++#endif
++}
++
+ #ifdef GDK_WINDOWING_X11
+
+ static gboolean
+@@ -697,6 +723,7 @@
+
+ na_tray_manager_set_orientation_property (manager);
+ na_tray_manager_set_visual_property (manager);
++ na_tray_manager_set_padding_property (manager);
+
+ timestamp = gdk_x11_get_server_time (invisible->window);
+
+@@ -836,6 +863,20 @@
+ }
+ }
+
++void
++na_tray_manager_set_padding (NaTrayManager *manager,
++ gint padding)
++{
++ g_return_if_fail (NA_IS_TRAY_MANAGER (manager));
++
++ if (manager->padding != padding)
++ {
++ manager->padding = padding;
++
++ na_tray_manager_set_padding_property (manager);
++ }
++}
++
+ GtkOrientation
+ na_tray_manager_get_orientation (NaTrayManager *manager)
+ {
+diff -u -r gnome-panel-2.28.0/applets/notification_area/na-tray-manager.h hacked/applets/notification_area/na-tray-manager.h
+--- gnome-panel-2.28.0/applets/notification_area/na-tray-manager.h 2009-04-19 13:45:09.000000000 -0400
++++ hacked/applets/notification_area/na-tray-manager.h 2009-10-17 21:55:42.646312700 -0400
+@@ -55,6 +55,7 @@
+ GtkWidget *invisible;
+ GdkScreen *screen;
+ GtkOrientation orientation;
++ gint padding;
+
+ GList *messages;
+ GHashTable *socket_table;
+@@ -91,6 +92,8 @@
+ void na_tray_manager_set_orientation (NaTrayManager *manager,
+ GtkOrientation orientation);
+ GtkOrientation na_tray_manager_get_orientation (NaTrayManager *manager);
++void na_tray_manager_set_padding (NaTrayManager *manager,
++ gint padding);
+
+ G_END_DECLS
+
+diff -u -r gnome-panel-2.28.0/applets/notification_area/notification_area_applet.schemas.in hacked/applets/notification_area/notification_area_applet.schemas.in
+--- gnome-panel-2.28.0/applets/notification_area/notification_area_applet.schemas.in 2009-10-17 23:23:41.071058057 -0400
++++ hacked/applets/notification_area/notification_area_applet.schemas.in 2009-10-17 23:21:38.588316399 -0400
+@@ -0,0 +1,17 @@
++<?xml version="1.0"?>
++<gconfschemafile>
++ <schemalist>
++ <schema>
++ <key>/schemas/apps/notification_area_applet/prefs/padding</key>
++ <owner>notification-area-applet</owner>
++ <type>int</type>
++ <default>3</default>
++ <locale name="C">
++ <short>Padding</short>
++ <long>
++ This key specifies padding to be put around status icons.
++ </long>
++ </locale>
++ </schema>
++ </schemalist>
++</gconfschemafile>