all repos — openbox @ d00ef145828941dc15c31bd7c3fc2f69f29c2955

openbox fork - make it a bit more like ryudo

made shaded windows snap properly at their bottom, using their shaded height.
window.getHeight() now returns the different/correct value when a window is shaded.
Dana Jansens danakj@orodu.net
commit

d00ef145828941dc15c31bd7c3fc2f69f29c2955

parent

bb1a97327b08fa5c1b8025083fc39498b3256c84

3 files changed, 20 insertions(+), 14 deletions(-)

jump to
M ChangeLogChangeLog

@@ -1,7 +1,11 @@

Changelog for Openbox: 1.0.0: - * added BestFit window placement algorithm/type (Ruhi Bloodworth) + * made shaded windows edge-snap correctly to the + bottom for their size instead for their unshaded + size. (Ben Jansens) + + * added BestFit window placement algorithm/type. (Ruhi Bloodworth) 0.99.1: * forced a redraw of the close button after pressing
M src/Window.ccsrc/Window.cc

@@ -2804,15 +2804,18 @@ dx -= frame.border_w;

dy -= frame.border_w; int snap_distance = screen->getEdgeSnapThreshold(); + // width/height of the snapping window + unsigned int snap_w = frame.width + (frame.border_w * 2); + unsigned int snap_h = getHeight() + (frame.border_w * 2); if (snap_distance) { - int drx = screen->getWidth() - (dx + frame.snap_w); + int drx = screen->getWidth() - (dx + snap_w); if (dx < drx && (dx > 0 && dx < snap_distance) || (dx < 0 && dx > -snap_distance) ) dx = 0; else if ( (drx > 0 && drx < snap_distance) || (drx < 0 && drx > -snap_distance) ) - dx = screen->getWidth() - frame.snap_w; + dx = screen->getWidth() - snap_w; int dtty, dbby, dty, dby; switch (screen->getToolbarPlacement()) {

@@ -2831,14 +2834,14 @@ break;

} dty = dy - dtty; - dby = dbby - (dy + frame.snap_h); + dby = dbby - (dy + snap_h); if ( (dy > 0 && dty < snap_distance) || (dy < 0 && dty > -snap_distance) ) dy = dtty; else if ( (dby > 0 && dby < snap_distance) || (dby < 0 && dby > -snap_distance) ) - dy = dbby - frame.snap_h; + dy = dbby - snap_h; } if (screen->doOpaqueMove()) {

@@ -3148,9 +3151,6 @@ }

frame.width = client.width + (frame.mwm_border_w * 2); frame.height = frame.y_handle + frame.handle_h; - - frame.snap_w = frame.width + (frame.border_w * 2); - frame.snap_h = frame.height + (frame.border_w * 2); }

@@ -3172,9 +3172,6 @@ client.height = frame.height - frame.y_border - (frame.mwm_border_w * 2)

- frame.handle_h - (decorations.handle ? frame.border_w : 0); frame.y_handle = frame.border_h + frame.y_border + frame.border_w; - - frame.snap_w = frame.width + (frame.border_w * 2); - frame.snap_h = frame.height + (frame.border_w * 2); }
M src/Window.hsrc/Window.h

@@ -111,7 +111,7 @@ unsigned int maximized; // 1 = HorizVert, 2 = Vertical, 3 = Horizontal

} flags; struct _client { - OpenboxWindow *transient_for, // which window are we a transient for? + OpenboxWindow *transient_for, // which window are we a transient for? *transient; // which window is our transient? Window window, // the client's window

@@ -199,7 +199,7 @@ y_border, y_handle; // where within frame is the border and handle

unsigned int width, height, title_h, label_w, label_h, handle_h, button_w, button_h, grip_w, grip_h, mwm_border_w, border_h, border_w, - bevel_w, snap_w, snap_h; + bevel_w; } frame; protected:

@@ -279,7 +279,12 @@ inline const int &getWorkspaceNumber(void) const { return workspace_number; }

inline const int &getWindowNumber(void) const { return window_number; } inline const unsigned int &getWidth(void) const { return frame.width; } - inline const unsigned int &getHeight(void) const { return frame.height; } + inline const unsigned int &getHeight(void) const { + if (!flags.shaded) + return frame.height; + else + return frame.title_h; + } inline const unsigned int &getClientHeight(void) const { return client.height; } inline const unsigned int &getClientWidth(void) const