mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
Fixed crash if the X11 display doesn't have a resource manager property
This commit is contained in:
@@ -190,7 +190,7 @@ static float GetGlobalContentScale(SDL_VideoDevice *_this)
|
||||
{
|
||||
SDL_VideoData *data = _this->driverdata;
|
||||
Display *display = data->display;
|
||||
char * resource_manager;
|
||||
char *resource_manager;
|
||||
XrmDatabase db;
|
||||
XrmValue value;
|
||||
char *type;
|
||||
@@ -198,16 +198,18 @@ static float GetGlobalContentScale(SDL_VideoDevice *_this)
|
||||
X11_XrmInitialize();
|
||||
|
||||
resource_manager = X11_XResourceManagerString(display);
|
||||
db = X11_XrmGetStringDatabase(resource_manager);
|
||||
if (resource_manager) {
|
||||
db = X11_XrmGetStringDatabase(resource_manager);
|
||||
|
||||
// Get the value of Xft.dpi from the Database
|
||||
if (X11_XrmGetResource(db, "Xft.dpi", "String", &type, &value)) {
|
||||
if (value.addr && type && SDL_strcmp(type, "String") == 0) {
|
||||
int dpi = SDL_atoi(value.addr);
|
||||
scale_factor = dpi / 96.0;
|
||||
// Get the value of Xft.dpi from the Database
|
||||
if (X11_XrmGetResource(db, "Xft.dpi", "String", &type, &value)) {
|
||||
if (value.addr && type && SDL_strcmp(type, "String") == 0) {
|
||||
int dpi = SDL_atoi(value.addr);
|
||||
scale_factor = dpi / 96.0;
|
||||
}
|
||||
}
|
||||
X11_XrmDestroyDatabase(db);
|
||||
}
|
||||
X11_XrmDestroyDatabase(db);
|
||||
}
|
||||
|
||||
/* If that failed, try the GDK_SCALE envvar... */
|
||||
|
Reference in New Issue
Block a user