[SM-Commit] GIT changes to master grimoire by Flavien Bridault (cebe9b973a55fd5a0e4b0cca3cf1036daaf27171)

Flavien Bridault scm at mail.sourcemage.org
Thu Aug 24 11:44:05 EDT 2006


GIT changes to master grimoire by Flavien Bridault <vlaaad at sourcemage.org>:

 gnome2-apps/gnome-power-manager/DETAILS                            |    2 
 gnome2-apps/gnome-power-manager/HISTORY                            |    5 
 gnome2-apps/gnome-power-manager/PRE_BUILD                          |    3 
 gnome2-apps/gnome-power-manager/transparent_notification_icon.diff |   91 ++++++++++
 4 files changed, 100 insertions(+), 1 deletion(-)

New commits:
commit cebe9b973a55fd5a0e4b0cca3cf1036daaf27171
Author: Flavien Bridault <vlaaad at sourcemage.org>
Commit: Flavien Bridault <vlaaad at sourcemage.org>

    gnome-power-manager: added a patch to get a transparent notification icon

diff --git a/gnome2-apps/gnome-power-manager/DETAILS b/gnome2-apps/gnome-power-manager/DETAILS
index c83836f..eec4412 100755
--- a/gnome2-apps/gnome-power-manager/DETAILS
+++ b/gnome2-apps/gnome-power-manager/DETAILS
@@ -7,7 +7,7 @@
 SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
         WEB_SITE=http://www.gnome.org/projects/gnome-power-manager/
          ENTERED=20051216
-      PATCHLEVEL=1
+      PATCHLEVEL=2
       LICENSE[0]=GPL
         KEYWORDS="gnome2"
            SHORT="Gnome session daemon that takes care of power management."
diff --git a/gnome2-apps/gnome-power-manager/HISTORY b/gnome2-apps/gnome-power-manager/HISTORY
index 54178be..c46b57f 100644
--- a/gnome2-apps/gnome-power-manager/HISTORY
+++ b/gnome2-apps/gnome-power-manager/HISTORY
@@ -1,3 +1,8 @@
+2006-08-24 Flavien Bridault <vlaaad at sourcemage.org>
+	* transparent_notification_icon.diff: added
+	* PRE_BUILD: added to apply patch
+	* DETAILS: PATCHLEVEL++
+
 2006-07-27 Flavien Bridault <vlaaad at sourcemage.org>
 	* DEPENDS: now depends on dbus-glib instead of dbus
 	* DETAILS: PATCHLEVEL++
diff --git a/gnome2-apps/gnome-power-manager/PRE_BUILD b/gnome2-apps/gnome-power-manager/PRE_BUILD
new file mode 100755
index 0000000..6aee4bb
--- /dev/null
+++ b/gnome2-apps/gnome-power-manager/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build  &&
+cd $SOURCE_DIRECTORY  &&
+patch -p1 < $SCRIPT_DIRECTORY/transparent_notification_icon.diff
diff --git a/gnome2-apps/gnome-power-manager/transparent_notification_icon.diff b/gnome2-apps/gnome-power-manager/transparent_notification_icon.diff
new file mode 100644
index 0000000..8a81eae
--- /dev/null
+++ b/gnome2-apps/gnome-power-manager/transparent_notification_icon.diff
@@ -0,0 +1,91 @@
+diff -ruN gnome-power-manager-2.14.3/src/eggtrayicon.c gnome-power-manager-2.14.3.new/src/eggtrayicon.c
+--- gnome-power-manager-2.14.3/src/eggtrayicon.c	2006-05-05 15:17:30.000000000 +0200
++++ gnome-power-manager-2.14.3.new/src/eggtrayicon.c	2006-05-05 15:17:45.000000000 +0200
+@@ -68,6 +68,9 @@
+ static void egg_tray_icon_realize   (GtkWidget *widget);
+ static void egg_tray_icon_unrealize (GtkWidget *widget);
+ 
++static void egg_tray_icon_add (GtkContainer *container,
++			       GtkWidget    *widget);
++
+ #ifdef GDK_WINDOWING_X11
+ static void egg_tray_icon_update_manager_window (EggTrayIcon *icon,
+ 							gboolean dock_if_realized);
+@@ -111,6 +114,7 @@
+ {
+ 	GObjectClass *gobject_class = (GObjectClass *)klass;
+ 	GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
++	GtkContainerClass *container_class = (GtkContainerClass *)klass;
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+ 
+@@ -118,6 +122,8 @@
+ 
+ 	widget_class->realize = egg_tray_icon_realize;
+ 	widget_class->unrealize = egg_tray_icon_unrealize;
++	
++	container_class->add = egg_tray_icon_add;
+ 
+ 	g_object_class_install_property (gobject_class,
+ 					 PROP_ORIENTATION,
+@@ -333,6 +339,36 @@
+ 	}
+ }
+ 
++static gboolean
++transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
++{
++  gdk_window_clear_area (widget->window, event->area.x, event->area.y,
++			 event->area.width, event->area.height);
++  return FALSE;
++}
++
++static void
++make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
++			gpointer user_data)
++{
++  gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++}
++
++static void
++make_transparent (GtkWidget *widget, gpointer user_data)
++{
++  if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
++    return;
++
++  gtk_widget_set_app_paintable (widget, TRUE);
++  gtk_widget_set_double_buffered (widget, FALSE);
++  gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++  g_signal_connect (widget, "expose_event",
++		    G_CALLBACK (transparent_expose_event), NULL);
++  g_signal_connect_after (widget, "style_set",
++			  G_CALLBACK (make_transparent_again), NULL);
++}	
++
+ static void
+ egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
+ {
+@@ -365,6 +401,8 @@
+ 
+ 	if (GTK_WIDGET_CLASS (parent_class)->realize)
+ 		GTK_WIDGET_CLASS (parent_class)->realize (widget);
++		
++	make_transparent (widget, NULL);
+ 
+ 	screen = gtk_widget_get_screen (widget);
+ 	display = gdk_screen_get_display (screen);
+@@ -397,6 +435,14 @@
+ #endif
+ }
+ 
++static void
++egg_tray_icon_add (GtkContainer *container, GtkWidget *widget)
++{
++  g_signal_connect (widget, "realize",
++		    G_CALLBACK (make_transparent), NULL);
++  GTK_CONTAINER_CLASS (parent_class)->add (container, widget);
++}
++
+ EggTrayIcon *
+ egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name)
+ {



More information about the SM-Commit mailing list