TobiasChe / conemu-maximus5

Automatically exported from code.google.com/p/conemu-maximus5
0 stars 0 forks source link

DPI Scaling magnifies too much on Windows 8.1 with 125% scaling #1676

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
OS version: Win8.1    x64
ConEmu version: 140812 64bit
Dell XPS 12 - 1920x1080 on 12.5 inches - Windows DPI Scaling on default (~125%)

Nice to finally have DPI awareness, but it seems to magnify everthing a little 
too much. The Console font size i could correct but not the tabs, buttons or 
the settings.

With the Console font size set to 16 it looks normal after scaling.

See picture of Conemu next to a normally scaled program.

Not really important, but nice to have...

Ramon

Original issue reported on code.google.com by rkit5.m...@gmail.com on 13 Aug 2014 at 12:01

Attachments:

GoogleCodeExporter commented 9 years ago
I misunderstand you. Show exact places on screen which you considering wrong.
Tabs, status and all other parts ARE configurable.

Original comment by ConEmu.Maximus5 on 13 Aug 2014 at 12:28

GoogleCodeExporter commented 9 years ago
Dell Precision M3800 - 3200x1800 on 13 inches default Win8.1 dpi scaling

+1 for the High-Dpi support. It seems OK for me.

Original comment by hecatom...@gmail.com on 13 Aug 2014 at 4:44

GoogleCodeExporter commented 9 years ago
After resetting the font sizes, the main windows itself works like a charm. I 
now had a chance to do some side by side comparisons with non hidpi monitors.
And with the default settings the main window has all the same sizes as it did 
before on my hidpi screen, with the difference it does not get blurry when 
moved to a non-hidpi screen.

The settings window however got bigger on both screens (compared to a computer 
with no scaling on a non-hidpi screen), which is not important at all, it just 
looked weird and caught my eye.

Original comment by rkit5.m...@gmail.com on 13 Aug 2014 at 5:08

GoogleCodeExporter commented 9 years ago
Version 140707 already has a slightly magnified settings window if scaling is 
turned on in windows but forbidden for the application as opposed to scaling 
turned completely off in windows.

Original comment by rkit5.m...@gmail.com on 13 Aug 2014 at 5:16

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Of course dialog must be bigger. You  set 125% yourself.

Original comment by ConEmu.Maximus5 on 13 Aug 2014 at 5:16

GoogleCodeExporter commented 9 years ago
Not what i mean.

The point of a dpi-aware application is, that windows applies different 
settings per screen. If i move the application to a different, non-hidpi screen 
it should switch to 100% scaling and look exactly the same as it would, on a pc 
with scaling turned off completely (apart from the frame, which is wndows' 
fault).
This works in Conemu since the last version, just not for the settings screen.

I can provide screenshots if you'd like, but since it only affects the settings 
window i can live with the current state.

Sorry, for the misunderstandings

Original comment by rkit5.m...@gmail.com on 13 Aug 2014 at 5:29

GoogleCodeExporter commented 9 years ago
Screenshots would be nice. Dialogs are resized in my test env.

Original comment by ConEmu.Maximus5 on 13 Aug 2014 at 5:45

GoogleCodeExporter commented 9 years ago
Here is a side by side comparison: both screenshots are from the same notebook, 
both from the same monitor, that is 23" at 1920x1080 and as such a non-hidpi 
monitor. The left screenshot is with per screen scaling of windows enabled 
which should only affect hidpi screens.

Here you can see that conemu magnifies the settings window if scaling is turned 
on in windows, even though both screenshots were taken on the same non-hidpi 
screen, on which other applications scale to 100%.

Since even version 140707 exhibited this behaviour (even with scaling for the 
conemu executable turned off) i believe, that on some level conemu recognizes 
hidpi environments, bypassing what windows tells it to scale to. The latest 
version seems to apply the per screen scaling on top of that and as such ends 
up with a slightly bigger window than it should.

Original comment by rkit5.m...@gmail.com on 13 Aug 2014 at 5:58

Attachments:

GoogleCodeExporter commented 9 years ago
Can you make the title bar (the actual window chrome) scale too?  I have not 
investigated very much with Windows' DPI-aware development (and I know that 
many of Windows' own dialogs have this problem too), but look at the relative 
size of the title bar and the actual font in these two screen captures. 

There are two windows shown: the front one is Windows PowerShell ISE, which is 
a WPF app (which by virtue of being WPF scales perfectly), and the back one is 
the latest ConEmu 140812 [64]. Both windows started out on the right, at the 
same size, and I used Win+Shift+LeftArrow to move them to the left screen.

On my monitors, the CONSOLE FONT looks the same size in the left window as the 
right. I know it's scaled down in the screenshots ...

You should notice is 2 things. The first is clearly a bug, the second ... well, 
it seems like you applied the DPI scaling to the wrong window handle or 
something.

1) Although both windows started out the same size on the right screen, when I 
move ConEmu across monitors, it changes size awkwardly. If I keep using the 
Win+Shift+Arrow keys to move it, it keeps getting smaller and smaller.

