[Pkg-cli-apps-commits] [SCM] banshee branch, experimental, updated. debian/1.7.3-2-10-g84b7e85
Chow Loong Jin
hyperair at ubuntu.com
Thu Aug 12 13:59:05 UTC 2010
The following commit has been merged in the experimental branch:
commit 5124b84734ff571324feb411503476404dd245bc
Author: Chow Loong Jin <hyperair at ubuntu.com>
Date: Thu Aug 12 14:14:08 2010 +0800
Drop 01_fix-icon-transparency.patch
Changes applied upstream
diff --git a/debian/patches/01_fix-icon-transparency.patch b/debian/patches/01_fix-icon-transparency.patch
deleted file mode 100644
index 717ed9d..0000000
--- a/debian/patches/01_fix-icon-transparency.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-From d0f8bf8ae3ca25388b0af4a0d2c016aad0c363f1 Mon Sep 17 00:00:00 2001
-From: Bertrand Lorentz <bertrand.lorentz at gmail.com>
-Date: Sun, 20 Jun 2010 20:18:11 +0200
-Subject: [PATCH] [X11NotificationArea] Fix icon transparency (bgo#588255)
-
-This change is mostly a transposition of the following change in
-gtktrayicon-x11.c :
-http://git.gnome.org/browse/gtk+/commit/?id=783c7932f38e5690b8b5f98313f301b0f18b09c3
----
- .../X11NotificationArea.cs | 136 +++++++++++++++++---
- 1 files changed, 119 insertions(+), 17 deletions(-)
-
-diff --git a/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationArea.cs b/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationArea.cs
-index 4519e37..8afbd6c 100644
---- a/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationArea.cs
-+++ b/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationArea.cs
-@@ -46,11 +46,14 @@ public class X11NotificationArea : Plug
- {
- private uint stamp;
- private Orientation orientation;
-+ private Visual visual;
-+ private bool visual_is_rgba;
-
- private IntPtr selection_atom;
- private IntPtr manager_atom;
- private IntPtr system_tray_opcode_atom;
- private IntPtr orientation_atom;
-+ private IntPtr visual_atom;
- private IntPtr message_data_atom;
- private IntPtr manager_window;
- private FilterFunc filter;
-@@ -122,6 +125,18 @@ public class X11NotificationArea : Plug
- orientation = Orientation.Horizontal;
- AddEvents ((int)EventMask.PropertyChangeMask);
- filter = new FilterFunc (ManagerFilter);
-+
-+ Display display = Screen.Display;
-+ IntPtr xdisplay = gdk_x11_display_get_xdisplay (display.Handle);
-+ selection_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_S" + Screen.Number.ToString (), false);
-+ manager_atom = XInternAtom (xdisplay, "MANAGER", false);
-+ system_tray_opcode_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_OPCODE", false);
-+ orientation_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_ORIENTATION", false);
-+ visual_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_VISUAL", false);
-+ message_data_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_MESSAGE_DATA", false);
-+
-+ Screen.RootWindow.AddFilter (filter);
-+ UpdateManagerWindow (false);
- }
-
- [GLib.ConnectBefore]
-@@ -130,14 +145,29 @@ public class X11NotificationArea : Plug
- Gtk.Widget widget = (Gtk.Widget)obj;
- Gdk.Rectangle area = args.Event.Area;
-
-- widget.GdkWindow.ClearArea (area.X, area.Y, area.Width, area.Height);
-+ if (visual_is_rgba) {
-+ Cairo.Context cr = Gdk.CairoHelper.Create (widget.GdkWindow);
-+ cr.SetSourceRGBA (0, 0, 0, 0);
-+ cr.Operator = Cairo.Operator.Source;
-+ Gdk.CairoHelper.Region (cr, args.Event.Region);
-+ cr.Fill ();
-+
-+ ((IDisposable)cr.Target).Dispose ();
-+ ((IDisposable)cr).Dispose ();
-+ } else {
-+ widget.GdkWindow.ClearArea (area.X, area.Y, area.Width, area.Height);
-+ }
- }
-
- private void MakeTransparentAgain (object obj, Gtk.StyleSetArgs args)
- {
- Gtk.Widget widget = (Gtk.Widget)obj;
-
-- widget.GdkWindow.SetBackPixmap (null, true);
-+ if (visual_is_rgba) {
-+ widget.GdkWindow.Background = Gdk.Color.Zero;
-+ } else {
-+ widget.GdkWindow.SetBackPixmap (null, true);
-+ }
- }
-
- private void MakeTransparent (object obj, EventArgs args)
-@@ -147,26 +177,37 @@ public class X11NotificationArea : Plug
- return;
-
- widget.AppPaintable = true;
-- widget.DoubleBuffered = false;
-- widget.GdkWindow.SetBackPixmap (null, true);
-+ if (visual_is_rgba) {
-+ widget.GdkWindow.Background = Gdk.Color.Zero;
-+ } else {
-+ widget.DoubleBuffered = false;
-+ widget.GdkWindow.SetBackPixmap (null, true);
-+ }
- widget.ExposeEvent += TransparentExposeEvent;
- widget.StyleSet += MakeTransparentAgain;
- }
-
-+ private void SetColormap ()
-+ {
-+ Gtk.Widget widget = (Gtk.Widget)this;
-+
-+ if (visual == null || visual == Screen.SystemVisual) {
-+ widget.Colormap = Screen.SystemColormap;
-+ } else if (visual == Screen.RgbVisual) {
-+ widget.Colormap = Screen.RgbColormap;
-+ } else if (visual == Screen.RgbaVisual) {
-+ widget.Colormap = Screen.RgbaColormap;
-+ } else {
-+ widget.Colormap = new Colormap (visual, false);
-+ }
-+ }
-+
- protected override void OnRealized ()
- {
-+ SetColormap ();
- base.OnRealized ();
- MakeTransparent (this, EventArgs.Empty);
-- Display display = Screen.Display;
-- IntPtr xdisplay = gdk_x11_display_get_xdisplay (display.Handle);
-- selection_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_S" + Screen.Number.ToString (), false);
-- manager_atom = XInternAtom (xdisplay, "MANAGER", false);
-- system_tray_opcode_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_OPCODE", false);
-- orientation_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_ORIENTATION", false);
-- message_data_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_MESSAGE_DATA", false);
-- UpdateManagerWindow (false);
- SendDockRequest ();
-- Screen.RootWindow.AddFilter (filter);
- }
-
- protected override void OnAdded (Gtk.Widget child)
-@@ -216,11 +257,23 @@ public class X11NotificationArea : Plug
- gdkwin.AddFilter (filter);
- }
-
-- if (dock_if_realized && IsRealized) {
-- SendDockRequest ();
-- }
--
- GetOrientationProperty ();
-+ GetVisualProperty ();
-+
-+ if (IsRealized) {
-+ if ((visual == null && Visual == Screen.SystemVisual)
-+ || visual == Visual) {
-+ // Already have the right visual, can just dock
-+ if (dock_if_realized) {
-+ SendDockRequest ();
-+ }
-+ } else {
-+ // Need to re-realize the widget to get the right visual
-+ Hide ();
-+ Unrealize ();
-+ Show ();
-+ }
-+ }
- }
- }
-
-@@ -334,6 +387,54 @@ public class X11NotificationArea : Plug
- }
- }
-
-+ private void GetVisualProperty ()
-+ {
-+ IntPtr display;
-+ IntPtr type;
-+ int format;
-+ IntPtr prop_return;
-+ IntPtr nitems, bytes_after;
-+ int error, result;
-+
-+ if (manager_window == IntPtr.Zero) {
-+ return;
-+ }
-+
-+ display = gdk_x11_display_get_xdisplay (Display.Handle);
-+
-+ gdk_error_trap_push ();
-+ type = IntPtr.Zero;
-+
-+ result = XGetWindowProperty (display, manager_window, visual_atom, (IntPtr) 0,
-+ (IntPtr) System.Int32.MaxValue, false, (IntPtr) XAtom.VisualId, out type, out format,
-+ out nitems, out bytes_after, out prop_return);
-+
-+ error = gdk_error_trap_pop ();
-+
-+ if (error != 0 || result != 0) {
-+ return;
-+ }
-+
-+ if (type == (IntPtr) XAtom.VisualId) {
-+ int visual_id = Marshal.ReadInt32 (prop_return);
-+ IntPtr raw_ret = gdk_x11_screen_lookup_visual (Screen.Handle, visual_id);
-+ visual = GLib.Object.GetObject(raw_ret) as Gdk.Visual;
-+ }
-+
-+ // TODO the proper check is (visual->red_prec + visual->blue_prec + visual->green_prec < visual->depth)
-+ visual_is_rgba = visual != null && visual == Screen.RgbaVisual;
-+
-+ // we can't be double-buffered when we aren't using a real RGBA visual
-+ DoubleBuffered = visual_is_rgba;
-+
-+ if (prop_return != IntPtr.Zero) {
-+ XFree (prop_return);
-+ }
-+ }
-+
-+ [DllImport ("libgdk-x11-2.0.so.0")]
-+ private static extern IntPtr gdk_x11_screen_lookup_visual (IntPtr screen, int visual_id);
-+
- [DllImport ("libgdk-x11-2.0.so.0")]
- private static extern IntPtr gdk_x11_display_get_xdisplay (IntPtr display);
-
-@@ -462,6 +563,7 @@ public class X11NotificationArea : Plug
-
- private enum XAtom {
- Cardinal = 6,
-+ VisualId = 32,
- LASTAtom
- }
-
---
-1.7.0.4
-
diff --git a/debian/patches/series b/debian/patches/series
index b85e09a..dd7de4d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,2 @@
-01_fix-icon-transparency.patch
02_fix-configure.patch
99_ltmain_as-needed.patch
--
banshee
More information about the Pkg-cli-apps-commits
mailing list