DPI Awareness/Scaling Issues (Win10)

Bug #1652413 reported by Colin Gannon
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mudlet
Opinion
Undecided
Unassigned

Bug Description

Summary:
Mudlet exhibits behavior associated with static size values (in pixels) in the Qt GUI widgets rather than using relative values. Additionally, the application does not specify DPI awareness such that Qt autoscales the application using the native Windows display APIs.* As such, the UI is, while usable, not properly rendered which breaks third-party UI add-ons produced by the community.

*More info here: http://doc.qt.io/qt-5/highdpi.html

Recommended remediation (up for discussion!):
While an effort to convert Mudlet's QML to relative values would be the "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for one of the following:

   The addition of a qt.conf directive to specify an equivalent of the following (passed at runtime, instructs Windows to treat the application as non-DPI aware and to scale it automatically):
      -platform windows:dpiawareness=0

OR

   The addition of the following property setter for Windows builds to achieve the same goal as option #1:
       QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

Steps to reproduce:
Run the application on a High DPI Windows 10 machine such as a Microsoft Surface or 4K display with scaling enabled and set to a value other than 100%. Observe the UI scaling issues in the splash frame and Connections frame - particularly cut off text and oddly shaped fields/tiny small icons.

I have tested the -platform windows:dpiawareness=0 solution and it's working with Mudlet3-iota built against Qt5.6 on Windows 10 following the wiki instructions. I am building and testing the second (probably preferable) fix.

Tags: gui
Revision history for this message
Vadim Peretokin (vperetokin) wrote : Re: [Mudlet-makers] [Bug 1652413] [NEW] DPI Awareness/Scaling Issues (Win10)
Download full text (4.2 KiB)

Could you attach screenshots? I don't think any developers have a 4K
display.

On Sat, 24 Dec 2016 11:45 am Colin Gannon, <email address hidden> wrote:

> Public bug reported:
>
> Summary:
> Mudlet exhibits behavior associated with static size values (in pixels) in
> the Qt GUI widgets rather than using relative values. Additionally, the
> application does not specify DPI awareness such that Qt autoscales the
> application using the native Windows display APIs.* As such, the UI is,
> while usable, not properly rendered which breaks third-party UI add-ons
> produced by the community.
>
> *More info here: http://doc.qt.io/qt-5/highdpi.html
>
> Recommended remediation (up for discussion!):
> While an effort to convert Mudlet's QML to relative values would be the
> "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for
> one of the following:
>
> The addition of a qt.conf directive to specify an equivalent of the
> following (passed at runtime, instructs Windows to treat the application as
> non-DPI aware and to scale it automatically):
> -platform windows:dpiawareness=0
>
> OR
>
> The addition of the following property setter for Windows builds to
> achieve the same goal as option #1:
> QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>
> Steps to reproduce:
> Run the application on a High DPI Windows 10 machine such as a Microsoft
> Surface or 4K display with scaling enabled and set to a value other than
> 100%. Observe the UI scaling issues in the splash frame and Connections
> frame - particularly cut off text and oddly shaped fields/tiny small icons.
>
> I have tested the -platform windows:dpiawareness=0 solution and it's
> working with Mudlet3-iota built against Qt5.6 on Windows 10 following
> the wiki instructions. I am building and testing the second (probably
> preferable) fix.
>
> ** Affects: mudlet
> Importance: Undecided
> Status: New
>
>
> ** Tags: gui
>
> --
> You received this bug notification because you are a member of Mudlet
> Makers, which is subscribed to Mudlet.
> https://bugs.launchpad.net/bugs/1652413
>
> Title:
> DPI Awareness/Scaling Issues (Win10)
>
> Status in Mudlet:
> New
>
> Bug description:
> Summary:
> Mudlet exhibits behavior associated with static size values (in pixels)
> in the Qt GUI widgets rather than using relative values. Additionally, the
> application does not specify DPI awareness such that Qt autoscales the
> application using the native Windows display APIs.* As such, the UI is,
> while usable, not properly rendered which breaks third-party UI add-ons
> produced by the community.
>
> *More info here: http://doc.qt.io/qt-5/highdpi.html
>
> Recommended remediation (up for discussion!):
> While an effort to convert Mudlet's QML to relative values would be the
> "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for
> one of the following:
>
> The addition of a qt.conf directive to specify an equivalent of the
> following (passed at runtime, instructs Windows to treat the application as
> non-DPI aware and to scale it automatically):
> -platform windows:dpiawareness=0
>
> OR
>
> The addi...

