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