summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2017-01-28 15:41:45 (GMT)
committerfvogel <fvogelnew1@free.fr>2017-01-28 15:41:45 (GMT)
commit19702c5a40b368d9d39834a373f4745782de16e3 (patch)
tree4fa4b2c35da61a0aedf3456cdf41b83fd1851a31
parentbc6a00f386a42a918f7ea3907a7899419680c3d4 (diff)
downloadtk-19702c5a40b368d9d39834a373f4745782de16e3.zip
tk-19702c5a40b368d9d39834a373f4745782de16e3.tar.gz
tk-19702c5a40b368d9d39834a373f4745782de16e3.tar.bz2
Proposed fix for [499526180d]: Add support for windows multimedia virtual keys. Patch by ralfixx
-rw-r--r--generic/ks_names.h7
-rw-r--r--win/tkWinKey.c11
-rw-r--r--xlib/X11/keysymdef.h12
3 files changed, 28 insertions, 2 deletions
diff --git a/generic/ks_names.h b/generic/ks_names.h
index 22d9fc5..b939a51 100644
--- a/generic/ks_names.h
+++ b/generic/ks_names.h
@@ -920,3 +920,10 @@
{ "hebrew_shin", 0xcf9 },
{ "hebrew_taf", 0xcfa },
{ "Hebrew_switch", 0xFF7E },
+{ "XF86AudioLowerVolume", 0x1008FF11 },
+{ "XF86AudioMute", 0x1008FF12 },
+{ "XF86AudioRaiseVolume", 0x1008FF13 },
+{ "XF86AudioPlay", 0x1008FF14 },
+{ "XF86AudioStop", 0x1008FF15 },
+{ "XF86AudioPrev", 0x1008FF16 },
+{ "XF86AudioNext", 0x1008FF17 },
diff --git a/win/tkWinKey.c b/win/tkWinKey.c
index 1ebf312..357a804 100644
--- a/win/tkWinKey.c
+++ b/win/tkWinKey.c
@@ -21,7 +21,8 @@
* like a worthwhile improvement to use the table.
*/
-#define MAX_KEYCODE 145 /* VK_SCROLL is the last entry in our table below */
+#define MAX_KEYCODE 179 /* VK_MEDIA_PLAY_PAUSE is the last entry in our table below */
+/* cf. https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx */
static const KeySym keymap[] = {
NoSymbol, NoSymbol, NoSymbol, XK_Cancel, NoSymbol,
@@ -53,7 +54,13 @@ static const KeySym keymap[] = {
XK_F19, XK_F20, XK_F21, XK_F22, XK_F23,
XK_F24, NoSymbol, NoSymbol, NoSymbol, NoSymbol,
NoSymbol, NoSymbol, NoSymbol, NoSymbol, XK_Num_Lock,
- XK_Scroll_Lock
+ XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, NoSymbol,
+ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*150 0x96*/
+ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*155 0x9b*/
+ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*160 0xa0*/
+ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*165 0xa5*/
+ NoSymbol, NoSymbol, NoSymbol, XK_XF86AudioMute, XK_XF86AudioLowerVolume, /*170 0xaa*/
+ XK_XF86AudioRaiseVolume, XK_XF86AudioNext, XK_XF86AudioPrev, XK_XF86AudioStop, XK_XF86AudioPlay /*175 0xaf*/
};
/*
diff --git a/xlib/X11/keysymdef.h b/xlib/X11/keysymdef.h
index b22d41b..a7c654d 100644
--- a/xlib/X11/keysymdef.h
+++ b/xlib/X11/keysymdef.h
@@ -1167,3 +1167,15 @@ SOFTWARE.
#define XK_Hebrew_switch 0xFF7E /* Alias for mode_switch */
#endif /* XK_HEBREW */
+/* Multimedia keys, defined same as on Linux
+ * /usr/include/pkg/libxkbcommon/xkbcommon/xkbcommon-keysyms.h
+ */
+
+#define XK_XF86AudioLowerVolume 0x1008FF11 /* Volume control down */
+#define XK_XF86AudioMute 0x1008FF12 /* Mute sound from the system */
+#define XK_XF86AudioRaiseVolume 0x1008FF13 /* Volume control up */
+#define XK_XF86AudioPlay 0x1008FF14 /* Start playing of audio > */
+#define XK_XF86AudioStop 0x1008FF15 /* Stop playing audio */
+#define XK_XF86AudioPrev 0x1008FF16 /* Previous track */
+#define XK_XF86AudioNext 0x1008FF17 /* Next track */
+