Also apply second part of patch for preventing
aui crashes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -970,6 +970,9 @@ bool wxFrameManager::DetachPane(wxWindow* window)
|
|||||||
p.frame->Show(false);
|
p.frame->Show(false);
|
||||||
|
|
||||||
// reparent to m_frame and destroy the pane
|
// reparent to m_frame and destroy the pane
|
||||||
|
if(m_action_window == p.frame) {
|
||||||
|
m_action_window = NULL;
|
||||||
|
}
|
||||||
p.window->Reparent(m_frame);
|
p.window->Reparent(m_frame);
|
||||||
p.frame->SetSizer(NULL);
|
p.frame->SetSizer(NULL);
|
||||||
p.frame->Destroy();
|
p.frame->Destroy();
|
||||||
@@ -2091,6 +2094,9 @@ void wxFrameManager::Update()
|
|||||||
p.frame->Show(false);
|
p.frame->Show(false);
|
||||||
|
|
||||||
// reparent to m_frame and destroy the pane
|
// reparent to m_frame and destroy the pane
|
||||||
|
if(m_action_window == p.frame) {
|
||||||
|
m_action_window = NULL;
|
||||||
|
}
|
||||||
p.window->Reparent(m_frame);
|
p.window->Reparent(m_frame);
|
||||||
p.frame->SetSizer(NULL);
|
p.frame->SetSizer(NULL);
|
||||||
p.frame->Destroy();
|
p.frame->Destroy();
|
||||||
@@ -3820,6 +3826,7 @@ void wxFrameManager::OnMotion(wxMouseEvent& event)
|
|||||||
wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
|
wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
|
||||||
pane_info->floating_pos = wxPoint(pt.x - m_action_offset.x,
|
pane_info->floating_pos = wxPoint(pt.x - m_action_offset.x,
|
||||||
pt.y - m_action_offset.y);
|
pt.y - m_action_offset.y);
|
||||||
|
|
||||||
// float the window
|
// float the window
|
||||||
pane_info->Float();
|
pane_info->Float();
|
||||||
Update();
|
Update();
|
||||||
@@ -3845,9 +3852,11 @@ void wxFrameManager::OnMotion(wxMouseEvent& event)
|
|||||||
}
|
}
|
||||||
else if (m_action == actionDragFloatingPane)
|
else if (m_action == actionDragFloatingPane)
|
||||||
{
|
{
|
||||||
wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
|
if(m_action_window) {
|
||||||
m_action_window->Move(pt.x - m_action_offset.x,
|
wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
|
||||||
pt.y - m_action_offset.y);
|
m_action_window->Move(pt.x - m_action_offset.x,
|
||||||
|
pt.y - m_action_offset.y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (m_action == actionDragToolbarPane)
|
else if (m_action == actionDragToolbarPane)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user