From 77d1982d1d6e22d1369d078790a84a7d525331af Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 2 Aug 2018 15:17:38 +0200 Subject: Add scrollbar to LuaDialog --- gtk2_ardour/luadialog.cc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'gtk2_ardour/luadialog.cc') diff --git a/gtk2_ardour/luadialog.cc b/gtk2_ardour/luadialog.cc index d1383f505e..5932b234df 100644 --- a/gtk2_ardour/luadialog.cc +++ b/gtk2_ardour/luadialog.cc @@ -710,7 +710,14 @@ Dialog::Dialog (std::string const& title, luabridge::LuaRef lr) Gtk::Table* table = Gtk::manage (new Gtk::Table ()); table->set_col_spacings (20); table->set_row_spacings (8); - _ad.get_vbox ()->pack_start (*table); + table->signal_size_allocate ().connect (sigc::mem_fun (this, &Dialog::table_size_alloc)); + + _scroller.set_shadow_type(Gtk::SHADOW_NONE); + _scroller.set_border_width(0); + _scroller.add (*table); + _scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_NEVER); + + _ad.get_vbox ()->pack_start (_scroller); int row = 0; int last_end = -1; @@ -771,3 +778,13 @@ Dialog::run (lua_State *L) luabridge::push (L, rv); return 1; } + +void +Dialog::table_size_alloc (Gtk::Allocation& allocation) +{ + /* XXX: consider using 0.75 * screen-height instead of 512 */ + if (allocation.get_height () > 512) { + _scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); + _ad.set_size_request (-1, 512); + } +} -- cgit v1.2.3