diff options
author | Jose Medrano <jose.medrano@microsoft.com> | 2019-01-16 13:14:38 +0300 |
---|---|---|
committer | Jose Medrano <josmed@microsoft.com> | 2019-03-08 21:37:28 +0300 |
commit | d8aeba797378405e3a92641daa03bcc47a040882 (patch) | |
tree | 4649280320e0974c197550e25782a78e48c393ce /main/src/addins/MonoDevelop.DesignerSupport | |
parent | 8de5978ed1a3789422a7cecf8bb9182446867f13 (diff) |
More fixes to use custom property widgets
Diffstat (limited to 'main/src/addins/MonoDevelop.DesignerSupport')
4 files changed, 27 insertions, 18 deletions
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs index 4c1676d478..7eeb3c05cf 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs @@ -56,7 +56,7 @@ namespace MonoDevelop.DesignerSupport return;
var propertyPad = (IPropertyPad)pad.Content;
- if (propertyPad.IsPropertyGridEditing)
+ if (propertyPad.IsGridEditing)
return;
if (args.Any (arg => arg.ProjectFile == file))
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DesignerSupportService.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DesignerSupportService.cs index fcb7407276..45b1ac191b 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DesignerSupportService.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DesignerSupportService.cs @@ -152,11 +152,9 @@ namespace MonoDevelop.DesignerSupport if (provs.Length > 0) { propertyPad.SetCurrentObject (comp, provs); -#if !MAC if (propertyPad is PropertyPad propPad) { propPad.CommandRouteOrigin = commandRouteOrigin; } -#endif } else propertyPad.BlankPad (); diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/IPropertyPad.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/IPropertyPad.cs index 3b90ab7081..18c610f946 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/IPropertyPad.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/IPropertyPad.cs @@ -5,7 +5,7 @@ namespace MonoDevelop.DesignerSupport { public interface IPropertyPad { - bool IsPropertyGridEditing { get; } + bool IsGridEditing { get; } event EventHandler PropertyGridChanged; diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs index 00f5d1e0f4..8d7aeb3151 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs @@ -151,32 +151,28 @@ namespace MonoDevelop.DesignerSupport #endregion - public bool IsPropertyGridEditing => grid.IsEditing; + public bool IsGridEditing { + get { + AttachToolbarIfCustomWidget (); + return grid.IsEditing; + } + } + #if !MAC //Grid consumers must call this when they lose focus! public void BlankPad () { - PropertyGrid.CurrentObject = null; + AttachToolbarIfCustomWidget (); + grid.CurrentObject = null; CommandRouteOrigin = null; } - internal pg.PropertyGrid PropertyGrid { - get { - if (customWidget) { - customWidget = false; - frame.Remove (frame.Child); - frame.Add (grid); - toolbarProvider.Attach (container.GetToolbar (DockPositionType.Top)); - } - - return grid; - } - } #else public void BlankPad () { + AttachToolbarIfCustomWidget (); grid.BlankPad (); CommandRouteOrigin = null; } @@ -195,6 +191,21 @@ namespace MonoDevelop.DesignerSupport #endif + void AttachToolbarIfCustomWidget () + { + if (customWidget) { + customWidget = false; + frame.Remove (frame.Child); + +#if !MAC + frame.Add (grid); +#else + frame.Add (gtkWidget); +#endif + toolbarProvider.Attach (container.GetToolbar (DockPositionType.Top)); + } + } + internal void UseCustomWidget (Gtk.Widget widget) { toolbarProvider.Attach (null); |