]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/window.cpp
First cut at socket support in wxX11
[wxWidgets.git] / src / x11 / window.cpp
index b04be864ebc75da7a3ecc444b221de574eb2c387..9f980f69f5d53c41aae9afe8e28bf22c86b53e17 100644 (file)
@@ -147,7 +147,7 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
     m_foregroundColour = *wxBLACK;
     m_foregroundColour.CalcPixel( (WXColormap) cm ); 
 
-    Window xparent = (Window) parent->GetClientWindow();
+    Window xparent = (Window) parent->GetClientAreaWindow();
     
     // Add window's own scrollbars to main window, not to client window
     if (parent->GetInsertIntoMain())
@@ -386,18 +386,15 @@ void wxWindowX11::SetFocus()
     
     if (wxWindowIsVisible(xwindow))
     {
-        XSetInputFocus( wxGlobalDisplay(), xwindow, RevertToParent, CurrentTime );
+        wxLogTrace( _T("focus"), _T("wxWindowX11::SetFocus: %s"), GetClassInfo()->GetClassName());
+        //        XSetInputFocus( wxGlobalDisplay(), xwindow, RevertToParent, CurrentTime );
+        XSetInputFocus( wxGlobalDisplay(), xwindow, RevertToNone, CurrentTime );
         m_needsInputFocus = FALSE;
     }
     else
     {
         m_needsInputFocus = TRUE;
     }
-#if 0
-    wxString msg;
-    msg.Printf("SetFocus: %s\n", GetClassInfo()->GetClassName());
-    printf(msg.c_str());
-#endif
 }
 
 // Get the window with the focus
@@ -605,7 +602,7 @@ void wxWindowX11::ScrollWindow(int dx, int dy, const wxRect *rect)
         m_clearRegion.Intersect( 0, 0, cw, ch );
     }
     
-    Window xwindow = (Window) GetClientWindow();
+    Window xwindow = (Window) GetClientAreaWindow();
 
     wxCHECK_RET( xwindow, wxT("invalid window") );
 
@@ -1132,7 +1129,7 @@ void wxWindowX11::SendEraseEvents()
     if (!GetEventHandler()->ProcessEvent(erase_event) )
     {
         Display *xdisplay = wxGlobalDisplay();
-        Window xwindow = (Window) GetClientWindow();
+        Window xwindow = (Window) GetClientAreaWindow();
         XSetForeground( xdisplay, g_eraseGC, m_backgroundColour.GetPixel() );
         
         wxRegionIterator upd( m_clearRegion );
@@ -1225,6 +1222,9 @@ void wxWindowX11::OnSysColourChanged(wxSysColourChangedEvent& event)
     }
 }
 
+// See handler for InFocus case in app.cpp for details.
+wxWindow* g_GettingFocus = NULL;
+
 void wxWindowX11::OnInternalIdle()
 {
     // Update invalidated regions.
@@ -1247,6 +1247,7 @@ void wxWindowX11::OnInternalIdle()
         // no point in trying again.
         m_needsInputFocus = FALSE;
     }
+    g_GettingFocus = NULL;
 }
 
 // ----------------------------------------------------------------------------
@@ -1326,7 +1327,7 @@ WXWindow wxWindowX11::GetMainWindow() const
     return m_mainWindow;
 }
 
-WXWindow wxWindowX11::GetClientWindow() const
+WXWindow wxWindowX11::GetClientAreaWindow() const
 {
     return m_clientWindow;
 }