Note that there are some explanatory texts on larger screens.

plurals
  1. POMonoDevelop.Components.Docking - Tabbed DockGroupType issue
    primarykey
    data
    text
    <p>Our application uses the MonoDevelop.Components.Docking framework in our Windows application. We last updated to the latest version in November 2010. I have come across some interesting behavior that occurs in the following situation:</p> <ul> <li><p>Press the auto hide button of the first panel in a DockGroupType.Tabbed ParentGroup</p></li> <li><p>Hold mouse over collapsed panel until it expands</p></li> <li><p>Drag panel into center of the tabbed group (back to original spot) and drop</p></li> </ul> <p>At this point the panel resizes to the size of the blue rectangle that showed where the panel would be dropped, and then undocks from the main window to float at that size. This only happens on the first item in a tabbed group. I found a commented out section of code in DockGroupItem.cs (line 112, GetDockTarget(..)) that seems as though it might deal with this. However, it references a DockPosition type that is not defined, CenterAfter. The method is below, with the commented out portion in bold:</p> <pre><code>public bool GetDockTarget (DockItem item, int px, int py, Gdk.Rectangle rect, out DockDelegate dockDelegate, out Gdk.Rectangle outrect) { dockDelegate = null; if (item != this.item &amp;&amp; this.item.Visible &amp;&amp; rect.Contains (px,py)) { int xdockMargin = (int) ((double)rect.Width * (1.0 - DockFrame.ItemDockCenterArea)) / 2; int ydockMargin = (int) ((double)rect.Height * (1.0 - DockFrame.ItemDockCenterArea)) / 2; DockPosition pos; /* if (ParentGroup.Type == DockGroupType.Tabbed) { rect = new Gdk.Rectangle (rect.X + xdockMargin, rect.Y + ydockMargin,rect.Width - xdockMargin*2, rect.Height - ydockMargin*2); pos = DockPosition.CenterAfter; } */ if (px &lt;= rect.X + xdockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Horizontal) { outrect = new Gdk.Rectangle (rect.X, rect.Y, xdockMargin, rect.Height); pos = DockPosition.Left; } else if (px &gt;= rect.Right - xdockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Horizontal) { outrect = new Gdk.Rectangle (rect.Right - xdockMargin, rect.Y, xdockMargin, rect.Height); pos = DockPosition.Right; } else if (py &lt;= rect.Y + ydockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Vertical) { outrect = new Gdk.Rectangle (rect.X, rect.Y, rect.Width, ydockMargin); pos = DockPosition.Top; } else if (py &gt;= rect.Bottom - ydockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Vertical) { outrect = new Gdk.Rectangle (rect.X, rect.Bottom - ydockMargin, rect.Width, ydockMargin); pos = DockPosition.Bottom; } else { outrect = new Gdk.Rectangle (rect.X + xdockMargin, rect.Y + ydockMargin, rect.Width - xdockMargin*2, rect.Height - ydockMargin*2); pos = DockPosition.Center; } dockDelegate = delegate (DockItem dit) { DockGroupItem it = ParentGroup.AddObject (dit, pos, Id); it.SetVisible (true); ParentGroup.FocusItem (it); }; return true; } outrect = Gdk.Rectangle.Zero; return false; } </code></pre> <p>I have tried a few small things, but nothing as affected the behavior so far. Any ideas on what I could edit to get this working properly? Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload