On 4/21/2022 3:27 PM, J. Landman Gay via use-livecode wrote:
On 4/21/22 10:55 AM, Paul Dupuis via use-livecode wrote:
In a new stack, place the following in the card script:
on optionKeyDown pKeyName
if platform() = "MacOS" then
put numToChar(charToNum(pKeyName)-128) into tKey1 -- original
sample from Dictionary
put numToCodePoint(codepointToNum(pKeyName)-128) into tKey2 --
trying using non-deprecated functions
answer pKeyName,tKey1,tKey2
else -- windows
answer pKeyName
end if
end optionKeyDown
The equivalent new functions for numToChar and charToNum is
numToNativeChar and nativeCharToNum. Those return the same values as
the originals. However, I'm still getting the wrong result. I can
subtract 94 to get lower-case "f" but that isn't consistent; the
amount to subtract varies depending on the value of pKeyName. So
there's some trick I'm missing.
Tested on Mac.
Thank you for verifying macOS!
I did not know about numToNativeChar and nativeCharToNum so thanks for
that also. However, after looking at a decimal table of MacRoman, the
suggested formula to remove the "high-bit" in the Dictionary will NEVER
work no matter what functions are used. The high-ASCII characters of
MAcROman (bytes 128 to 255) do not correspond to any alphabetical range.
In other words, the numerical equivalent of OPTION-A through OPTION-Z is
not in sequential order.
You would either have to code it as:
on optionDownKey pKey
if platform() = "MacOS" then
if pKey = "ƒ" then put "f" in tKey -- MacRoman byte 196 (OPTION-F
is pressed)
if pKey = "≈" then put "x" in tKey -- MacRoman byte 197 (is NOT
OPTION-G (expected if in alphabetical order and you could just do math
to get the ASCII key character), but is OPTION-X)
In my opinion, this makes the optionKeyDown handler on macOS next to
useless and it is far more intuitive from a develop and code
documentation perspective if the letter of the key pressed in
conjunction with the OPTOPN key was returned.
And, of course, you can work around this with a rawKeyDown or rawKeyUp
handler, but I would consider the state of optionKeyDown on macOS defective.
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode