diff --git a/src/conio/x_events.c b/src/conio/x_events.c index 40720e127983142054604f8861563a092ec23c92..a93a8ce368f61a36b3cb062694584b12b616e614 100644 --- a/src/conio/x_events.c +++ b/src/conio/x_events.c @@ -778,7 +778,8 @@ my_fls(unsigned long mask) /* * Actually maps (shows) the window */ -static void map_window() +static void +map_window(bool mp) { XSizeHints *sh; @@ -830,7 +831,7 @@ static void map_window() pthread_mutex_lock(&vstatlock); vstat.scaling = x_cvstat.scaling; pthread_mutex_unlock(&vstatlock); - if (map_pending) + if (mp) x11.XMapWindow(dpy, win); x11.XFree(sh); @@ -1171,7 +1172,7 @@ static void resize_window() x_cvstat.scaling = vstat.scaling; if (resize) { pthread_mutex_unlock(&vstatlock); - map_window(); + map_window(map_pending); pthread_mutex_lock(&vstatlock); x11.XResizeWindow(dpy, win, width, height); x_cvstat.winwidth = vstat.winwidth = width; @@ -1207,7 +1208,7 @@ static void init_mode_internal(int mode) x_cvstat = vstat; pthread_mutex_unlock(&vstatlock); resize_xim(); - map_window(); + map_window(map_pending); } static void check_scaling(void) @@ -1645,7 +1646,8 @@ x11_event(XEvent *ev) case PropertyNotify: if (A(_NET_FRAME_EXTENTS) != None) { if (ev->xproperty.atom == A(_NET_FRAME_EXTENTS)) { - map_window(); + // Don't map the window in respose to _NET_FRAME_EXTENTS change + map_window(false); } } if (A(_NET_WM_STATE) != None) {