diff options
-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 */ |