all repos — fluxbox @ 64813f62fde1345c0130cb70b72cfc00d7698283

custom fork of the fluxbox windowmanager

a few random fixes
markt markt
commit

64813f62fde1345c0130cb70b72cfc00d7698283

parent

88f580ec0c7015462329846cf96560df79b140f7

2 files changed, 17 insertions(+), 18 deletions(-)

jump to
M src/Screen.ccsrc/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.ccsrc/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);