]> git.saurik.com Git - wxWidgets.git/commitdiff
Small cursor improvements
authorRobert Roebling <robert@roebling.de>
Thu, 27 May 1999 09:34:17 +0000 (09:34 +0000)
committerRobert Roebling <robert@roebling.de>
Thu, 27 May 1999 09:34:17 +0000 (09:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/window.h
include/wx/gtk1/window.h
src/gtk/frame.cpp
src/gtk/window.cpp
src/gtk1/frame.cpp
src/gtk1/window.cpp

index 167d3bc338ca2beb3b24dd96782820a08f53bb00..6730525a8696388c898eaa0b701f29226930d1f2 100644 (file)
@@ -195,6 +195,11 @@ public:
     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
index 167d3bc338ca2beb3b24dd96782820a08f53bb00..6730525a8696388c898eaa0b701f29226930d1f2 100644 (file)
@@ -195,6 +195,11 @@ public:
     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
index b4195914f8fe8b64fe6c31ff2f7d8d03bd0aeda8..66dece16c506b39cbde9877f0a0e1ce059843717 100644 (file)
@@ -749,6 +749,10 @@ void wxFrame::OnInternalIdle()
         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) )
index 5a676c5c1b51e304b2795506f71c3031c7df424d..fdce311eece3d0a375dc18dadc1a428c64b9d0e8 100644 (file)
@@ -2030,10 +2030,14 @@ void wxWindow::OnInternalIdle()
     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();
index b4195914f8fe8b64fe6c31ff2f7d8d03bd0aeda8..66dece16c506b39cbde9877f0a0e1ce059843717 100644 (file)
@@ -749,6 +749,10 @@ void wxFrame::OnInternalIdle()
         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) )
index 5a676c5c1b51e304b2795506f71c3031c7df424d..fdce311eece3d0a375dc18dadc1a428c64b9d0e8 100644 (file)
@@ -2030,10 +2030,14 @@ void wxWindow::OnInternalIdle()
     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();