// XXX: input focus missing!!1
if (state.main == -1) {
- this->emit_syncdraw(drawing_name);
-
this->surface_set_layout(*surface_id);
this->activate(*surface_id); // XXX do we need to activate after enddraw?
state.main = *surface_id;
state.s = LayoutState::Single;
this->layout_commit();
+ this->emit_syncdraw(drawing_name);
this->enqueue_flushdraw(state.main);
} else {
bool can_split = this->can_split(state, *surface_id);
if (can_split) {
if (state.main != *surface_id) {
std::string main = std::move(*this->lookup_name(state.main));
- this->emit_syncdraw(drawing_name);
- this->emit_syncdraw(main.c_str());
this->surface_set_layout(state.main, surface_id);
this->activate(*surface_id);
state.sub = *surface_id;
this->layout_commit();
+ this->emit_syncdraw(drawing_name);
+ this->emit_syncdraw(main.c_str());
this->enqueue_flushdraw(state.main);
this->enqueue_flushdraw(state.sub);
}
} else {
- this->emit_syncdraw(drawing_name);
-
this->surface_set_layout(*surface_id);
this->deactivate(state.main);
this->activate(*surface_id);
state.s = LayoutState::Single;
this->layout_commit();
+ this->emit_syncdraw(drawing_name);
this->enqueue_flushdraw(state.main);
}
}
if (state.main == *surface_id) {
if (state.sub != -1) {
std::string sub = std::move(*this->lookup_name(state.sub));
- this->emit_syncdraw(sub.c_str());
this->deactivate(*surface_id);
this->surface_set_layout(state.sub);
state.s = LayoutState::Single;
this->layout_commit();
+ this->emit_syncdraw(sub.c_str());
this->enqueue_flushdraw(state.sub);
} else {
this->deactivate(*surface_id);
}
} else if (state.sub == *surface_id) {
std::string main = std::move(*this->lookup_name(state.main));
- this->emit_syncdraw(main.c_str());
this->deactivate(*surface_id);
this->deactivate(*surface_id);
state.s = LayoutState::Single;
this->layout_commit();
+ this->emit_syncdraw(main.c_str());
this->enqueue_flushdraw(state.main);
} else {
return "Surface is not active";