<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Christopher,<div><br></div><div>I’ve entered a bug to track this. See <a href="https://bugs.openjdk.org/browse/JDK-8326428">https://bugs.openjdk.org/browse/JDK-8326428</a><div><br></div><div>JavaFX added support for scaling-factor back in 2016 to address an issue with Ubuntu 16. Since then I suspect that setting has fallen into disuse. I know that it’s not set in Ubuntu/Kubuntu 22 but I can’t easily test earlier releases. My hunch is that on most distros it is set to 0 which would allow JavaFX to compute the correct UI scale.</div><div><br></div><div>Until recently KDE did not mess with this setting but that changed with version 5.27.8 which was released in the middle of last year. According to the commit message KDE started setting scaling-factor to make apps like IntelliJ IDE behave better. But this means the value is sure to be incorrect when the real scaling is fractional.</div><div><br></div><div>I suspect JavaFX should probably be ignoring this setting. Until we can sort this out the only work-around is to set the scaling-factor to 0 yourself to undo what KDE did or use the glass.gtk.uiScale override.</div><div><br></div><div>Martin</div><div><br></div><div><div><blockquote type="cite"><div>On Feb 20, 2024, at 8:57 PM, Christopher Schnick <crschnick@xpipe.io> wrote:</div><br class="Apple-interchange-newline"><div>

  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  <div><p>So I tested this on my Asahi Fedora Linux KDE setup. So you were
      right about the scaling-factor being set to 1, but I'm still a
      little bit confused about this situation.</p><p>If I go into the KDE settings, and change the display scaling to
      150% for example, other (native) applications somehow get scaled
      appropriately. However, the scaling-factor property in gsettings
      is an integer and gets rounded down. So if I set display scaling
      to 150% in the settings, it will still get rounded down to one,
      leading to a wrong scaling for JavaFX applications. I would argue
      that JavaFX applications not scaling correctly on KDE systems is
      not a small issue as it makes some applications unusable unless
      the developer add support for custom scaling explicitly. So I have
      two questions:<br>
      - Is the default dpi calculation also error prone? If not, why not
      always use the manual calculation on KDE systems<br>
      - Are there better alternatives to the gsettings scaling-factor?
      Something like <code>org.gnome.desktop.interface
        text-scaling-factor</code></p>
    <div class="moz-cite-prefix">On 16/02/2024 21:31, Martin Fox wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:3FDC27F8-0BD5-466F-B099-0100843974D3@martinfox.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      Hi Christopher,
      <div><br>
      </div>
      <div>This may be a side-effect of using KDE. To determine the UI
        scale the JavaFX code consults the “scaling-factor” setting in
        the “org.gnome.desktop.interface” schema. You can check this on
        the command line:</div>
      <div><br>
      </div>
      <div><span class="Apple-tab-span" style="white-space:pre">        </span>gsettings
        get org.gnome.desktop.interface scaling-factor</div>
      <div><br>
      </div>
      <div>This should be 0 so JavaFX can compute the scale itself. If
        it’s greater than 0 that’s the value JavaFX will use for the UI
        scale.</div>
      <div><br>
      </div>
      <div>It appears that a KDE install can set this value to 1. In my
        case I started with the ARM version of Ubuntu server and then
        installed KDE (kubuntu-desktop) and afterward the scaling-factor
        was 1. This doesn’t happen when installing the standard GNOME
        desktop.</div>
      <div><br>
      </div>
      <div>Martin</div>
      <div><br>
        <div>
          <blockquote type="cite">
            <div>On Feb 13, 2024, at 2:13 AM, Christopher Schnick
              <a class="moz-txt-link-rfc2396E" href="mailto:crschnick@xpipe.io"><crschnick@xpipe.io></a> wrote:</div>
            <br class="Apple-interchange-newline">
            <div>
              <meta http-equiv="content-type" content="text/html; charset=UTF-8">
              <div><p> Hello,</p><p>several users of our JavaFX applications have
                  reported that the UI scale is too small when the
                  physical and logical screen resolutions differ on
                  Linux. For example in this case</p><p><span id="cid:part1.NldnHeEq.shgAL10K@xpipe.io"><Screenshot_20240125_115224(1).png></span></p><p>there is an implicit scaling factor of 150% included
                  as the monitor is a 4k display but is using a lowered
                  resolution of 2560x1440. This is then further
                  stretched as the OS resolution is 1920x1080, but the
                  main problem is that the 150% factor is somehow not
                  getting picked up and JavaFX is treating this as a 4k
                  display, thus making everything too small. For now
                  these users can use <span style="margin: 0px; padding: 0px; border: 0px; font-weight: 400; font-style: normal; font-family: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; vertical-align: baseline; outline: 0px; color: rgb(219, 222, 225); font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: break-spaces; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(49, 51, 56); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">-Dglass</span><span style="margin: 0px; padding: 0px; border: 0px; font-weight: 400; font-style: normal; font-family: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; vertical-align: baseline; outline: 0px; color: rgb(219, 222, 225); font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: break-spaces; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(49, 51, 56); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">.gtk</span><span style="margin: 0px; padding: 0px; border: 0px; font-weight: 400; font-style: normal; font-family: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; vertical-align: baseline; outline: 0px; color: rgb(219, 222, 225); font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: break-spaces; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(49, 51, 56); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">.uiScale</span><span style="margin: 0px; padding: 0px; border: 0px; font-weight: 400; font-style: normal; font-family: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; vertical-align: baseline; outline: 0px; color: rgb(219, 222, 225); font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: break-spaces; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(49, 51, 56); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">=</span>1.5
                  but that is not a nice solution to this problem.<br>
                </p><p>Best<br>
                  Christopher Schnick<br>
                </p>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
  </div>

</div></blockquote></div><br></div></div></body></html>