diff options
author | Marcus Fritzsch <marcus_fritzsch@mentor.com> | 2017-09-12 11:29:37 +0200 |
---|---|---|
committer | Marcus Fritzsch <marcus_fritzsch@mentor.com> | 2017-09-12 11:29:37 +0200 |
commit | 260b142249baa6cbd9147473384d40f83f7db61e (patch) | |
tree | a26c653f7d06b3aeb88306429ae28ef1d9b870d8 | |
parent | 875547362223909f750d4ab2f536735e5b344fc8 (diff) |
App: add layout_commit()
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
-rw-r--r-- | src/app.cpp | 26 | ||||
-rw-r--r-- | src/app.hpp | 1 |
2 files changed, 14 insertions, 13 deletions
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<int> 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; } diff --git a/src/app.hpp b/src/app.hpp index c12654d..3319081 100644 --- a/src/app.hpp +++ b/src/app.hpp @@ -163,6 +163,7 @@ private: int init_layers(); void surface_set_layout(int surface_id, optional<int> sub_surface_id = nullopt); + void layout_commit(); // TMC WM Events to clients void emit_activated(char const *label); |