Read more...

Revision history for this message
Colin Gannon (cmgannon26) wrote :

Sure - just uploaded screenshots of the Sessions screen as an example. You can see the scaling issue where text is being cut off and form fields are generally smaller/too short. This is evident throughout the app and totally messes up Geyser elements.

This may be easily fixed by passing the following option to ./mudlet.exe:
    -platform windows:dpiawareness=0

OR via the creation of an ini-style qt.conf file in the Mudlet directory (default: C:\Program Files (x86)\mudlet-3.0.0-iota\) with the following contents:
    [Platforms]
    WindowsArguments = dpiawareness=0

This tells Qt to let Windows know the app doesn't know how to scale if given a non-standard DPI ratio and lets windows automagically scale the app.

The former solution is probably best. I tried re-building Mudlet with the AA_EnableHighDpiScaling attribute set, but I can't find the proper spot (QApplication constructor?) in order to set the attribute. The qt.conf solution also did the trick easily enough and isn't too hacky so I didn't continue investigating.

Revision history for this message
Colin Gannon (cmgannon26) wrote :
Revision history for this message
Colin Gannon (cmgannon26) wrote :
Revision history for this message
Vadim Peretokin (vperetokin) wrote : Re: [Mudlet-makers] [Bug 1652413] Re: DPI Awareness/Scaling Issues (Win10)

Hm... I don't like how either look, though setting up the autoscaling
option would be good for 3.0 so it's at least usable on a HiDPI display. I
wonder why does it break so much with scaling off though - shouldn't the
only thing that look bad are the images we use?

On Mon, Dec 26, 2016 at 5:20 AM Colin Gannon <email address hidden> wrote:

> ** Attachment added: "Mudlet with qt.conf to turn off dpi-awareness and
> let Windows handle scaling."
>
> https://bugs.launchpad.net/mudlet/+bug/1652413/+attachment/4796366/+files/hidpi_naive.PNG
>
> --
> You received this bug notification because you are a member of Mudlet
> Makers, which is subscribed to Mudlet.
> https://bugs.launchpad.net/bugs/1652413
>
> Title:
> DPI Awareness/Scaling Issues (Win10)
>
> Status in Mudlet:
> New
>
> Bug description:
> Summary:
> Mudlet exhibits behavior associated with static size values (in pixels)
> in the Qt GUI widgets rather than using relative values. Additionally, the
> application does not specify DPI awareness such that Qt autoscales the
> application using the native Windows display APIs.* As such, the UI is,
> while usable, not properly rendered which breaks third-party UI add-ons
> produced by the community.
>
> *More info here: http://doc.qt.io/qt-5/highdpi.html
>
> Recommended remediation (up for discussion!):
> While an effort to convert Mudlet's QML to relative values would be the
> "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for
> one of the following:
>
> The addition of a qt.conf directive to specify an equivalent of the
> following (passed at runtime, instructs Windows to treat the application as
> non-DPI aware and to scale it automatically):
> -platform windows:dpiawareness=0
>
> OR
>
> The addition of the following property setter for Windows builds to
> achieve the same goal as option #1:
> QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>
> Steps to reproduce:
> Run the application on a High DPI Windows 10 machine such as a Microsoft
> Surface or 4K display with scaling enabled and set to a value other than
> 100%. Observe the UI scaling issues in the splash frame and Connections
> frame - particularly cut off text and oddly shaped fields/tiny small icons.
>
> I have tested the -platform windows:dpiawareness=0 solution and it's
> working with Mudlet3-iota built against Qt5.6 on Windows 10 following
> the wiki instructions. I am building and testing the second (probably
> preferable) fix.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mudlet/+bug/1652413/+subscriptions
>
> _______________________________________________
> Mailing list: https://launchpad.net/~mudlet-makers
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~mudlet-makers
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Colin Gannon (cmgannon26) wrote :

