rpms/stardict/devel transparent_trayicon.patch, NONE, 1.1 stardict.spec, 1.48, 1.49
Hu Zheng (zhu)
fedora-extras-commits at redhat.com
Fri Feb 29 03:55:12 UTC 2008
- Previous message (by thread): rpms/demorse/F-7 demorse-0.9-makefile.patch, NONE, 1.1 .cvsignore, 1.1, 1.2 demorse.spec, 1.1, 1.2 sources, 1.2, 1.3
- Next message (by thread): rpms/xulrunner/devel .cvsignore, 1.28, 1.29 sources, 1.29, 1.30 xulrunner.spec, 1.79, 1.80
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: zhu
Update of /cvs/pkgs/rpms/stardict/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28444
Modified Files:
stardict.spec
Added Files:
transparent_trayicon.patch
Log Message:
trayicon transparent fix
transparent_trayicon.patch:
--- NEW FILE transparent_trayicon.patch ---
diff -ur stardict-3.0.1.orig/src/docklet.cpp stardict-3.0.1/src/docklet.cpp
--- stardict-3.0.1.orig/src/docklet.cpp 2008-02-29 11:47:23.000000000 +0800
+++ stardict-3.0.1/src/docklet.cpp 2008-02-29 11:47:57.000000000 +0800
@@ -25,15 +25,15 @@
void DockLet::create_docklet()
{
docklet_ = egg_tray_icon_new("StarDict");
- box_ = gtk_event_box_new();
+ gtk_widget_add_events (GTK_WIDGET(docklet_), GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
if (is_hide_state()) {
- gtk_widget_set_tooltip_text(box_, _("StarDict"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(docklet_), _("StarDict"));
image_ = gtk_image_new_from_pixbuf(normal_icon_);
} else if (is_scan_on()) {
- gtk_widget_set_tooltip_text(box_, _("StarDict - Scanning"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(docklet_), _("StarDict - Scanning"));
image_ = gtk_image_new_from_pixbuf(scan_icon_);
} else {
- gtk_widget_set_tooltip_text(box_, _("StarDict - Stopped"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(docklet_), _("StarDict - Stopped"));
image_ = gtk_image_new_from_pixbuf(stop_icon_);
}
@@ -41,11 +41,10 @@
G_CALLBACK(on_embedded), this);
g_signal_connect(G_OBJECT(docklet_), "destroy",
G_CALLBACK(on_destroyed), this);
- g_signal_connect(G_OBJECT(box_), "button-press-event",
+ g_signal_connect(G_OBJECT(docklet_), "button-press-event",
G_CALLBACK(on_btn_press), this);
- gtk_container_add(GTK_CONTAINER(box_), image_);
- gtk_container_add(GTK_CONTAINER(docklet_), box_);
+ gtk_container_add(GTK_CONTAINER(docklet_), image_);
gtk_widget_show_all(GTK_WIDGET(docklet_));
/* ref the docklet_ before we bandy it about the place */
@@ -179,13 +178,13 @@
void DockLet::scan_on()
{
- gtk_widget_set_tooltip_text(box_, _("StarDict - Scanning"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(docklet_), _("StarDict - Scanning"));
gtk_image_set_from_pixbuf(GTK_IMAGE(image_), scan_icon_);
}
void DockLet::scan_off()
{
- gtk_widget_set_tooltip_text(box_, _("StarDict - Stopped"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(docklet_), _("StarDict - Stopped"));
gtk_image_set_from_pixbuf(GTK_IMAGE(image_), stop_icon_);
}
@@ -193,7 +192,7 @@
{
if (!image_)
return;
- gtk_widget_set_tooltip_text(box_, _("StarDict"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(docklet_), _("StarDict"));
gtk_image_set_from_pixbuf(GTK_IMAGE(image_), normal_icon_);
}
diff -ur stardict-3.0.1.orig/src/docklet.h stardict-3.0.1/src/docklet.h
--- stardict-3.0.1.orig/src/docklet.h 2008-02-29 11:47:23.000000000 +0800
+++ stardict-3.0.1/src/docklet.h 2008-02-29 11:47:57.000000000 +0800
@@ -16,7 +16,6 @@
void set_scan_mode(bool);
private:
EggTrayIcon *docklet_;
- GtkWidget *box_;
GtkWidget *image_; //icon image.
typedef ResourceWrapper<GtkWidget, GtkWidget, gtk_widget_destroy> GMenu;
GMenu menu_;
diff -ur stardict-3.0.1.orig/src/eggtrayicon.c stardict-3.0.1/src/eggtrayicon.c
--- stardict-3.0.1.orig/src/eggtrayicon.c 2008-02-29 11:47:23.000000000 +0800
+++ stardict-3.0.1/src/eggtrayicon.c 2008-02-29 11:47:57.000000000 +0800
@@ -66,6 +66,8 @@
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,
@@ -113,6 +115,7 @@
{
GObjectClass *gobject_class = (GObjectClass *)klass;
GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
+ GtkContainerClass *container_class = (GtkContainerClass *)klass;
parent_class = g_type_class_peek_parent (klass);
@@ -121,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,
g_param_spec_enum ("orientation",
@@ -159,6 +164,35 @@
}
#ifdef GDK_WINDOWING_X11
+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_get_orientation_property (EggTrayIcon *icon)
@@ -238,10 +272,22 @@
}
return GDK_FILTER_CONTINUE;
}
-
+#else
+static void
+make_transparent (GtkWidget *widget, gpointer user_data)
+{
+}
#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);
+}
+
+static void
egg_tray_icon_unrealize (GtkWidget *widget)
{
#ifdef GDK_WINDOWING_X11
@@ -381,6 +427,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);
xdisplay = gdk_x11_display_get_xdisplay (display);
Index: stardict.spec
===================================================================
RCS file: /cvs/pkgs/rpms/stardict/devel/stardict.spec,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- stardict.spec 28 Feb 2008 07:36:34 -0000 1.48
+++ stardict.spec 29 Feb 2008 03:54:35 -0000 1.49
@@ -5,12 +5,13 @@
Name: %{name}
Summary: A powerful dictionary platform written in GTK+2
Version: %{version}
-Release: 6%{?dist}
+Release: 7%{?dist}
Group: Applications/System
License: GPLv3
URL: http://stardict.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
-Patch0: stardict-3.0.1-gcc43.patch
+Patch0: stardict-3.0.1.gcc43.patch
+Patch1: transparent_trayicon.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: libgnome >= 2.2.0
@@ -42,6 +43,7 @@
%prep
%setup -q
%patch0 -p1 -b .gcc43
+%patch1 -p1 -b .trayicon
# Remove unneeded sigc++ header files to make it sure
# that we are using system-wide libsigc++
@@ -92,6 +94,9 @@
if which scrollkeeper-update>/dev/null 2>&1; then scrollkeeper-update; fi
%changelog
+* Fri Feb 29 2008 Hu Zheng <zhu at redhat.com> - 3.0.1-7
+- Add trayicon transparent patch.
+
* Thu Feb 28 2008 Hu Zheng <zhu at redhat.com> - 3.0.1-6
- OK
- Previous message (by thread): rpms/demorse/F-7 demorse-0.9-makefile.patch, NONE, 1.1 .cvsignore, 1.1, 1.2 demorse.spec, 1.1, 1.2 sources, 1.2, 1.3
- Next message (by thread): rpms/xulrunner/devel .cvsignore, 1.28, 1.29 sources, 1.29, 1.30 xulrunner.spec, 1.79, 1.80
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list