Menu

#1641 KeePass doesn't handle DPI changes

KeePass_2.x
closed
nobody
None
5
2018-01-07
2017-07-05
No

I have a Windows 10 laptop with a high-DPI built-in display (3840x2160), but I plug it into a standard DPI monitor when I'm at work. In both cases I use only the single display (I don't use "extended desktop" or multimonitor mode). When I'm on the built-in laptop screen, I set the scaling to 250%, and when I'm on the monitor I set it to 100%.

KeePass doesn't recognize these DPI changes and handle them correctly. In particular:

  1. The stored window size and column widths are saved in pixel units, so when the DPI changes, the window and columns end up either much too big or much too small (proportional to the font size).
  2. When I switch monitors (and thus DPI) and restart KeePass, it is scaled for the wrong DPI. For example, if I was at 250% and then I plug in the monitor and switch to 100%, then restart KeePass, it comes up with fonts appropriate to 250% (see the attached screenshot). It seems to be using the metrics from the other (disabled) display because that was the display it last used. Only a full reboot fixes this -- I have never seen this behavior in any other app.
1 Attachments

Discussion

  • Rand Scullard

    Rand Scullard - 2017-07-05

    One other thought on this -- the KeePass executable is marked as "high DPI aware", but it actually handles DPI changes much better when I disable this. (It's pixelated on the laptop display, but everything is scaled correctly and readable.)

     
  • Rand Scullard

    Rand Scullard - 2017-07-05

    Sadly, this has been happening since I got the laptop in 2015, through many video driver updates. I am currently running the latest drivers and no change.

     
  • Dominik Reichl

    Dominik Reichl - 2018-01-07
    • status: open --> closed
     
  • Dominik Reichl

    Dominik Reichl - 2018-01-07

    On issue #1. This has been implemented now (see [1]).

    Here's the latest development snapshot for testing:
    https://keepass.info/filepool/KeePass_180106.zip

    On issue #2. The scaling of the dialog in the screenshot is performed by .NET. We know that such incorrect scaling can be caused by the graphics driver, but there may be other reasons, too. In any case, this must be resolved outside KeePass.

    Thanks and best regards,
    Dominik

    [1] https://sourceforge.net/p/keepass/feature-requests/2322/

     

Log in to post a comment.

MongoDB Logo MongoDB