r28809 - in /trunk/libgtk2-trayicon-perl: ChangeLog MANIFEST.SKIP META.yml TrayIcon.pm debian/changelog eggtrayicon.c eggtrayicon.h perl-Gtk2-TrayIcon.spec.in
ryan52-guest at users.alioth.debian.org
ryan52-guest at users.alioth.debian.org
Sun Dec 28 10:07:09 UTC 2008
Author: ryan52-guest
Date: Sun Dec 28 10:07:06 2008
New Revision: 28809
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=28809
Log:
new upstream version
Modified:
trunk/libgtk2-trayicon-perl/ChangeLog
trunk/libgtk2-trayicon-perl/MANIFEST.SKIP
trunk/libgtk2-trayicon-perl/META.yml
trunk/libgtk2-trayicon-perl/TrayIcon.pm
trunk/libgtk2-trayicon-perl/debian/changelog
trunk/libgtk2-trayicon-perl/eggtrayicon.c
trunk/libgtk2-trayicon-perl/eggtrayicon.h
trunk/libgtk2-trayicon-perl/perl-Gtk2-TrayIcon.spec.in
Modified: trunk/libgtk2-trayicon-perl/ChangeLog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/ChangeLog?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/ChangeLog (original)
+++ trunk/libgtk2-trayicon-perl/ChangeLog Sun Dec 28 10:07:06 2008
@@ -1,3 +1,25 @@
+2007/05/15 00:01 (+0200) borup
+
+ * eggtrayicon.[ch]: merge changes from svn head
+
+2006/05/14 21:04 (+0200) borup
+
+ * eggtrayicon.[ch]: merge changes from svn head
+ * eggtrayicon.[ch]: apply patch from:
+ http://bugzilla.gnome.org/show_bug.cgi?id=150726
+
+2005/03/03 21:54 (-0400) muppetman
+
+ * eggtrayicon.c: apply patch from
+ http://bugzilla.gnome.org/show_bug.cgi?id=123570
+
+2004/10/24 11:55 (-0400) rwmcfa1
+
+ * MANIFEST.SKIP: updates
+
+ * perl-Gtk2-TrayIcon.spec.in: new scheme that addresses x86_64 problems
+ found by Carl Nygard
+
2004/02/26 17:41 (-0500) muppetman
* Makefile.PL: remove no-op
Modified: trunk/libgtk2-trayicon-perl/MANIFEST.SKIP
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/MANIFEST.SKIP?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/MANIFEST.SKIP (original)
+++ trunk/libgtk2-trayicon-perl/MANIFEST.SKIP Sun Dec 28 10:07:06 2008
@@ -1,14 +1,14 @@
+~$
+\.bak$
+blib
+\.bs$
+build
CVS
-\.bak$
-\.bs$
-TrayIcon.c
-\.o$
+\.cvsignore$
Makefile$
Makefile\.old$
-~$
+\.o$
+\.spec$
\.sw.$
-\.cvsignore$
-blib
-build
-Gtk2-TrayIcon-.+\.tar\.gz
-
+\.tar\.gz$
+TrayIcon.c
Modified: trunk/libgtk2-trayicon-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/META.yml?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/META.yml (original)
+++ trunk/libgtk2-trayicon-perl/META.yml Sun Dec 28 10:07:06 2008
@@ -1,11 +1,11 @@
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: Gtk2-TrayIcon
-version: 0.04
+version: 0.06
version_from: TrayIcon.pm
installdirs: site
requires:
Gtk2: 0.96
distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.17
+generated_by: ExtUtils::MakeMaker version 6.30_01
Modified: trunk/libgtk2-trayicon-perl/TrayIcon.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/TrayIcon.pm?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/TrayIcon.pm (original)
+++ trunk/libgtk2-trayicon-perl/TrayIcon.pm Sun Dec 28 10:07:06 2008
@@ -11,7 +11,7 @@
our @ISA = qw(DynaLoader);
-our $VERSION = '0.04';
+our $VERSION = '0.06';
sub dl_load_flags { 0x01 }
Modified: trunk/libgtk2-trayicon-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/debian/changelog?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/debian/changelog (original)
+++ trunk/libgtk2-trayicon-perl/debian/changelog Sun Dec 28 10:07:06 2008
@@ -1,4 +1,4 @@
-libgtk2-trayicon-perl (0.04-2) UNRELEASED; urgency=low
+libgtk2-trayicon-perl (0.06-1) UNRELEASED; urgency=low
* Take over for the Debian Perl Group on maintainer's request
(http://lists.debian.org/debian-perl/2008/12/msg00163.html)
@@ -10,8 +10,9 @@
Uploaders.
* Add debian/watch.
* Add me to uploaders, remove old maintainer(s)
+ * New upstream release (Closes: #481557)
- -- Ryan Niebur <ryanryan52 at gmail.com> Sun, 28 Dec 2008 01:06:41 -0800
+ -- Ryan Niebur <ryanryan52 at gmail.com> Sun, 28 Dec 2008 02:05:28 -0800
libgtk2-trayicon-perl (0.04-1) unstable; urgency=low
Modified: trunk/libgtk2-trayicon-perl/eggtrayicon.c
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/eggtrayicon.c?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/eggtrayicon.c (original)
+++ trunk/libgtk2-trayicon-perl/eggtrayicon.c Sun Dec 28 10:07:06 2008
@@ -18,13 +18,19 @@
* Boston, MA 02111-1307, USA.
*/
+#include <config.h>
#include <string.h>
#include <libintl.h>
#include "eggtrayicon.h"
+#include <gdkconfig.h>
+#if defined (GDK_WINDOWING_X11)
#include <gdk/gdkx.h>
#include <X11/Xatom.h>
+#elif defined (GDK_WINDOWING_WIN32)
+#include <gdk/gdkwin32.h>
+#endif
#ifndef EGG_COMPILATION
#ifndef _
@@ -61,7 +67,14 @@
static void egg_tray_icon_realize (GtkWidget *widget);
static void egg_tray_icon_unrealize (GtkWidget *widget);
-static void egg_tray_icon_update_manager_window (EggTrayIcon *icon);
+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);
+static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon);
+#endif
GType
egg_tray_icon_get_type (void)
@@ -103,6 +116,7 @@
{
GObjectClass *gobject_class = (GObjectClass *)klass;
GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
+ GtkContainerClass *container_class = (GtkContainerClass *)klass;
parent_class = g_type_class_peek_parent (klass);
@@ -110,6 +124,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,
@@ -119,6 +135,14 @@
GTK_TYPE_ORIENTATION,
GTK_ORIENTATION_HORIZONTAL,
G_PARAM_READABLE));
+
+#if defined (GDK_WINDOWING_X11)
+ /* Nothing */
+#elif defined (GDK_WINDOWING_WIN32)
+ g_warning ("Port eggtrayicon to Win32");
+#else
+ g_warning ("Port eggtrayicon to this GTK+ backend");
+#endif
}
static void
@@ -139,6 +163,8 @@
break;
}
}
+
+#ifdef GDK_WINDOWING_X11
static void
egg_tray_icon_get_orientation_property (EggTrayIcon *icon)
@@ -155,12 +181,8 @@
int error, result;
g_assert (icon->manager_window != None);
-
-#ifdef GDK_TYPE_DISPLAY
+
xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-#else
- xdisplay = GDK_WINDOW_XDISPLAY (GTK_WIDGET (icon)->window);
-#endif
gdk_error_trap_push ();
type = None;
@@ -206,7 +228,7 @@
xev->xclient.message_type == icon->manager_atom &&
xev->xclient.data.l[1] == icon->selection_atom)
{
- egg_tray_icon_update_manager_window (icon);
+ egg_tray_icon_update_manager_window (icon, TRUE);
}
else if (xev->xany.window == icon->manager_window)
{
@@ -217,16 +239,18 @@
}
if (xev->xany.type == DestroyNotify)
{
- egg_tray_icon_update_manager_window (icon);
+ egg_tray_icon_manager_window_destroyed (icon);
}
}
-
return GDK_FILTER_CONTINUE;
}
+#endif
+
static void
egg_tray_icon_unrealize (GtkWidget *widget)
{
+#ifdef GDK_WINDOWING_X11
EggTrayIcon *icon = EGG_TRAY_ICON (widget);
GdkWindow *root_window;
@@ -234,27 +258,22 @@
{
GdkWindow *gdkwin;
-#ifdef GDK_TYPE_DISPLAY
gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
icon->manager_window);
-#else
- gdkwin = gdk_window_lookup (icon->manager_window);
-#endif
gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
}
-#ifdef GDK_TYPE_SCREEN
root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));
-#else
- root_window = gdk_get_default_root_window ();
-#endif
gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon);
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
-}
+#endif
+}
+
+#ifdef GDK_WINDOWING_X11
static void
egg_tray_icon_send_manager_message (EggTrayIcon *icon,
@@ -277,11 +296,7 @@
ev.data.l[3] = data2;
ev.data.l[4] = data3;
-#ifdef GDK_TYPE_DISPLAY
display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-#else
- display = GDK_WINDOW_XDISPLAY (GTK_WIDGET (icon)->window);
-#endif
gdk_error_trap_push ();
XSendEvent (display,
@@ -301,29 +316,15 @@
}
static void
-egg_tray_icon_update_manager_window (EggTrayIcon *icon)
+egg_tray_icon_update_manager_window (EggTrayIcon *icon,
+ gboolean dock_if_realized)
{
Display *xdisplay;
-#ifdef GDK_TYPE_DISPLAY
+ if (icon->manager_window != None)
+ return;
+
xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-#else
- xdisplay = GDK_WINDOW_XDISPLAY (GTK_WIDGET (icon)->window);
-#endif
-
- if (icon->manager_window != None)
- {
- GdkWindow *gdkwin;
-
-#ifdef GDK_TYPE_DISPLAY
- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
- icon->manager_window);
-#else
- gdkwin = gdk_window_lookup (icon->manager_window);
-#endif
-
- gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
- }
XGrabServer (xdisplay);
@@ -341,30 +342,74 @@
{
GdkWindow *gdkwin;
-#ifdef GDK_TYPE_DISPLAY
gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
icon->manager_window);
-#else
- gdkwin = gdk_window_lookup (icon->manager_window);
-#endif
gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
- /* Send a request that we'd like to dock */
- egg_tray_icon_send_dock_request (icon);
+ if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
+ egg_tray_icon_send_dock_request (icon);
egg_tray_icon_get_orientation_property (icon);
}
}
static void
+egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
+{
+ GdkWindow *gdkwin;
+
+ g_return_if_fail (icon->manager_window != None);
+
+ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+
+ icon->manager_window = None;
+
+ egg_tray_icon_update_manager_window (icon, TRUE);
+}
+
+#endif
+
+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_realize (GtkWidget *widget)
{
+#ifdef GDK_WINDOWING_X11
EggTrayIcon *icon = EGG_TRAY_ICON (widget);
-#if defined(GDK_TYPE_DISPLAY) && defined(GDK_TYPE_SCREEN)
GdkScreen *screen;
GdkDisplay *display;
-#endif
Display *xdisplay;
char buffer[256];
GdkWindow *root_window;
@@ -372,7 +417,8 @@
if (GTK_WIDGET_CLASS (parent_class)->realize)
GTK_WIDGET_CLASS (parent_class)->realize (widget);
-#if defined(GDK_TYPE_DISPLAY) && defined(GDK_TYPE_SCREEN)
+ make_transparent (widget, NULL);
+
screen = gtk_widget_get_screen (widget);
display = gdk_screen_get_display (screen);
xdisplay = gdk_x11_display_get_xdisplay (display);
@@ -381,14 +427,6 @@
g_snprintf (buffer, sizeof (buffer),
"_NET_SYSTEM_TRAY_S%d",
gdk_screen_get_number (screen));
-#else
- xdisplay = GDK_WINDOW_XDISPLAY (widget->window);
-
- /* Now see if there's a manager window around */
- g_snprintf (buffer, sizeof (buffer),
- "_NET_SYSTEM_TRAY_S%d",
- 0);
-#endif
icon->selection_atom = XInternAtom (xdisplay, buffer, False);
@@ -402,30 +440,23 @@
"_NET_SYSTEM_TRAY_ORIENTATION",
False);
- egg_tray_icon_update_manager_window (icon);
-
-#ifdef GDK_TYPE_SCREEN
+ egg_tray_icon_update_manager_window (icon, FALSE);
+ egg_tray_icon_send_dock_request (icon);
+
root_window = gdk_screen_get_root_window (screen);
-#else
- root_window = gdk_get_default_root_window ();
-#endif
/* Add a root window filter so that we get changes on MANAGER */
gdk_window_add_filter (root_window,
egg_tray_icon_manager_filter, icon);
-}
-
-#ifdef GDK_TYPE_SCREEN
-EggTrayIcon *
-egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name)
-{
- GdkDisplay *display;
- GdkScreen *screen;
-
- display = gdk_x11_lookup_xdisplay (DisplayOfScreen (xscreen));
- screen = gdk_display_get_screen (display, XScreenNumberOfScreen (xscreen));
-
- return egg_tray_icon_new_for_screen (screen, name);
+#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 *
@@ -435,7 +466,6 @@
return g_object_new (EGG_TYPE_TRAY_ICON, "screen", screen, "title", name, NULL);
}
-#endif
EggTrayIcon*
egg_tray_icon_new (const gchar *name)
@@ -455,17 +485,20 @@
g_return_val_if_fail (timeout >= 0, 0);
g_return_val_if_fail (message != NULL, 0);
+#ifdef GDK_WINDOWING_X11
if (icon->manager_window == None)
return 0;
+#endif
if (len < 0)
len = strlen (message);
stamp = icon->stamp++;
+#ifdef GDK_WINDOWING_X11
/* Get ready to send the message */
egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,
- (Window)gtk_plug_get_id (GTK_PLUG (icon)),
+ icon->manager_window,
timeout, len, stamp);
/* Now to send the actual message */
@@ -475,14 +508,10 @@
XClientMessageEvent ev;
Display *xdisplay;
-#ifdef GDK_TYPE_DISPLAY
xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-#else
- xdisplay = GDK_WINDOW_XDISPLAY (GTK_WIDGET (icon)->window);
-#endif
ev.type = ClientMessage;
- ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon));
+ ev.window = icon->manager_window;
ev.format = 8;
ev.message_type = XInternAtom (xdisplay,
"_NET_SYSTEM_TRAY_MESSAGE_DATA", False);
@@ -503,6 +532,7 @@
XSync (xdisplay, False);
}
gdk_error_trap_pop ();
+#endif
return stamp;
}
@@ -513,10 +543,11 @@
{
g_return_if_fail (EGG_IS_TRAY_ICON (icon));
g_return_if_fail (id > 0);
-
+#ifdef GDK_WINDOWING_X11
egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,
(Window)gtk_plug_get_id (GTK_PLUG (icon)),
id, 0, 0);
+#endif
}
GtkOrientation
Modified: trunk/libgtk2-trayicon-perl/eggtrayicon.h
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/eggtrayicon.h?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/eggtrayicon.h (original)
+++ trunk/libgtk2-trayicon-perl/eggtrayicon.h Sun Dec 28 10:07:06 2008
@@ -22,7 +22,9 @@
#define __EGG_TRAY_ICON_H__
#include <gtk/gtkplug.h>
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#endif
G_BEGIN_DECLS
@@ -42,12 +44,13 @@
guint stamp;
+#ifdef GDK_WINDOWING_X11
Atom selection_atom;
Atom manager_atom;
Atom system_tray_opcode_atom;
Atom orientation_atom;
Window manager_window;
-
+#endif
GtkOrientation orientation;
};
@@ -58,10 +61,9 @@
GType egg_tray_icon_get_type (void);
-#ifdef GDK_TYPE_SCREEN
EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen,
const gchar *name);
-#endif
+
EggTrayIcon *egg_tray_icon_new (const gchar *name);
guint egg_tray_icon_send_message (EggTrayIcon *icon,
Modified: trunk/libgtk2-trayicon-perl/perl-Gtk2-TrayIcon.spec.in
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgtk2-trayicon-perl/perl-Gtk2-TrayIcon.spec.in?rev=28809&op=diff
==============================================================================
--- trunk/libgtk2-trayicon-perl/perl-Gtk2-TrayIcon.spec.in (original)
+++ trunk/libgtk2-trayicon-perl/perl-Gtk2-TrayIcon.spec.in Sun Dec 28 10:07:06 2008
@@ -33,26 +33,25 @@
make test
%install
-rm -rf $RPM_BUILD_ROOT
-eval `perl '-V:installarchlib'`
-mkdir -p $RPM_BUILD_ROOT$installarchlib
%makeinstall
-rm -f `find $RPM_BUILD_ROOT -type f -name perllocal.pod -o -name .packlist`
+
+[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress
-[ -x %{_libdir}/rpm/brp-compress ] && %{_libdir}/rpm/brp-compress
+find $RPM_BUILD_ROOT \( -name perllocal.pod -o -name .packlist \) -exec rm -v {} \;
-find $RPM_BUILD_ROOT%{_prefix} -type f -print | \
- sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-filelist
-if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then
- echo "ERROR: EMPTY FILE LIST"
- exit 1
+find $RPM_BUILD_ROOT/usr -type f -print | \
+ sed "s@^$RPM_BUILD_ROOT@@g" | \
+ grep -v perllocal.pod | \
+ grep -v "\.packlist" > %{name}-%{version}-filelist
+if [ "$(cat %{name}-%{version}-filelist)X" = "X" ] ; then
+ exit -1
fi
%clean
rm -rf $RPM_BUILD_ROOT
-%files -f %{name}-%{version}-%{release}-filelist
-%defattr(-,root,root,-)
+%files -f %{name}-%{version}-filelist
+%defattr(-,root,root)
%changelog
* @DATE@ gtk-perl-list at gnome.org - @VERSION@
More information about the Pkg-perl-cvs-commits
mailing list