mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-05-05 06:20:44 +09:00
Use bundled cursor if cursor fails to load
This commit is contained in:
@@ -774,15 +774,26 @@ namespace gsr {
|
||||
|
||||
XcursorImage *cursor_image = nullptr;
|
||||
for(int cursor_size_test : {cursor_size, 24}) {
|
||||
for(const char *cursor_theme_test : {cursor_theme, "default"}) {
|
||||
for(const char *cursor_theme_test : {cursor_theme, "default", "Adwaita"}) {
|
||||
for(unsigned int shape : {XC_left_ptr, XC_arrow}) {
|
||||
cursor_image = XcursorShapeLoadImage(shape, cursor_theme_test, cursor_size_test);
|
||||
if(cursor_image)
|
||||
break;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
if(!cursor_image) {
|
||||
fprintf(stderr, "Error: failed to get cursor, loading bundled default cursor instead\n");
|
||||
const std::string default_cursor_path = resources_path + "images/default.cur";
|
||||
for(int cursor_size_test : {cursor_size, 24}) {
|
||||
cursor_image = XcursorFilenameLoadImage(default_cursor_path.c_str(), cursor_size_test);
|
||||
if(cursor_image)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!cursor_image) {
|
||||
fprintf(stderr, "Error: failed to get cursor\n");
|
||||
XFixesShowCursor(xi_display, DefaultRootWindow(xi_display));
|
||||
|
||||
Reference in New Issue
Block a user