fix crash when XCURSOR_SIZE environment variable is set incorrectly

This commit is contained in:
Filip Markovic 2022-12-06 07:12:46 +01:00
parent ab85578dce
commit 8e544370d9

View file

@ -136,8 +136,13 @@ void CHyprpaper::recheckMonitor(SMonitor* pMonitor) {
zwlr_layer_surface_v1_ack_configure(pMonitor->pCurrentLayerSurface->pLayerSurface, pMonitor->configureSerial); zwlr_layer_surface_v1_ack_configure(pMonitor->pCurrentLayerSurface->pLayerSurface, pMonitor->configureSerial);
int XCURSOR_SIZE = 24; int XCURSOR_SIZE = 24;
if (getenv("XCURSOR_SIZE")) { if (getenv("XCURSOR_SIZE") != NULL) {
XCURSOR_SIZE = std::stoi(getenv("XCURSOR_SIZE")); char *endptr;
XCURSOR_SIZE = strtol(getenv("XCURSOR_SIZE"), &endptr, 10);
if (*endptr || XCURSOR_SIZE <= 0) {
Debug::log(WARN, "XCURSOR_SIZE environment variable is set incorrectly");
XCURSOR_SIZE = 24;
}
} }
pMonitor->pCurrentLayerSurface->pCursorImg = wl_cursor_theme_get_cursor(wl_cursor_theme_load(getenv("XCURSOR_THEME"), XCURSOR_SIZE * pMonitor->scale, m_sSHM), "left_ptr")->images[0]; pMonitor->pCurrentLayerSurface->pCursorImg = wl_cursor_theme_get_cursor(wl_cursor_theme_load(getenv("XCURSOR_THEME"), XCURSOR_SIZE * pMonitor->scale, m_sSHM), "left_ptr")->images[0];