rpms/notify-daemon/devel notify-daemon-0.3.1-xselection.patch, NONE, 1.1 notify-daemon.spec, 1.6, 1.7

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Feb 3 22:29:43 UTC 2006


Author: caillon

Update of /cvs/dist/rpms/notify-daemon/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv21972

Modified Files:
	notify-daemon.spec 
Added Files:
	notify-daemon-0.3.1-xselection.patch 
Log Message:
* Fri Feb  3 2006 Christopher Aillon <caillon at redhat.com> - 0.3.1-6
- Add patch to determine whether a compositing manager is running
  when drawing a new notification bubble, as long as the CM grabs
  the appropriate XSelection.


notify-daemon-0.3.1-xselection.patch:
 eggnotificationbubblewidget.c |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

--- NEW FILE notify-daemon-0.3.1-xselection.patch ---
--- notify-daemon-0.3.1/src/eggnotificationbubblewidget.c.xselection	2006-02-03 17:25:46.000000000 -0500
+++ notify-daemon-0.3.1/src/eggnotificationbubblewidget.c	2006-02-03 17:27:18.000000000 -0500
@@ -23,6 +23,7 @@
 #include <math.h>
 
 #include <gtk/gtk.h>
+#include <gdk/gdkx.h>
 #include "eggnotificationbubblewidget.h"
 
 #define BORDER_SIZE 30 
@@ -186,6 +187,23 @@
     G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static gboolean
+xcomp_manager_running (EggNotificationBubbleWidget *w)
+{
+  GdkScreen *screen = gtk_window_get_screen (GTK_WINDOW (w));
+  GdkDisplay *display = gdk_screen_get_display (screen);
+  gint number = gdk_screen_get_number (screen);
+  char buf[128];
+  GdkWindow *owner = NULL;
+
+  snprintf (buf, sizeof (buf), "CM_S%d", number);
+
+  GdkAtom clipboard_atom = gdk_atom_intern (buf, FALSE);
+
+  owner = gdk_selection_owner_get_for_display (display, clipboard_atom);
+  return (owner != NULL);
+}
+
 static void
 _layout_window (EggNotificationBubbleWidget *bubble_widget,
                 int alignment)
@@ -1010,7 +1028,7 @@
   GtkWidget *widget;
   cairo_t *cairo_context;
   cairo_t *mask_cr;
-  gboolean can_composite;
+  gboolean do_composite;
 
   mask_cr = NULL;
   mask = NULL;
@@ -1020,8 +1038,8 @@
 
   widget = GTK_WIDGET(bubble_widget);
   cairo_context = gdk_cairo_create (widget->window);
-  
-  can_composite = bubble_widget->can_composite;
+
+  do_composite = bubble_widget->can_composite && xcomp_manager_running (bubble_widget);
 
   _calculate_colors_from_style (bubble_widget);
 
@@ -1029,17 +1047,17 @@
   w = requisition.width;
   h = requisition.height;
 
-  if (!can_composite)
+  if (!do_composite)
     {
       mask = gdk_pixmap_new (NULL, w, h, 1);
       mask_cr = gdk_cairo_create ((GdkDrawable *) mask);
     }
 
   g_list_foreach (bubble_widget->dp.pipeline, (GFunc) _drawing_instruction_draw, cairo_context);
-  if (!can_composite)
+  if (!do_composite)
     g_list_foreach (bubble_widget->dp.pipeline, (GFunc) _drawing_instruction_draw, mask_cr);
 
-  if (can_composite)
+  if (do_composite)
     cairo_set_source_rgba (cairo_context, 1, 1, 1, 0);
   else
     cairo_set_source_rgba (cairo_context, 
@@ -1078,7 +1096,7 @@
   cairo_set_source_rgba (cairo_context, 0.43, 0.49, 0.55, 1);
   cairo_stroke (cairo_context);
 
-  if (!can_composite)
+  if (!do_composite)
     {
       cairo_set_operator (mask_cr, CAIRO_OPERATOR_CLEAR);
       cairo_paint (mask_cr);


Index: notify-daemon.spec
===================================================================
RCS file: /cvs/dist/rpms/notify-daemon/devel/notify-daemon.spec,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- notify-daemon.spec	20 Jan 2006 21:58:23 -0000	1.6
+++ notify-daemon.spec	3 Feb 2006 22:29:40 -0000	1.7
@@ -4,7 +4,7 @@
 Summary: Notification Daemon 
 Name: notify-daemon
 Version: 0.3.1
-Release: 5
+Release: 6
 URL: http://www.galago-project.org/specs/notification/ 
 License: GPL
 Group: System Environment/Libraries
@@ -19,6 +19,7 @@
 Source0: %{name}-%{version}.tar.gz
 Patch0: notify-daemon-0.3.1-position.patch
 Patch1: notify-daemon-0.3.1-message-markup.patch
+Patch2: notify-daemon-0.3.1-xselection.patch
 
 %description
 
@@ -27,8 +28,9 @@
 
 %prep
 %setup -q
-%patch0 -p0
-%patch1 -p1
+%patch0 -p0 -b .position
+%patch1 -p1 -b .message-markup
+%patch2 -p1 -b .xselection
 
 %build
 
@@ -55,6 +57,11 @@
 %{_datadir}/dbus-1/services/notify-daemon.service
 
 %changelog
+* Fri Feb  3 2006 Christopher Aillon <caillon at redhat.com> - 0.3.1-6
+- Add patch to determine whether a compositing manager is running
+  when drawing a new notification bubble, as long as the CM grabs
+  the appropriate XSelection.
+
 * Fri Jan 20 2006 Christopher Aillon <caillon at redhat.com> - 0.3.1-5
 - Make it so that marked-up messages appear with markup
 




More information about the fedora-cvs-commits mailing list