From 2c3009b2ed8a99207076997bffbc30e441fc01a8 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Tue, 29 Nov 2016 18:49:20 +0100 Subject: [PATCH] qt5_avplay: show the main window earlier The main window must be visible before avplay or a framebuffer filter requests the framebuffer session which goes to Nitpicker, because the parent view of the new Nitpicker view is part of the QNitpickerPlatformWindow object, which is created when the main window becomes visible. If this object does not exist yet, a page fault occurs. Fixes #2187 --- .../src/app/qt5/qt_avplay/main_window.cpp | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/repos/libports/src/app/qt5/qt_avplay/main_window.cpp b/repos/libports/src/app/qt5/qt_avplay/main_window.cpp index 40b253e679..f5c9a1a50e 100644 --- a/repos/libports/src/app/qt5/qt_avplay/main_window.cpp +++ b/repos/libports/src/app/qt5/qt_avplay/main_window.cpp @@ -36,6 +36,21 @@ Main_window::Main_window(Genode::Env &env) _input_session_component.event_queue().enabled(true); _ep.manage(&_input_session_component); + /* add widgets to layout */ + + _layout->addWidget(_avplay_widget); + _layout->addWidget(_control_bar); + + /* + * The main window must be visible before avplay or a framebuffer filter + * requests the framebuffer session which goes to Nitpicker, because the + * parent view of the new Nitpicker view is part of the + * QNitpickerPlatformWindow object, which is created when the main window + * becomes visible. + */ + + show(); + /* find out which filtering framebuffer services to start and sort them in reverse order */ static QList framebuffer_filters; @@ -65,11 +80,6 @@ Main_window::Main_window(Genode::Env &env) new Filter_framebuffer_service_factory(framebuffer_filter->slave->policy()); } - /* add widgets to layout */ - - _layout->addWidget(_avplay_widget); - _layout->addWidget(_control_bar); - /* start avplay */ Avplay_slave *avplay_slave = new Avplay_slave(_env.pd(), _env.rm(),