bool m_delayedForegroundColour:1;
bool m_delayedBackgroundColour:1;
bool m_delayedCursor:1;
+
+ // the cursor is set in OnInternalIdle(). this fields holds
+ // a reference to the cursor currently set in theGdk window
+ // so that we don't have to set it more than once
+ wxCursor m_currentGdkCursor;
// contains GTK's widgets internal information about non-default widget
// font and colours. we create one for each widget that gets any
bool m_delayedForegroundColour:1;
bool m_delayedBackgroundColour:1;
bool m_delayedCursor:1;
+
+ // the cursor is set in OnInternalIdle(). this fields holds
+ // a reference to the cursor currently set in theGdk window
+ // so that we don't have to set it more than once
+ wxCursor m_currentGdkCursor;
// contains GTK's widgets internal information about non-default widget
// font and colours. we create one for each widget that gets any
GtkOnSize( m_x, m_y, m_width, m_height );
DoMenuUpdates();
+
+ if (m_frameMenuBar) m_frameMenuBar->OnInternalIdle();
+ if (m_frameToolBar) m_frameToolBar->OnInternalIdle();
+ if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle();
}
void wxFrame::OnCloseWindow( wxCloseEvent& WXUNUSED(event) )
GdkWindow *window = GetConnectWidget()->window;
if (window)
{
- if (g_globalCursor.Ok())
- gdk_window_set_cursor( window, g_globalCursor.GetCursor() );
- else
- gdk_window_set_cursor( window, m_cursor.GetCursor() );
+ wxCursor cursor = m_cursor;
+ if (g_globalCursor.Ok()) cursor = g_globalCursor;
+
+ if (m_currentGdkCursor != cursor)
+ {
+ gdk_window_set_cursor( window, cursor.GetCursor() );
+ m_currentGdkCursor = cursor;
+ }
}
UpdateWindowUI();
GtkOnSize( m_x, m_y, m_width, m_height );
DoMenuUpdates();
+
+ if (m_frameMenuBar) m_frameMenuBar->OnInternalIdle();
+ if (m_frameToolBar) m_frameToolBar->OnInternalIdle();
+ if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle();
}
void wxFrame::OnCloseWindow( wxCloseEvent& WXUNUSED(event) )
GdkWindow *window = GetConnectWidget()->window;
if (window)
{
- if (g_globalCursor.Ok())
- gdk_window_set_cursor( window, g_globalCursor.GetCursor() );
- else
- gdk_window_set_cursor( window, m_cursor.GetCursor() );
+ wxCursor cursor = m_cursor;
+ if (g_globalCursor.Ok()) cursor = g_globalCursor;
+
+ if (m_currentGdkCursor != cursor)
+ {
+ gdk_window_set_cursor( window, cursor.GetCursor() );
+ m_currentGdkCursor = cursor;
+ }
}
UpdateWindowUI();