summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/x11_common.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/video/out/x11_common.c b/video/out/x11_common.c
index c84409b03c..0779718967 100644
--- a/video/out/x11_common.c
+++ b/video/out/x11_common.c
@@ -1336,6 +1336,16 @@ static void vo_x11_highlevel_resize(struct vo *vo, int x, int y, int w, int h)
update_vo_size(vo);
}
+static void wait_until_mapped(struct vo *vo)
+{
+ struct vo_x11_state *x11 = vo->x11;
+ while (x11->window_hidden) {
+ XEvent unused;
+ XPeekEvent(x11->display, &unused);
+ vo_x11_check_events(vo);
+ }
+}
+
/* Create and setup a window suitable for display
* vis: Visual to use for creating the window (NULL for default)
* x, y: position of window (might be ignored)
@@ -1408,6 +1418,7 @@ void vo_x11_config_vo_window(struct vo *vo, XVisualInfo *vis, int flags,
x11->win_width = width;
x11->win_height = height;
}
+ wait_until_mapped(vo);
update_vo_size(vo);
x11->pending_vo_events &= ~VO_EVENT_RESIZE; // implicitly done by the VO
}