aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc35
1 files changed, 9 insertions, 26 deletions
diff --git a/src/Window.cc b/src/Window.cc
index ef6cd73..a5ec2dd 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -1524,8 +1524,6 @@ void FluxboxWindow::setFullscreen(bool flag) {
1524 frame().moveResize(screen().getHeadX(head), screen().getHeadY(head), 1524 frame().moveResize(screen().getHeadX(head), screen().getHeadY(head),
1525 screen().getHeadWidth(head), screen().getHeadHeight(head)); 1525 screen().getHeadWidth(head), screen().getHeadHeight(head));
1526 sendConfigureNotify(); 1526 sendConfigureNotify();
1527 m_last_resize_x = frame().x();
1528 m_last_resize_y = frame().y();
1529 1527
1530 fullscreen = true; 1528 fullscreen = true;
1531 1529
@@ -1548,14 +1546,9 @@ void FluxboxWindow::setFullscreen(bool flag) {
1548 1546
1549 // ensure we apply the sizehints here, otherwise some 1547 // ensure we apply the sizehints here, otherwise some
1550 // apps (eg xterm) end up a little bit .. crappy (visually) 1548 // apps (eg xterm) end up a little bit .. crappy (visually)
1551 m_last_resize_x = m_old_pos_x; 1549 frame().applySizeHints(m_old_width, m_old_height);
1552 m_last_resize_y = m_old_pos_y;
1553 m_last_resize_w = m_old_width;
1554 m_last_resize_h = m_old_height;
1555 m_resize_corner = NOCORNER;
1556 fixsize();
1557 1550
1558 moveResize(m_last_resize_x, m_last_resize_y, m_last_resize_w, m_last_resize_h); 1551 moveResize(m_old_pos_x, m_old_pos_y, m_old_width, m_old_height);
1559 moveToLayer(m_old_layernum); 1552 moveToLayer(m_old_layernum);
1560 1553
1561 m_old_layernum = ::Layer::NORMAL; 1554 m_old_layernum = ::Layer::NORMAL;
@@ -1624,10 +1617,8 @@ void FluxboxWindow::setMaximizedState(int type) {
1624 stopResizing(); 1617 stopResizing();
1625 1618
1626 int head = screen().getHead(frame().window()); 1619 int head = screen().getHead(frame().window());
1627 int new_x = frame().x(), 1620 int new_x = frame().x(), new_y = frame().y();
1628 new_y = frame().y(), 1621 unsigned int new_w = frame().width(), new_h = frame().height();
1629 new_w = frame().width(),
1630 new_h = frame().height();
1631 1622
1632 // These evaluate whether we need to TOGGLE the value for that field 1623 // These evaluate whether we need to TOGGLE the value for that field
1633 // Why? If maximize is only set to zero outside this, 1624 // Why? If maximize is only set to zero outside this,
@@ -1679,22 +1670,14 @@ void FluxboxWindow::setMaximizedState(int type) {
1679 1670
1680 // ensure we apply the sizehints here, otherwise some 1671 // ensure we apply the sizehints here, otherwise some
1681 // apps (eg xterm) end up a little bit .. crappy (visually) 1672 // apps (eg xterm) end up a little bit .. crappy (visually)
1682 m_last_resize_x = new_x;
1683 m_last_resize_y = new_y;
1684 m_last_resize_w = new_w;
1685 m_last_resize_h = new_h;
1686 1673
1687 // frankly, that xterm bug was pretty obscure, and it's really annoying not 1674 // frankly, that xterm bug was pretty obscure, and it's really annoying not
1688 // being able to maximize my terminals, so we make an option 1675 // being able to maximize my terminals, so we make an option
1689 // but we do fix size hints when restoring the window to normal size 1676 // but we do fix size hints when restoring the window to normal size
1690 if (!screen().getMaxIgnoreIncrement() || !maximized) { 1677 if (!screen().getMaxIgnoreIncrement() || !maximized)
1691 ResizeDirection old_resize_corner = m_resize_corner; 1678 frame().applySizeHints(new_w, new_h, maximized ? true : false);
1692 m_resize_corner = NOCORNER;
1693 fixsize(maximized ? true : false);
1694 m_resize_corner = old_resize_corner;
1695 }
1696 1679
1697 moveResize(m_last_resize_x, m_last_resize_y, m_last_resize_w, m_last_resize_h); 1680 moveResize(new_x, new_y, new_w, new_h);
1698 1681
1699 // notify listeners that we changed state 1682 // notify listeners that we changed state
1700 stateSig().notify(); 1683 stateSig().notify();
@@ -3715,8 +3698,8 @@ unsigned int FluxboxWindow::normalHeight() const {
3715 3698
3716int FluxboxWindow::initialState() const { return m_client->initial_state; } 3699int FluxboxWindow::initialState() const { return m_client->initial_state; }
3717 3700
3718void FluxboxWindow::fixsize(bool maximizing) { 3701void FluxboxWindow::fixsize() {
3719 frame().applySizeHints(m_last_resize_w, m_last_resize_h, maximizing); 3702 frame().applySizeHints(m_last_resize_w, m_last_resize_h);
3720 3703
3721 // move X if necessary 3704 // move X if necessary
3722 if (m_resize_corner == LEFTTOP || m_resize_corner == LEFTBOTTOM || 3705 if (m_resize_corner == LEFTTOP || m_resize_corner == LEFTBOTTOM ||