From 551859ab46ad0d92f0097687308150befab95217 Mon Sep 17 00:00:00 2001 From: culler Date: Sun, 26 Apr 2020 03:07:31 +0000 Subject: Figured out how to make empty trans_chars, and dealt with menu and control characters. --- macosx/tkMacOSXKeyEvent.c | 6 ++++-- macosx/tkMacOSXKeyboard.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/macosx/tkMacOSXKeyEvent.c b/macosx/tkMacOSXKeyEvent.c index 1b3d8a9..109c774 100644 --- a/macosx/tkMacOSXKeyEvent.c +++ b/macosx/tkMacOSXKeyEvent.c @@ -211,10 +211,12 @@ static void setXEventPoint(XEvent *xEvent, Tk_Window tkwin, NSWindow *w); */ setXEventPoint(&xEvent, tkwin, w); - if (keychar < 0xF700) { + if ((keychar >= 0x20) && (keychar < 0xF700)) { length = TkUniCharToUtf(keychar, xEvent.xkey.trans_chars); + xEvent.xkey.trans_chars[length] = 0; + } else { + xEvent.xkey.nbytes = 0; } - xEvent.xkey.trans_chars[length] = 0; /* * Finally we can queue the XEvent, inserting a KeyRelease before a diff --git a/macosx/tkMacOSXKeyboard.c b/macosx/tkMacOSXKeyboard.c index a628953..00b8715 100644 --- a/macosx/tkMacOSXKeyboard.c +++ b/macosx/tkMacOSXKeyboard.c @@ -566,10 +566,12 @@ TkpSetKeycodeAndState( * Set trans_chars for keychars outside of the private-use range. */ - if (keychar < 0xF700) { + if ((keychar >= 0x20) && (keychar < 0xF700)) { length = TkUniCharToUtf(keychar, eventPtr->xkey.trans_chars); + eventPtr->xkey.trans_chars[length] = 0; + } else { + eventPtr->xkey.nbytes = 0; } - eventPtr->xkey.trans_chars[length] = 0; } } -- cgit v0.12