Agreed. I've experimented a little further as Qt offers a bunch of ways to handle this.

Solution A: Set QT_AUTO_SCREEN_SCALE_FACTOR=1 which scales both the fonts and forms nicely [See attachment]. This is equivalent to adding QApplication::setAttribute(Qt::AA_EnableHighDpiScaling) where the QApplication object is constructed (where should this be in Mudlet? I've tried a number of logical points like line 137 in /src/main.cpp but after building on Win10, it didn't seem set.

Solution B: Using qt.conf or -platform windows:dpiawareness=0 is hacky and doesn't scale fonts correctly (forms are good, though).

Solution C: Set a static scaling value. (QT_SCALING_FACTOR environment variable or equivalent QApplication attribute) We absolutely wouldn't want to set a static scaling value - we want Qt to query Windows for the scaling factor and use that multiplier (looks like solution A does this).

I'm not a Qt expert, so you (Vadim) or someone else can point me in the right direction on where to set the AA_EnableHighDpiScaling attr (solution A), I'd be more than happy to build it, test it and submit a PR.

Thanks,

Colin

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Haven't forgotten about this - just busy working on the 3.0 release. Will revisit this right after.

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Colin, you can add the ::setAttribute call to https://github.com/Mudlet/Mudlet/blob/release_30/src/main.cpp#L113 - between line 112 and 113 (after the else and before the #ifdef). Let me know how you go - I haven't got a HiDPI screen to test with myself.

Revision history for this message
Colin Gannon (cmgannon26) wrote : Re: [Bug 1652413] Re: DPI Awareness/Scaling Issues (Win10)

Sure thing. Will test tonight or tomorrow night.

I've since migrated to a Mac as my primary dev box so I'll have to get my
environment set up again for Windows builds.

-Colin

On Mar 5, 2017 4:00 PM, "Vadim Peretokin" <email address hidden> wrote:

> Colin, you can add the ::setAttribute call to
> https://github.com/Mudlet/Mudlet/blob/release_30/src/main.cpp#L113 -
> between line 112 and 113 (after the else and before the #ifdef). Let me
> know how you go - I haven't got a HiDPI screen to test with myself.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1652413
>
> Title:
> DPI Awareness/Scaling Issues (Win10)
>
> Status in Mudlet:
> New
>
> Bug description:
> Summary:
> Mudlet exhibits behavior associated with static size values (in pixels)
> in the Qt GUI widgets rather than using relative values. Additionally, the
> application does not specify DPI awareness such that Qt autoscales the
> application using the native Windows display APIs.* As such, the UI is,
> while usable, not properly rendered which breaks third-party UI add-ons
> produced by the community.
>
> *More info here: http://doc.qt.io/qt-5/highdpi.html
>
> Recommended remediation (up for discussion!):
> While an effort to convert Mudlet's QML to relative values would be the
> "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for
> one of the following:
>
> The addition of a qt.conf directive to specify an equivalent of the
> following (passed at runtime, instructs Windows to treat the application as
> non-DPI aware and to scale it automatically):
> -platform windows:dpiawareness=0
>
> OR
>
> The addition of the following property setter for Windows builds to
> achieve the same goal as option #1:
> QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>
> Steps to reproduce:
> Run the application on a High DPI Windows 10 machine such as a Microsoft
> Surface or 4K display with scaling enabled and set to a value other than
> 100%. Observe the UI scaling issues in the splash frame and Connections
> frame - particularly cut off text and oddly shaped fields/tiny small icons.
>
> I have tested the -platform windows:dpiawareness=0 solution and it's
> working with Mudlet3-iota built against Qt5.6 on Windows 10 following
> the wiki instructions. I am building and testing the second (probably
> preferable) fix.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mudlet/+bug/1652413/+subscriptions
>

Revision history for this message
Stephen Lyons (slysven) wrote :

Does this "fix" require at least a certain Qt 5.x version - remember the code has to compile for all versions back to Qt 5.0.2 - even if we resort to "#if defined" or "#if QT_VERSION > 0x05mmpp" preprocessor directives.

OTOH Someone with a real MacOs development platform will be a major plus for the Mudlet project - is there anyway we can drag you aboard Colin? 8-)

Revision history for this message
Vadim Peretokin (vperetokin) wrote : Re: [Mudlet-makers] [Bug 1652413] Re: DPI Awareness/Scaling Issues (Win10)
Download full text (5.1 KiB)

Awesome. Well, Mudlet compiles on macOS too, I'd you kept the monitor
should be good to go...

On Sun, 5 Mar 2017 10:15 pm Colin Gannon, <email address hidden> wrote:

> Sure thing. Will test tonight or tomorrow night.
>
> I've since migrated to a Mac as my primary dev box so I'll have to get my
> environment set up again for Windows builds.
>
> -Colin
>
> On Mar 5, 2017 4:00 PM, "Vadim Peretokin" <email address hidden> wrote:
>
> > Colin, you can add the ::setAttribute call to
> > https://github.com/Mudlet/Mudlet/blob/release_30/src/main.cpp#L113 -
> > between line 112 and 113 (after the else and before the #ifdef). Let me
> > know how you go - I haven't got a HiDPI screen to test with myself.
> >
> > --
> > You received this bug notification because you are subscribed to the bug
> > report.
> > https://bugs.launchpad.net/bugs/1652413
> >
> > Title:
> > DPI Awareness/Scaling Issues (Win10)
> >
> > Status in Mudlet:
> > New
> >
> > Bug description:
> > Summary:
> > Mudlet exhibits behavior associated with static size values (in pixels)
> > in the Qt GUI widgets rather than using relative values. Additionally,
> the
> > application does not specify DPI awareness such that Qt autoscales the
> > application using the native Windows display APIs.* As such, the UI is,
> > while usable, not properly rendered which breaks third-party UI add-ons
> > produced by the community.
> >
> > *More info here: http://doc.qt.io/qt-5/highdpi.html
> >
> > Recommended remediation (up for discussion!):
> > While an effort to convert Mudlet's QML to relative values would be the
> > "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow
> for
> > one of the following:
> >
> > The addition of a qt.conf directive to specify an equivalent of the
> > following (passed at runtime, instructs Windows to treat the application
> as
> > non-DPI aware and to scale it automatically):
> > -platform windows:dpiawareness=0
> >
> > OR
> >
> > The addition of the following property setter for Windows builds to
> > achieve the same goal as option #1:
> > QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
> >
> > Steps to reproduce:
> > Run the application on a High DPI Windows 10 machine such as a
> Microsoft
> > Surface or 4K display with scaling enabled and set to a value other than
> > 100%. Observe the UI scaling issues in the splash frame and Connections
> > frame - particularly cut off text and oddly shaped fields/tiny small
> icons.
> >
> > I have tested the -platform windows:dpiawareness=0 solution and it's
> > working with Mudlet3-iota built against Qt5.6 on Windows 10 following
> > the wiki instructions. I am building and testing the second (probably
> > preferable) fix.
> >
> > To manage notifications about this bug go to:
> > https://bugs.launchpad.net/mudlet/+bug/1652413/+subscriptions
> >
>
> --
> You received this bug notification because you are a member of Mudlet
> Makers, which is subscribed to Mudlet.
> https://bugs.launchpad.net/bugs/1652413
>
> Title:
> DPI Awareness/Scaling Issues (Win10)
>
> Status in Mudlet:
> New
>
> Bug description:
> Summary:
> Mudlet exhibits behavior a...

Read more...

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Travis will tell us if it's a problem :)

On Sun, 5 Mar 2017 10:25 pm Stephen Lyons, <email address hidden> wrote:

> Does this "fix" require at least a certain Qt 5.x version - remember the
> code has to compile for all versions back to Qt 5.0.2 - even if we
> resort to "#if defined" or "#if QT_VERSION > 0x05mmpp" preprocessor
> directives.
>
> OTOH Someone with a real MacOs development platform will be a major plus
> for the Mudlet project - is there anyway we can drag you aboard Colin?
> 8-)
>
> --
> You received this bug notification because you are a member of Mudlet
> Makers, which is subscribed to Mudlet.
> https://bugs.launchpad.net/bugs/1652413
>
> Title:
> DPI Awareness/Scaling Issues (Win10)
>
> Status in Mudlet:
> New
>
> Bug description:
> Summary:
> Mudlet exhibits behavior associated with static size values (in pixels)
> in the Qt GUI widgets rather than using relative values. Additionally, the
> application does not specify DPI awareness such that Qt autoscales the
> application using the native Windows display APIs.* As such, the UI is,
> while usable, not properly rendered which breaks third-party UI add-ons
> produced by the community.
>
> *More info here: http://doc.qt.io/qt-5/highdpi.html
>
> Recommended remediation (up for discussion!):
> While an effort to convert Mudlet's QML to relative values would be the
> "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for
> one of the following:
>
> The addition of a qt.conf directive to specify an equivalent of the
> following (passed at runtime, instructs Windows to treat the application as
> non-DPI aware and to scale it automatically):
> -platform windows:dpiawareness=0
>
> OR
>
> The addition of the following property setter for Windows builds to
> achieve the same goal as option #1:
> QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>
> Steps to reproduce:
> Run the application on a High DPI Windows 10 machine such as a Microsoft
> Surface or 4K display with scaling enabled and set to a value other than
> 100%. Observe the UI scaling issues in the splash frame and Connections
> frame - particularly cut off text and oddly shaped fields/tiny small icons.
>
> I have tested the -platform windows:dpiawareness=0 solution and it's
> working with Mudlet3-iota built against Qt5.6 on Windows 10 following
> the wiki instructions. I am building and testing the second (probably
> preferable) fix.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mudlet/+bug/1652413/+subscriptions
>
> _______________________________________________
> Mailing list: https://launchpad.net/~mudlet-makers
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~mudlet-makers
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Another thing I remembered is that our consoles aren't HiDPI aware. On macOS no option is needed to make Qt scale properly, but you'll see that the main console is not crisp:

http://cl.ly/image/3a3B3t0Y3O1t
http://cl.ly/image/320v3M2J1H2h

So the above solution will only get us halfway there I think.

Revision history for this message
Stephen Lyons (slysven) wrote :

> "While an effort to convert Mudlet's QML to relative values would be the "right" fix..."

Um, Mudlet is a QWidget rather than a QML application - does that mean that the given fix option is not applicable‽

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Why wouldn't it? Colin has already demonstrated in a screenshot: https://bugs.launchpad.net/mudlet/+bug/1652413/+attachment/4797276/+files/wenvvar.PNG

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

@Colin: any update on this?

On Mon, Mar 6, 2017 at 12:51 PM Vadim Peretokin <email address hidden>
wrote:

> Why wouldn't it? Colin has already demonstrated in a screenshot:
>
> https://bugs.launchpad.net/mudlet/+bug/1652413/+attachment/4797276/+files/wenvvar.PNG
>
> --
> You received this bug notification because you are a member of Mudlet
> Makers, which is subscribed to Mudlet.
> https://bugs.launchpad.net/bugs/1652413
>
> Title:
> DPI Awareness/Scaling Issues (Win10)
>
> Status in Mudlet:
> New
>
> Bug description:
> Summary:
> Mudlet exhibits behavior associated with static size values (in pixels)
> in the Qt GUI widgets rather than using relative values. Additionally, the
> application does not specify DPI awareness such that Qt autoscales the
> application using the native Windows display APIs.* As such, the UI is,
> while usable, not properly rendered which breaks third-party UI add-ons
> produced by the community.
>
> *More info here: http://doc.qt.io/qt-5/highdpi.html
>
> Recommended remediation (up for discussion!):
> While an effort to convert Mudlet's QML to relative values would be the
> "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow for
> one of the following:
>
> The addition of a qt.conf directive to specify an equivalent of the
> following (passed at runtime, instructs Windows to treat the application as
> non-DPI aware and to scale it automatically):
> -platform windows:dpiawareness=0
>
> OR
>
> The addition of the following property setter for Windows builds to
> achieve the same goal as option #1:
> QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>
> Steps to reproduce:
> Run the application on a High DPI Windows 10 machine such as a Microsoft
> Surface or 4K display with scaling enabled and set to a value other than
> 100%. Observe the UI scaling issues in the splash frame and Connections
> frame - particularly cut off text and oddly shaped fields/tiny small icons.
>
> I have tested the -platform windows:dpiawareness=0 solution and it's
> working with Mudlet3-iota built against Qt5.6 on Windows 10 following
> the wiki instructions. I am building and testing the second (probably
> preferable) fix.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mudlet/+bug/1652413/+subscriptions
>
> _______________________________________________
> Mailing list: https://launchpad.net/~mudlet-makers
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~mudlet-makers
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Colin Gannon (cmgannon26) wrote :
Download full text (5.7 KiB)

I should have some time tomorrow as there's some nasty weather headed my
way. :) Sorry for the delay, in any case - work has been a little wild.

