diff options
Diffstat (limited to 'dix/inpututils.c')
-rw-r--r-- | dix/inpututils.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/dix/inpututils.c b/dix/inpututils.c index 5797f9256..c152b2d8b 100644 --- a/dix/inpututils.c +++ b/dix/inpututils.c @@ -665,6 +665,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.. */ |