Notepad2e
Notepad2e copied to clipboard
DPI awareness
Recent laptops often have high-DPI displays and Windows enables DPI scaling by default. Unlike scaling in XP, scaling in Vista+ (?) applies not to font alone but to all controls. When a program isn't "dpi-aware", Windows resorts to proportional scaling of the entire window which blurs the text. For a text editor, results are awful.
Question: how hard it is to make this program "dpi-aware" so that text and controls are scaled properly and nothing is blurred?
Screenshot of DPI setting in Display settings:

Screenshot of Notepad 2e with DPI at 125% (note the difference between font used in the main menu and inside the program's window itself):

(To see the difference clearer open the image in a new tab.)
Please check uploaded test build with implemented DPI awareness (per monitor) functionality. Since this feature affects many aspects of the application it would be great to have a detailed test before committing these changes. Here is the list of known limitations in this build (found for Windows 10):
- System dialogs are not scaled (when moving them between monitors).
- Tool/setting windows captions (e.g. Settings> Tab Settings) are not scaled.
- There can be some resource leaks, additional code cleanup is required.
It seems to work fine. Push your code changes to the repo.
Done.
Feature is broken in R134: Scintilla's content is not properly scaled.
Is it another problem caused by the Scintilla upgrade?
Is it another problem caused by the Scintilla upgrade?
Yes, there was a missing change when upgrading Scintilla. Fixed.
There is another issue: high-DPI scaling is not applied for system dialogs (i.e when running MessageBox()). Please confirm if we should address it.
There is another issue: high-DPI scaling is not applied for system dialogs (i.e when running MessageBox()). Please confirm if we should address it.
Do you have ideas for how to address it?
Fixed bug: DPI scaling is not applied on application start which caused UI looks smaller (than expected) on high-DPI displays.
Steps to reproduce:
- Configuration: Display 1 (primary): low resolution Display 2 (secondary): high resolution
- Run Notepad2e, move window to Display 2, press F7 (Save settings), quit
- Run Notepad2e, note text scaling is not applied
Workaround: Move Notepad2e to Display 1 and then return it back to Display 2.
Move Notepad2e to Display 1 and then return it back to Display 2.
Is this workaround for the version before c8218bc83b138c262d530dbdbc1e59188a9c1113 only?
It was suggested to fix DPI of system windows by subclassing; this will also make the code cleaner. Let's do this and see if it will work.