diff --git a/src/main.cpp b/src/main.cpp index a0a7fe5..7c9f2c6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -45,6 +45,7 @@ int g_nOldNice = 0; int g_nNewNice = 0; float g_flMaxWindowScale = FLT_MAX; +bool g_bIntegerScale = false; pthread_t g_mainThread; @@ -84,6 +85,9 @@ int main(int argc, char **argv) case 'm': g_flMaxWindowScale = atof( optarg ); break; + case 'i': + g_bIntegerScale = true; + break; case 's': bSleepAtStartup = true; break; diff --git a/src/main.hpp b/src/main.hpp index f2dd28e..389292d 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -2,7 +2,7 @@ #include -#define GAMESCOPE_OPTIONS ":R:T:C:w:h:W:H:m:r:o:NFSvVecsdLnbfxO:" +#define GAMESCOPE_OPTIONS ":R:T:C:w:h:W:H:m:r:o:NFSvVecsdLinbfxO:" void wayland_commit(struct wlr_surface *surf, struct wlr_buffer *buf); diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp index 0938029..d3da7d0 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp @@ -198,6 +198,7 @@ Bool fadeOutWindowGone; unsigned int fadeOutStartTime; extern float g_flMaxWindowScale; +extern bool g_bIntegerScale; #define FADE_OUT_DURATION 200 @@ -889,6 +890,8 @@ void MouseCursor::paint(win *window, struct Composite_t *pComposite, currentScaleRatio = (XRatio < YRatio) ? XRatio : YRatio; currentScaleRatio = std::min(g_flMaxWindowScale, currentScaleRatio); + if (g_bIntegerScale) + currentScaleRatio = floor(currentScaleRatio); cursorOffsetX = (currentOutputWidth - window->a.width * currentScaleRatio * globalScaleRatio) / 2.0f; cursorOffsetY = (currentOutputHeight - window->a.height * currentScaleRatio * globalScaleRatio) / 2.0f; @@ -975,6 +978,8 @@ paint_window (Display *dpy, win *w, struct Composite_t *pComposite, currentScaleRatio = (XRatio < YRatio) ? XRatio : YRatio; currentScaleRatio = std::min(g_flMaxWindowScale, currentScaleRatio); + if (g_bIntegerScale) + currentScaleRatio = floor(currentScaleRatio); currentScaleRatio *= globalScaleRatio; drawXOffset = ((int)currentOutputWidth - (int)sourceWidth * currentScaleRatio) / 2.0f;