diff options
Diffstat (limited to '')
-rw-r--r-- | xevents.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: xevents.c,v 1.28 2008/09/22 14:28:04 oga Exp $ + * $Id: xevents.c,v 1.29 2008/09/29 23:16:46 oga Exp $ */ /* @@ -375,6 +375,22 @@ xev_handle_shape(struct xevent *xev, XEvent *ee) client_do_shape(cc); } +void +xev_handle_randr(struct xevent *xev, XEvent *ee) +{ + XRRScreenChangeNotifyEvent *rev = (XRRScreenChangeNotifyEvent *)ee; + struct client_ctx *cc; + struct screen_ctx *sc; + + if ((cc = client_find(rev->window)) != NULL) { + XRRUpdateConfiguration(ee); + sc = CCTOSC(cc); + sc->xmax = rev->width; + sc->ymax = rev->height; + screen_init_xinerama(sc); + } +} + /* * Called when the keymap has changed. * Ungrab all keys, reload keymap and then regrab @@ -525,6 +541,8 @@ xev_loop(void) default: if (e.type == Shape_ev) xev_handle_shape(xev, &e); + else if (e.type == Randr_ev) + xev_handle_randr(xev, &e); break; } |