protected override bool OnButtonReleaseEvent(Gdk.EventButton evnt) { if (tabActivated) { tabActivated = false; if (item.Status == DockItemStatus.AutoHide) { item.Status = DockItemStatus.Dockable; } else { item.Status = DockItemStatus.AutoHide; } } else if (!evnt.TriggersContextMenu() && evnt.Button == 1) { frame.DockInPlaceholder(item); frame.HidePlaceholder(); if (GdkWindow != null) { GdkWindow.Cursor = null; } frame.Toplevel.KeyPressEvent -= HeaderKeyPress; frame.Toplevel.KeyReleaseEvent -= HeaderKeyRelease; } tabPressed = false; return(base.OnButtonReleaseEvent(evnt)); }
protected override bool OnButtonReleaseEvent(Gdk.EventButton evnt) { if (tabActivated) { tabActivated = false; if (item.Status == DockItemStatus.AutoHide) { item.Status = DockItemStatus.Dockable; } else { item.Status = DockItemStatus.AutoHide; } } else if (!evnt.TriggersContextMenu() && evnt.Button == Mouse.LEFT_MOUSE_BUTTON) { frame.DockInPlaceholder(item); frame.HidePlaceholder(); if (GdkWindow != null) { GdkWindow.Cursor = null; } frame.Toplevel.KeyPressEvent -= HeaderKeyPress; frame.Toplevel.KeyReleaseEvent -= HeaderKeyRelease; // sometimes the layout need recalc from scratch, this is a workaround for a layout mistake // for testing you can disable this method and show the behaviour after some docking changes frame.ReloadCurrentLayout(); } tabPressed = false; return(base.OnButtonReleaseEvent(evnt)); }