]> git.saurik.com Git - wxWidgets.git/commitdiff
New global cursor behaviour.
authorRobert Roebling <robert@roebling.de>
Sun, 11 Jul 1999 20:49:54 +0000 (20:49 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 11 Jul 1999 20:49:54 +0000 (20:49 +0000)
  Test for tear-off menus in controls sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/controls/controls.cpp
src/gtk/window.cpp
src/gtk1/window.cpp

index ebd18e12cc5a2112c7064f84568db7a603907034..b771b00a5e60c1fdfb14ed311c4be5bdda6f51e7 100644 (file)
@@ -164,7 +164,7 @@ bool MyApp::OnInit()
 
     frame->SetIcon( wxICON(mondrian) );
 
-    wxMenu *file_menu = new wxMenu;
+    wxMenu *file_menu = new wxMenu( wxMENU_TEAROFF );
     file_menu->Append(MINIMAL_ABOUT, "&About\tF1");
     file_menu->Append(MINIMAL_QUIT, "E&xit\tAlt-X", "Quit controls sample");
 
index ee398f439a8c5c03e6e6ee44a0f0609f0faa57a1..75208ec494cf672bcc01022005a5465c9a2ccbef 100644 (file)
@@ -2191,19 +2191,34 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
 
 void wxWindow::OnInternalIdle()
 {
-        GdkWindow *window = GetConnectWidget()->window;
-        if (window)
-        {
-            wxCursor cursor = m_cursor;
-            if (g_globalCursor.Ok()) cursor = g_globalCursor;
+    wxCursor cursor = m_cursor;
+    if (g_globalCursor.Ok()) cursor = g_globalCursor;
 
-            if (cursor.Ok() && m_currentGdkCursor != cursor)
-            {
+    if (cursor.Ok() && m_currentGdkCursor != cursor)
+    {
+        if (m_wxwindow)
+       {
+            GdkWindow *window = m_wxwindow->window;
+           if (window)
                 gdk_window_set_cursor( window, cursor.GetCursor() );
-                m_currentGdkCursor = cursor;
-            }
-        }
-
+               
+           if (!g_globalCursor.Ok())
+               cursor = *wxSTANDARD_CURSOR;
+               
+           window = m_widget->window;
+           if (window)
+                gdk_window_set_cursor( window, cursor.GetCursor() );
+       }
+       else
+       {
+            GdkWindow *window = m_widget->window;
+           if (window)
+               gdk_window_set_cursor( window, cursor.GetCursor() );
+       }
+       
+        m_currentGdkCursor = cursor;
+    }
+       
     UpdateWindowUI();
 }
 
index ee398f439a8c5c03e6e6ee44a0f0609f0faa57a1..75208ec494cf672bcc01022005a5465c9a2ccbef 100644 (file)
@@ -2191,19 +2191,34 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
 
 void wxWindow::OnInternalIdle()
 {
-        GdkWindow *window = GetConnectWidget()->window;
-        if (window)
-        {
-            wxCursor cursor = m_cursor;
-            if (g_globalCursor.Ok()) cursor = g_globalCursor;
+    wxCursor cursor = m_cursor;
+    if (g_globalCursor.Ok()) cursor = g_globalCursor;
 
-            if (cursor.Ok() && m_currentGdkCursor != cursor)
-            {
+    if (cursor.Ok() && m_currentGdkCursor != cursor)
+    {
+        if (m_wxwindow)
+       {
+            GdkWindow *window = m_wxwindow->window;
+           if (window)
                 gdk_window_set_cursor( window, cursor.GetCursor() );
-                m_currentGdkCursor = cursor;
-            }
-        }
-
+               
+           if (!g_globalCursor.Ok())
+               cursor = *wxSTANDARD_CURSOR;
+               
+           window = m_widget->window;
+           if (window)
+                gdk_window_set_cursor( window, cursor.GetCursor() );
+       }
+       else
+       {
+            GdkWindow *window = m_widget->window;
+           if (window)
+               gdk_window_set_cursor( window, cursor.GetCursor() );
+       }
+       
+        m_currentGdkCursor = cursor;
+    }
+       
     UpdateWindowUI();
 }