eventShow.SetEventObject(win);
win->GetEventHandler()->ProcessEvent(eventShow);
}
+
+#if GTK_CHECK_VERSION(2,6,0)
+ if (!gtk_check_version(2,6,0))
+ {
+ // restore focus-on-map setting in case ShowWithoutActivating() was called
+ gtk_window_set_focus_on_map(GTK_WINDOW(win->m_widget), true);
+ }
+#endif // GTK+ 2.6+
+
return false;
}
}
GdkEvent * WXUNUSED(event),
wxTopLevelWindow *win )
{
- win->SetIconizeState(true);
+ // hiding the window doesn't count as minimizing it
+ if (win->IsShown())
+ win->SetIconizeState(true);
return false;
}
}
{
gtk_window_set_keep_above(GTK_WINDOW(m_widget), TRUE);
}
+ if (style & wxMAXIMIZE)
+ gtk_window_maximize(GTK_WINDOW(m_widget));
#if 0
if (!name.empty())
gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget );
// m_wxwindow is the client area
- m_wxwindow = wxPizza::New(0,this);
+ m_wxwindow = wxPizza::New();
gtk_widget_show( m_wxwindow );
gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow );
HandleWindowEvent(event);
}
- bool change = wxTopLevelWindowBase::Show(show);
+ bool change = base_type::Show(show);
if (change && !show)
{
return change;
}
+void wxTopLevelWindowGTK::ShowWithoutActivating()
+{
+ if (!m_isShown)
+ {
+#if GTK_CHECK_VERSION(2,6,0)
+ if (!gtk_check_version(2,6,0))
+ gtk_window_set_focus_on_map(GTK_WINDOW(m_widget), false);
+#endif // GTK+ 2.6+
+
+ Show(true);
+ }
+}
+
void wxTopLevelWindowGTK::Raise()
{
gtk_window_present( GTK_WINDOW( m_widget ) );
void wxTopLevelWindowGTK::DoSetClientSize(int width, int height)
{
+ base_type::DoSetClientSize(width, height);
+
// Since client size is being explicitly set, don't change it later
+ // Has to be done after calling base because it calls SetSize,
+ // which sets this true
m_deferShowAllowed = false;
-
- wxTopLevelWindowBase::DoSetClientSize(width, height);
}
void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
int maxW, int maxH,
int incW, int incH )
{
- wxTopLevelWindowBase::DoSetSizeHints( minW, minH, maxW, maxH, incW, incH );
+ base_type::DoSetSizeHints(minW, minH, maxW, maxH, incW, incH);
const wxSize minSize = GetMinSize();
const wxSize maxSize = GetMaxSize();
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxTopLevelWindowBase::SetIcons( icons );
+ base_type::SetIcons(icons);
// Setting icons before window is realized can cause a GTK assertion if
// another TLW is realized before this one, and it has this one as it's
bool wxTopLevelWindowGTK::CanSetTransparent()
{
// allow to override automatic detection as it's far from perfect
- static const wxChar *SYSOPT_TRANSPARENT = wxT("gtk.tlw.can-set-transparent");
+ const wxString SYSOPT_TRANSPARENT = "gtk.tlw.can-set-transparent";
if ( wxSystemOptions::HasOption(SYSOPT_TRANSPARENT) )
{
return wxSystemOptions::GetOptionInt(SYSOPT_TRANSPARENT) != 0;