all repos — openbox @ 6f2064b1869ed9816fe1756252ad4fd66de9190b

openbox fork - make it a bit more like ryudo

posible fix for maximizing when slit is auto-hidden
Dana Jansens danakj@orodu.net
commit

6f2064b1869ed9816fe1756252ad4fd66de9190b

parent

75c0a76a53bc31b162590fc767f5b2fe73ad07df

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

jump to
M src/Slit.hsrc/Slit.h

@@ -133,6 +133,7 @@

inline const Point &origin() const { return frame.area.origin(); } inline const Size &size() const { return frame.area.size(); } inline const Rect &area() const { return frame.area; } + inline const Point &hiddenOrigin() const { return frame.hidden; } void addClient(Window); void removeClient(SlitClient *, Bool = True);
M src/Window.ccsrc/Window.cc

@@ -1539,6 +1539,8 @@ Rect space(0, 0, screen->size().w(), screen->size().h());

if (! screen->fullMax()) { #ifdef SLIT Slit *slit = screen->getSlit(); + int slit_x = slit->autoHide() ? slit->hiddenOrigin().x() : slit->area().x(), + slit_y = slit->autoHide() ? slit->hiddenOrigin().y() : slit->area().y(); Toolbar *toolbar = screen->getToolbar(); int tbarh = screen->hideToolbar() ? 0 : toolbar->getExposedHeight() + screen->getBorderWidth() * 2;

@@ -1562,19 +1564,21 @@ (slit->placement() == Slit::TopLeft ||

slit->placement() == Slit::TopRight)) || slit->placement() == Slit::TopCenter) { // exclude top - if (tbartop) { - space.setY(slit->area().y()); - space.setH(space.h() - space.y()); - } else + if (tbartop) + space.setH(space.h() - slit_y); + else space.setH(space.h() - tbarh); - space.setY(space.y() + slit->area().h() + screen->getBorderWidth() * 2); - space.setH(space.h() - (slit->area().h() + screen->getBorderWidth() * 2)); + space.setY(space.y() + slit_y + slit->area().h() + + screen->getBorderWidth() * 2); + space.setH(space.h() - (slit_y + slit->area().h() + + screen->getBorderWidth() * 2)); } else if ((slit->direction() == Slit::Vertical && (slit->placement() == Slit::TopRight || slit->placement() == Slit::BottomRight)) || slit->placement() == Slit::CenterRight) { // exclude right - space.setW(space.w() - (slit->area().w() + screen->getBorderWidth() * 2)); + space.setW(space.w() - (screen->size().w() - slit_x + + screen->getBorderWidth() * 2)); if (tbartop) space.setY(space.y() + tbarh); space.setH(space.h() - tbarh);

@@ -1583,14 +1587,16 @@ (slit->placement() == Slit::BottomLeft ||

slit->placement() == Slit::BottomRight)) || slit->placement() == Slit::BottomCenter) { // exclude bottom - space.setH(space.h() - (screen->size().h() - slit->area().y())); + space.setH(space.h() - (screen->size().h() - slit_y)); } else {// if ((slit->direction() == Slit::Vertical && // (slit->placement() == Slit::TopLeft || // slit->placement() == Slit::BottomLeft)) || // slit->placement() == Slit::CenterLeft) // exclude left - space.setX(slit->area().w() + screen->getBorderWidth() * 2); - space.setW(space.w() - (slit->area().w() + screen->getBorderWidth() * 2)); + space.setX(slit_x + slit->area().w() + + screen->getBorderWidth() * 2); + space.setW(space.w() - (slit_x + slit->area().w() + + screen->getBorderWidth() * 2)); if (tbartop) space.setY(space.y() + tbarh); space.setH(space.h() - tbarh);