]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/listbox.cpp
Added clipboard cut and paste
[wxWidgets.git] / src / gtk / listbox.cpp
index 20c77eec98523983fb94b8b59dd7b27b30dddefc..9cf8883c8e0e625ff8ee6957e27c50a16fae45a4 100644 (file)
@@ -393,8 +393,6 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
 
     gtk_widget_show( GTK_WIDGET(m_list) );
 
 
     gtk_widget_show( GTK_WIDGET(m_list) );
 
-    SetBestSize( size );
-
     if ( style & wxLB_SORT )
     {
         // this will change DoAppend() behaviour
     if ( style & wxLB_SORT )
     {
         // this will change DoAppend() behaviour
@@ -411,6 +409,10 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
         DoAppend(choices[i]);
     }
 
         DoAppend(choices[i]);
     }
 
+    // call it after appending the strings to the listbox, otherwise it doesn't
+    // work correctly
+    SetBestSize( size );
+
     m_parent->DoAddChild( this );
 
     PostCreation();
     m_parent->DoAddChild( this );
 
     PostCreation();
@@ -667,6 +669,12 @@ void wxListBox::Clear()
     wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
 
     gtk_list_clear_items( m_list, 0, GetCount() );
     wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
 
     gtk_list_clear_items( m_list, 0, GetCount() );
+    
+    if ( GTK_LIST(m_list)->last_focus_child != NULL  )
+    {
+        // This should be NULL, I think.
+        GTK_LIST(m_list)->last_focus_child = NULL;
+    }
 
     if ( HasClientObjectData() )
     {
 
     if ( HasClientObjectData() )
     {