Created
January 18, 2019 11:10
-
-
Save mickvangelderen/627558200c0ff0ab19c096a0448374dd to your computer and use it in GitHub Desktop.
Obtain a screen pointer by the screen number with xcb.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Find XCB screen. | |
int default_screen_number = XDefaultScreen(display); | |
xcb_screen_t *screen = NULL; | |
xcb_screen_iterator_t iter = xcb_setup_roots_iterator(xcb_get_setup(connection)); | |
int index = 0; | |
do { | |
if (index == default_screen_number) { | |
screen = iter.data; | |
break; | |
} | |
if (iter.rem > 0) { | |
index += 1; | |
xcb_screen_next(&iter); | |
continue; | |
} | |
} while (0); | |
if (!screen) { | |
fprintf(stderr, "Failed to find screen from screen number.\n"); | |
exit_code = -1; | |
break; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Implementation of xcb_screen_next:
xcb_screen_sizeof
doesn't always return the same number, it can vary depending on the type of screen.