summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/FbWinFrame.cc7
-rw-r--r--src/Window.cc16
2 files changed, 14 insertions, 9 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc
index 1f0a52e..4533fa6 100644
--- a/src/FbWinFrame.cc
+++ b/src/FbWinFrame.cc
@@ -198,8 +198,6 @@ void FbWinFrame::shade() {
198 return; 198 return;
199 199
200 // toggle shade 200 // toggle shade
201 if (!m_state.shaded)
202 saveGeometry();
203 m_state.shaded = !m_state.shaded; 201 m_state.shaded = !m_state.shaded;
204 applyState(); 202 applyState();
205} 203}
@@ -256,6 +254,8 @@ void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int heigh
256 m_window.resize(width, height); 254 m_window.resize(width, height);
257 } 255 }
258 256
257 saveGeometry();
258
259 if (move || (resize && m_screen.getTabPlacement() != TOPLEFT && 259 if (move || (resize && m_screen.getTabPlacement() != TOPLEFT &&
260 m_screen.getTabPlacement() != LEFTTOP)) 260 m_screen.getTabPlacement() != LEFTTOP))
261 alignTabs(); 261 alignTabs();
@@ -283,6 +283,7 @@ void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int heigh
283void FbWinFrame::quietMoveResize(int x, int y, 283void FbWinFrame::quietMoveResize(int x, int y,
284 unsigned int width, unsigned int height) { 284 unsigned int width, unsigned int height) {
285 m_window.moveResize(x, y, width, height); 285 m_window.moveResize(x, y, width, height);
286 saveGeometry();
286 if (m_tabmode == EXTERNAL) { 287 if (m_tabmode == EXTERNAL) {
287 288
288 switch(m_screen.getTabPlacement()) { 289 switch(m_screen.getTabPlacement()) {
@@ -521,7 +522,6 @@ void FbWinFrame::setFullscreen(bool newvalue) {
521 if (newvalue == m_state.fullscreen) 522 if (newvalue == m_state.fullscreen)
522 return; 523 return;
523 524
524 saveGeometry();
525 m_state.fullscreen = newvalue; 525 m_state.fullscreen = newvalue;
526 applyState(); 526 applyState();
527} 527}
@@ -530,7 +530,6 @@ void FbWinFrame::setMaximized(int value) {
530 if (value == m_state.maximized) 530 if (value == m_state.maximized)
531 return; 531 return;
532 532
533 saveGeometry();
534 m_state.maximized = value; 533 m_state.maximized = value;
535 applyState(); 534 applyState();
536} 535}
diff --git a/src/Window.cc b/src/Window.cc
index b175314..4b77b95 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -1538,6 +1538,12 @@ void FluxboxWindow::setMaximizedState(int type) {
1538 maximized = type; 1538 maximized = type;
1539 frame().setMaximized(type); 1539 frame().setMaximized(type);
1540 1540
1541 // notify when struts change, so we can resize accordingly
1542 if (maximized)
1543 screen().workspaceAreaSig().attach(this);
1544 else
1545 screen().workspaceAreaSig().detach(this);
1546
1541 // notify listeners that we changed state 1547 // notify listeners that we changed state
1542 stateSig().notify(); 1548 stateSig().notify();
1543} 1549}
@@ -2771,14 +2777,14 @@ void FluxboxWindow::update(FbTk::Subject *subj) {
2771 titleSig().notify(); 2777 titleSig().notify();
2772 } 2778 }
2773 2779
2774 } else if (subj && typeid(*subj) == typeid(BScreen::ScreenSubject)) { 2780 } else if (subj == &screen().focusedWindowSig()) {
2775 if (subj == &screen().focusedWindowSig()) { 2781 if (FocusControl::focusedFbWindow())
2776 if (FocusControl::focusedFbWindow()) 2782 setFullscreenLayer();
2777 setFullscreenLayer();
2778 }
2779 } else if (subj == &m_theme.reconfigSig()) { 2783 } else if (subj == &m_theme.reconfigSig()) {
2780 frame().applyDecorations(); 2784 frame().applyDecorations();
2781 sendConfigureNotify(); 2785 sendConfigureNotify();
2786 } else if (subj == &screen().workspaceAreaSig()) {
2787 frame().applyState();
2782 } else if (m_initialized && subj == &m_frame.frameExtentSig()) { 2788 } else if (m_initialized && subj == &m_frame.frameExtentSig()) {
2783 Fluxbox::instance()->updateFrameExtents(*this); 2789 Fluxbox::instance()->updateFrameExtents(*this);
2784 sendConfigureNotify(); 2790 sendConfigureNotify();