//-----------------------------------------------------------------------------
extern "C" {
-static gboolean gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
+static gboolean gtk_frame_focus_callback( GtkWidget *WXUNUSED(widget),
+ GtkDirectionType WXUNUSED(d),
+ wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
wxapp_install_idle_handler();
(int)alloc->height );
*/
+ // Tell the wxWindow class about the new size
win->m_width = alloc->width;
win->m_height = alloc->height;
+
win->GtkUpdateSize();
}
}
m_insertInClientArea = true;
m_isIconized = false;
m_fsIsShowing = false;
+ m_fsSaveFlag = 0;
m_themeEnabled = true;
m_gdkDecor = m_gdkFunc = 0;
m_grabbed = false;
g_lastActiveFrame = NULL;
}
-
+bool wxTopLevelWindowGTK::EnableCloseButton( bool enable )
+{
+ if (enable)
+ m_gdkFunc |= GDK_FUNC_CLOSE;
+ else
+ m_gdkFunc &= ~GDK_FUNC_CLOSE;
+
+ if (GTK_WIDGET_REALIZED(m_widget) && (m_widget->window))
+ gdk_window_set_functions( m_widget->window, (GdkWMFunction)m_gdkFunc );
+
+ return true;
+}
bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style )
{
if ( (method == wxX11_FS_WMSPEC) && !gtk_check_version(2,2,0) )
{
if (show)
+ {
+ m_fsSaveFlag = style;
gtk_window_fullscreen( GTK_WINDOW( m_widget ) );
+ }
else
+ {
+ m_fsSaveFlag = 0;
gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
+ }
}
else
#endif // GTK+ >= 2.2.0
}
else // hide
{
+ m_fsSaveFlag = 0;
if (method != wxX11_FS_WMSPEC)
{
// don't do it always, Metacity hates it
}
if (width != -1) m_width = width;
if (height != -1) m_height = height;
-
+
/*
if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH)
{
if (height)
{
- *height = m_height;
-
- // mini edge
- *height -= m_miniEdge*2 + m_miniTitle;
+ *height = m_height - 2 * m_miniEdge - m_miniTitle;
+ if (*height < 0)
+ *height = 0;
}
if (width)
{
- *width = m_width;
-
- *width -= m_miniEdge*2;
+ *width = m_width - 2 * m_miniEdge;
+ if (*width < 0)
+ *width = 0;
}
-
}
void wxTopLevelWindowGTK::DoSetClientSize( int width, int height )
int client_y = m_miniEdge + m_miniTitle;
int client_w = m_width - 2*m_miniEdge;
int client_h = m_height - 2*m_miniEdge - m_miniTitle;
+ if (client_w < 0)
+ client_w = 0;
+ if (client_h < 0)
+ client_h = 0;
+ // Let the parent perform the resize
gtk_pizza_set_size( GTK_PIZZA(m_mainWidget),
m_wxwindow,
client_x, client_y, client_w, client_h );