From a6bf8e7c3621b9b68da89aebe2a2f779b1968a52 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 13 Feb 2015 22:34:26 +0100 Subject: x11: return a framerate even if no window is mapped Falls back to the first display in the list returned by xrandr. Not entirely correct, but makes some people happy (see #1575). (cherry picked from commit cd6dfcbef4ef15fd7ccd387e2f3438d7e702c567) --- video/out/x11_common.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/video/out/x11_common.c b/video/out/x11_common.c index 1f933bfcae..3a1b47540f 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -541,6 +541,8 @@ int vo_x11_init(struct vo *vo) xrandr_read(x11); + vo_x11_update_geometry(vo); + return 1; } @@ -1539,14 +1541,15 @@ static void vo_x11_update_geometry(struct vo *vo) int dummy_int; Window dummy_win; Window win = x11->parent ? x11->parent : x11->window; - if (!win) - return; - XGetGeometry(x11->display, win, &dummy_win, &dummy_int, &dummy_int, - &w, &h, &dummy_int, &dummy_uint); - if (w > INT_MAX || h > INT_MAX) - w = h = 0; - XTranslateCoordinates(x11->display, win, x11->rootwin, 0, 0, - &x, &y, &dummy_win); + x11->winrc = (struct mp_rect){0, 0, 0, 0}; + if (win) { + XGetGeometry(x11->display, win, &dummy_win, &dummy_int, &dummy_int, + &w, &h, &dummy_int, &dummy_uint); + if (w > INT_MAX || h > INT_MAX) + w = h = 0; + XTranslateCoordinates(x11->display, win, x11->rootwin, 0, 0, + &x, &y, &dummy_win); + } x11->winrc = (struct mp_rect){x, y, x + w, y + h}; double fps = 1000.0; for (int n = 0; n < x11->num_displays; n++) { -- cgit v1.2.3