Funny resize behaviour fix.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2000-03-19 16:23:09 +00:00
parent 3d6f72618e
commit 15909a16b3
6 changed files with 28 additions and 30 deletions

View File

@ -250,7 +250,7 @@ wxApp::wxApp()
m_topWindow = (wxWindow *) NULL;
m_exitOnFrameDelete = TRUE;
m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
m_idleTag = gtk_idle_add_priority( 500, wxapp_idle_callback, (gpointer) NULL );
#if wxUSE_THREADS
m_wakeUpTimerTag = 0;

View File

@ -131,11 +131,6 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
if (g_isIdle)
wxapp_install_idle_handler();
/* I haven't been able to set the position of
the dialog before it is shown, so I set the
position in "realize" */
gtk_widget_set_uposition( widget, win->m_x, win->m_y );
/* all this is for Motif Window Manager "hints" and is supposed to be
recognized by other WM as well. not tested. */
long decor = (long) GDK_DECOR_BORDER;
@ -308,6 +303,10 @@ bool wxDialog::Create( wxWindow *parent,
PostCreation();
if ((m_x != -1) || (m_y != -1))
gtk_widget_set_uposition( m_widget, m_x, m_y );
gtk_widget_set_usize( m_widget, m_width, m_height );
/* we cannot set MWM hints before the widget has
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
@ -530,6 +529,8 @@ void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
if ((m_width != old_width) || (m_height != old_height))
{
gtk_widget_set_usize( m_widget, m_width, m_height );
/* actual resizing is deferred to GtkOnSize in idle time and
when showing the dialog */
m_sizeSet = FALSE;
@ -555,9 +556,6 @@ void wxDialog::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int heigh
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
/* we actually set the size of a frame here and no-where else */
gtk_widget_set_usize( m_widget, m_width, m_height );
m_sizeSet = TRUE;
wxSizeEvent event( wxSize(m_width,m_height), GetId() );

View File

@ -248,11 +248,6 @@ gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
if (g_isIdle)
wxapp_install_idle_handler();
/* I haven't been able to set the position of
the dialog before it is shown, so I set the
position in "realize" */
gtk_widget_set_uposition( widget, win->m_x, win->m_y );
if ((win->m_miniEdge > 0) || (win->HasFlag(wxSIMPLE_BORDER)))
{
/* This is a mini-frame or a borderless frame. */
@ -490,6 +485,10 @@ bool wxFrame::Create( wxWindow *parent,
PostCreation();
if ((m_x != -1) || (m_y != -1))
gtk_widget_set_uposition( m_widget, m_x, m_y );
gtk_widget_set_usize( m_widget, m_width, m_height );
/* we cannot set MWM hints and icons before the widget has
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
@ -610,6 +609,8 @@ void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
if ((m_width != old_width) || (m_height != old_height))
{
gtk_widget_set_usize( m_widget, m_width, m_height );
/* we set the size in GtkOnSize, i.e. mostly the actual resizing is
done either directly before the frame is shown or in idle time
so that different calls to SetSize() don't lead to flicker. */
@ -852,7 +853,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
#endif
/* we actually set the size of a frame here and no-where else */
gtk_widget_set_usize( m_widget, m_width, m_height );
// gtk_widget_set_usize( m_widget, m_width, m_height );
m_sizeSet = TRUE;

View File

@ -250,7 +250,7 @@ wxApp::wxApp()
m_topWindow = (wxWindow *) NULL;
m_exitOnFrameDelete = TRUE;
m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
m_idleTag = gtk_idle_add_priority( 500, wxapp_idle_callback, (gpointer) NULL );
#if wxUSE_THREADS
m_wakeUpTimerTag = 0;

View File

@ -131,11 +131,6 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
if (g_isIdle)
wxapp_install_idle_handler();
/* I haven't been able to set the position of
the dialog before it is shown, so I set the
position in "realize" */
gtk_widget_set_uposition( widget, win->m_x, win->m_y );
/* all this is for Motif Window Manager "hints" and is supposed to be
recognized by other WM as well. not tested. */
long decor = (long) GDK_DECOR_BORDER;
@ -308,6 +303,10 @@ bool wxDialog::Create( wxWindow *parent,
PostCreation();
if ((m_x != -1) || (m_y != -1))
gtk_widget_set_uposition( m_widget, m_x, m_y );
gtk_widget_set_usize( m_widget, m_width, m_height );
/* we cannot set MWM hints before the widget has
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
@ -530,6 +529,8 @@ void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
if ((m_width != old_width) || (m_height != old_height))
{
gtk_widget_set_usize( m_widget, m_width, m_height );
/* actual resizing is deferred to GtkOnSize in idle time and
when showing the dialog */
m_sizeSet = FALSE;
@ -555,9 +556,6 @@ void wxDialog::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int heigh
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
/* we actually set the size of a frame here and no-where else */
gtk_widget_set_usize( m_widget, m_width, m_height );
m_sizeSet = TRUE;
wxSizeEvent event( wxSize(m_width,m_height), GetId() );

View File

@ -248,11 +248,6 @@ gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
if (g_isIdle)
wxapp_install_idle_handler();
/* I haven't been able to set the position of
the dialog before it is shown, so I set the
position in "realize" */
gtk_widget_set_uposition( widget, win->m_x, win->m_y );
if ((win->m_miniEdge > 0) || (win->HasFlag(wxSIMPLE_BORDER)))
{
/* This is a mini-frame or a borderless frame. */
@ -490,6 +485,10 @@ bool wxFrame::Create( wxWindow *parent,
PostCreation();
if ((m_x != -1) || (m_y != -1))
gtk_widget_set_uposition( m_widget, m_x, m_y );
gtk_widget_set_usize( m_widget, m_width, m_height );
/* we cannot set MWM hints and icons before the widget has
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
@ -610,6 +609,8 @@ void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
if ((m_width != old_width) || (m_height != old_height))
{
gtk_widget_set_usize( m_widget, m_width, m_height );
/* we set the size in GtkOnSize, i.e. mostly the actual resizing is
done either directly before the frame is shown or in idle time
so that different calls to SetSize() don't lead to flicker. */
@ -852,7 +853,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
#endif
/* we actually set the size of a frame here and no-where else */
gtk_widget_set_usize( m_widget, m_width, m_height );
// gtk_widget_set_usize( m_widget, m_width, m_height );
m_sizeSet = TRUE;