From 53fae91f1dcc2be2fb99b5bab38a5f2cca07a000 Mon Sep 17 00:00:00 2001 From: Reginald Kennedy Date: Sat, 23 Apr 2016 04:45:03 +0800 Subject: [PATCH] Fix segfault when handling RRScreenChangeNotify. Fixes #118 --- spectrwm.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/spectrwm.c b/spectrwm.c index f9a8005..8026ba9 100644 --- a/spectrwm.c +++ b/spectrwm.c @@ -11569,32 +11569,27 @@ screenchange(xcb_randr_screen_change_notify_event_t *e) print_win_geom(e->root); #endif /* add bars to all regions */ - for (i = 0; i < num_screens; i++) { - TAILQ_FOREACH(r, &screens[i].rl, entry) - bar_setup(r); - } + TAILQ_FOREACH(r, &screens[i].rl, entry) + bar_setup(r); /* Stack all regions. */ TAILQ_FOREACH(r, &screens[i].rl, entry) stack(r); - /* Make sure a region has focus on each screen. */ - for (i = 0; i < num_screens; i++) { - if (screens[i].r_focus == NULL) { - r = TAILQ_FIRST(&screens[i].rl); - if (r != NULL) - focus_region(r); - } + /* Make sure a region has focus. */ + if (screens[i].r_focus == NULL) { + r = TAILQ_FIRST(&screens[i].rl); + if (r != NULL) + focus_region(r); } focus_flush(); /* Update workspace state and bar on all regions. */ - for (i = 0; i < num_screens; i++) - TAILQ_FOREACH(r, &screens[i].rl, entry) { - r->ws->state = SWM_WS_STATE_MAPPED; - bar_draw(r->bar); - } + TAILQ_FOREACH(r, &screens[i].rl, entry) { + r->ws->state = SWM_WS_STATE_MAPPED; + bar_draw(r->bar); + } } void -- 2.39.2