X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fapp.cpp;h=9b6486ab0b37722c836b5d3e50000df2e9c60c46;hb=260b142249baa6cbd9147473384d40f83f7db61e;hp=3751fd3ad9ec75926b27c8374342b4cb6f367117;hpb=875547362223909f750d4ab2f536735e5b344fc8;p=staging%2Fwindowmanager.git diff --git a/src/app.cpp b/src/app.cpp index 3751fd3..9b6486a 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -235,9 +235,7 @@ int App::init_layers() { // Add layers to screen (XXX: are they sorted correctly?) s->set_render_order(this->layers.layers); - c->commit_changes(); - - this->display->flush(); + this->layout_commit(); return 0; } @@ -353,6 +351,11 @@ void App::surface_set_layout(int surface_id, optional sub_surface_id) { surface_id, layer_id, x, y, w, h); } +void App::layout_commit() { + this->controller->commit_changes(); + this->display->flush(); +} + char const *App::api_activate_surface(char const *drawing_name) { ST(); auto const &surface_id = this->lookup_id(drawing_name); @@ -401,8 +404,7 @@ char const *App::api_activate_surface(char const *drawing_name) { l.state.s = LayoutState::Single; if (flush) { - this->controller->commit_changes(); - this->display->flush(); + this->layout_commit(); } } @@ -418,11 +420,12 @@ char const *App::api_activate_surface(char const *drawing_name) { this->emit_syncdraw(drawing_name); this->surface_set_layout(*surface_id); - this->activate(*surface_id); + this->activate(*surface_id); // XXX do we need to activate after enddraw? state.main = *surface_id; state.sub = -1; state.s = LayoutState::Single; + this->layout_commit(); this->enqueue_flushdraw(state.main); } else { bool can_split = this->can_split(state, *surface_id); @@ -438,6 +441,7 @@ char const *App::api_activate_surface(char const *drawing_name) { this->activate(*surface_id); state.sub = *surface_id; + this->layout_commit(); this->enqueue_flushdraw(state.main); this->enqueue_flushdraw(state.sub); } @@ -452,15 +456,12 @@ char const *App::api_activate_surface(char const *drawing_name) { state.sub = -1; state.s = LayoutState::Single; + this->layout_commit(); this->enqueue_flushdraw(state.main); } } } - // commit changes - this->controller->commit_changes(); - this->display->flush(); - // no error return nullptr; } @@ -505,6 +506,7 @@ char const *App::api_deactivate_surface(char const *drawing_name) { state.sub = -1; state.s = LayoutState::Single; + this->layout_commit(); this->enqueue_flushdraw(state.sub); } else { this->deactivate(*surface_id); @@ -520,14 +522,12 @@ char const *App::api_deactivate_surface(char const *drawing_name) { state.sub = -1; state.s = LayoutState::Single; + this->layout_commit(); this->enqueue_flushdraw(state.main); } else { return "Surface is not active"; } - this->controller->commit_changes(); - this->display->flush(); - return nullptr; }