diff options
author | Niklas Haas <git@nand.wakku.to> | 2015-04-29 13:51:56 +0200 |
---|---|---|
committer | Niklas Haas <git@nand.wakku.to> | 2015-04-29 14:01:27 +0200 |
commit | daf4334697145f771c5085fb183e64dc65a967bd (patch) | |
tree | 8d172e12f970b83d19c7c6d7b58ee36c6386be81 /video/out | |
parent | 0b72f5e5ad6f9fca8849fcfb5ced8c03e21ce82a (diff) | |
download | mpv-daf4334697145f771c5085fb183e64dc65a967bd.tar.bz2 mpv-daf4334697145f771c5085fb183e64dc65a967bd.tar.xz |
x11: query ICC profile based on center of window
Right now, the default behavior is to pick the numerically lowest screen
ID that overlaps the window in any way - but this means that mpv will
decide to pick an ICC profile in a pretty arbitrary way even if the
window only overlaps another screen by a single pixel.
The new behavior is to query it based on the center of the window
instead.
Diffstat (limited to 'video/out')
-rw-r--r-- | video/out/x11_common.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/video/out/x11_common.c b/video/out/x11_common.c index 36a497055a..aca492953f 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -1752,10 +1752,12 @@ int vo_x11_control(struct vo *vo, int *events, int request, void *arg) case VOCTRL_GET_ICC_PROFILE: { if (!x11->pseudo_mapped) return VO_NOTAVAIL; + int cx = x11->winrc.x0 + (x11->winrc.x1 - x11->winrc.x0)/2, + cy = x11->winrc.y0 + (x11->winrc.y1 - x11->winrc.y0)/2; int screen = 0; // xinerama screen number for (int n = 0; n < x11->num_displays; n++) { struct xrandr_display *disp = &x11->displays[n]; - if (disp->overlaps) { + if (mp_rect_contains(&disp->rc, cx, cy)) { screen = n; break; } |