[gdm] Add the ability to have padding between icons in tray
- From: Ray Strode <halfline src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gdm] Add the ability to have padding between icons in tray
- Date: Fri, 23 Oct 2009 02:14:33 +0000 (UTC)
commit ab7c74cca138c404338ebaf3ee3c1e3f6e92f083
Author: Ray Strode <rstrode redhat com>
Date: Thu Oct 22 22:08:18 2009 -0400
Add the ability to have padding between icons in tray
.../libnotificationarea/na-tray-manager.c | 41 ++++++++++++++++++++
.../libnotificationarea/na-tray-manager.h | 3 +
gui/simple-greeter/libnotificationarea/na-tray.c | 12 ++++++
gui/simple-greeter/libnotificationarea/na-tray.h | 2 +
4 files changed, 58 insertions(+), 0 deletions(-)
---
diff --git a/gui/simple-greeter/libnotificationarea/na-tray-manager.c b/gui/simple-greeter/libnotificationarea/na-tray-manager.c
index 1bf54f1..d49c646 100644
--- a/gui/simple-greeter/libnotificationarea/na-tray-manager.c
+++ b/gui/simple-greeter/libnotificationarea/na-tray-manager.c
@@ -653,6 +653,32 @@ na_tray_manager_set_visual_property (NaTrayManager *manager)
#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_manage_screen_x11 (NaTrayManager *manager,
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 @@ na_tray_manager_set_orientation (NaTrayManager *manager,
}
}
+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 --git a/gui/simple-greeter/libnotificationarea/na-tray-manager.h b/gui/simple-greeter/libnotificationarea/na-tray-manager.h
index f325453..e93882e 100644
--- a/gui/simple-greeter/libnotificationarea/na-tray-manager.h
+++ b/gui/simple-greeter/libnotificationarea/na-tray-manager.h
@@ -55,6 +55,7 @@ struct _NaTrayManager
GtkWidget *invisible;
GdkScreen *screen;
GtkOrientation orientation;
+ gint padding;
GList *messages;
GHashTable *socket_table;
@@ -91,6 +92,8 @@ gboolean na_tray_manager_manage_screen (NaTrayManager *manager,
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 --git a/gui/simple-greeter/libnotificationarea/na-tray.c b/gui/simple-greeter/libnotificationarea/na-tray.c
index 3bd1258..40845c1 100644
--- a/gui/simple-greeter/libnotificationarea/na-tray.c
+++ b/gui/simple-greeter/libnotificationarea/na-tray.c
@@ -599,6 +599,8 @@ na_tray_constructor (GType type,
{
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]);
@@ -801,6 +803,16 @@ idle_redraw_cb (NaTray *tray)
}
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 --git a/gui/simple-greeter/libnotificationarea/na-tray.h b/gui/simple-greeter/libnotificationarea/na-tray.h
index 57baddd..1ead20f 100644
--- a/gui/simple-greeter/libnotificationarea/na-tray.h
+++ b/gui/simple-greeter/libnotificationarea/na-tray.h
@@ -60,6 +60,8 @@ NaTray *na_tray_new_for_screen (GdkScreen *screen,
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]