Store desktop dimensions in screenInfo.
For Zaphod mode screen crossing handling we need to know the size of all screens together (i.e. the whole desktop size). Store that in the screenInfo to have it readily available in events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
@@ -628,6 +628,30 @@ point_on_screen(ScreenPtr pScreen, int x, int y)
|
||||
}
|
||||
|
||||
/**
|
||||
* Update desktop dimensions on the screenInfo struct.
|
||||
*/
|
||||
void
|
||||
update_desktop_dimensions(void)
|
||||
{
|
||||
int i;
|
||||
int x1 = INT_MAX, y1 = INT_MAX; /* top-left */
|
||||
int x2 = INT_MIN, y2 = INT_MIN; /* bottom-right */
|
||||
|
||||
for (i = 0; i < screenInfo.numScreens; i++) {
|
||||
ScreenPtr screen = screenInfo.screens[i];
|
||||
x1 = min(x1, screen->x);
|
||||
y1 = min(y1, screen->y);
|
||||
x2 = max(x2, screen->x + screen->width);
|
||||
y2 = max(y2, screen->y + screen->height);
|
||||
}
|
||||
|
||||
screenInfo.x = x1;
|
||||
screenInfo.y = y1;
|
||||
screenInfo.width = x2 - x1;
|
||||
screenInfo.height = y2 - y1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete the element with the key from the list, freeing all memory
|
||||
* associated with the element..
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user