From daf4334697145f771c5085fb183e64dc65a967bd Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Wed, 29 Apr 2015 13:51:56 +0200 Subject: 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. --- video/out/x11_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'video/out/x11_common.c') 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; } -- cgit v1.2.3