diff options
author | Bert <ber.t@gmx.com> | 2011-01-17 19:50:46 +0100 |
---|---|---|
committer | Bert <ber.t@gmx.com> | 2011-01-17 19:50:46 +0100 |
commit | 47d107edb5069176265852fac96ea0eedbec8d34 (patch) | |
tree | 9205acc82ea7462444d3a304f248957fca149468 | |
parent | 15603c25cf00a11dbdf238203858d9eab313120c (diff) |
React to ConfigureNotify
-rw-r--r-- | events.c | 4 | ||||
-rw-r--r-- | window.c | 16 | ||||
-rw-r--r-- | window.h | 6 |
3 files changed, 24 insertions, 2 deletions
@@ -30,6 +30,10 @@ void on_expose(app_t *app, XEvent *ev) { } void on_configurenotify(app_t *app, XEvent *ev) { + if (app == NULL || ev == NULL) + return; + + win_configure(&app->win, &ev->xconfigure); } void on_keypress(app_t *app, XEvent *ev) { @@ -84,3 +84,19 @@ void win_close(win_t *win) { XFreeGC(dpy, gc); XCloseDisplay(dpy); } + +int win_configure(win_t *win, XConfigureEvent *cev) { + int changed; + + if (win == NULL) + return 0; + + changed = win->x != cev->x || win->y != cev->y || + win->w != cev->width || win->h != cev->height; + win->x = cev->x; + win->y = cev->y; + win->w = cev->width; + win->h = cev->height; + win->bw = cev->border_width; + return changed; +} @@ -33,7 +33,9 @@ typedef struct win_s { int fullscreen; } win_t; -void win_open(win_t *win); -void win_close(win_t *win); +void win_open(win_t*); +void win_close(win_t*); + +int win_configure(win_t*, XConfigureEvent*); #endif /* WINDOW_H */ |