Are you looking to get this in for the 3.0 release? Also, in response to
comments regarding HiDPI on MacOS - Apple is actually sane in how they
reason about scaling and as result MacOS doesn't use the awful logic that
MSFT does so this issue is specific to HiDPI displays (> FHD) on Windows
only.

Not to split this thread/conflate issues, but what's the specific need for
a MacOS dev/platform? Builds? If so, I may be able to accommodate that if
we set up post-commit webhooks for the Github repo to do CI on an iMac I
have (it's currently mostly idle). Otherwise I'm happy to contribute on
issues/enhancements specific to the platforms I use - granted, I'm
primarily a Python developer and application security guy but I can take a
whack at some C++/qt. :)

Thanks,

Colin

On Mar 12, 2017 12:50 AM, "Vadim Peretokin" <email address hidden> wrote:

> @Colin: any update on this?
>
> On Mon, Mar 6, 2017 at 12:51 PM Vadim Peretokin <email address hidden>
> wrote:
>
> > Why wouldn't it? Colin has already demonstrated in a screenshot:
> >
> > https://bugs.launchpad.net/mudlet/+bug/1652413/+
> attachment/4797276/+files/wenvvar.PNG
> >
> > --
> > You received this bug notification because you are a member of Mudlet
> > Makers, which is subscribed to Mudlet.
> > https://bugs.launchpad.net/bugs/1652413
> >
> > Title:
> > DPI Awareness/Scaling Issues (Win10)
> >
> > Status in Mudlet:
> > New
> >
> > Bug description:
> > Summary:
> > Mudlet exhibits behavior associated with static size values (in pixels)
> > in the Qt GUI widgets rather than using relative values. Additionally,
> the
> > application does not specify DPI awareness such that Qt autoscales the
> > application using the native Windows display APIs.* As such, the UI is,
> > while usable, not properly rendered which breaks third-party UI add-ons
> > produced by the community.
> >
> > *More info here: http://doc.qt.io/qt-5/highdpi.html
> >
> > Recommended remediation (up for discussion!):
> > While an effort to convert Mudlet's QML to relative values would be the
> > "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow
> for
> > one of the following:
> >
> > The addition of a qt.conf directive to specify an equivalent of the
> > following (passed at runtime, instructs Windows to treat the application
> as
> > non-DPI aware and to scale it automatically):
> > -platform windows:dpiawareness=0
> >
> > OR
> >
> > The addition of the following property setter for Windows builds to
> > achieve the same goal as option #1:
> > QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
> >
> > Steps to reproduce:
> > Run the application on a High DPI Windows 10 machine such as a
> Microsoft
> > Surface or 4K display with scaling enabled and set to a value other than
> > 100%. Observe the UI scaling issues in the splash frame and Connections
> > frame - particularly cut off text and oddly shaped fields/tiny small
> icons.
> >
> > I have tested the -platform windows:dpiawareness=0 solution and it's
> > ...

