=> b43b9a6b81e572556800a82a5bda2befc578c4cc
[1mdiff --git a/src/app.c b/src/app.c[m [1mindex f44fdf4f..a2d80bf2 100644[m [1m--- a/src/app.c[m [1m+++ b/src/app.c[m [36m@@ -373,6 +373,14 @@[m [mstatic void init_App_(iApp *d, int argc, char **argv) {[m #if defined (iPlatformMsys)[m /* Must scale by UI scaling factor. */[m mulfv_I2(&d->initialWindowRect.size, desktopDPI_Win32());[m [32m+[m[32m#endif[m [32m+[m[32m#if defined (iPlatformLinux)[m [32m+[m[32m /* Scale by the primary (?) monitor DPI. */ {[m [32m+[m[32m float vdpi;[m [32m+[m[32m SDL_GetDisplayDPI(0, NULL, NULL, &vdpi);[m [32m+[m[32m const float factor = vdpi / 96.0f;[m [32m+[m[32m mulfv_I2(&d->initialWindowRect.size, iMax(factor, 1.0f));[m [32m+[m[32m }[m #endif[m init_Prefs(&d->prefs);[m setCStr_String(&d->prefs.downloadDir, downloadDir_App_);[m [1mdiff --git a/src/ui/window.c b/src/ui/window.c[m [1mindex 8df92706..f8123a17 100644[m [1m--- a/src/ui/window.c[m [1m+++ b/src/ui/window.c[m [36m@@ -685,7 +685,12 @@[m [mstatic float pixelRatio_Window_(const iWindow *d) {[m #if defined (iPlatformMsys)[m iUnused(d);[m return desktopDPI_Win32();[m [31m-#else[m [32m+[m[32m#elif defined (iPlatformLinux)[m [32m+[m[32m float vdpi = 0.0f;[m [32m+[m[32m SDL_GetDisplayDPI(SDL_GetWindowDisplayIndex(d->win), NULL, NULL, &vdpi);[m [32m+[m[32m const float factor = vdpi / 96.0f;[m [32m+[m[32m return iMax(1.0f, factor);[m [32m+[m[32m#else[m[41m [m int dx, x;[m SDL_GetRendererOutputSize(d->render, &dx, NULL);[m SDL_GetWindowSize(d->win, &x, NULL);[m [36m@@ -764,6 +769,7 @@[m [mvoid init_Window(iWindow *d, iRect rect) {[m useExecutableIconResource_SDLWindow(d->win);[m #endif[m #if defined (iPlatformLinux)[m [32m+[m[32m SDL_SetWindowMinimumSize(d->win, minSize.x * d->pixelRatio, minSize.y * d->pixelRatio);[m /* Load the window icon. */ {[m int w, h, num;[m const iBlock *icon = &imageLagrange64_Embedded;[m [36m@@ -1033,7 +1039,7 @@[m [miInt2 rootSize_Window(const iWindow *d) {[m }[m [m iInt2 coord_Window(const iWindow *d, int x, int y) {[m [31m-#if defined (iPlatformMsys)[m [32m+[m[32m#if defined (iPlatformMsys) || defined (iPlatformLinux)[m /* On Windows, surface coordinates are in pixels. */[m return init_I2(x, y);[m #else[m
text/gemini; charset=utf-8
This content has been proxied by September (ba2dc).