m_gdkFunc = 0;
m_grabbed = false;
m_deferShow = true;
+ m_deferShowAllowed = true;
m_updateDecorSize = true;
m_urgency_hint = -2;
if (m_grabbed)
{
- wxFAIL_MSG(_T("Window still grabbed"));
+ wxFAIL_MSG(wxT("Window still grabbed"));
RemoveGrab();
}
// overridden wxWindow methods
// ----------------------------------------------------------------------------
+void wxTopLevelWindowGTK::Refresh( bool WXUNUSED(eraseBackground), const wxRect *WXUNUSED(rect) )
+{
+ wxCHECK_RET( m_widget, wxT("invalid frame") );
+
+ gtk_widget_queue_draw( m_widget );
+
+ if (m_wxwindow && m_wxwindow->window)
+ gdk_window_invalidate_rect( m_wxwindow->window, NULL, TRUE );
+}
+
bool wxTopLevelWindowGTK::Show( bool show )
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- bool deferShow = show && !m_isShown && m_deferShow;
+ bool deferShow = show && !m_isShown && m_deferShow && m_deferShowAllowed;
if (deferShow)
{
deferShow = false;
{
wxCHECK_RET( m_widget, wxT("invalid frame") );
+ m_deferShowAllowed = true;
+
// deal with the position first
int old_x = m_x;
int old_y = m_y;
void wxTopLevelWindowGTK::DoSetClientSize(int width, int height)
{
- if (m_deferShow && !m_isShown)
- // Since client size is being explicitly set, don't change it later
- m_deferShow = false;
+ // Since client size is being explicitly set, don't change it later
+ m_deferShowAllowed = false;
+
wxTopLevelWindowBase::DoSetClientSize(width, height);
}
bool wxTopLevelWindowGTK::SetShape(const wxRegion& region)
{
wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), false,
- _T("Shaped windows must be created with the wxFRAME_SHAPED style."));
+ wxT("Shaped windows must be created with the wxFRAME_SHAPED style."));
if ( GTK_WIDGET_REALIZED(m_widget) )
{