X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Fluadialog.cc;h=5932b234df99e0ce46ff4abe5de5f98b099fd95a;hb=0cf27fd2cd353b294983f9e07c61287a3a82b55d;hp=b3cf29e404503cb184cbce907cab0feb76bc6a56;hpb=c79d0c1a9bb0b6e664c52f031f4886c26d7a548f;p=ardour.git diff --git a/gtk2_ardour/luadialog.cc b/gtk2_ardour/luadialog.cc index b3cf29e404..5932b234df 100644 --- a/gtk2_ardour/luadialog.cc +++ b/gtk2_ardour/luadialog.cc @@ -524,14 +524,8 @@ public: switch (a) { case Gtk::FILE_CHOOSER_ACTION_OPEN: case Gtk::FILE_CHOOSER_ACTION_SAVE: - if (Glib::file_test (path, Glib::FILE_TEST_IS_REGULAR|Glib::FILE_TEST_EXISTS)) { - _fc.set_filename (path); - } - break; case Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER: - if (Glib::file_test (path, Glib::FILE_TEST_IS_DIR|Glib::FILE_TEST_EXISTS)) { - _fc.set_filename (path); - } + _fc.set_filename (path); break; case Gtk::FILE_CHOOSER_ACTION_CREATE_FOLDER: break; @@ -716,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; @@ -777,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); + } +}