From caaeb96d5eb46b00477c0ee081d84cfe0cde8670 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sat, 19 Nov 2016 08:36:26 -0800 Subject: [PATCH] Implement wxLB_NO_SB style See https://github.com/wxWidgets/wxWidgets/pull/346 (cherry picked from commit d24fbc7808100b8d683534ff76b8bde4cb885694) --- interface/wx/listbox.h | 2 +- src/gtk/listbox.cpp | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/interface/wx/listbox.h b/interface/wx/listbox.h index e16f32abde..82b898c9f2 100644 --- a/interface/wx/listbox.h +++ b/interface/wx/listbox.h @@ -46,7 +46,7 @@ @style{wxLB_NEEDED_SB} Only create a vertical scrollbar if needed. @style{wxLB_NO_SB} - Don't create vertical scrollbar (wxMSW only). + Don't create vertical scrollbar (wxMSW and wxGTK only). @style{wxLB_SORT} The listbox contents are sorted in alphabetical order. @endStyleTable diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index 952b509161..7b149c258a 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -273,16 +273,15 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, m_widget = gtk_scrolled_window_new( NULL, NULL ); g_object_ref(m_widget); + + GtkPolicyType vPolicy = GTK_POLICY_AUTOMATIC; if (style & wxLB_ALWAYS_SB) - { - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS ); - } - else - { - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); - } + vPolicy = GTK_POLICY_ALWAYS; + else if (style & wxLB_NO_SB) + vPolicy = GTK_POLICY_NEVER; + + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(m_widget), + GTK_POLICY_AUTOMATIC, vPolicy); GTKScrolledWindowSetBorder(m_widget, style);