diff options
author | root <root@rshg047.dnsready.net> | 2011-04-13 04:53:33 +0000 |
---|---|---|
committer | root <root@rshg047.dnsready.net> | 2011-04-13 04:53:33 +0000 |
commit | 6dab5c46b00f624c7900ff6d11b75bcafbe251d0 (patch) | |
tree | 3f4cd3c5e20b03bbad9955444c32083ddd92b422 /extra/monodevelop/monodevelop_gnome3.patch | |
parent | 28b5bbf3fee0627993658e096eadab71c2779912 (diff) |
Wed Apr 13 04:53:33 UTC 2011
Diffstat (limited to 'extra/monodevelop/monodevelop_gnome3.patch')
-rw-r--r-- | extra/monodevelop/monodevelop_gnome3.patch | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/extra/monodevelop/monodevelop_gnome3.patch b/extra/monodevelop/monodevelop_gnome3.patch new file mode 100644 index 000000000..4ea101f6a --- /dev/null +++ b/extra/monodevelop/monodevelop_gnome3.patch @@ -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) + |