Grab Server when showing or switching desktop Should reduce exposure events, notably since the windows are not in stack order.
Thomas Lübking thomas.luebking@gmail.com
2 files changed,
4 insertions(+),
0 deletions(-)
M
src/Screen.cc
→
src/Screen.cc
@@ -953,6 +953,7 @@ /* Ignore all EnterNotify events until the pointer actually moves */
this->focusControl().ignoreAtPointer(); FbTk::App::instance()->sync(false); + XGrabServer(Fluxbox::instance()->display()); FluxboxWindow *focused = FocusControl::focusedFbWindow();@@ -990,6 +991,7 @@ FocusControl::revertFocus(*this);
old->hideAll(false); + XUngrabServer(Fluxbox::instance()->display()); FbTk::App::instance()->sync(false); m_currentworkspace_sig.emit(*this);
M
src/WorkspaceCmd.cc
→
src/WorkspaceCmd.cc
@@ -602,6 +602,7 @@ std::list<Focusable *>::const_iterator it = wins.begin(),
it_end = wins.end(); unsigned int space = screen->currentWorkspaceID(); unsigned int count = 0; + XGrabServer(Fluxbox::instance()->display()); for (; it != it_end; ++it) { if (!(*it)->fbwindow()->isIconic() && ((*it)->fbwindow()->isStuck() || (*it)->fbwindow()->workspaceNumber() == space) &&@@ -621,6 +622,7 @@ (*iconit)->deiconify(false);
} } else FocusControl::revertFocus(*screen); + XUngrabServer(Fluxbox::instance()->display()); }