input.Replace(wxT("\\|"), wxT("\a"));
input.Replace(wxT("\\;"), wxT("\b"));
+ m_has_maximized = false;
while (1)
{
wxAuiPaneInfo pane;
LoadPaneInfo(pane_part, pane);
+ if ( pane.IsMaximized() )
+ m_has_maximized = true;
+
wxAuiPaneInfo& p = GetPane(pane.name);
if (!p.IsOk())
{
if (pt.x < layer_insert_offset &&
- pt.x > layer_insert_offset-auiLayerInsertPixels)
+ pt.x > layer_insert_offset-auiLayerInsertPixels &&
+ pt.y > 0 &&
+ pt.y < cli_size.y)
{
int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_LEFT),
GetMaxLayer(docks, wxAUI_DOCK_BOTTOM)),
return ProcessDockResult(target, drop);
}
else if (pt.y < layer_insert_offset &&
- pt.y > layer_insert_offset-auiLayerInsertPixels)
+ pt.y > layer_insert_offset-auiLayerInsertPixels &&
+ pt.x > 0 &&
+ pt.x < cli_size.x)
{
int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_TOP),
GetMaxLayer(docks, wxAUI_DOCK_LEFT)),
return ProcessDockResult(target, drop);
}
else if (pt.x >= cli_size.x - layer_insert_offset &&
- pt.x < cli_size.x - layer_insert_offset + auiLayerInsertPixels)
+ pt.x < cli_size.x - layer_insert_offset + auiLayerInsertPixels &&
+ pt.y > 0 &&
+ pt.y < cli_size.y)
{
int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_RIGHT),
GetMaxLayer(docks, wxAUI_DOCK_TOP)),
return ProcessDockResult(target, drop);
}
else if (pt.y >= cli_size.y - layer_insert_offset &&
- pt.y < cli_size.y - layer_insert_offset + auiLayerInsertPixels)
+ pt.y < cli_size.y - layer_insert_offset + auiLayerInsertPixels &&
+ pt.x > 0 &&
+ pt.x < cli_size.x)
{
int new_layer = wxMax( wxMax( GetMaxLayer(docks, wxAUI_DOCK_BOTTOM),
GetMaxLayer(docks, wxAUI_DOCK_LEFT)),
wxAuiPaneInfo& pane = m_panes.Item(i);
if (pane.IsFloating() &&
- pane.frame->IsShown())
+ pane.frame &&
+ pane.frame->IsShown())
{
wxRect rect = pane.frame->GetRect();
#ifdef __WXGTK__
{
if (m_action_window)
{
+ // We can't move the child window so we need to get the frame that
+ // we want to be really moving. This is probably not the best place
+ // to do this but at least it fixes the bug (#13177) for now.
+ if (!m_action_window->IsKindOf(CLASSINFO(wxAuiFloatingFrame)))
+ {
+ wxAuiPaneInfo& pane = GetPane(m_action_window);
+ m_action_window = pane.frame;
+ }
+
wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
m_action_window->Move(pt.x - m_action_offset.x,
pt.y - m_action_offset.y);