Robert Sneidar wrote:
Hi Everyone. This may be a bug, I do not know. Observe the following snippet in the script of the stack:

on keyDown theKey
  local theModifier
  put "" into theModifier
  switch
  case the optionKey is down
    put "Opt " after theModifier
  case the CommandKey is down
    put "Cmd " after theModifier
  case the shiftKey is down
    put "Shft " after theModifier
  case the controlKey is down
    put "Ctrl " after theModifier
  end switch
  put char 1 to -1 of theModifier into theModifier
  replace " " with "-" in theModifier
  put theModifier && theKey
  pass keyDown
end keyDown

This SHOULD put the modifier keys and the key typed in the result of the message box. It works when I just type letters. BUT when I use a modifier that is NOT the shift key, I get NOTHING. IF I use the Shift key I get "Shft-Crtl " followed by the letter typed, even though the Control key is NOT down!

Well this cannot be right! What is really needed is a new argument in the keyDown and keyUp handlers for the modifier keys. I should be able to write the handler this way:

on keyDown theKey, theModifiers
if "Shift" is in theModifiers then
  -- some stuff here
end if
pass keyDown
end keyDown

I guess this is a bug report AND a feature request.

It's not a bug, it is how keydown works. The keydown message only reports, for the most part, typeable keys. In the case of the option key, for example, no keypress is generated until you also press another key; that is how, on a Mac, you make international characters.

You can use rawKeyDown instead to catch a few of the other keys, such as delete, tab, and the arrow keys. See the docs. The rawKeyDown message receives the keypress as a number rather than as a character, so you need to interpret those. We can help you if you need it.

But some keys are simply never reported by the operating systems during normal keyboard input. Modifier keys like shift, command, control, and option are not reported, so Rev can't know about them. If you need to know the state of some of these keys, you can use the keysdown() function, which specifically checks to see if they are depressed.

It is common for new users to think unexpected behaviors are bugs, so I'm glad you asked here first. It's always a good idea.

--
Jacqueline Landman Gay         |     [EMAIL PROTECTED]
HyperActive Software           |     http://www.hyperactivesw.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to