diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/app.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/app.cpp b/src/app.cpp index f8d216b..59b762d 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -445,8 +445,9 @@ char const *App::activate_surface(char const *drawing_name) { if (state.sub == -1) { if (can_split) { if (state.main != *surface_id) { + std::string main = *this->lookup_name(state.main); this->emit_syncdraw(drawing_name); - this->emit_syncdraw(this->lookup_name(state.main)->c_str()); + this->emit_syncdraw(main.c_str()); this->surface_set_layout_split(state.main, *surface_id); this->activate(*surface_id); @@ -454,7 +455,7 @@ char const *App::activate_surface(char const *drawing_name) { // Should wait for EndDraw event... this->emit_flushdraw(drawing_name); - this->emit_flushdraw(this->lookup_name(state.main)->c_str()); + this->emit_flushdraw(main.c_str()); } } else { this->emit_syncdraw(drawing_name); @@ -505,7 +506,8 @@ char const *App::deactivate_surface(char const *drawing_name) { if (state.main == *surface_id) { if (state.sub != -1) { - this->emit_syncdraw(this->lookup_name(state.sub)->c_str()); + std::string sub = *this->lookup_name(state.sub); + this->emit_syncdraw(sub.c_str()); this->deactivate(*surface_id); this->surface_set_layout_full(state.sub); @@ -513,13 +515,14 @@ char const *App::deactivate_surface(char const *drawing_name) { state.sub = -1; state.s = LayoutState::Single; - this->emit_flushdraw(this->lookup_name(state.sub)->c_str()); + this->emit_flushdraw(sub.c_str()); } else { this->deactivate(*surface_id); state.main = -1; } }else if (state.sub == *surface_id) { - this->emit_syncdraw(this->lookup_name(state.main)->c_str()); + std::string main = *this->lookup_name(state.main); + this->emit_syncdraw(main.c_str()); this->deactivate(*surface_id); this->deactivate(*surface_id); @@ -527,7 +530,7 @@ char const *App::deactivate_surface(char const *drawing_name) { state.sub = -1; state.s = LayoutState::Single; - this->emit_flushdraw(this->lookup_name(state.main)->c_str()); + this->emit_flushdraw(main.c_str()); } else { return "Surface is not active"; } |