]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/listbox.cpp
Updated FAQs from web site
[wxWidgets.git] / src / gtk1 / listbox.cpp
index 5ad87b3027680ead6de8762350e56ca8c2d025fa..3865a4f20c61d5ed0cf7370f3838908e0f322c24 100644 (file)
@@ -233,6 +233,17 @@ gtk_listbox_button_press_callback( GtkWidget *widget,
     }
 #endif // wxUSE_CHECKLISTBOX
 
+    if ((gdk_event->state == 0) &&
+         (((listbox->GetWindowStyleFlag() & wxLB_MULTIPLE) != 0) ||
+          ((listbox->GetWindowStyleFlag() & wxLB_EXTENDED) != 0)) )
+    {
+        if (listbox->IsSelected(sel))
+        {
+            gtk_list_unselect_item( GTK_LIST(listbox->m_list), sel );
+            return true;
+        }
+    }
+
     /* emit wxEVT_COMMAND_LISTBOX_DOUBLECLICKED later */
     g_hasDoubleClicked = (gdk_event->type == GDK_2BUTTON_PRESS);
 
@@ -492,7 +503,7 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
     {
         // if style was 0 set single mode
         m_windowStyle |= wxLB_SINGLE;
-        mode = GTK_SELECTION_MULTIPLE;
+        mode = GTK_SELECTION_SINGLE;
     }
 
     gtk_list_set_selection_mode( GTK_LIST(m_list), mode );
@@ -1006,7 +1017,7 @@ bool wxListBox::IsSelected( int n ) const
     return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ;
 }
 
-void wxListBox::SetSelection( int n, bool select )
+void wxListBox::DoSetSelection( int n, bool select )
 {
     wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );