summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2024-09-10 12:14:56 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2024-10-06 18:44:31 +0200
commit3fbd4f944f0a6e16630974e56e1e896eb7bbf6f7 (patch)
tree4e473be58c753989421883900c2788d465b21a7b /src
parent0594d9a1a0cbac7347b09e2ef3645630f36da440 (diff)
Apply `scaling-shortcut-kludge.patch` for Windows
... as proposed by Manolo in a private mail. This patch allows to detect "ctrl+'-' on keyboards with digits in uppercase positions (e.g. French)" but this is only preliminary for FLTK 1.4.0. Windows keyboard handling should be revised in FLTK 1.5.0 or higher.
Diffstat (limited to 'src')
-rw-r--r--src/Fl_win32.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index 45474fd0f..36e77a99b 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -1,7 +1,7 @@
//
// Windows-specific code for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2023 by Bill Spitzak and others.
+// Copyright 1998-2024 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -1157,6 +1157,7 @@ static const struct {
{0xdc, '\\'},
{0xdd, ']'},
{0xde, '\''},
+ {VK_OEM_PLUS, '+'},
{VK_OEM_102, FL_Iso_Key}
};
static int ms2fltk(WPARAM vk, int extended) {
@@ -1439,6 +1440,10 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
case WM_SYSKEYUP:
// save the keysym until we figure out the characters:
Fl::e_keysym = Fl::e_original_keysym = ms2fltk(wParam, lParam & (1 << 24));
+ // Kludge to allow recognizing ctrl+'-' on keyboards with digits in uppercase positions (e.g. French)
+ if (Fl::e_keysym == '6' && (VkKeyScanA('-') & 0xff) == '6') {
+ Fl::e_keysym = '-';
+ }
// See if TranslateMessage turned it into a WM_*CHAR message:
if (PeekMessageW(&fl_msg, hWnd, WM_CHAR, WM_SYSDEADCHAR, PM_REMOVE)) {
uMsg = fl_msg.message;