2) Although the console font scales nicely (you see it as smaller on the left), 
the window title does not. On the monitor with lower DPI (96dpi), the title bar 
looks HUGE (compare it's size to the title bar of the ISE window in front of 
it. Also, although I didn't show it in the screenshot, the menu is equally huge.

Original comment by jay...@huddledmasses.org on 14 Aug 2014 at 4:44

GoogleCodeExporter commented 9 years ago
The silly is that ALL per-monitor DPI aware applications CAN'T deal with non 
client area at all! That is MSDN said.

Original comment by ConEmu.Maximus5 on 14 Aug 2014 at 4:47

GoogleCodeExporter commented 9 years ago
About screenshot from #9. There is no detection of "highdpi" or "non-highdpi". 
Windows API allows to retrieve DPI of the current monitor only. So, it seems 
like settings dialog is scaled to 125% as Windows reports about your monitor.

Unless you explain exactly your DPI settings and I reproduce that in my 
environment... I can't do anything.

Original comment by ConEmu.Maximus5 on 14 Aug 2014 at 4:54

GoogleCodeExporter commented 9 years ago
Also, seems to me you have missed many screenshots from last comment.

Original comment by ConEmu.Maximus5 on 14 Aug 2014 at 4:58

GoogleCodeExporter commented 9 years ago
My Setup consist of a notebook with built in screen which is 1920x1080 on 
12.5", windows detects this by default as 120dpi class. I also have an external 
monitor connected (1920x1080 on 23") detected by windows as 96dpi class.

As per Microsoft if Scaling is turned off in Windows all Applications should 
render for 96dpi which has been the standard for a long time.
With per screen scaling enabled in windows, it reports different dpi's for 
different screens, and if your app is per-screen dpi aware it advises the app 
of changes, when it is moved to a different screen.

I compiled Conemu from source and took a look at its debugging output.
When i move conemu to my old non-hdpi monitor conemu reports that the dpi has 
changed from 120dpi on my notebook to 96dpi on the external monitor.

Since these are the same 96dpi it rendered for without any scaling it all, i 
would expect every part of the Application in exactly the same size (NOT the 
window frame, as i understand it that is not under your control). The 
screenshots from #9 were both made on the same 96dpi monitor which windows 
tells your application correctly. The screen on the left was with per screen 
scaling allowed which ONLY affects what dpi windows tells conemu about the 
internal screen. The screen on the right was with all scaling in windows turned 
off, but still on the 96dpi monitor.

When i say "per-screen scaling allowed" i mean the default for windows 8.1 on 
my laptop which is the middle option on the slider.
When i say "all scaling off" i mean the same slider in the leftmost position, 
which is windows' default if at installation no hdpi monitors where detected.

Original comment by rkit5.m...@gmail.com on 14 Aug 2014 at 5:43

GoogleCodeExporter commented 9 years ago
Here is small update
https://www.dropbox.com/s/cseh7cz1ya78pa1/ConEmu.140812a.exe.7z

Run: ConEmu -log -detached

reproduce dpi error and attach LogFiles here

Original comment by ConEmu.Maximus5 on 14 Aug 2014 at 7:54

GoogleCodeExporter commented 9 years ago
Additionally, if the main windows opens on the secondary 96dpi screen, it needs 
to be moved to the primary 120dpi screen and back to actually render for 96dpi.

Original comment by rkit5.m...@gmail.com on 14 Aug 2014 at 8:03

Attachments:

GoogleCodeExporter commented 9 years ago
https://www.dropbox.com/s/v7k5x6akggmmv5y/ConEmu.140812b.exe.7z

the same LogFiles

Original comment by ConEmu.Maximus5 on 14 Aug 2014 at 10:07

GoogleCodeExporter commented 9 years ago
REPOST with LOGS (from 12b) and SCREENSHOT

There are two windows shown: the front one is Windows PowerShell ISE, which is 
a WPF app (which by virtue of being WPF scales perfectly), and the back one is 
the latest ConEmu 140812 [64]. Both windows started out on the right, at the 
same size, and I used Win+Shift+LeftArrow to move them to the left screen.

On my monitors, the CONSOLE FONT looks the same size in the left window as the 
right. I know it's scaled down in the screenshots ...

You should notice is 2 things. The first is clearly a bug, the second ... well, 
it seems like you applied the DPI scaling to the wrong window handle or 
something.

1) Although both windows started out the same size on the right screen, when I 
move ConEmu across monitors, it changes size awkwardly. If I keep using the 
Win+Shift+Arrow keys to move it, it keeps getting smaller and smaller.

2) Although the console font scales nicely (you see it as smaller on the left), 
the window title does not. On the monitor with lower DPI (96dpi), the title bar 
looks HUGE (compare it's size to the title bar of the ISE window in front of 
it. Also, although I didn't show it in the screenshot, the menu is equally huge.

Original comment by jay...@huddledmasses.org on 15 Aug 2014 at 12:03

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
First of all, ISE is not a per-monitor aware application! Actually, very few 
window standard applications are. Compare screenshots from ISE and Internet 
Explorer. The last is per-monitor aware.

Original comment by ConEmu.Maximus5 on 15 Aug 2014 at 7:11

Attachments:

GoogleCodeExporter commented 9 years ago
As for your notes.

1) The log does not contain lines with "JumpNextMonitor". That means the 
Windows itself moves and resizes the ConEmu window. And ConEmu just reacts for 
that resizes... Combo Win+Shift+Left/Right are not get to ConEmu window at all.

Instead, try to use mouse to move the ConEmu window between monitors. I'm 
interested in changes.

2) As for window title, I said before that ISE is not good example. Try to 
compare with IE or TaskManager.

Original comment by ConEmu.Maximus5 on 15 Aug 2014 at 7:38

GoogleCodeExporter commented 9 years ago

Original comment by ConEmu.Maximus5 on 15 Aug 2014 at 7:38