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

Reply via email to