diff options
author | wm4 <wm4@nowhere> | 2015-02-13 22:34:26 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-02-13 22:34:26 +0100 |
commit | cd6dfcbef4ef15fd7ccd387e2f3438d7e702c567 (patch) | |
tree | 4b373312c72fa82b03c5164cb82ddb35b68c3311 /video/out/x11_common.c | |
parent | db167cd438b516371bc2a7b6e08a57f2054dc742 (diff) | |
download | mpv-cd6dfcbef4ef15fd7ccd387e2f3438d7e702c567.tar.bz2 mpv-cd6dfcbef4ef15fd7ccd387e2f3438d7e702c567.tar.xz |
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).
Diffstat (limited to 'video/out/x11_common.c')
-rw-r--r-- | video/out/x11_common.c | 19 |
1 files 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++) { |