glazier

the original window manipulator
Log | Files | Refs | Submodules | README | LICENSE

commit d5edef0ae3bf603796ec60aa9195f9a6abfafcb0
parent 911d7cc0d0d8989a8070b8f9e786ddbabdd5ae34
Author: Willy Goiffon <dev@z3bra.org>
Date:   Sat, 19 Oct 2019 02:15:07 +0200

Inflate/Deflate windows when scrolling

Diffstat:
config.def.h | 3+++
glazier.c | 15+++++++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/config.def.h b/config.def.h @@ -8,3 +8,6 @@ /* window borders */ int border = 8; int border_color = 0xdeadca7; + +/* move/resize step amound in pixels */ +int move_step = 8; diff --git a/glazier.c b/glazier.c @@ -68,6 +68,7 @@ cb_create(xcb_generic_event_t *ev) static int cb_mouse_press(xcb_generic_event_t *ev) { + int x, y, w, h; xcb_cursor_t p; xcb_cursor_context_t *cx; xcb_grab_pointer_cookie_t c; @@ -94,6 +95,20 @@ cb_mouse_press(xcb_generic_event_t *ev) case 3: p = xcb_cursor_load_cursor(cx, XHAIR_SIZE); break; + case 4: + x = wm_get_attribute(wid, ATTR_X) - move_step/2; + y = wm_get_attribute(wid, ATTR_Y) - move_step/2; + w = wm_get_attribute(wid, ATTR_W) + move_step; + h = wm_get_attribute(wid, ATTR_H) + move_step; + wm_teleport(wid, x, y, w, h); + break; + case 5: + x = wm_get_attribute(wid, ATTR_X) + move_step/2; + y = wm_get_attribute(wid, ATTR_Y) + move_step/2; + w = wm_get_attribute(wid, ATTR_W) - move_step; + h = wm_get_attribute(wid, ATTR_H) - move_step; + wm_teleport(wid, x, y, w, h); + break; default: return 1; }