Date: Tuesday, April 12, 2011 @ 12:06:26
  Author: daniel
Revision: 119605

upgpkg: monodevelop 2.4.2-2
Fixed FS#23649 - [Monodevelop] Unhandled Exception on Startup

Added:
  monodevelop/trunk/monodevelop_gnome3.patch
Modified:
  monodevelop/trunk/PKGBUILD

--------------------------+
 PKGBUILD                 |   13 +++--
 monodevelop_gnome3.patch |  101 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+), 5 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2011-04-12 16:02:53 UTC (rev 119604)
+++ PKGBUILD    2011-04-12 16:06:26 UTC (rev 119605)
@@ -4,22 +4,25 @@
 
 pkgname=monodevelop
 pkgver=2.4.2
-pkgrel=1
+pkgrel=2
 pkgdesc="An IDE primarily designed for C# and other .NET languages"
 arch=('i686' 'x86_64')
 url="http://www.monodevelop.org";
 license=('GPL')
-depends=('mono>=2.8.2' 'mono-addins>=0.5' 'gnome-sharp' 
'gecko-sharp-2.0>=0.10' 'gnome-desktop-sharp')
-options=(!makeflags force)
+depends=('mono>=2.10.1' 'mono-addins>=0.5' 'gnome-sharp' 
'gecko-sharp-2.0>=0.10')
+options=(!makeflags)
 install=monodevelop.install
-source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('05d20deada26a115418cb1b4526b8d15')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+       monodevelop_gnome3.patch)
+md5sums=('05d20deada26a115418cb1b4526b8d15'
+         'fd011f41af212fe87fb9997ebf074188')
 
 build() {
   export MONO_SHARED_DIR=$srcdir/src/.wabi
   mkdir -p $MONO_SHARED_DIR
 
   cd $srcdir/$pkgname-$pkgver
+  patch -p1 < ${srcdir}/monodevelop_gnome3.patch || return 1
   ./configure --prefix=/usr --disable-update-mimedb --disable-update-desktopdb
   make || return 1
 }

Added: monodevelop_gnome3.patch
===================================================================
--- monodevelop_gnome3.patch                            (rev 0)
+++ monodevelop_gnome3.patch    2011-04-12 16:06:26 UTC (rev 119605)
@@ -0,0 +1,101 @@
+diff --git a/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs 
b/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs
+index 4d8954c..e1a1937 100644
+--- a/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs
++++ b/src/addins/MonoDevelop.GtkCore/libstetic/wrapper/Object.cs
+@@ -1,5 +1,6 @@
+ using System;
+ using System.Collections;
++using System.Collections.Generic;
+ 
+ namespace Stetic.Wrapper {
+       public abstract class Object : Stetic.ObjectWrapper {
+@@ -11,17 +12,32 @@ namespace Stetic.Wrapper {
+                       ((GLib.Object)Wrapped).RemoveNotification 
(NotifyHandler);
+                       base.Dispose ();
+               }
+-
++              
++              IEnumerable<string> GladePropertyNames {
++                      get {
++                              foreach (ItemGroup group in 
ClassDescriptor.ItemGroups) {
++                                      foreach (ItemDescriptor item in group) {
++                                              TypedPropertyDescriptor prop = 
item as TypedPropertyDescriptor;
++                                              if (prop != null && 
!string.IsNullOrEmpty (prop.GladeName)) {
++                                                      yield return 
prop.GladeName;
++                                              }
++                                      }
++                              }
++                      }
++              }
++              
+               internal protected override void OnDesignerAttach (IDesignArea 
designer)
+               {
+                       base.OnDesignerAttach (designer);
+-                      ((GLib.Object)Wrapped).AddNotification (NotifyHandler);
++                      foreach (string property in GladePropertyNames)
++                              ((GLib.Object)Wrapped).AddNotification 
(property, NotifyHandler);
+               }
+               
+               internal protected override void OnDesignerDetach (IDesignArea 
designer)
+               {
+                       base.OnDesignerDetach (designer);
+-                      ((GLib.Object)Wrapped).RemoveNotification 
(NotifyHandler);
++                      foreach (string property in GladePropertyNames)
++                              ((GLib.Object)Wrapped).RemoveNotification 
(property, NotifyHandler);
+               }
+               
+               public static Object Lookup (GLib.Object obj)
+
+diff --git 
a/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs 
b/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
+index 89f04b5..75d7b17 100644
+--- 
a/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
++++ 
b/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
+@@ -1540,22 +1540,39 @@ namespace MonoDevelop.Components.Commands
+       internal class ToolbarTracker
+       {
+               Gtk.IconSize lastSize;
+-              
++               
+               public void Track (Gtk.Toolbar toolbar)
+               {
+                       lastSize = toolbar.IconSize;
+-                      toolbar.AddNotification (OnToolbarPropChanged);
++                      toolbar.AddNotification ("icon-size", IconSizeChanged);
++                      toolbar.OrientationChanged += 
HandleToolbarOrientationChanged;
++                      toolbar.StyleChanged += HandleToolbarStyleChanged;
++                      
+                       toolbar.Destroyed += delegate {
+-                              toolbar.RemoveNotification 
(OnToolbarPropChanged);
++                              toolbar.StyleChanged -= 
HandleToolbarStyleChanged;
++                              toolbar.OrientationChanged -= 
HandleToolbarOrientationChanged;
++                              toolbar.RemoveNotification ("icon-size", 
IconSizeChanged);
+                       };
+               }
+-              
+-              void OnToolbarPropChanged (object ob, GLib.NotifyArgs args)
++
++              void HandleToolbarStyleChanged (object o, Gtk.StyleChangedArgs 
args)
+               {
+-                      Gtk.Toolbar t = (Gtk.Toolbar) ob;
+-                      if (lastSize != t.IconSize || args.Property == 
"orientation" || args.Property == "toolbar-style")
++                      Gtk.Toolbar t = (Gtk.Toolbar) o;
++                      if (lastSize != t.IconSize)
+                               UpdateCustomItems (t);
+-                      lastSize = t.IconSize;
++              }
++
++              void HandleToolbarOrientationChanged (object o, 
Gtk.OrientationChangedArgs args)
++              {
++                      Gtk.Toolbar t = (Gtk.Toolbar) o;
++                      if (lastSize != t.IconSize)
++                              UpdateCustomItems (t);
++              }
++
++              void IconSizeChanged (object o, GLib.NotifyArgs args)
++              {
++                      this.lastSize = ((Gtk.Toolbar) o).IconSize;
++                      UpdateCustomItems ((Gtk.Toolbar) o);
+               }
+               
+               void UpdateCustomItems (Gtk.Toolbar t)
+

Reply via email to