really fix window being repositioned after hiding, then reshowing

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2007-04-26 02:52:03 +00:00
parent 75a788ee92
commit aa34396cb2

View File

@@ -800,13 +800,7 @@ bool wxTopLevelWindowGTK::Show( bool show )
if (show == IsShown()) if (show == IsShown())
return false; return false;
if (!show) if (show && !m_sizeSet)
{
// make sure window has a non-default position, so when it is shown
// again, it won't be repositioned by WM as if it were a new window
gtk_window_move((GtkWindow*)m_widget, m_x, m_y);
}
else if (!m_sizeSet)
{ {
/* by calling GtkOnSize here, we don't have to call /* by calling GtkOnSize here, we don't have to call
either after showing the frame, which would entail either after showing the frame, which would entail
@@ -816,7 +810,17 @@ bool wxTopLevelWindowGTK::Show( bool show )
GtkOnSize(); GtkOnSize();
} }
return wxTopLevelWindowBase::Show(show); wxTopLevelWindowBase::Show(show);
if (!show)
{
// make sure window has a non-default position, so when it is shown
// again, it won't be repositioned by WM as if it were a new window
// Note that this must be done _after_ the window is hidden.
gtk_window_move((GtkWindow*)m_widget, m_x, m_y);
}
return true;
} }
void wxTopLevelWindowGTK::Raise() void wxTopLevelWindowGTK::Raise()