]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed setfocus() flicker in listctrl
authorKarsten Ballüder <ballueder@usa.net>
Wed, 24 Nov 1999 15:11:29 +0000 (15:11 +0000)
committerKarsten Ballüder <ballueder@usa.net>
Wed, 24 Nov 1999 15:11:29 +0000 (15:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/listctrl.h
include/wx/menuitem.h
src/gtk/window.cpp
src/gtk1/window.cpp

index 5d191352b2abf8285197c1ede7273a9cc6d093b8..69dfcd94d299b7f44eddaa0a60ecbb7a89a7b952 100644 (file)
@@ -607,7 +607,12 @@ class WXDLLEXPORT wxListCtrl: public wxControl
     bool DoPopupMenu( wxMenu *menu, int x, int y )
       { return m_mainWin->PopupMenu( menu, x, y ); }
     void SetFocus()
-      { m_mainWin->SetFocus(); }
+       {
+          /* The test in window.cpp fails as we are a composite
+             window, so it checks against "this", but not m_mainWin. */
+          if(FindFocus() != this)
+             m_mainWin->SetFocus();
+       }
 
   // implementation
 
index 63b3137ec0ba6e38d4d3df95e74428c6f3cf3b16..6fda4bd30dad28cdcb38582f506f2dcd4c1a8f3f 100644 (file)
@@ -45,7 +45,6 @@ class WXDLLEXPORT wxMenu;
 class WXDLLEXPORT wxMenuItemBase : public wxObject
 {
 public:
-    wxMenuItemBase() { }
 
     // creation
     static wxMenuItem *New(wxMenu *parentMenu = (wxMenu *)NULL,
@@ -118,6 +117,10 @@ protected:
     bool          m_isCheckable;    // can be checked?
     bool          m_isChecked;      // is checked?
     bool          m_isEnabled;      // is enabled?
+
+    // some compilers need a default constructor here, do not use
+    wxMenuItemBase() 
+        { }
 };
 
 // ----------------------------------------------------------------------------
index fb0fb302c43b7372f3f40eaa7cb1d23b100c16bc..d09ee10763e8c81ca8352bcc7272c6abfad44265 100644 (file)
@@ -2475,7 +2475,7 @@ void wxWindow::GetTextExtent( const wxString& string,
 void wxWindow::SetFocus()
 {
     wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
-
+    
     if (m_wxwindow)
     {
         if (!GTK_WIDGET_HAS_FOCUS (m_wxwindow))
index fb0fb302c43b7372f3f40eaa7cb1d23b100c16bc..d09ee10763e8c81ca8352bcc7272c6abfad44265 100644 (file)
@@ -2475,7 +2475,7 @@ void wxWindow::GetTextExtent( const wxString& string,
 void wxWindow::SetFocus()
 {
     wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
-
+    
     if (m_wxwindow)
     {
         if (!GTK_WIDGET_HAS_FOCUS (m_wxwindow))