a few random fixes
markt markt
2 files changed,
17 insertions(+),
18 deletions(-)
M
src/Screen.cc
→
src/Screen.cc
@@ -1201,6 +1201,13 @@ return;
FbTk::App::instance()->sync(false); + // set new workspace + Workspace *old = currentWorkspace(); + m_current_workspace = getWorkspace(id); + + // we show new workspace first in order to appear faster + currentWorkspace()->showAll(); + FluxboxWindow *focused = FocusControl::focusedFbWindow(); if (focused && focused->isMoving()) {@@ -1227,27 +1234,13 @@ if ((*icon_it)->isStuck())
(*icon_it)->setWorkspace(id); } - currentWorkspace()->hideAll(false); - - // set new workspace - m_current_workspace = getWorkspace(id); - - // This is a little tricks to reduce flicker - // this way we can set focus pixmap on frame before we show it - // and using ExposeEvent to redraw without flicker - /* - WinClient *win = getLastFocusedWindow(currentWorkspaceID()); - if (win && win->fbwindow()) - win->fbwindow()->setFocusFlag(true); - */ - - currentWorkspace()->showAll(); - if (focused && focused->isMoving()) { focused->focus(); focused->resumeMoving(); } else FocusControl::revertFocus(*this); + + old->hideAll(false); FbTk::App::instance()->sync(false);
M
src/Window.cc
→
src/Window.cc
@@ -1954,7 +1954,7 @@
if (focus != frame().focused()) frame().setFocus(focus); - if (screen().focusControl().isCycling()) + if (focus && screen().focusControl().isCycling()) tempRaise(); else if (screen().doAutoRaise()) { if (m_focused)@@ -2486,7 +2486,13 @@ gettimeofday(&now, NULL);
if (now.tv_sec > m_creation_time + 1) m_creation_time = 0; - else { + else if (Remember::instance().isRemembered(*client, + Remember::REM_MAXIMIZEDSTATE) || + Remember::instance().isRemembered(*client, + Remember::REM_FULLSCREENSTATE)) { + cr.value_mask = cr.value_mask & ~(CWWidth | CWHeight); + cr.value_mask = cr.value_mask & ~(CWX | CWY); + } else { if (Remember::instance().isRemembered(*client, Remember::REM_DIMENSIONS)) cr.value_mask = cr.value_mask & ~(CWWidth | CWHeight);