Jump to content

EN doesn't handle display scaling changes well


Recommended Posts

I have two monitors, both 4K (3840x2160 pixels). On my laptop, the size is 13 inches, so I use a display scaling of 225%. When I'm at my desk and connected to my much larger monitor, I use a display scaling of 125%.

On my 125%-scaled desk monitor I set the EN main window size, as well as the widths of the notebook list pane, the preview pane, and the content pane to my preferences. When I switch to the laptop (225%-scaled), my sizing work is lost. To get EN back to a usable state I must increase the EN main window size vertically and horizontally and widen the notebook list pane.

 I go back and forth between my work desk and traveling with my laptop. It's annoying to have to resize EN every time. (BTW EN is the only app that has this issue. Windows' own functions, like file explorer, settings, etc., work fine. MS Office apps, Keepass XC, Encarta, Windows 10 Firewall Control, Adobe Acrobat, Chrome, IE, Firefox... every other program I use works fine.)

 

Link to comment
  • Level 5

EDIT: Forget this, based on a hasty reading and misunderstanding.

Hi, and welcome to the forums. I hope I'm not misunderstanding you--are you looking to set the Evernote program on one computer and have that sizing relative to the screen sync to the other? I'm pretty sure that that kind of information is not synced. But I would think that once it's sized correctly on the laptop it ought to "stick." One thing to try would be to quit Evernote completely on the laptop (File > Exit; the red X box only closes the interface, not the whole program). Then restart the program and see if the proper sizing sticks. Rebooting the laptop might also help. Sometimes stuff gets corrupted in memory and needs to be cleared out. Hope this is some help!

Link to comment

No, I know what he's saying... On the same computer, the screen size (and scaling) changes because of an external monitor. EN saves the actual pixel size of the window in the registry. So when the size of the pixel changes, EN is going to be a different size. I wanted to save the values in a normalized (100%) pixel size, but that didn't happen.

The only way around it is to export the registry (specifically HKCU/Software/Evernote/Evernote/WindowPlacement/ ) and reimport those settings after changing. That means:

- Get EN placed as you want.
- Fully exit EN
- Export the registry key to "laptop.reg" (or something)
- Switch to the desktop setup
- Run EN and get it placed as you want
- Fully exit
- Export the registry key to "desktop.reg"

Now, before start, you want to import the appropriate reg file and then run EN.

Or just resize each time...

  • Like 2
Link to comment
  • Level 5*
9 hours ago, dcon said:

I wanted to save the values in a normalized (100%) pixel size, but that didn't happen.

Sure sounds like the right thing to do.  Also sounds like there's a story there, but no need for details. Sometimes Stuff Happens, sometimes not so much. Moving on...

9 hours ago, dcon said:

Now, before start, you want to import the appropriate reg file and then run EN.

This bit could probably be packaged up in a pair of Windows shorcuts that the user could select when they start up Evernote.

Link to comment
12 hours ago, dcon said:

EN saves the actual pixel size of the window in the registry. So when the size of the pixel changes, EN is going to be a different size.

How does EN know the pixel size? It can't know the size of my monitor screen. Unless it calculates a relative-to-100%-scaling value, since I guess it can know the screen scaling. Where in HKCU/Software/Evernote/Evernote/WindowPlacement/ does it store pixel size? I see a MainFrameWindow value, but nothing else seems relevant. But I see a key called "x100," which contains its own, different, WindowPlacement key values. I notice the x100 key itself contains values for various widths and heights of UI elements. Maybe this x100 item is what gets multiplied by whatever the scaling factor is. No, wait, if it did that, it would work.

So, I've gone down the registry rabbit hole, and am confused as usual. I'm trying to understand what's wrong so I can try to tell EN developers how to fix it.  (I know I'll have to go through support hell to get to that point, if it's even possible, but I might try anyway.) Maybe I'll get real lucky and a dev will read this thread.

I'm aware that this is merely an "annoying" issue. I can spend a lifetime of just resizing the EN window size and the notebook pane width when I change scaling factor, and spend less time that I've spent already in this thread. 🤔
 

Link to comment
  • Level 5*
47 minutes ago, RadioPhil said:

How does EN know the pixel size? It can't know the size of my monitor screen

Probably using something like what's documented here: https://stackoverflow.com/questions/4631292/how-detect-current-screen-resolution. Short form :

Quote
  • Size of the primary monitor: GetSystemMetrics SM_CXSCREEN / SM_CYSCREEN (GetDeviceCaps can also be used)
  • Size of all monitors (combined): GetSystemMetrics SM_CX/YVIRTUALSCREEN
  • Size of a specific monitor (work area and "screen"): GetMonitorInfo

Edit: It is important to remember that a monitor does not always "begin" at 0x0 so just knowing the size is not enough to position your window. You can use MonitorFromWindow to find the monitor your window is on and then call GetMonitorInfo

If you want to go the low-level route or change the resolution you need to use EnumDisplayDevices, EnumDisplaySettings and ChangeDisplaySettings (This is the only way to get the refresh rate AFAIK, but GetDeviceCaps will tell you the color depth)

 

50 minutes ago, RadioPhil said:

Where in HKCU/Software/Evernote/Evernote/WindowPlacement/ does it store pixel size?

Most likely in the "MainFrameWindow" entry, though it's packed into a binary field. Shouldn't really matter unless you want to tweak it by hand. Just left Evernote do it for you.

52 minutes ago, RadioPhil said:

So, I've gone down the registry rabbit hole, and am confused as usual. I'm trying to understand what's wrong so I can try to tell EN developers how to fix it.  (I know I'll have to go through support hell to get to that point, if it's even possible, but I might try anyway.) Maybe I'll get real lucky and a dev will read this thread.

You don't have to tell them how to fix it technically; you just need to tell them the situation, which as described here, is pretty clear. 

55 minutes ago, RadioPhil said:

I can spend a lifetime of just resizing the EN window size and the notebook pane width when I change scaling factor, and spend less time that I've spent already in this thread. 🤔

You don't need to spend a lifetime. @dcon outlined a way to set things up you you resize once in each setup, pull out the appropriate registry stuff, and apply it as needed.

Link to comment
2 hours ago, jefito said:

You don't need to spend a lifetime.

Sorry; I guess I wasn't clear. I mean that it only takes a few seconds to resize the main Evernote window and widen the notebook list pane. Since I switch between my laptop screen and the external monitor less often than once a day, I have already spent more time writing and reading in this thread than I will by manually resizing Evernote as needed for the remainder of my life. I have no need to spend more time implementing a workaround to this trivial problem.

I started this thread because I thought there might be a setting, either in Evernote or in Windows, that would help. It now appears that the problem is due to a defect in Evernote (especially since it is the only program or app on my PC that displays the problem).

  • Like 1
Link to comment
  • Level 5*
18 minutes ago, RadioPhil said:

Sorry; I guess I wasn't clear.

OK, gotcha -- clear now. I'd say -- particularly with respect to @dcon's comment -- that it definitely is a defect in Evernote. 

It's probably the kind of annoyance that I'd put up with, for awhile at least.

Link to comment
On 2/12/2020 at 8:41 AM, RadioPhil said:

How does EN know the pixel size?

What I mean: If EN is running on a high DPI screen (let's say a 4K screen at 200%), then a nearly full screen width could be 3800 pixels. It saves that value. Not a normalized one at 1900. So when you change monitors and are now on a normal screen (1920px) at 100%, EN starts at 3800px.

Another way, but less desirable - r-click on the actual evernote.exe and change the DPI setting at the windows level. But this means the app will be blurry on hi-DPI...

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...