diff --git a/src/display.c b/src/display.c index ed9b5020e9b81caddd26f08f81abaa19c298b69c..adc961da71014e919abd406740136b5db487cfe2 100644 --- a/src/display.c +++ b/src/display.c @@ -599,6 +599,27 @@ myDisplayGetScreenFromRoot (DisplayInfo *display, Window root) return NULL; } +ScreenInfo * +myDisplayGetScreenFromOutput (DisplayInfo *display, Window output) +{ + GSList *list; + + g_return_val_if_fail (display != NULL, NULL); + + for (list = display->screens; list; list = g_slist_next (list)) + { + ScreenInfo *screen = (ScreenInfo *) list->data; + if (screen->output == output) + { + return screen; + } + } + TRACE ("myDisplayGetScreenFromOutput: no screen found for output window %p", output); + + return NULL; +} + + ScreenInfo * myDisplayGetScreenFromNum (DisplayInfo *display, int num) { diff --git a/src/display.h b/src/display.h index 8c21f28d683472f8fc447f430e307d20f7fd7cb5..c1a8adbf9b9c2c2d7ecc8e21ccace76ecc73a55b 100644 --- a/src/display.h +++ b/src/display.h @@ -389,6 +389,8 @@ void myDisplayRemoveScreen (DisplayInfo *, ScreenInfo *); ScreenInfo *myDisplayGetScreenFromRoot (DisplayInfo *, Window); +ScreenInfo *myDisplayGetScreenFromOutput (DisplayInfo *, + Window); ScreenInfo *myDisplayGetScreenFromNum (DisplayInfo *, int); Window myDisplayGetRootFromWindow (DisplayInfo *,