New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
win32: Support PerMonitorV2 #9525
Conversation
Improve High DPI support by using PerMonitorV2. Close vim#3102 Implementation notes: * PerMoniterV2 should be able to enable by using manifest. However, on some environment, it didn't work. Use `SetThreadDpiAwarenessContext()` to enable it explicitly. * Currently gVim uses system DPI. Add support for per-monitor DPI only where it is needed. Font size is still managed with system DPI. * Dialog box is created by using system DPI. Let Windows scale it automatically. * Don't consider PerMonitorV1. V2 is available since Windows 10 1703. It is already 5 years ago.
Codecov Report
@@ Coverage Diff @@
## master #9525 +/- ##
==========================================
- Coverage 83.50% 83.50% -0.01%
==========================================
Files 154 154
Lines 174181 174256 +75
Branches 39187 39200 +13
==========================================
+ Hits 145443 145504 +61
- Misses 16656 16666 +10
- Partials 12082 12086 +4
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
I wonder - does this still work on Windows 7? I would appreciate some people trying it out on their system and giving feedback. |
Yes, I've just confirmed that this works on Windows 7. |
…ny version Problem: No good reason to limit the message history in the tiny version. Solution: Always use 200. vim/vim@1e78deb N/A patches: vim-patch:495282b6e7e4 Correct list of patch numbers vim/vim@495282b vim-patch:ed37d9b3241a Update feature_request.md vim/vim@ed37d9b vim-patch:fe712ced6e15 Fix duplicated code that only appears in git. vim/vim@fe712ce vim-patch:87fda407f8ec Also fix the patch number. vim/vim@87fda40 vim-patch:85d9b03f84f5 Correct list of patches. vim/vim@85d9b03 vim-patch:b54f1202b3cd Attempt to align the logo without a markdown table. vim/vim@b54f120 vim-patch:4a27aefe3b56 Add links to discussion forums. vim/vim@4a27aef vim-patch:c139aa8a2bf3 Remove table, it doesn't work vim/vim@c139aa8 vim-patch:0261a1aeeb4c Tweak the style a bit. vim/vim@0261a1a vim-patch:8.2.3714: some unused assignments and ugly code in xxd Problem: Some unused assignments and ugly code in xxd. Solution: Leave out assignments. Use marcro for fprintf(). (closes vim/vim#9246) vim/vim@7e5503c vim-patch:8.2.3752: build error when using Photon GUI Problem: Build error when using Photon GUI. Solution: Adjust #ifdef. (closes vim/vim#9288) vim/vim@8603be3 vim-patch:3e55a973b5ca Add Huntr badge. vim/vim@3e55a97 vim-patch:8.2.3785: running CI on MacOS with gcc is not useful Problem: Running CI on MacOS with gcc is not useful. Solution: Only use clang. (Ozaki Kiichi, closes vim/vim#9326) Also build with normal features. vim/vim@48c0196 vim-patch:4e30b5c3bc83 Update issue template. vim/vim@4e30b5c vim-patch:9a4ec5a62632 Use text area for environment in the bug template. vim/vim@9a4ec5a vim-patch:8.2.3800: when cross compiling the output of "uname" cannot be set Problem: When cross compiling the output of "uname" cannot be set. (Ben Reeves) Solution: Use cache variables. (closes vim/vim#9338) vim/vim@6840a0f vim-patch:8.2.3821: ASAN test run fails Problem: ASAN test run fails. Solution: Use asan_symbolize-13 instead of asan_symbolize-11. vim/vim@19569ca vim-patch:8.2.3827: huntr badge does not really fit in the list Problem: Huntr badge does not really fit in the list. Solution: Move the link to Huntr to the issue template. vim/vim@f79cbf6 vim-patch:8.2.3837: QNX: crash when compiled with GUI but using terminal Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check gui.in_use is set. (Hirohito Higashi, closes vim/vim#9363) vim/vim@d2ff705 vim-patch:8.2.3881: QNX: crash when compiled with GUI but using terminal Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check the gui.in_use flag. (Hirohito Higashi, closes vim/vim#9391) vim/vim@6073f13 vim-patch:8.2.3891: github CI: workflows may overlap Problem: Github CI: workflows may overlap. Solution: Cancel previous workflows when starting a new one. (Yegappan Lakshmanan, closes vim/vim#9400) vim/vim@7f4a628 vim-patch:8.2.3922: cannot build with dynamic Ruby 3.1 Problem: Cannot build with dynamic Ruby 3.1. Solution: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki Kiichi, closes vim/vim#9420) vim/vim@8bb3fe4 vim-patch:8.2.3958: build failure compiling xxd with "-std=c2x" Problem: Build failure compiling xxd with "-std=c2x". Solution: define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes vim/vim#9444) vim/vim@ef089f5 vim-patch:8.2.4039: the xdiff library is linked in even when not used Problem: The xdiff library is linked in even when not used. Solution: Use configure to decide whether xdiff object files are included. vim/vim@67ffb41 vim-patch:8.2.4061: codecov bash script is deprecated Problem: Codecov bash script is deprecated. Solution: Use the codecov action. (Ozaki Kiichi, closes vim/vim#9505) vim/vim@0d47ad4 vim-patch:8.2.4079: MS-Windows: "gvim --version" didn't work with VIMDLL Problem: MS-Windows: "gvim --version" didn't work when build with VIMDLL. Solution: Adjust #ifdef. (Ken Takata, closes vim/vim#9517) vim/vim@33b25d1 vim-patch:8.2.4080: not sufficient test coverage for xxd Problem: Not sufficient test coverage for xxd. Solution: Add a few more test cases. (Erki Auerswald, closes vim/vim#9515) vim/vim@a00e622 vim-patch:8.2.4092: MacOS CI: unnecessarily doing "Install packages" Problem: MacOS CI: unnecessarily doing "Install packages". Solution: Only do "Install packages" for huge build. (Ozaki Kiichi, closes vim/vim#9521) vim/vim@ece0763 vim-patch:8.2.4096: Linux CI: unnecessarily installing packages Problem: Linux CI: unnecessarily installing packages Solution: Only install packages for huge build. (Ozaki Kiichi, closes vim/vim#9530) vim/vim@1050476 vim-patch:8.2.4109: MS-Windows: high dpi support is outdated Problem: MS-Windows: high dpi support is outdated. Solution: Improve High DPI support by using PerMonitorV2. (closes vim/vim#9525, closes vim/vim#3102) vim/vim@c81e9bf vim-patch:8.2.4126: crash on exit when built with dynamic Tcl Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined. (Dominique Pellé) Solution: Only call Tcl_Finalize() when initialized. (closes vim/vim#9546) vim/vim@afa76e1 vim-patch:8.2.4130: MS-Windows: MSVC build may have libraries duplicated Problem: MS-Windows: MSVC build may have libraries duplicated. Solution: Improve the MSVC Makefile. (Ken Takata, closes vim/vim#9547) vim/vim@31dcc8d vim-patch:8.2.4142: build failure with normal features without persistent undo Problem: Build failure with normal features without persistent undo. Solution: Adjust #ifdef. (closes vim/vim#9557) vim/vim@b4868ed vim-patch:8.2.4143: MS-Windows: IME support for Win9x is obsolete Problem: MS-Windows: IME support for Win9x is obsolete. Solution: Remove the Win9x code. (Ken Takata, closes vim/vim#9559) vim/vim@b0b2b73 vim-patch:8.2.4144: cannot load libsodium dynamically Problem: Cannot load libsodium dynamically. Solution: Support dynamic loading on MS-Windows. (Ken Takata, closes vim/vim#9554) vim/vim@1a8825d vim-patch:8.2.4158: MS-Windows: memory leak in :browse Problem: MS-Windows: memory leak in :browse. Solution: Free stuff before returning. (Ken Takata, closes vim/vim#9574) vim/vim@14b8d6a vim-patch:8.2.4159: MS-Windows: _WndProc() is very long Problem: MS-Windows: _WndProc() is very long. Solution: Move code to separate functions. (Ken Takata, closes vim/vim#9573) vim/vim@92000e2 vim-patch:8.2.4169: MS-Windows: unnessary casts and other minor things Problem: MS-Windows: unnessary casts and other minor things. Solution: Clean up the MS-Windows code. (Ken Takata, closes vim/vim#9583) vim/vim@45f9cfb vim-patch:8.2.4170: MS-Windows: still using old message API calls Problem: MS-Windows: still using old message API calls. Solution: Call the "W" functions directly. (Ken Takata, closes vim/vim#9582) vim/vim@b7057bd vim-patch:8.2.4189: MS-Windows: code for "old look" is obsolete Problem: MS-Windows: code for "old look" is obsolete. Solution: Delete obsolete code. Use "MS Shell Dlg" font. (Ken Takata, closes vim/vim#9596) vim/vim@d1c5899 vim-patch:8.2.4194: MS-Windows: code for calculating font size is duplicated Problem: MS-Windows: code for calculating font size is duplicated. Solution: Move the code to a function. (Ken Takata, closes vim/vim#9603) vim/vim@abe628e vim-patch:8.2.4201: when using the GUI CTRL-Z does not stop gvim Problem: When using the GUI CTRL-Z does not stop gvim. Solution: When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev, closes vim/vim#9570) vim/vim@8e4af85 vim-patch:8.2.4222: MS-Windows: clumsy way to suppress progress on CI Problem: MS-Windows: clumsy way to suppress progress on CI. Solution: Check for "$CI" in the Makefile itself. (Ken Takata, closes vim/vim#9631) vim/vim@47d1666 vim-patch:8.2.4230: MS-Windows: set_guifontwide() is included but won't work Problem: MS-Windows: set_guifontwide() is included but won't work. Solution: Include set_guifontwide() only for X11. (Ken Takata, closes vim/vim#9640) vim/vim@94373c4 vim-patch:8.2.4244: MS-Windows: warning from MSVC on debug build Problem: MS-Windows: warning from MSVC on debug build. Solution: Adjust "/opt"o options. Remove unused variables. Make variables uppercase for consistency. (Ken Takata, closes vim/vim#9647) vim/vim@14cbf77 vim-patch:8.2.4256: MS-Windows: compiler warnings when compiled with /W4 Problem: MS-Windows: compiler warnings when compiled with /W4. Solution: Small adjustments to the code. (Ken Takata, closes vim/vim#9659) vim/vim@135e152 vim-patch:8.2.4259: number of test functions for GUI events is growing Problem: Number of test functions for GUI events is growing. Solution: Use one function with a dictionary. (Yegappan Lakshmanan, closes vim/vim#9660) vim/vim@06011e1 vim-patch:8.2.4263: no test for the GUI find/replace dialog Problem: No test for the GUI find/replace dialog. Solution: Add a test function and a test. (Yegappan Lakshmanan, closes vim/vim#9662) vim/vim@ec3637c vim-patch:8.2.4268: CI log output is long Problem: CI log output is long. Solution: Group output in sections. (Ozaki Kiichi, closes vim/vim#9670) vim/vim@44d1f89 vim-patch:8.2.4271: MS-Windows: cannot build with Ruby 3.1.0 Problem: MS-Windows: cannot build with Ruby 3.1.0. Solution: Adjust the DLL name and include directory. (Ken Takata, closes vim/vim#9666) vim/vim@1f47a28 vim-patch:8.2.4276: separate test function for the GUI scrollbar Problem: Separate test function for the GUI scrollbar. Solution: Use test_gui_event(). (Yegappan Lakshmanan, closes vim/vim#9674) vim/vim@9e0208f
…ny version Problem: No good reason to limit the message history in the tiny version. Solution: Always use 200. vim/vim@1e78deb N/A patches: vim-patch:495282b6e7e4 Correct list of patch numbers vim/vim@495282b vim-patch:ed37d9b3241a Update feature_request.md vim/vim@ed37d9b vim-patch:fe712ced6e15 Fix duplicated code that only appears in git. vim/vim@fe712ce vim-patch:87fda407f8ec Also fix the patch number. vim/vim@87fda40 vim-patch:85d9b03f84f5 Correct list of patches. vim/vim@85d9b03 vim-patch:b54f1202b3cd Attempt to align the logo without a markdown table. vim/vim@b54f120 vim-patch:4a27aefe3b56 Add links to discussion forums. vim/vim@4a27aef vim-patch:c139aa8a2bf3 Remove table, it doesn't work vim/vim@c139aa8 vim-patch:0261a1aeeb4c Tweak the style a bit. vim/vim@0261a1a vim-patch:8.2.3714: some unused assignments and ugly code in xxd Problem: Some unused assignments and ugly code in xxd. Solution: Leave out assignments. Use marcro for fprintf(). (closes vim/vim#9246) vim/vim@7e5503c vim-patch:8.2.3722: Amiga: superfluous messages for freeing lots of yanked text Problem: Amiga: superfluous messages for freeing lots of yanked text. Solution: Assume that the machine isn't that slow these days. vim/vim@5e86964 vim-patch:8.2.3752: build error when using Photon GUI Problem: Build error when using Photon GUI. Solution: Adjust #ifdef. (closes vim/vim#9288) vim/vim@8603be3 vim-patch:3e55a973b5ca Add Huntr badge. vim/vim@3e55a97 vim-patch:8.2.3785: running CI on MacOS with gcc is not useful Problem: Running CI on MacOS with gcc is not useful. Solution: Only use clang. (Ozaki Kiichi, closes vim/vim#9326) Also build with normal features. vim/vim@48c0196 vim-patch:4e30b5c3bc83 Update issue template. vim/vim@4e30b5c vim-patch:9a4ec5a62632 Use text area for environment in the bug template. vim/vim@9a4ec5a vim-patch:8.2.3800: when cross compiling the output of "uname" cannot be set Problem: When cross compiling the output of "uname" cannot be set. (Ben Reeves) Solution: Use cache variables. (closes vim/vim#9338) vim/vim@6840a0f vim-patch:8.2.3821: ASAN test run fails Problem: ASAN test run fails. Solution: Use asan_symbolize-13 instead of asan_symbolize-11. vim/vim@19569ca vim-patch:8.2.3827: huntr badge does not really fit in the list Problem: Huntr badge does not really fit in the list. Solution: Move the link to Huntr to the issue template. vim/vim@f79cbf6 vim-patch:8.2.3837: QNX: crash when compiled with GUI but using terminal Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check gui.in_use is set. (Hirohito Higashi, closes vim/vim#9363) vim/vim@d2ff705 vim-patch:8.2.3881: QNX: crash when compiled with GUI but using terminal Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check the gui.in_use flag. (Hirohito Higashi, closes vim/vim#9391) vim/vim@6073f13 vim-patch:8.2.3891: github CI: workflows may overlap Problem: Github CI: workflows may overlap. Solution: Cancel previous workflows when starting a new one. (Yegappan Lakshmanan, closes vim/vim#9400) vim/vim@7f4a628 vim-patch:8.2.3922: cannot build with dynamic Ruby 3.1 Problem: Cannot build with dynamic Ruby 3.1. Solution: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki Kiichi, closes vim/vim#9420) vim/vim@8bb3fe4 vim-patch:8.2.3958: build failure compiling xxd with "-std=c2x" Problem: Build failure compiling xxd with "-std=c2x". Solution: define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes vim/vim#9444) vim/vim@ef089f5 vim-patch:8.2.4039: the xdiff library is linked in even when not used Problem: The xdiff library is linked in even when not used. Solution: Use configure to decide whether xdiff object files are included. vim/vim@67ffb41 vim-patch:8.2.4061: codecov bash script is deprecated Problem: Codecov bash script is deprecated. Solution: Use the codecov action. (Ozaki Kiichi, closes vim/vim#9505) vim/vim@0d47ad4 vim-patch:8.2.4079: MS-Windows: "gvim --version" didn't work with VIMDLL Problem: MS-Windows: "gvim --version" didn't work when build with VIMDLL. Solution: Adjust #ifdef. (Ken Takata, closes vim/vim#9517) vim/vim@33b25d1 vim-patch:8.2.4080: not sufficient test coverage for xxd Problem: Not sufficient test coverage for xxd. Solution: Add a few more test cases. (Erki Auerswald, closes vim/vim#9515) vim/vim@a00e622 vim-patch:8.2.4092: MacOS CI: unnecessarily doing "Install packages" Problem: MacOS CI: unnecessarily doing "Install packages". Solution: Only do "Install packages" for huge build. (Ozaki Kiichi, closes vim/vim#9521) vim/vim@ece0763 vim-patch:8.2.4096: Linux CI: unnecessarily installing packages Problem: Linux CI: unnecessarily installing packages Solution: Only install packages for huge build. (Ozaki Kiichi, closes vim/vim#9530) vim/vim@1050476 vim-patch:8.2.4109: MS-Windows: high dpi support is outdated Problem: MS-Windows: high dpi support is outdated. Solution: Improve High DPI support by using PerMonitorV2. (closes vim/vim#9525, closes vim/vim#3102) vim/vim@c81e9bf vim-patch:8.2.4126: crash on exit when built with dynamic Tcl Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined. (Dominique Pellé) Solution: Only call Tcl_Finalize() when initialized. (closes vim/vim#9546) vim/vim@afa76e1 vim-patch:8.2.4130: MS-Windows: MSVC build may have libraries duplicated Problem: MS-Windows: MSVC build may have libraries duplicated. Solution: Improve the MSVC Makefile. (Ken Takata, closes vim/vim#9547) vim/vim@31dcc8d vim-patch:8.2.4142: build failure with normal features without persistent undo Problem: Build failure with normal features without persistent undo. Solution: Adjust #ifdef. (closes vim/vim#9557) vim/vim@b4868ed vim-patch:8.2.4143: MS-Windows: IME support for Win9x is obsolete Problem: MS-Windows: IME support for Win9x is obsolete. Solution: Remove the Win9x code. (Ken Takata, closes vim/vim#9559) vim/vim@b0b2b73 vim-patch:8.2.4144: cannot load libsodium dynamically Problem: Cannot load libsodium dynamically. Solution: Support dynamic loading on MS-Windows. (Ken Takata, closes vim/vim#9554) vim/vim@1a8825d vim-patch:8.2.4158: MS-Windows: memory leak in :browse Problem: MS-Windows: memory leak in :browse. Solution: Free stuff before returning. (Ken Takata, closes vim/vim#9574) vim/vim@14b8d6a vim-patch:8.2.4159: MS-Windows: _WndProc() is very long Problem: MS-Windows: _WndProc() is very long. Solution: Move code to separate functions. (Ken Takata, closes vim/vim#9573) vim/vim@92000e2 vim-patch:8.2.4169: MS-Windows: unnessary casts and other minor things Problem: MS-Windows: unnessary casts and other minor things. Solution: Clean up the MS-Windows code. (Ken Takata, closes vim/vim#9583) vim/vim@45f9cfb vim-patch:8.2.4170: MS-Windows: still using old message API calls Problem: MS-Windows: still using old message API calls. Solution: Call the "W" functions directly. (Ken Takata, closes vim/vim#9582) vim/vim@b7057bd vim-patch:8.2.4189: MS-Windows: code for "old look" is obsolete Problem: MS-Windows: code for "old look" is obsolete. Solution: Delete obsolete code. Use "MS Shell Dlg" font. (Ken Takata, closes vim/vim#9596) vim/vim@d1c5899 vim-patch:8.2.4194: MS-Windows: code for calculating font size is duplicated Problem: MS-Windows: code for calculating font size is duplicated. Solution: Move the code to a function. (Ken Takata, closes vim/vim#9603) vim/vim@abe628e vim-patch:8.2.4201: when using the GUI CTRL-Z does not stop gvim Problem: When using the GUI CTRL-Z does not stop gvim. Solution: When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev, closes vim/vim#9570) vim/vim@8e4af85 vim-patch:8.2.4222: MS-Windows: clumsy way to suppress progress on CI Problem: MS-Windows: clumsy way to suppress progress on CI. Solution: Check for "$CI" in the Makefile itself. (Ken Takata, closes vim/vim#9631) vim/vim@47d1666 vim-patch:8.2.4230: MS-Windows: set_guifontwide() is included but won't work Problem: MS-Windows: set_guifontwide() is included but won't work. Solution: Include set_guifontwide() only for X11. (Ken Takata, closes vim/vim#9640) vim/vim@94373c4 vim-patch:8.2.4244: MS-Windows: warning from MSVC on debug build Problem: MS-Windows: warning from MSVC on debug build. Solution: Adjust "/opt"o options. Remove unused variables. Make variables uppercase for consistency. (Ken Takata, closes vim/vim#9647) vim/vim@14cbf77 vim-patch:8.2.4256: MS-Windows: compiler warnings when compiled with /W4 Problem: MS-Windows: compiler warnings when compiled with /W4. Solution: Small adjustments to the code. (Ken Takata, closes vim/vim#9659) vim/vim@135e152 vim-patch:8.2.4259: number of test functions for GUI events is growing Problem: Number of test functions for GUI events is growing. Solution: Use one function with a dictionary. (Yegappan Lakshmanan, closes vim/vim#9660) vim/vim@06011e1 vim-patch:8.2.4263: no test for the GUI find/replace dialog Problem: No test for the GUI find/replace dialog. Solution: Add a test function and a test. (Yegappan Lakshmanan, closes vim/vim#9662) vim/vim@ec3637c vim-patch:8.2.4268: CI log output is long Problem: CI log output is long. Solution: Group output in sections. (Ozaki Kiichi, closes vim/vim#9670) vim/vim@44d1f89 vim-patch:8.2.4271: MS-Windows: cannot build with Ruby 3.1.0 Problem: MS-Windows: cannot build with Ruby 3.1.0. Solution: Adjust the DLL name and include directory. (Ken Takata, closes vim/vim#9666) vim/vim@1f47a28 vim-patch:8.2.4276: separate test function for the GUI scrollbar Problem: Separate test function for the GUI scrollbar. Solution: Use test_gui_event(). (Yegappan Lakshmanan, closes vim/vim#9674) vim/vim@9e0208f
…ny version Problem: No good reason to limit the message history in the tiny version. Solution: Always use 200. vim/vim@1e78deb N/A patches: vim-patch:495282b6e7e4 Correct list of patch numbers vim/vim@495282b vim-patch:ed37d9b3241a Update feature_request.md vim/vim@ed37d9b vim-patch:fe712ced6e15 Fix duplicated code that only appears in git. vim/vim@fe712ce vim-patch:87fda407f8ec Also fix the patch number. vim/vim@87fda40 vim-patch:85d9b03f84f5 Correct list of patches. vim/vim@85d9b03 vim-patch:b54f1202b3cd Attempt to align the logo without a markdown table. vim/vim@b54f120 vim-patch:4a27aefe3b56 Add links to discussion forums. vim/vim@4a27aef vim-patch:c139aa8a2bf3 Remove table, it doesn't work vim/vim@c139aa8 vim-patch:0261a1aeeb4c Tweak the style a bit. vim/vim@0261a1a vim-patch:8.2.3488: issue template is not easy to use Problem: Issue template is not easy to use. Solution: Use a yaml template. (closes vim/vim#8928) vim/vim@26190b2 vim-patch:8.2.3496: crypt test fails if xxd was not installed yet Problem: Crypt test fails on MS-Windows if xxd was not installed yet. Solution: Use the just built xxd executable if it exists. (James McCoy, closes vim/vim#8929) vim/vim@a5d4f3b vim-patch:8.2.3500: Github CI fails to install clang Problem: Github CI fails to install clang. Solution: Install llvm-11 explicitly. (Christian Brabandt, closes vim/vim#8993) vim/vim@3a72429 vim-patch:8.2.3507: generating proto files may fail Problem: Generating proto files may fail. Solution: Define __attribute(). vim/vim@75aa92a vim-patch:8.2.3523: duplicated code in xxd Problem: Duplicated code in xxd. Solution: Remove duplicated lines. (closes vim/vim#8972) vim/vim@c89c91c vim-patch:8.2.3533: inefficient code in xxd Problem: Inefficient code in xxd. Solution: Don't use "p" when "hextype" is non-zero. (closes vim/vim#9013) vim/vim@375c35a vim-patch:8.2.3539: GTK3: with 'rightleft' set scrollbar may move unintentionally Problem: GTK3: with 'rightleft' set scrollbar may move unintentionally. Solution: Ignore events while moving the scrollbar thumb. (closes vim/vim#8958) vim/vim@604e207 vim-patch:8.2.3548: GTK GUI crashen when reading from stdin Problem: GTK GUI crashen when reading from stdin. Solution: Do not overwrite the NUL after the string. (closes vim/vim#9028) vim/vim@d68a004 vim-patch:8.2.3552: xxd revert does not handle end of line correctly Problem: Xxd revert does not handle end of line correctly. Solution: Check for newline first. (closes vim/vim#9034) vim/vim@4781046 vim-patch:8.2.3553: xxd test fails on MS-Windows Problem: Xxd test fails on MS-Windows. Solution: Split shell command in two. vim/vim@5a5c111 vim-patch:8.2.3554: xxd has various way to exit Problem: Xxd has various way to exit. Solution: Add function to print error and exit. (closes vim/vim#9035) vim/vim@a2ffb43 vim-patch:8.2.3565: Makefile dependencies are outdated Problem: Makefile dependencies are outdated. (Gary Johnson) Solution: Run "make depend" and add missing dependencies. vim/vim@2446ec9 vim-patch:8.2.3566: build failure on old systems when using nano timestamp Problem: Build failure on old systems when using nano timestamp. Solution: Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary Johnson, closes vim/vim#9054) vim/vim@44db603 vim-patch:8.2.3594: xxd code is a bit difficult to understand Problem: Xxd code is a bit difficult to understand. Solution: Move some lines to a separate function. (closes vim/vim#9037) vim/vim@786e05b vim-patch:8.2.3606: file missing from list of distributed files Problem: File missing from list of distributed files. Solution: Add the file. vim/vim@d3682c5 vim-patch:8.2.3607: GTK3 screen updating is slow Problem: GTK3 screen updating is slow. Solution: Remove some of the GTK3-specific code. (closes vim/vim#9052) vim/vim@9459b8d vim-patch:8.2.3632: GTK3: undercurl does not get removed properly Problem: GTK3: undercurl does not get removed properly. Solution: Set the cairo cursor first. (closes vim/vim#9170) vim/vim@9cd9385 vim-patch:8.2.3635: GTK: composing underline does not show Problem: GTK: composing underline does not show. Solution: Include composing character in pango call. A few more optimizations for ligatures. (Dusan Popovic, closes vim/vim#9171, closes vim/vim#9147) vim/vim@3c19b50 vim-patch:8.2.3641: xxd code has duplicate expressions Problem: Xxd code has duplicate expressions. Solution: Refactor to avoid duplication. (closes vim/vim#9185) vim/vim@581f41a vim-patch:8.2.3642: list of distributed files is outdated Problem: List of distributed files is outdated. Solution: Rename term.h to termdefs.h. vim/vim@73448a2 vim-patch:8.2.3647: GTK: when using ligatures the cursor is drawn wrong Problem: GTK: when using ligatures the cursor is drawn wrong. Solution: Clear more characters when ligatures are used. (Dusan Popovic, closes vim/vim#9190) vim/vim@ce59b9f vim-patch:8.2.3654: GTK: a touch-drag does not update the selection Problem: GTK: a touch-drag does not update the selection. Solution: Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close vim/vim#9196, closes vim/vim#9194) vim/vim@ee93e32 vim-patch:8.2.3658: duplicate code in xxd Problem: Duplicate code in xxd. Solution: Merge duplicated code. Add more tests. (closes vim/vim#9192) vim/vim@48608b4 vim-patch:8.2.3666: libvterm is outdated Problem: Libvterm is outdated. Solution: Include patches from revision 769 to revision 789. vim/vim@7da3415 vim-patch:8.2.3667: building libvterm fails with MSVC Problem: Building libvterm fails with MSVC. Solution: Don't use C99 construct. vim/vim@510d8e6 vim-patch:8.2.3680: repeated code in xxd Problem: Repeated code in xxd. Solution: Change exit_on_ferror() to getc_or_die(). (closes vim/vim#9226) vim/vim@d1d8a59 vim-patch:8.2.3714: some unused assignments and ugly code in xxd Problem: Some unused assignments and ugly code in xxd. Solution: Leave out assignments. Use marcro for fprintf(). (closes vim/vim#9246) vim/vim@7e5503c vim-patch:8.2.3722: Amiga: superfluous messages for freeing lots of yanked text Problem: Amiga: superfluous messages for freeing lots of yanked text. Solution: Assume that the machine isn't that slow these days. vim/vim@5e86964 vim-patch:8.2.3752: build error when using Photon GUI Problem: Build error when using Photon GUI. Solution: Adjust #ifdef. (closes vim/vim#9288) vim/vim@8603be3 vim-patch:3e55a973b5ca Add Huntr badge. vim/vim@3e55a97 vim-patch:8.2.3785: running CI on MacOS with gcc is not useful Problem: Running CI on MacOS with gcc is not useful. Solution: Only use clang. (Ozaki Kiichi, closes vim/vim#9326) Also build with normal features. vim/vim@48c0196 vim-patch:4e30b5c3bc83 Update issue template. vim/vim@4e30b5c vim-patch:9a4ec5a62632 Use text area for environment in the bug template. vim/vim@9a4ec5a vim-patch:8.2.3800: when cross compiling the output of "uname" cannot be set Problem: When cross compiling the output of "uname" cannot be set. (Ben Reeves) Solution: Use cache variables. (closes vim/vim#9338) vim/vim@6840a0f vim-patch:8.2.3821: ASAN test run fails Problem: ASAN test run fails. Solution: Use asan_symbolize-13 instead of asan_symbolize-11. vim/vim@19569ca vim-patch:8.2.3827: huntr badge does not really fit in the list Problem: Huntr badge does not really fit in the list. Solution: Move the link to Huntr to the issue template. vim/vim@f79cbf6 vim-patch:8.2.3837: QNX: crash when compiled with GUI but using terminal Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check gui.in_use is set. (Hirohito Higashi, closes vim/vim#9363) vim/vim@d2ff705 vim-patch:8.2.3881: QNX: crash when compiled with GUI but using terminal Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check the gui.in_use flag. (Hirohito Higashi, closes vim/vim#9391) vim/vim@6073f13 vim-patch:8.2.3891: github CI: workflows may overlap Problem: Github CI: workflows may overlap. Solution: Cancel previous workflows when starting a new one. (Yegappan Lakshmanan, closes vim/vim#9400) vim/vim@7f4a628 vim-patch:8.2.3922: cannot build with dynamic Ruby 3.1 Problem: Cannot build with dynamic Ruby 3.1. Solution: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki Kiichi, closes vim/vim#9420) vim/vim@8bb3fe4 vim-patch:8.2.3958: build failure compiling xxd with "-std=c2x" Problem: Build failure compiling xxd with "-std=c2x". Solution: define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes vim/vim#9444) vim/vim@ef089f5 vim-patch:8.2.4039: the xdiff library is linked in even when not used Problem: The xdiff library is linked in even when not used. Solution: Use configure to decide whether xdiff object files are included. vim/vim@67ffb41 vim-patch:8.2.4061: codecov bash script is deprecated Problem: Codecov bash script is deprecated. Solution: Use the codecov action. (Ozaki Kiichi, closes vim/vim#9505) vim/vim@0d47ad4 vim-patch:8.2.4079: MS-Windows: "gvim --version" didn't work with VIMDLL Problem: MS-Windows: "gvim --version" didn't work when build with VIMDLL. Solution: Adjust #ifdef. (Ken Takata, closes vim/vim#9517) vim/vim@33b25d1 vim-patch:8.2.4080: not sufficient test coverage for xxd Problem: Not sufficient test coverage for xxd. Solution: Add a few more test cases. (Erki Auerswald, closes vim/vim#9515) vim/vim@a00e622 vim-patch:8.2.4092: MacOS CI: unnecessarily doing "Install packages" Problem: MacOS CI: unnecessarily doing "Install packages". Solution: Only do "Install packages" for huge build. (Ozaki Kiichi, closes vim/vim#9521) vim/vim@ece0763 vim-patch:8.2.4096: Linux CI: unnecessarily installing packages Problem: Linux CI: unnecessarily installing packages Solution: Only install packages for huge build. (Ozaki Kiichi, closes vim/vim#9530) vim/vim@1050476 vim-patch:8.2.4109: MS-Windows: high dpi support is outdated Problem: MS-Windows: high dpi support is outdated. Solution: Improve High DPI support by using PerMonitorV2. (closes vim/vim#9525, closes vim/vim#3102) vim/vim@c81e9bf vim-patch:8.2.4126: crash on exit when built with dynamic Tcl Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined. (Dominique Pellé) Solution: Only call Tcl_Finalize() when initialized. (closes vim/vim#9546) vim/vim@afa76e1 vim-patch:8.2.4130: MS-Windows: MSVC build may have libraries duplicated Problem: MS-Windows: MSVC build may have libraries duplicated. Solution: Improve the MSVC Makefile. (Ken Takata, closes vim/vim#9547) vim/vim@31dcc8d vim-patch:8.2.4142: build failure with normal features without persistent undo Problem: Build failure with normal features without persistent undo. Solution: Adjust #ifdef. (closes vim/vim#9557) vim/vim@b4868ed vim-patch:8.2.4143: MS-Windows: IME support for Win9x is obsolete Problem: MS-Windows: IME support for Win9x is obsolete. Solution: Remove the Win9x code. (Ken Takata, closes vim/vim#9559) vim/vim@b0b2b73 vim-patch:8.2.4144: cannot load libsodium dynamically Problem: Cannot load libsodium dynamically. Solution: Support dynamic loading on MS-Windows. (Ken Takata, closes vim/vim#9554) vim/vim@1a8825d vim-patch:8.2.4158: MS-Windows: memory leak in :browse Problem: MS-Windows: memory leak in :browse. Solution: Free stuff before returning. (Ken Takata, closes vim/vim#9574) vim/vim@14b8d6a vim-patch:8.2.4159: MS-Windows: _WndProc() is very long Problem: MS-Windows: _WndProc() is very long. Solution: Move code to separate functions. (Ken Takata, closes vim/vim#9573) vim/vim@92000e2 vim-patch:8.2.4169: MS-Windows: unnessary casts and other minor things Problem: MS-Windows: unnessary casts and other minor things. Solution: Clean up the MS-Windows code. (Ken Takata, closes vim/vim#9583) vim/vim@45f9cfb vim-patch:8.2.4170: MS-Windows: still using old message API calls Problem: MS-Windows: still using old message API calls. Solution: Call the "W" functions directly. (Ken Takata, closes vim/vim#9582) vim/vim@b7057bd vim-patch:8.2.4189: MS-Windows: code for "old look" is obsolete Problem: MS-Windows: code for "old look" is obsolete. Solution: Delete obsolete code. Use "MS Shell Dlg" font. (Ken Takata, closes vim/vim#9596) vim/vim@d1c5899 vim-patch:8.2.4194: MS-Windows: code for calculating font size is duplicated Problem: MS-Windows: code for calculating font size is duplicated. Solution: Move the code to a function. (Ken Takata, closes vim/vim#9603) vim/vim@abe628e vim-patch:8.2.4201: when using the GUI CTRL-Z does not stop gvim Problem: When using the GUI CTRL-Z does not stop gvim. Solution: When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev, closes vim/vim#9570) vim/vim@8e4af85 vim-patch:8.2.4222: MS-Windows: clumsy way to suppress progress on CI Problem: MS-Windows: clumsy way to suppress progress on CI. Solution: Check for "$CI" in the Makefile itself. (Ken Takata, closes vim/vim#9631) vim/vim@47d1666 vim-patch:8.2.4230: MS-Windows: set_guifontwide() is included but won't work Problem: MS-Windows: set_guifontwide() is included but won't work. Solution: Include set_guifontwide() only for X11. (Ken Takata, closes vim/vim#9640) vim/vim@94373c4 vim-patch:8.2.4244: MS-Windows: warning from MSVC on debug build Problem: MS-Windows: warning from MSVC on debug build. Solution: Adjust "/opt"o options. Remove unused variables. Make variables uppercase for consistency. (Ken Takata, closes vim/vim#9647) vim/vim@14cbf77 vim-patch:8.2.4256: MS-Windows: compiler warnings when compiled with /W4 Problem: MS-Windows: compiler warnings when compiled with /W4. Solution: Small adjustments to the code. (Ken Takata, closes vim/vim#9659) vim/vim@135e152 vim-patch:8.2.4259: number of test functions for GUI events is growing Problem: Number of test functions for GUI events is growing. Solution: Use one function with a dictionary. (Yegappan Lakshmanan, closes vim/vim#9660) vim/vim@06011e1 vim-patch:8.2.4263: no test for the GUI find/replace dialog Problem: No test for the GUI find/replace dialog. Solution: Add a test function and a test. (Yegappan Lakshmanan, closes vim/vim#9662) vim/vim@ec3637c vim-patch:8.2.4268: CI log output is long Problem: CI log output is long. Solution: Group output in sections. (Ozaki Kiichi, closes vim/vim#9670) vim/vim@44d1f89 vim-patch:8.2.4271: MS-Windows: cannot build with Ruby 3.1.0 Problem: MS-Windows: cannot build with Ruby 3.1.0. Solution: Adjust the DLL name and include directory. (Ken Takata, closes vim/vim#9666) vim/vim@1f47a28 vim-patch:8.2.4276: separate test function for the GUI scrollbar Problem: Separate test function for the GUI scrollbar. Solution: Use test_gui_event(). (Yegappan Lakshmanan, closes vim/vim#9674) vim/vim@9e0208f
Improve High DPI support by using PerMonitorV2.
Close #3102
Implementation notes:
Use
SetThreadDpiAwarenessContext()
to enable it explicitly.V2 is available since Windows 10 1703. It is already 5 years ago.
However, toolbar bitmap is shown dot-by-dot, and it is not scaled.