LimitedSplitter (wxWindow* parent)
: wxSplitterWindow (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_NOBORDER | wxSP_3DSASH | wxSP_LIVE_UPDATE)
{
-
+ /* This value doesn't really mean much but we just want to stop double-click on the
+ divider from shrinking the bottom panel (#1601).
+ */
+ SetMinimumPaneSize (64);
}
bool OnSashPositionChange (int new_position)
}
_splitter = new LimitedSplitter (n);
- wxDisplay display (wxDisplay::GetFromWindow(_splitter));
- wxRect screen = display.GetClientArea();
+ optional<wxRect> screen;
+ int const sn = wxDisplay::GetFromWindow(_splitter);
+ if (sn >= 0) {
+ screen = wxDisplay(sn).GetClientArea();
+ }
wxPanel* top = new wxPanel (_splitter);
_menu = new ContentMenu (_splitter);
/* This is a hack to try and make the content notebook a sensible size; large on big displays but small
enough on small displays to leave space for the content area.
*/
- _splitter->SplitHorizontally (top, _notebook, screen.height > 800 ? -600 : -150);
+ if (screen) {
+ _splitter->SplitHorizontally (top, _notebook, screen->height > 800 ? -600 : -150);
+ }
_timing_panel = new TimingPanel (this, _film_viewer);
_notebook->AddPage (_timing_panel, _("Timing"), false);
void
ContentPanel::check_selection ()
{
- if (_last_selected == selected()) {
- /* This was triggered by a re-build of the view but the selection
- did not really change.
- */
- return;
- }
-
_last_selected = selected ();
setup_sensitivity ();