[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Docky 2.0.6 upload to Sid/Squeeze request



Hello,

this is a bug-fix-only upstream release which only includes
cherry-picked patches and translation updates!

I added an updated and a more filtered debdiff for better reading.

debdiff docky_2.0.5-1.dsc docky_2.0.6-1.dsc | filterdiff -x "*.po*" -x
"*configure*" -x "*.m4" > docky-206-debian-trimmed.debdiff

Regards,
Rico

Am 04.09.2010 13:18, schrieb Julien Cristau:
> On Wed, Sep  1, 2010 at 11:25:40 +0200, Rico Tzschichholz wrote:
> 
>> Hello,
>>
>> i want to know if it is still possible to upload a bugfix-only-release
>> of Docky to sid/squeeze?
>>
> I'm afraid it's getting late for this.  If there are any particular
> fixes you'd like to cherry-pick we can consider this, but the whole new
> upstream version is probably too much, sorry.
> 
> Cheers,
> Julien
diff -Nru docky-2.0.5/aclocal.m4 docky-2.0.6/aclocal.m4
diff -Nru docky-2.0.5/configure docky-2.0.6/configure
diff -Nru docky-2.0.5/configure.ac docky-2.0.6/configure.ac
diff -Nru docky-2.0.5/debian/changelog docky-2.0.6/debian/changelog
--- docky-2.0.5/debian/changelog	2010-09-04 14:02:37.000000000 +0200
+++ docky-2.0.6/debian/changelog	2010-09-04 14:02:37.000000000 +0200
@@ -1,3 +1,33 @@
+docky (2.0.6-1) experimental; urgency=low
+
+  * New upstream release 2.0.6 "Just lovin' it",
+    changes include:
+    + fix check for existing instance
+    + hitting ESC should cancel drags (LP: #460071)
+    + make sure plugins enabled by default are added to the dock on first run
+      and enable Trash docklet by default
+    + update badge drawing so the text is consistently sized
+    + fix leak of ThemedIcon/FileIcon in IconFromGIcon
+    + fix non-square items arent properly darken (LP: #584094)
+    + remove MenuList.Dispose which is not really needed, solves (LP: #609170)
+    + shrink config dialog (LP: #591448)
+
+    + RecentDocs: fix crash (LP: #580723)
+    + Mounter: use a better MountItem.UniqueID and don't fill up gconf with 
+      useless keys (temporary fix for LP: #600311)
+    + Weather: add weather icon for Smoke (LP: #612437)
+    + CPUMonitor: fix CPU utilization percentage (LP: #604677)
+    + GMail: 
+      - add debuging messages to gmail and log web response status when we 
+        have a web exception
+      - fix crash and leak in Gmail
+  * debian/patches:
+    + drop 01_use_cli_for_wrapper.patch
+  * patch build-system and bump dependency for new gio-sharp >= 2.22.2
+    + update debian/patches/use-system-gio-sharp.patch 
+
+ -- Rico Tzschichholz <ricotz@t-online.de>  Wed, 01 Sep 2010 09:37:14 +0200
+
 docky (2.0.5-1) unstable; urgency=low
 
   * New upstream release 2.0.5 "Be proud of your dock",
diff -Nru docky-2.0.5/debian/control docky-2.0.6/debian/control
--- docky-2.0.5/debian/control	2010-09-04 14:02:37.000000000 +0200
+++ docky-2.0.6/debian/control	2010-09-04 14:02:37.000000000 +0200
@@ -28,8 +28,8 @@
  libgtk2.0-dev,
  libglib2.0-dev,
  libgconf2-dev,
- libgio2.0-cil-dev,
-Standards-Version: 3.9.0
+ libgio2.0-cil-dev (>= 2.22.2),
+Standards-Version: 3.9.1
 XS-Python-Version: >= 2.5
 Vcs-Git: git://git.debian.org/git/pkg-cli-apps/packages/docky.git
 Vcs-Browser: http://git.debian.org/?p=pkg-cli-apps/packages/docky.git
diff -Nru docky-2.0.5/debian/patches/01_use_cli_for_wrapper.patch docky-2.0.6/debian/patches/01_use_cli_for_wrapper.patch
--- docky-2.0.5/debian/patches/01_use_cli_for_wrapper.patch	2010-09-04 14:02:37.000000000 +0200
+++ docky-2.0.6/debian/patches/01_use_cli_for_wrapper.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-Index: docky.debian.git/Docky/docky.in
-===================================================================
---- docky.debian.git.orig/Docky/docky.in
-+++ docky.debian.git/Docky/docky.in
-@@ -12,7 +12,7 @@
- fi
- 
- if [ `pgrep -u $(id -u) -f Docky.exe | wc -l` -lt 1 ]; then
--	exec mono "$DOCKY_EXE" "$@"
-+	exec /usr/bin/cli "$DOCKY_EXE" "$@"
- else
- 	echo "Docky appears to already be running.  Exiting..."
- fi
diff -Nru docky-2.0.5/debian/patches/series docky-2.0.6/debian/patches/series
--- docky-2.0.5/debian/patches/series	2010-09-04 14:02:37.000000000 +0200
+++ docky-2.0.6/debian/patches/series	2010-09-04 14:02:37.000000000 +0200
@@ -1,2 +1 @@
-01_use_cli_for_wrapper.patch
 use-system-gio-sharp.patch
diff -Nru docky-2.0.5/debian/patches/use-system-gio-sharp.patch docky-2.0.6/debian/patches/use-system-gio-sharp.patch
--- docky-2.0.5/debian/patches/use-system-gio-sharp.patch	2010-09-04 14:02:37.000000000 +0200
+++ docky-2.0.6/debian/patches/use-system-gio-sharp.patch	2010-09-04 14:02:37.000000000 +0200
@@ -1,17 +1,28 @@
 Index: docky/configure.ac
 ===================================================================
---- docky.orig/configure.ac	2010-05-31 21:02:35.577466139 +1000
-+++ docky/configure.ac	2010-05-31 21:41:51.636241823 +1000
-@@ -138,7 +138,7 @@
+--- docky.orig/configure.ac
++++ docky/configure.ac
+@@ -138,7 +138,18 @@
  DOCKY_WINDOWING_LIBS="-r:$(pwd)/build/Docky.Windowing.dll"
  AC_SUBST([DOCKY_WINDOWING_LIBS])
  
 -GIO_SHARP_LIBS="-r:$(pwd)/build/gio-sharp.dll"
-+PKG_CHECK_MODULES([GIO_SHARP], [gio-sharp-2.0])
++dnl gio-sharp is an unstable api library
++GIO_SHARP_REQUIRED_VERSION=2.22.2
++PKG_CHECK_MODULES([GIO_SHARP], [gio-sharp-2.0 >= $GIO_SHARP_REQUIRED_VERSION])
++files="`$PKG_CONFIG --variable=Libraries gio-sharp-2.0`"
++for file in $files; do
++	[ mkdir -p $top_srcdir/build ] && [ cp -vu $file $top_srcdir/build/ ]
++	GIO_SHARP_ASSEMBLIES="$GIO_SHARP_ASSEMBLIES $top_srcdir/build/$(basename $file)"
++	GIO_SHARP_LIBS="$GIO_SHARP_LIBS -r:$top_srcdir/build/$(basename $file)"
++	[[ -r "$file.config" ]] && [ mkdir -p $top_srcdir/build ] && [ cp -vu $file.config $top_srcdir/build/ ]
++	[[ -r "$file.config" ]] && GIO_SHARP_ASSEMBLIES="$GIO_SHARP_ASSEMBLIES $top_srcdir/build/$(basename $file).config"
++done
++AC_SUBST([GIO_SHARP_ASSEMBLIES])
  AC_SUBST([GIO_SHARP_LIBS])
  
  PKG_CHECK_MODULES([NUNIT], [nunit], have_nunit=yes, have_nunit=no)
-@@ -175,9 +175,6 @@
+@@ -175,9 +186,6 @@
  
  AC_CONFIG_FILES([
  lib/Makefile
@@ -23,9 +34,18 @@
  scripts/docky/docky.py
 Index: docky/Makefile.am
 ===================================================================
---- docky.orig/Makefile.am	2010-05-31 21:41:58.956209626 +1000
-+++ docky/Makefile.am	2010-05-31 21:42:11.246235746 +1000
-@@ -9,7 +9,6 @@
+--- docky.orig/Makefile.am
++++ docky/Makefile.am
+@@ -5,11 +5,15 @@
+ 
+ ACLOCAL_AMFLAGS = -I m4 -I m4/shamrock
+ 
++# Install copied assemblies to our libdir
++copiedlibsdir = $(pkglibdir)
++copiedlibs_DATA = \
++	$(GIO_SHARP_ASSEMBLIES)
++
+ SUBDIRS = \
  	. \
  	data \
  	scripts \
diff -Nru docky-2.0.5/Docky/AssemblyInfo.cs docky-2.0.6/Docky/AssemblyInfo.cs
--- docky-2.0.5/Docky/AssemblyInfo.cs	2010-07-01 19:05:38.505184002 +0200
+++ docky-2.0.6/Docky/AssemblyInfo.cs	2010-09-01 08:11:00.547532000 +0200
@@ -46,7 +46,7 @@
 //
 // You can specify all values by your own or you can build default build and revision
 // numbers with the '*' character (the default):
-[assembly: AssemblyVersion("1336")]
+[assembly: AssemblyVersion("1354")]
 
 // The following attributes specify the key for the sign of your assembly. See the
 // .NET Framework documentation for more information about signing.
@@ -58,8 +58,8 @@
 {
 	internal static class AssemblyInfo
 	{
-		public const string DisplayVersion = "2.0.5";
-		public const string VersionDetails = "bzr docky-2.0 r1336";
+		public const string DisplayVersion = "2.0.6";
+		public const string VersionDetails = "bzr docky-2.0 r1354";
 		public const string LocaleDirectory = "/usr/share/locale";
 		public const string InstallData = "/usr/share";
 	}
diff -Nru docky-2.0.5/Docky/Docky/DockController.cs docky-2.0.6/Docky/Docky/DockController.cs
--- docky-2.0.5/Docky/Docky/DockController.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/Docky/DockController.cs	2010-08-24 19:51:18.946278992 +0200
@@ -287,6 +287,7 @@
 		{
 			foreach (AbstractDockItemProvider provider in PluginManager.ItemProviders) {
 				if (!docks.Any (d => d.Preferences.ItemProviders.Contains (provider))) {
+					Log<DockController>.Warn ("\"{0}\" seems to have been abaondoned... disabling.", provider.Name);
 					PluginManager.Disable (provider);
 				}
 			}
diff -Nru docky-2.0.5/Docky/Docky/Docky.cs docky-2.0.6/Docky/Docky/Docky.cs
--- docky-2.0.5/Docky/Docky/Docky.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/Docky/Docky.cs	2010-08-24 20:41:52.206278994 +0200
@@ -24,6 +24,7 @@
 using System.IO;
 
 using Mono.Unix;
+using NDesk.DBus;
 
 using Gdk;
 using Gtk;
@@ -71,6 +72,10 @@
 			
 			// set process name
 			DockServices.System.SetProcessName ("docky");
+			if (CheckForInstance ()) {
+				Log.Error ("Another Docky instance was detected - exiting.");
+				return;
+			}
 			
 			// cache main thread
 			SystemService.MainThread = Thread.CurrentThread;
@@ -95,6 +100,11 @@
 			Gnome.Vfs.Vfs.Shutdown ();
 		}
 		
+		static bool CheckForInstance ()
+		{
+			return Bus.Session.NameHasOwner ("org.gnome.Docky");
+		}
+		
 		static void CheckComposite ()
 		{
 			GLib.Timeout.Add (2000, delegate {
diff -Nru docky-2.0.5/Docky/Docky/Interface/DockDragTracker.cs docky-2.0.6/Docky/Docky/Interface/DockDragTracker.cs
--- docky-2.0.5/Docky/Docky/Interface/DockDragTracker.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/Docky/Interface/DockDragTracker.cs	2010-08-24 20:35:26.886278993 +0200
@@ -48,6 +48,7 @@
 		bool drag_disabled = false;
 		int marker = 0;
 		uint drag_hover_timer;
+		IDictionary<AbstractDockItem, int> original_item_pos = new Dictionary<AbstractDockItem, int> ();
 		
 		AbstractDockItem drag_item;
 		
@@ -179,6 +180,8 @@
 		{
 			Owner.CursorTracker.RequestHighResolution (this);
 			InternalDragActive = true;
+			Keyboard.Grab (Owner.GdkWindow, true, Gtk.Global.CurrentEventTime);
+			drag_canceled = false;
 			
 			if (proxy_window != null) {
 				EnableDragTo ();
@@ -187,16 +190,21 @@
 			
 			Gdk.Pixbuf pbuf;
 			drag_item = Owner.HoveredItem;
+			original_item_pos.Clear ();
 			
 			// If we are in Reposition Mode or over a non-draggable item
 			// dont drag it!
 			if (drag_item is INonPersistedItem || RepositionMode)
 				drag_item = null;
 			
-			if (drag_item != null)
+			if (drag_item != null) {
+				foreach (AbstractDockItem adi in ProviderForItem (drag_item).Items)
+					original_item_pos [adi] = adi.Position;
+				
 				pbuf = Owner.HoveredItem.IconSurface (new DockySurface (1, 1), Owner.ZoomedIconSize, Owner.IconSize, 0).LoadToPixbuf ();
-			else
+			} else {
 				pbuf = new Gdk.Pixbuf (Gdk.Colorspace.Rgb, true, 8, 1, 1);
+			}
 			
 			Gtk.Drag.SetIconPixbuf (args.Context, pbuf, pbuf.Width / 2, pbuf.Height / 2);
 			pbuf.Dispose ();
@@ -337,6 +345,8 @@
 			ExternalDragActive = false;
 		}
 		
+		bool drag_canceled;
+		
 		/// <summary>
 		/// Emitted on the drag source when the drag finishes
 		/// </summary>
@@ -345,7 +355,7 @@
 			if (RepositionMode)
 				Owner.CursorTracker.CursorPositionChanged -= HandleCursorPositionChanged;
 			
-			if (drag_item != null) {
+			if (!drag_canceled && drag_item != null) {
 				if (!Owner.DockHovered) {
 					// Remove from dock
 					AbstractDockItemProvider provider = ProviderForItem (drag_item);
@@ -379,6 +389,7 @@
 			
 			InternalDragActive = false;
 			drag_item = null;
+			Keyboard.Ungrab (Gtk.Global.CurrentEventTime);
 			
 			Owner.AnimatedDraw ();
 			Owner.CursorTracker.CancelHighResolution (this);
@@ -397,7 +408,17 @@
 		/// </summary>
 		void HandleDragFailed (object o, DragFailedArgs args)
 		{
-			args.RetVal = true;
+			drag_canceled = args.DragResult == DragResult.UserCancelled;
+			
+			if (drag_canceled) {
+				foreach (KeyValuePair<AbstractDockItem, int> kvp in original_item_pos)
+					kvp.Key.Position = kvp.Value;
+				
+				Owner.UpdateCollectionBuffer ();
+				Owner.Preferences.SyncPreferences ();
+			}
+			
+			args.RetVal = !drag_canceled;
 		}
 
 		/// <summary>
diff -Nru docky-2.0.5/Docky/Docky/Interface/DockPreferences.cs docky-2.0.6/Docky/Docky/Interface/DockPreferences.cs
--- docky-2.0.5/Docky/Docky/Interface/DockPreferences.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/Docky/Interface/DockPreferences.cs	2010-08-24 20:00:47.446278995 +0200
@@ -1,5 +1,5 @@
 //  
-//  Copyright (C) 2009 Jason Smith, Robert Dyer, Chris Szikszoy
+//  Copyright (C) 2009-2010 Jason Smith, Robert Dyer, Chris Szikszoy
 // 
 //  This program is free software: you can redistribute it and/or modify
 //  it under the terms of the GNU General Public License as published by
@@ -350,6 +350,9 @@
 			
 			DefaultProvider.ItemsChanged += HandleDefaultProviderItemsChanged;
 			
+			if (FirstRun)
+				FirstRun = false;
+			
 			ShowAll ();
 		}
 
@@ -449,6 +452,14 @@
 			if (WindowManager)
 				DefaultProvider.SetWindowManager ();
 			
+			// on first run, add default plugins to the dock
+			if (FirstRun) {
+				Log<DockPreferences>.Info ("Adding default plugins.");
+				foreach (AbstractDockItemProvider provider in PluginManager.ItemProviders)
+					item_providers.Add (provider);
+				SyncPlugins ();
+			}
+			
 			autohide_box.Active = (int) Autohide;
 			UpdateAutohideDescription ();
 			fade_on_hide_check.Sensitive = (int) Autohide > 0;
@@ -464,7 +475,6 @@
 			threedee_check.Sensitive = Position == DockPosition.Bottom;
 			multiple_window_indicator_check.Active = IndicateMultipleWindows;
 			
-			
 			window_manager_check.Active = DefaultProvider.IsWindowManager;
 			DefaultProvider.WindowManagerChanged += delegate {
 				WindowManager = window_manager_check.Active = DefaultProvider.IsWindowManager;
@@ -533,8 +543,6 @@
 					launcher_music,
 					launcher_im,
 				}.Where (s => !String.IsNullOrEmpty (s));
-				
-				FirstRun = false;
 			}
 			
 			foreach (string launcher in Launchers) {
diff -Nru docky-2.0.5/Docky/Docky/Interface/DockWindow.cs docky-2.0.6/Docky/Docky/Interface/DockWindow.cs
--- docky-2.0.5/Docky/Docky/Interface/DockWindow.cs	2010-06-30 08:08:05.730310992 +0200
+++ docky-2.0.6/Docky/Docky/Interface/DockWindow.cs	2010-08-01 09:52:09.345963001 +0200
@@ -2338,7 +2338,7 @@
 			// darken the icon
 			if (darken > 0) {
 				Gdk.Rectangle area = DrawRegionForItemValue (item, center);
-				surface.Context.Rectangle (area.X, area.Y, area.Height, area.Width);
+				surface.Context.Rectangle (area.X, area.Y, area.Width, area.Height);
 				
 				surface.Context.Color = new Cairo.Color (0, 0, 0, darken);
 				
diff -Nru docky-2.0.5/Docky/Docky/PluginManager.cs docky-2.0.6/Docky/Docky/PluginManager.cs
--- docky-2.0.5/Docky/Docky/PluginManager.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/Docky/PluginManager.cs	2010-08-24 19:55:12.726278996 +0200
@@ -92,6 +92,8 @@
 			// Add feedback when addin is loaded or unloaded
 			AddinManager.AddinLoaded += AddinManagerAddinLoaded;
 			AddinManager.AddinUnloaded += AddinManagerAddinUnloaded;
+			
+			Log<PluginManager>.Debug ("Plugin manager initialized.");
 		}
 		
 		public static void Shutdown ()
diff -Nru docky-2.0.5/Docky/docky.in docky-2.0.6/Docky/docky.in
--- docky-2.0.5/Docky/docky.in	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/docky.in	2010-08-24 20:45:24.696278997 +0200
@@ -11,8 +11,4 @@
     DOCKY_EXE="@expanded_libdir@/@PACKAGE@/Docky.exe"
 fi
 
-if [ `pgrep -u $(id -u) -f Docky.exe | wc -l` -lt 1 ]; then
-	exec mono "$DOCKY_EXE" "$@"
-else
-	echo "Docky appears to already be running.  Exiting..."
-fi
+exec mono "$DOCKY_EXE" "$@"
diff -Nru docky-2.0.5/Docky/gtk-gui/Docky.ConfigurationWindow.cs docky-2.0.6/Docky/gtk-gui/Docky.ConfigurationWindow.cs
--- docky-2.0.5/Docky/gtk-gui/Docky.ConfigurationWindow.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky/gtk-gui/Docky.ConfigurationWindow.cs	2010-07-06 15:13:36.520626999 +0200
@@ -445,8 +445,8 @@
             if ((this.Child != null)) {
                 this.Child.ShowAll();
             }
-            this.DefaultWidth = 420;
-            this.DefaultHeight = 430;
+            this.DefaultWidth = 380;
+            this.DefaultHeight = 390;
             this.label3.MnemonicWidget = this.theme_combo;
             this.Show();
             this.config_notebook.SwitchPage += new Gtk.SwitchPageHandler(this.OnPageSwitch);
diff -Nru docky-2.0.5/Docky/gtk-gui/gui.stetic docky-2.0.6/Docky/gtk-gui/gui.stetic
--- docky-2.0.5/Docky/gtk-gui/gui.stetic	2010-07-01 18:36:53.750988000 +0200
+++ docky-2.0.6/Docky/gtk-gui/gui.stetic	2010-08-24 20:01:54.346146000 +0200
@@ -336,7 +336,7 @@
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Window" id="Docky.ConfigurationWindow" design-size="420 430">
+  <widget class="Gtk.Window" id="Docky.ConfigurationWindow" design-size="380 390">
     <property name="MemberName" />
     <property name="Title" translatable="yes">Docky Configuration</property>
     <property name="Icon">stock:gtk-preferences Menu</property>
diff -Nru docky-2.0.5/Docky.Items/Docky.Items/AbstractDockItem.cs docky-2.0.6/Docky.Items/Docky.Items/AbstractDockItem.cs
--- docky-2.0.5/Docky.Items/Docky.Items/AbstractDockItem.cs	2010-06-30 08:04:11.820310993 +0200
+++ docky-2.0.6/Docky.Items/Docky.Items/AbstractDockItem.cs	2010-08-01 10:34:05.335963002 +0200
@@ -643,6 +643,45 @@
 			if (string.IsNullOrEmpty (BadgeText))
 				return;
 			
+			int padding = 4;
+			int lineWidth = 2;
+			double size = (IsSmall ? 0.9 : 0.65) * Math.Min (surface.Width, surface.Height);
+			double x = surface.Width - size / 2;
+			double y = size / 2;
+			
+			if (!IsSmall) {
+				// draw outline shadow
+				surface.Context.LineWidth = lineWidth;
+				surface.Context.Color = new Cairo.Color (0, 0, 0, 0.5);
+				surface.Context.Arc (x, y + 1, size / 2 - lineWidth, 0, Math.PI * 2);
+				surface.Context.Stroke ();
+				
+				// draw filled gradient
+				RadialGradient rg = new RadialGradient (x, lineWidth, 0, x, lineWidth, size);
+				rg.AddColorStop (0, badgeColors [0]);
+				rg.AddColorStop (1.0, badgeColors [1]);
+				
+				surface.Context.Pattern = rg;
+				surface.Context.Arc (x, y, size / 2 - lineWidth, 0, Math.PI * 2);
+				surface.Context.Fill ();
+				rg.Destroy ();
+				
+				// draw outline
+				surface.Context.Color = new Cairo.Color (1, 1, 1, 1);
+				surface.Context.Arc (x, y, size / 2 - lineWidth, 0, Math.PI * 2);
+				surface.Context.Stroke ();
+				
+				surface.Context.LineWidth = lineWidth / 2;
+				surface.Context.Color = badgeColors [1];
+				surface.Context.Arc (x, y, size / 2 - 2 * lineWidth, 0, Math.PI * 2);
+				surface.Context.Stroke ();
+				
+				surface.Context.Color = new Cairo.Color (0, 0, 0, 0.2);
+			} else {
+				lineWidth = 0;
+				padding = 2;
+			}
+			
 			using (Pango.Layout layout = DockServices.Drawing.ThemedPangoLayout ())
 			{
 				layout.Width = Pango.Units.FromPixels (surface.Height / 2);
@@ -651,62 +690,35 @@
 				layout.FontDescription.Weight = Pango.Weight.Bold;
 				
 				Pango.Rectangle inkRect, logicalRect;
-				int tsize = 3;
-				do {
-					layout.FontDescription.AbsoluteSize = Pango.Units.FromPixels (tsize);
-					layout.SetText (BadgeText);
-					layout.GetPixelExtents (out inkRect, out logicalRect);
-					tsize++;
-				} while (Math.Max (logicalRect.Width, logicalRect.Height) < surface.Height / (IsSmall ? 1 : 2) - 8);
+				layout.FontDescription.AbsoluteSize = Pango.Units.FromPixels (surface.Height / 2);
+				layout.SetText (BadgeText);
+				layout.GetPixelExtents (out inkRect, out logicalRect);
+				
+				size -= 2 * padding + 2 * lineWidth;
 				
-				int size = Math.Max (logicalRect.Width, logicalRect.Height);
-				int padding = 4;
-				int lineWidth = 2;
-				int x = surface.Width - size / 2 - padding - lineWidth;
-				int y = size / 2 + padding + lineWidth;
+				double scale = Math.Min (1, Math.Min (size / (double) logicalRect.Width, size / (double) logicalRect.Height));
 				
 				if (!IsSmall) {
-					// draw outline shadow
-					surface.Context.LineWidth = lineWidth;
-					surface.Context.Color = new Cairo.Color (0, 0, 0, 0.5);
-					surface.Context.Arc (x, y + 1, size / 2 + padding, 0, Math.PI * 2);
-					surface.Context.Stroke ();
-					
-					// draw filled gradient
-					RadialGradient rg = new RadialGradient (x, lineWidth, 0, x, lineWidth, size + 2 * padding);
-					rg.AddColorStop (0, badgeColors [0]);
-					rg.AddColorStop (1.0, badgeColors [1]);
-					
-					surface.Context.Pattern = rg;
-					surface.Context.Arc (x, y, size / 2 + padding, 0, Math.PI * 2);
-					surface.Context.Fill ();
-					rg.Destroy ();
-					
-					// draw outline
-					surface.Context.Color = new Cairo.Color (1, 1, 1, 1);
-					surface.Context.Arc (x, y, size / 2 + padding, 0, Math.PI * 2);
-					surface.Context.Stroke ();
-					
-					surface.Context.LineWidth = lineWidth / 2;
-					surface.Context.Color = badgeColors [1];
-					surface.Context.Arc (x, y, size / 2 + padding - lineWidth, 0, Math.PI * 2);
-					surface.Context.Stroke ();
-					
 					surface.Context.Color = new Cairo.Color (0, 0, 0, 0.2);
 				} else {
-					x = surface.Width - logicalRect.Width / 2;
-					y = logicalRect.Height / 2;
 					surface.Context.Color = new Cairo.Color (0, 0, 0, 0.6);
+					x = surface.Width - scale * logicalRect.Width / 2;
+					y = scale * logicalRect.Height / 2;
 				}
 				
+				surface.Context.MoveTo (x - scale * logicalRect.Width / 2, y - scale * logicalRect.Height / 2);
+				
 				// draw text
-				surface.Context.MoveTo (x - logicalRect.Width / 2, y - logicalRect.Height / 2);
+				surface.Context.Save ();
+				if (scale < 1)
+					surface.Context.Scale (scale, scale);
 				
-				Pango.CairoHelper.LayoutPath (surface.Context, layout);
 				surface.Context.LineWidth = 2;
+				Pango.CairoHelper.LayoutPath (surface.Context, layout);
 				surface.Context.StrokePreserve ();
 				surface.Context.Color = new Cairo.Color (1, 1, 1, 1);
 				surface.Context.Fill ();
+				surface.Context.Restore ();
 				
 				layout.FontDescription.Dispose ();
 				layout.Context.Dispose ();
@@ -901,7 +913,6 @@
 			AppDomain.CurrentDomain.ProcessExit -= HandleProcessExit;
 			Gtk.IconTheme.Default.Changed -= HandleIconThemeChanged;
 			ResetBuffers ();
-			RemoteMenuItems.Dispose ();
 		}
 
 		#endregion
diff -Nru docky-2.0.5/Docky.Items/Docky.Menus/MenuList.cs docky-2.0.6/Docky.Items/Docky.Menus/MenuList.cs
--- docky-2.0.5/Docky.Items/Docky.Menus/MenuList.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky.Items/Docky.Menus/MenuList.cs	2010-08-01 09:44:12.865962999 +0200
@@ -33,7 +33,7 @@
 		Footer,
 	}
 	
-	public class MenuList : IDisposable
+	public class MenuList
 	{
 		Dictionary<MenuListContainer, List<MenuItem>> list;
 		Dictionary<MenuListContainer, string> titles;
@@ -126,17 +126,5 @@
 			
 			return result;
 		}
-
-		#region IDisposable implementation
-		public void Dispose ()
-		{
-			foreach (List<MenuItem> sublist in list.Values) 
-				sublist.Clear ();
-			list.Clear ();
-			titles.Clear ();
-			list = null;
-			titles = null;
-		}
-		#endregion
 	}
 }
diff -Nru docky-2.0.5/Docky.Items/Docky.Menus/RelatedFileMenuItem.cs docky-2.0.6/Docky.Items/Docky.Menus/RelatedFileMenuItem.cs
--- docky-2.0.5/Docky.Items/Docky.Menus/RelatedFileMenuItem.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky.Items/Docky.Menus/RelatedFileMenuItem.cs	1970-01-01 01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-//  
-//  Copyright (C) 2009 Jason Smith
-// 
-//  This program is free software: you can redistribute it and/or modify
-//  it under the terms of the GNU General Public License as published by
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-// 
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-// 
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-// 
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.IO;
-using System.Text;
-
-namespace Docky.Menus
-{
-
-
-	public class RelatedFileMenuItem : MenuItem
-	{
-		public string Uri { get; private set; }
-		
-		public RelatedFileMenuItem (string uri)
-		{
-			Uri = uri;
-			
-			if (uri.StartsWith ("http")) {
-				Icon = "html";
-			} else {
-				Gnome.IconLookupResultFlags results;
-				Icon = Gnome.Icon.LookupSync (Gtk.IconTheme.Default, null, uri, null, 0, out results);
-			}
-			
-			if (uri.StartsWith ("file://")) {
-				Text = Path.GetFileName (Gnome.Vfs.Global.GetLocalPathFromUri (uri));
-			} else {
-				Uri u = new Uri (uri);
-				Text = System.Uri.UnescapeDataString (uri.Substring (u.Scheme.Length + 3));
-			}
-		}
-	}
-}
diff -Nru docky-2.0.5/Docky.Items/Makefile.am docky-2.0.6/Docky.Items/Makefile.am
--- docky-2.0.5/Docky.Items/Makefile.am	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky.Items/Makefile.am	2010-08-01 10:14:50.780420000 +0200
@@ -13,7 +13,6 @@
 	Docky.Items/ItemState.cs \
 	Docky.Menus/MenuItem.cs \
 	Docky.Menus/MenuList.cs \
-	Docky.Menus/RelatedFileMenuItem.cs \
 	Docky.Menus/SeparatorMenuItem.cs \
 	Docky.Menus/WindowMenuItem.cs \
 	Docky.Menus/IconMenuItem.cs \
diff -Nru docky-2.0.5/Docky.Items/Makefile.in docky-2.0.6/Docky.Items/Makefile.in
--- docky-2.0.5/Docky.Items/Makefile.in	2010-07-01 19:05:31.415184001 +0200
+++ docky-2.0.6/Docky.Items/Makefile.in	2010-09-01 08:10:51.547532008 +0200
@@ -322,7 +322,6 @@
 	Docky.Items/ItemState.cs \
 	Docky.Menus/MenuItem.cs \
 	Docky.Menus/MenuList.cs \
-	Docky.Menus/RelatedFileMenuItem.cs \
 	Docky.Menus/SeparatorMenuItem.cs \
 	Docky.Menus/WindowMenuItem.cs \
 	Docky.Menus/IconMenuItem.cs \
diff -Nru docky-2.0.5/Docky.Services/AssemblyInfo.cs docky-2.0.6/Docky.Services/AssemblyInfo.cs
--- docky-2.0.5/Docky.Services/AssemblyInfo.cs	2010-07-01 19:05:38.465184002 +0200
+++ docky-2.0.6/Docky.Services/AssemblyInfo.cs	2010-09-01 08:11:00.487532001 +0200
@@ -50,8 +50,8 @@
 {
 	internal static class AssemblyInfo
 	{
-		public const string DisplayVersion = "2.0.5";
-		public const string VersionDetails = "bzr docky-2.0 r1336";
+		public const string DisplayVersion = "2.0.6";
+		public const string VersionDetails = "bzr docky-2.0 r1354";
 		public const string LocaleDirectory = "/usr/share/locale";
 		public const string DataDirectory = "/usr/share";
 	}
diff -Nru docky-2.0.5/Docky.Services/Docky.Services/DrawingService.cs docky-2.0.6/Docky.Services/Docky.Services/DrawingService.cs
--- docky-2.0.5/Docky.Services/Docky.Services/DrawingService.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/Docky.Services/Docky.Services/DrawingService.cs	2010-08-01 10:26:22.375963000 +0200
@@ -223,19 +223,21 @@
 		/// </returns>
 		public string IconFromGIcon (GLib.Icon icon)
 		{
+			string name = "";
 			if (icon is ThemedIcon) {
 				ThemedIcon themeIcon = new ThemedIcon (icon.Handle);
-				
-				// if the icon exists in the theme, this will return the relevent ion
+				// if the icon exists in the theme, this will return the relevent icon
 				if (themeIcon.Names.Any ())
-					return themeIcon.Names.FirstOrDefault (n => IconTheme.Default.HasIcon (n));
+					name = themeIcon.Names.FirstOrDefault (n => IconTheme.Default.HasIcon (n));
+				themeIcon.Dispose ();
+				
 			} else if (icon is FileIcon) {
 				// in some cases, devices provide their own icon.  This will use the device icon.
 				FileIcon iconFile = new FileIcon (icon.Handle);
-				
-				return iconFile.File.Path;
+				name = iconFile.File.Path;
+				iconFile.Dispose ();
 			}
-			return "";
+			return name;
 		}
 		
 		/// <summary>
diff -Nru docky-2.0.5/NEWS docky-2.0.6/NEWS
--- docky-2.0.5/NEWS	2010-07-01 18:42:43.535184000 +0200
+++ docky-2.0.6/NEWS	2010-09-01 08:06:43.137531990 +0200
@@ -1,6 +1,34 @@
 Docky: The finest dock no money can buy!
 
 
+2.0.6 "Just lovin' it" (2010-09-01)
+===============================================================================
+ * Bug-fix and Maintenance Release
+ * update translations
+
+ CORE:
+ * fix check for existing instance
+ * hitting ESC should cancel drags (LP: #460071)
+ * make sure plugins enabled by default are added to the dock on first run and
+   enable Trash docklet by default
+ * update badge drawing so the text is consistently sized
+ * fix leak of ThemedIcon/FileIcon in IconFromGIcon
+ * fix non-square items arent properly darken (LP: #584094)
+ * remove MenuList.Dispose which is not really needed, also solves (LP: #609170)
+ * shrink config dialog (LP: #591448)
+
+ DOCKLETS:
+ * RecentDocs: fix crash (LP: #580723)
+ * Mounter: use a better MountItem.UniqueID and don't fill up gconf with 
+   useless keys (temporary fix for LP: #600311)
+ * Weather: add weather icon for Smoke (LP: #612437)
+ * CPUMonitor: fix CPU utilization percentage (LP: #604677)
+ * GMail: 
+   - add debuging messages to gmail and log web response status when we 
+     have a web exception
+   - fix crash and leak in Gmail
+
+
 2.0.5 "Be proud of your dock" (2010-07-01)
 ===============================================================================
  * Bug-fix and Maintenance Release
diff -Nru docky-2.0.5/po/ast.po docky-2.0.6/po/ast.po
diff -Nru docky-2.0.5/po/bg.po docky-2.0.6/po/bg.po
diff -Nru docky-2.0.5/po/bn.po docky-2.0.6/po/bn.po
diff -Nru docky-2.0.5/po/ca.po docky-2.0.6/po/ca.po
diff -Nru docky-2.0.5/po/da.po docky-2.0.6/po/da.po
diff -Nru docky-2.0.5/po/de.po docky-2.0.6/po/de.po
diff -Nru docky-2.0.5/po/el.po docky-2.0.6/po/el.po
diff -Nru docky-2.0.5/po/en_GB.po docky-2.0.6/po/en_GB.po
diff -Nru docky-2.0.5/po/es.po docky-2.0.6/po/es.po
diff -Nru docky-2.0.5/po/et.po docky-2.0.6/po/et.po
diff -Nru docky-2.0.5/po/eu.po docky-2.0.6/po/eu.po
diff -Nru docky-2.0.5/po/fi.po docky-2.0.6/po/fi.po
diff -Nru docky-2.0.5/po/fo.po docky-2.0.6/po/fo.po
diff -Nru docky-2.0.5/po/fr.po docky-2.0.6/po/fr.po
diff -Nru docky-2.0.5/po/gl.po docky-2.0.6/po/gl.po
diff -Nru docky-2.0.5/po/he.po docky-2.0.6/po/he.po
diff -Nru docky-2.0.5/po/hi.po docky-2.0.6/po/hi.po
diff -Nru docky-2.0.5/po/hr.po docky-2.0.6/po/hr.po
diff -Nru docky-2.0.5/po/hu.po docky-2.0.6/po/hu.po
diff -Nru docky-2.0.5/po/id.po docky-2.0.6/po/id.po
diff -Nru docky-2.0.5/po/is.po docky-2.0.6/po/is.po
diff -Nru docky-2.0.5/po/it.po docky-2.0.6/po/it.po
diff -Nru docky-2.0.5/po/ja.po docky-2.0.6/po/ja.po
diff -Nru docky-2.0.5/po/ko.po docky-2.0.6/po/ko.po
diff -Nru docky-2.0.5/po/LINGUAS docky-2.0.6/po/LINGUAS
--- docky-2.0.5/po/LINGUAS	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/po/LINGUAS	2010-08-26 13:55:33.641031001 +0200
@@ -4,11 +4,15 @@
 bg
 bn
 ca
+da
 de
+el
 en_GB
 es
+et
 eu
 fi
+fo
 fr
 gl
 he
@@ -20,11 +24,19 @@
 it
 ja
 ko
+lt
+nb
+nl
 pl
+pt
 pt_BR
 ro
 ru
+sk
+sl
 sv
 tr
 uk
 zh_CN
+zh_HK
+zh_TW
diff -Nru docky-2.0.5/po/lt.po docky-2.0.6/po/lt.po
diff -Nru docky-2.0.5/po/nb.po docky-2.0.6/po/nb.po
diff -Nru docky-2.0.5/po/nl.po docky-2.0.6/po/nl.po
diff -Nru docky-2.0.5/po/pl.po docky-2.0.6/po/pl.po
diff -Nru docky-2.0.5/po/pt_BR.po docky-2.0.6/po/pt_BR.po
diff -Nru docky-2.0.5/po/pt.po docky-2.0.6/po/pt.po
diff -Nru docky-2.0.5/po/ro.po docky-2.0.6/po/ro.po
diff -Nru docky-2.0.5/po/ru.po docky-2.0.6/po/ru.po
diff -Nru docky-2.0.5/po/sk.po docky-2.0.6/po/sk.po
diff -Nru docky-2.0.5/po/sl.po docky-2.0.6/po/sl.po
diff -Nru docky-2.0.5/po/sv.po docky-2.0.6/po/sv.po
diff -Nru docky-2.0.5/po/tr.po docky-2.0.6/po/tr.po
diff -Nru docky-2.0.5/po/uk.po docky-2.0.6/po/uk.po
diff -Nru docky-2.0.5/po/zh_CN.po docky-2.0.6/po/zh_CN.po
diff -Nru docky-2.0.5/po/zh_HK.po docky-2.0.6/po/zh_HK.po
diff -Nru docky-2.0.5/po/zh_TW.po docky-2.0.6/po/zh_TW.po
diff -Nru docky-2.0.5/StandardPlugins/CPUMonitor/src/CPUMonitorDockItem.cs docky-2.0.6/StandardPlugins/CPUMonitor/src/CPUMonitorDockItem.cs
--- docky-2.0.5/StandardPlugins/CPUMonitor/src/CPUMonitorDockItem.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/CPUMonitor/src/CPUMonitorDockItem.cs	2010-08-24 20:52:16.536278996 +0200
@@ -1,5 +1,6 @@
 //  
-//  Copyright (C) 2009 GNOME Do
+//  Copyright (C) 2009 Jason Smith, Robert Dyer
+//  Copyright (C) 2010 Robert Dyer
 // 
 //  This program is free software: you can redistribute it and/or modify
 //  it under the terms of the GNU General Public License as published by
@@ -32,15 +33,13 @@
 
 namespace CPUMonitor
 {
-	
-	
 	public class CPUMonitorDockItem : AbstractDockItem
 	{
 		const int UpdateMS = 1000;
 		const double RadiusPercent = .9;
 		
 		enum ProcFields {
-			User=0,     // normal processes executing in user mode
+			User = 0,   // normal processes executing in user mode
 			Nice,       // niced processes executing in user mode
 			System,     // processes executing in kernel mode
 			Idle,       // twiddling thunbs
@@ -59,17 +58,13 @@
 		double CPUUtilization { get; set; }
 		double MemoryUtilization { get; set; }
 		
-		public override string UniqueID ()
-		{
-			return "CPUMonitor";
-		}
+		public override string UniqueID () { return "CPUMonitor"; }
 		
 		public CPUMonitorDockItem ()
 		{
 			regex = new Regex ("\\d+");
 			
-			DockServices.System.RunOnThread (() =>
-			{
+			DockServices.System.RunOnThread (() => {
 				while (!disposed) {
 					UpdateUtilization ();
 					System.Threading.Thread.Sleep (UpdateMS);
@@ -93,24 +88,25 @@
 				string cpu_line = reader.ReadLine ();
 				MatchCollection collection = regex.Matches (cpu_line);
 				try {
-					long usage = Convert.ToInt64 (collection [(int) ProcFields.Idle].Value) +
-							     Convert.ToInt64 (collection [(int) ProcFields.IRQ].Value) +
-							     Convert.ToInt64 (collection [(int) ProcFields.Nice].Value) +
-							     Convert.ToInt64 (collection [(int) ProcFields.SoftIRQ].Value) +
-							     Convert.ToInt64 (collection [(int) ProcFields.System].Value) +
-							     Convert.ToInt64 (collection [(int) ProcFields.User].Value);
+					long usage = Convert.ToInt64 (collection [(int) ProcFields.User].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.Nice].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.System].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.Idle].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.IOWait].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.IRQ].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.SoftIRQ].Value);
+					long idle = Convert.ToInt64 (collection [(int) ProcFields.Idle].Value) +
+								Convert.ToInt64 (collection [(int) ProcFields.IOWait].Value);
 					
 					long usage_diff = usage - last_usage;
-					long idle = Convert.ToInt64 (collection [(int) ProcFields.Idle].Value) + 
-						        Convert.ToInt64 (collection [(int) ProcFields.IOWait].Value);
 					long idle_diff = idle - last_idle;
 					
 					last_idle = idle;
 					last_usage = usage;
+					
 					// average it for smoothing
 					if (usage_diff > 0)
 						CPUUtilization = Math.Max (0.01, Math.Round (((1 - (idle_diff / (double) usage_diff)) + CPUUtilization) / 2, 2));
-						
 				} catch {
 					CPUUtilization = 0.01;
 				}
@@ -146,6 +142,7 @@
 			Cairo.Color base_color = new Cairo.Color (1, .3, .3, .5).SetHue (120 * (1 - CPUUtilization));
 			
 			double radius = Math.Max (Math.Min (CPUUtilization * 1.3, 1), .001);
+			
 			// draw underlay
 			cr.Arc (center, center, center * RadiusPercent, 0, Math.PI * 2);
 			cr.Color = new Cairo.Color (0, 0, 0, .5);
@@ -179,7 +176,7 @@
 			cr.Fill ();
 			lg.Destroy ();
 			
-			//draw outer circles
+			// draw outer circles
 			cr.LineWidth = 1;
 			cr.Arc (center, center, center * RadiusPercent, 0, Math.PI * 2);
 			cr.Color = new Cairo.Color (1, 1, 1, .75);
diff -Nru docky-2.0.5/StandardPlugins/GMail/src/GMailAtom.cs docky-2.0.6/StandardPlugins/GMail/src/GMailAtom.cs
--- docky-2.0.5/StandardPlugins/GMail/src/GMailAtom.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/GMail/src/GMailAtom.cs	2010-08-24 20:24:40.556278995 +0200
@@ -153,12 +153,19 @@
 				if (DockServices.System.UseProxy)
 					request.Proxy = DockServices.System.Proxy;
 				
-				using (HttpWebResponse response = (HttpWebResponse)request.GetResponse ())
+				using (HttpWebResponse response = (HttpWebResponse) request.GetResponse ())
 					try { } finally {
 						response.Close ();
 					}
 			} catch (WebException e) {
-				if (e.Message.IndexOf ("401") != -1) return false;
+				if (e.Message.IndexOf ("401") != -1)
+					Log<GMailAtom>.Error ("Invalid username: {0}", e.Message);
+				else
+					Log<GMailAtom>.Error ("Network error: {0}", e.Message);
+				HttpWebResponse response = (HttpWebResponse) e.Response;
+				Log<GMailAtom>.Debug ("Response status: {0} - {1}", response.StatusCode, response.StatusDescription);
+				
+				return false;
 			} catch (Exception) { }
 			
 			return true;
@@ -219,8 +226,13 @@
 						
 						UnreadMessage message = new UnreadMessage ();
 						message.Topic = HttpUtility.HtmlDecode (item.SelectSingleNode ("atom:title", nsmgr).InnerText);
-						message.FromName = HttpUtility.HtmlDecode (item.SelectSingleNode ("atom:author/atom:name", nsmgr).InnerText);
-						message.FromEmail = item.SelectSingleNode ("atom:author/atom:email", nsmgr).InnerText;
+						// apparently random mailing lists can have no author information - bug 595530
+						XmlNode from = item.SelectSingleNode ("atom:author/atom:name", nsmgr);
+						if (from != null)
+							message.FromName = HttpUtility.HtmlDecode (from.InnerText);
+						from = item.SelectSingleNode ("atom:author/atom:email", nsmgr);
+						if (from != null)
+							message.FromEmail = from.InnerText;
 						message.From = message.FromName + " <" + message.FromEmail + ">";
 						try {
 							message.SendDate = DateTime.Parse (item.SelectSingleNode ("atom:modified", nsmgr).InnerText);
@@ -256,15 +268,18 @@
 					Gtk.Application.Invoke (delegate { OnGMailChecked (); });
 				} catch (ThreadAbortException) {
 					Log<GMailAtom>.Debug ("Stoping Atom thread");
-				} catch (NullReferenceException) {
+				} catch (NullReferenceException e) {
+					Log<GMailAtom>.Debug (e.Message);
 					Gtk.Application.Invoke (delegate {
 						OnGMailFailed (Catalog.GetString ("Feed Error"));
 					});
-				} catch (XmlException) {
+				} catch (XmlException e) {
+					Log<GMailAtom>.Error ("Error parsing XML: {0}", e.Message);
 					Gtk.Application.Invoke (delegate {
 						OnGMailFailed (Catalog.GetString ("Feed Error"));
 					});
 				} catch (WebException e) {
+					Log<GMailAtom>.Error ("Network error: {0}", e.Message);
 					if (e.Message.IndexOf ("401") != -1)
 						Gtk.Application.Invoke (delegate {
 							OnGMailFailed (Catalog.GetString ("Invalid Username"));
@@ -273,12 +288,14 @@
 						Gtk.Application.Invoke (delegate {
 							OnGMailFailed (Catalog.GetString ("Network Error"));
 						});
+					HttpWebResponse response = (HttpWebResponse) e.Response;
+					Log<GMailAtom>.Debug ("Response status: {0} - {1}", response.StatusCode, response.StatusDescription);
 				} catch (ObjectDisposedException) {
 					Gtk.Application.Invoke (delegate {
 						OnGMailFailed (Catalog.GetString ("Network Error"));
 					});
 				} catch (Exception e) {
-					Log<GMailAtom>.Error (e.ToString ());
+					Log<GMailAtom>.Error (e.Message);
 					Gtk.Application.Invoke (delegate {
 						OnGMailFailed (Catalog.GetString ("General Error"));
 					});
diff -Nru docky-2.0.5/StandardPlugins/GMail/src/GMailItemProvider.cs docky-2.0.6/StandardPlugins/GMail/src/GMailItemProvider.cs
--- docky-2.0.5/StandardPlugins/GMail/src/GMailItemProvider.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/GMail/src/GMailItemProvider.cs	2010-07-06 15:09:46.040627004 +0200
@@ -38,6 +38,8 @@
 		
 		public override void Dispose ()
 		{
+			GMailPreferences.LabelsChanged -= HandleLabelsChanged;
+
 			items.ForEach (adi => (RemoveItem (adi as GMailDockItem)));
 		}
 		
diff -Nru docky-2.0.5/StandardPlugins/GMail/src/GMailLabel.cs docky-2.0.6/StandardPlugins/GMail/src/GMailLabel.cs
--- docky-2.0.5/StandardPlugins/GMail/src/GMailLabel.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/GMail/src/GMailLabel.cs	2010-07-06 15:06:47.500627002 +0200
@@ -27,23 +27,27 @@
 
 	public class GMailLabel : AbstractTileObject
 	{
-
+		GMailDockItem item;
+		
 		public GMailLabel (string labelName)
 		{
 			if (labelName == GMailDockItem.DefaultLabel)
 				ShowActionButton = false;
 			
 			Name = labelName;
-			GMailDockItem item = GMailItemProvider.items.First (adi => (adi as GMailDockItem).Atom.CurrentLabel == labelName) as GMailDockItem;
+			item = GMailItemProvider.items.First (adi => (adi as GMailDockItem).Atom.CurrentLabel == labelName) as GMailDockItem;
 
 			Icon = "gmail";
 			if (item != null) {
-				item.IconUpdated += delegate {
-					SetIcon (item);
-				};
+				item.IconUpdated += HandleItemIconUpdated;
 				SetIcon (item);
 			}
 		}
+
+		void HandleItemIconUpdated (object sender, EventArgs e)
+		{
+			SetIcon (item);
+		}
 		
 		void SetIcon (GMailDockItem item)
 		{
@@ -57,5 +61,13 @@
 			labels.Remove (Name);
 			GMailPreferences.Labels = labels.ToArray ();
 		}
+		
+		public override void Dispose ()
+		{
+			if (item != null)
+				item.IconUpdated -= HandleItemIconUpdated;
+			
+			base.Dispose ();
+		}
 	}
 }
diff -Nru docky-2.0.5/StandardPlugins/Mounter/src/MountItem.cs docky-2.0.6/StandardPlugins/Mounter/src/MountItem.cs
--- docky-2.0.5/StandardPlugins/Mounter/src/MountItem.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/Mounter/src/MountItem.cs	2010-08-01 10:30:16.085962998 +0200
@@ -36,7 +36,7 @@
 		
 		public override string UniqueID ()
 		{
-			return "MountItem#" + Mnt.Handle.ToString ();
+			return "MountItem#" + (Mnt.Root != null ? Mnt.Root.Path : Mnt.Handle.ToString ());
 		}
 		
 		#endregion
diff -Nru docky-2.0.5/StandardPlugins/RecentDocuments/src/RecentDocumentsItem.cs docky-2.0.6/StandardPlugins/RecentDocuments/src/RecentDocumentsItem.cs
--- docky-2.0.5/StandardPlugins/RecentDocuments/src/RecentDocumentsItem.cs	2010-06-30 10:26:14.750310993 +0200
+++ docky-2.0.6/StandardPlugins/RecentDocuments/src/RecentDocumentsItem.cs	2010-08-01 10:04:57.405963002 +0200
@@ -114,17 +114,19 @@
 		void UpdateInfo ()
 		{
 			lock (RecentDocs) {
-				if (RecentDocs.Count() == 0) {
+				if (RecentDocs.Count() == 0)
 					CurrentFile = null;
-					return;
-				}
-				
-				if (CurrentFile == null || RecentDocs.IndexOf (CurrentFile) == -1)
+				else if (CurrentFile != null && RecentDocs.IndexOf (CurrentFile) == -1)
 					CurrentFile = RecentDocs.First ();
 			}
 			
-			Icon = CurrentFile.Icon;
-			HoverText = CurrentFile.HoverText;
+			if (CurrentFile == null) {
+				Icon = "folder-recent;;document-open-recent";
+				HoverText = "Recent Documents";
+			} else {
+				Icon = CurrentFile.Icon;
+				HoverText = CurrentFile.HoverText;
+			}
 			QueueRedraw ();
 		}
 		
diff -Nru docky-2.0.5/StandardPlugins/Trash/Resources/Trash.addin.xml docky-2.0.6/StandardPlugins/Trash/Resources/Trash.addin.xml
--- docky-2.0.5/StandardPlugins/Trash/Resources/Trash.addin.xml	2010-07-01 19:05:38.885184002 +0200
+++ docky-2.0.6/StandardPlugins/Trash/Resources/Trash.addin.xml	2010-09-01 08:11:01.007532004 +0200
@@ -3,7 +3,7 @@
 	namespace="Docky"
 	version="1.0"
 	isroot="false"
-	defaultEnabled="false"
+	defaultEnabled="true"
 	name="Trash"
 	description="Have a look at your trash!"
 	author="Chris Szikszoy, Robert Dyer"
diff -Nru docky-2.0.5/StandardPlugins/Trash/Resources/Trash.addin.xml.in docky-2.0.6/StandardPlugins/Trash/Resources/Trash.addin.xml.in
--- docky-2.0.5/StandardPlugins/Trash/Resources/Trash.addin.xml.in	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/Trash/Resources/Trash.addin.xml.in	2010-08-24 19:51:15.486278996 +0200
@@ -3,7 +3,7 @@
 	namespace="Docky"
 	version="1.0"
 	isroot="false"
-	defaultEnabled="false"
+	defaultEnabled="true"
 	name="Trash"
 	description="Have a look at your trash!"
 	author="Chris Szikszoy, Robert Dyer"
diff -Nru docky-2.0.5/StandardPlugins/Weather/src/Sources/WeatherChannelWeatherSource.cs docky-2.0.6/StandardPlugins/Weather/src/Sources/WeatherChannelWeatherSource.cs
--- docky-2.0.5/StandardPlugins/Weather/src/Sources/WeatherChannelWeatherSource.cs	2010-06-26 15:47:36.543229000 +0200
+++ docky-2.0.6/StandardPlugins/Weather/src/Sources/WeatherChannelWeatherSource.cs	2010-08-24 20:08:06.836278994 +0200
@@ -116,6 +116,7 @@
 			image_map.Add ("scattered t-storms", "weather-storm");
 			image_map.Add ("showers", "weather-showers");
 			image_map.Add ("showers / wind", "weather-showers");
+			image_map.Add ("smoke", "weather-fog");
 			image_map.Add ("sunny", "weather-clear");
 			image_map.Add ("t-showers", "weather-storm");
 			image_map.Add ("t-storms", "weather-storm");

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: