a few random fixes
This commit is contained in:
parent
88f580ec0c
commit
64813f62fd
2 changed files with 17 additions and 18 deletions
|
@ -1201,6 +1201,13 @@ void BScreen::changeWorkspaceID(unsigned int id) {
|
|||
|
||||
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,28 +1234,14 @@ void BScreen::changeWorkspaceID(unsigned int id) {
|
|||
(*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_currentworkspace_sig.notify();
|
||||
|
|
|
@ -1954,7 +1954,7 @@ void FluxboxWindow::setFocusFlag(bool focus) {
|
|||
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 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) {
|
|||
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue