+ else if (display && display-1 == work_display) {
+ real_display = work_display;
+ break;
+ }
+
+ dd.cb = sizeof(dd);
+ ++work_display;
+ }
+
+ if (!work_display && real_display == -1 && primary_display == -1) {
+ /* EnumDisplayDevices() failed for the first call */
+ i_push_win32_errorf(GetLastError(), "Cannot enumerate device %d(0): ", work_display);
+ return NULL;
+ }
+
+ if (primary_display != -1 && display == 0) {
+ real_display = primary_display;
+ }
+
+ if (real_display == -1) {
+ /* haven't enumerated the display we want yet */
+ /* we're after the primary */
+ real_display = display;
+ dd.cb = sizeof(dd);
+ if (!EnumDisplayDevices(NULL, real_display, &dd, 0)) {
+ i_push_win32_errorf(GetLastError(), "Cannot enumerate device %d(%d): ",
+ real_display, display);