<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:14230470;
        mso-list-type:hybrid;
        mso-list-template-ids:1010342060 -1904189228 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri","sans-serif";
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l1
        {mso-list-id:946887068;
        mso-list-type:hybrid;
        mso-list-template-ids:-2025059628 -740388292 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri","sans-serif";
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Our application uses the MonoDevelop.Components.Docking framework in our Windows application. We last updated to the latest version in November 2010. &nbsp;I have come across some interesting behavior that occurs in the following situation:<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>Press the auto hide button of the first panel in a DockGroupType.Tabbed ParentGroup<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>Hold mouse over collapsed panel until it expands<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>Drag panel into center of the tabbed group (back to original spot) and drop<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>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.&nbsp; This only happens on the first item in a tabbed group.&nbsp; 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.&nbsp; The method is below, with the commented out portion in bold:<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>public bool GetDockTarget (DockItem item, int px, int py, Gdk.Rectangle rect, out DockDelegate dockDelegate, out Gdk.Rectangle outrect)<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>{<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; dockDelegate = null;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; if (item != this.item &amp;&amp; this.item.Visible &amp;&amp; rect.Contains (px, py)) {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int xdockMargin = (int) ((double)rect.Width * (1.0 - DockFrame.ItemDockCenterArea)) / 2;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int ydockMargin = (int) ((double)rect.Height * (1.0 - DockFrame.ItemDockCenterArea)) / 2;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; DockPosition pos;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>/*&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <b>if (ParentGroup.Type == DockGroupType.Tabbed) {<o:p></o:p></b></span></p><p class=MsoNormal><b><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rect = new Gdk.Rectangle (rect.X + xdockMargin, rect.Y + ydockMargin, rect.Width - xdockMargin*2, rect.Height - ydockMargin*2);<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = DockPosition.CenterAfter;<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></b></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>*/&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; if (px &lt;= rect.X + xdockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Horizontal) {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outrect = new Gdk.Rectangle (rect.X, rect.Y, xdockMargin, rect.Height);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = DockPosition.Left;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; else if (px &gt;= rect.Right - xdockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Horizontal) {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outrect = new Gdk.Rectangle (rect.Right - xdockMargin, rect.Y, xdockMargin, rect.Height);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = DockPosition.Right;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; else if (py &lt;= rect.Y + ydockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Vertical) {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outrect = new Gdk.Rectangle (rect.X, rect.Y, rect.Width, ydockMargin);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = DockPosition.Top;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; else if (py &gt;= rect.Bottom - ydockMargin &amp;&amp; ParentGroup.Type != DockGroupType.Vertical) {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outrect = new Gdk.Rectangle (rect.X, rect.Bottom - ydockMargin, rect.Width, ydockMargin);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = DockPosition.Bottom;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; else {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outrect = new Gdk.Rectangle (rect.X + xdockMargin, rect.Y + ydockMargin, rect.Width - xdockMargin*2, rect.Height - ydockMargin*2);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = DockPosition.Center;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; dockDelegate = delegate (DockItem dit) {<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DockGroupItem it = ParentGroup.AddObject (dit, pos, Id);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it.SetVisible (true);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParentGroup.FocusItem (it);<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; };<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; return true;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; outrect = Gdk.Rectangle.Zero;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>&nbsp;&nbsp;&nbsp;&nbsp; return false;<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New";background:silver;mso-highlight:silver'>}</span><span style='font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal>I have tried a few small things, but nothing as affected the behavior so far.&nbsp; Any ideas on what I could edit to get this working properly?&nbsp; Thanks!<o:p></o:p></p></div></body></html>