Read more...

Revision history for this message
Vadim Peretokin (vperetokin) wrote :
Download full text (9.0 KiB)

Nah don't have to rush for 3.0, that one is canned for any new features.
While we do have macOS CI setup with Travis (
https://travis-ci.org/Mudlet/Mudlet), any sort of macOS-specific
development requires me opening up my 800x600 hackintosh vm and slowly
pecking away at the keys, so any fixes/improvements for that platform would
be welcome. A lot of Mudlet's UI looks out of place on a mac for example -
fields too small and things like that - whereas it looks quite fine on a
windows/linux setup.

Let me know how you go with the HiDPI option and if'd like immediate help,
hop over to https://gitter.im/Mudlet/Mudlet!

On Mon, Mar 13, 2017 at 1:51 PM Colin Gannon <email address hidden> wrote:

> I should have some time tomorrow as there's some nasty weather headed my
> way. :) Sorry for the delay, in any case - work has been a little wild.
>
> Are you looking to get this in for the 3.0 release? Also, in response to
> comments regarding HiDPI on MacOS - Apple is actually sane in how they
> reason about scaling and as result MacOS doesn't use the awful logic that
> MSFT does so this issue is specific to HiDPI displays (> FHD) on Windows
> only.
>
> Not to split this thread/conflate issues, but what's the specific need for
> a MacOS dev/platform? Builds? If so, I may be able to accommodate that if
> we set up post-commit webhooks for the Github repo to do CI on an iMac I
> have (it's currently mostly idle). Otherwise I'm happy to contribute on
> issues/enhancements specific to the platforms I use - granted, I'm
> primarily a Python developer and application security guy but I can take a
> whack at some C++/qt. :)
>
> Thanks,
>
> Colin
>
> On Mar 12, 2017 12:50 AM, "Vadim Peretokin" <email address hidden>
> wrote:
>
> > @Colin: any update on this?
> >
> > On Mon, Mar 6, 2017 at 12:51 PM Vadim Peretokin <email address hidden>
> > wrote:
> >
> > > Why wouldn't it? Colin has already demonstrated in a screenshot:
> > >
> > > https://bugs.launchpad.net/mudlet/+bug/1652413/+
> > attachment/4797276/+files/wenvvar.PNG
> > >
> > > --
> > > You received this bug notification because you are a member of Mudlet
> > > Makers, which is subscribed to Mudlet.
> > > https://bugs.launchpad.net/bugs/1652413
> > >
> > > Title:
> > > DPI Awareness/Scaling Issues (Win10)
> > >
> > > Status in Mudlet:
> > > New
> > >
> > > Bug description:
> > > Summary:
> > > Mudlet exhibits behavior associated with static size values (in
> pixels)
> > > in the Qt GUI widgets rather than using relative values. Additionally,
> > the
> > > application does not specify DPI awareness such that Qt autoscales the
> > > application using the native Windows display APIs.* As such, the UI is,
> > > while usable, not properly rendered which breaks third-party UI add-ons
> > > produced by the community.
> > >
> > > *More info here: http://doc.qt.io/qt-5/highdpi.html
> > >
> > > Recommended remediation (up for discussion!):
> > > While an effort to convert Mudlet's QML to relative values would be
> the
> > > "right" fix, the autoscaling provided by Qt 5.6+ and Windows 8.1+ allow
> > for
> > > one of the following:
> > >
> > > The addition of a qt.conf directive to specify an equival...

Read more...

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Another thing to look out for, as reported on Mudlet forums (http://forums.mudlet.org/viewtopic.php?f=5&t=18440&p=38972#p38972) this is how the Script editor renders on a 2560 by 1440 display on Plasma 5.9.

Revision history for this message
Vadim Peretokin (vperetokin) wrote :

Migrating issues to Github, please follow the new discussion here: https://github.com/Mudlet/Mudlet/issues/800

This issue needs to be closed and there is no appropriate status, so will set it to "Opinion" just for migration purposes.

Changed in mudlet:
status: New → Opinion
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.