[Mono-dev] MonoDevelop.Components.Docking - Tabbed DockGroupType question
Tara.Hemphill at l-3com.com
Tara.Hemphill at l-3com.com
Fri Jun 24 12:35:42 EDT 2011
To fix the problem I added a check to see if the item being docked is
the same as the first item in the tab group, if so, modifies the
insertion index appropriately because trying to insert the item before
itself in the group causes the float problem. Since its status was
"AutoHide" it is still technically visible, so was kept in the tab
group's list of visible objects. Changes are below.
(1)DockGroup.cs (line 122) - commented out the index increase:
public DockGroupItem AddObject (DockItem obj, DockPosition pos,
string relItemId)
{
...
else if (pos == DockPosition.CenterBefore || pos ==
DockPosition.Center) {
if (type != DockGroupType.Tabbed)
gitem = Split (DockGroupType.Tabbed, pos
== DockPosition.CenterBefore, obj, npos);
else {
//if (pos == DockPosition.Center) //
removed to fix issue with drag/docking the 1st tab item after autohiding
//npos++;
gitem = new DockGroupItem (Frame, obj);
dockObjects.Insert (npos, gitem);
gitem.ParentGroup = this;
}
}
ResetVisibleGroups ();
return gitem;
}
(2)DockGroup.cs (line 912) - added check for same item
internal override bool GetDockTarget (DockItem item, int px, int py,
out DockDelegate dockDelegate, out Gdk.Rectangle rect)
{
if (!Allocation.Contains (px, py) ||
VisibleObjects.Count == 0) {
dockDelegate = null;
rect = Gdk.Rectangle.Zero;
return false;
}
if (type == DockGroupType.Tabbed) {
// this is a fix for issue with drag/docking the 1st
tab item after autohiding it
int pos = 0;
if (item.Id ==
((DockGroupItem)VisibleObjects[0]).Id)
{
pos++;
}
// Tabs can only contain DockGroupItems
return
((DockGroupItem)VisibleObjects[pos]).GetDockTarget (item, px, py,
Allocation, out dockDelegate, out rect);
}
...
Tara Hemphill
Software Engineer
L-3 Communications - Integrated Systems
Phone: x3012
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20110624/24519b07/attachment-0001.html
More information about the Mono-devel-list
mailing list