X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/13960e3c699644b8703ab882c902e90d7645e4e7..e7300ec6d9ebbd1cfa2fcf12c0ce6e5aee85a152:/src/gtk/listbox.cpp?ds=sidebyside diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index 9cf8883c8e..afdac34650 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -37,14 +37,6 @@ extern void wxapp_install_idle_handler(); extern bool g_isIdle; -//------------------------------------------------------------------------- -// conditional compilation -//------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION > 0) - #define NEW_GTK_SCROLL_CODE -#endif - //----------------------------------------------------------------------------- // private functions //----------------------------------------------------------------------------- @@ -84,14 +76,20 @@ struct wxlistbox_idle_struct gint m_tag; }; -static gint wxlistbox_idle_callback( gpointer gdata ) +extern "C" gint wxlistbox_idle_callback( gpointer gdata ) { wxlistbox_idle_struct* data = (wxlistbox_idle_struct*) gdata; gdk_threads_enter(); gtk_idle_remove( data->m_tag ); - data->m_listbox->SetFirstItem( data->m_item ); + // check that the items haven't been deleted from the listbox since we had + // installed this callback + wxListBox *lbox = data->m_listbox; + if ( data->m_item < lbox->GetCount() ) + { + lbox->SetFirstItem( data->m_item ); + } delete data; @@ -379,11 +377,7 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, gtk_list_set_selection_mode( GTK_LIST(m_list), mode ); -#ifdef NEW_GTK_SCROLL_CODE gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) ); -#else - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) ); -#endif /* make list scroll when moving the focus down using cursor keys */ gtk_container_set_focus_vadjustment( @@ -417,7 +411,7 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, PostCreation(); - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_LISTBOX ) ); + SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_LISTBOX ) ); SetForegroundColour( parent->GetForegroundColour() ); SetFont( parent->GetFont() ); @@ -1046,7 +1040,7 @@ wxSize wxListBox::DoGetBestSize() const } // Add room for the scrollbar - lbWidth += wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X); + lbWidth += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X); // And just a bit more int cx, cy;