What's the interrupt key on a French Mac keyboard?
John M McIntosh
johnmci at smalltalkconsulting.com
Sat Feb 16 18:39:12 UTC 2008
Historically the interrupt key was special in older pre OS-X operating
systems.
When we migrated to event driven keyboard input in the VM about 8
years back we switch
just to providing the keyboard data to the smalltalk code. This is
processed in
EventSensor>>processEvent: evt
"Process a single event. This method is run at high priority."
| type |
type _ evt at: 1.
"Check if the event is a user interrupt"
(type = EventTypeKeyboard and:[(evt at: 4) = 0 and:[
((evt at: 3) bitOr: ((evt at: 5) bitShift: 8)) = interruptKey]])
ifTrue:["interrupt key is meta - not reported as event"
^interruptSemaphore signal].
,,,
and we have
initialize
"Initialize the receiver"
mouseButtons := 0.
mousePosition := 0 @ 0.
keyboardBuffer := SharedQueue new.
self setInterruptKey: (interruptKey ifNil: [$. asciiValue bitOr:
16r0800 ]). "cmd-."
interruptSemaphore := (Smalltalk specialObjectsArray at: 31) ifNil:
[Semaphore new].
self flushAllButDandDEvents.
inputSemaphore := Semaphore new.
hasInputSemaphore := false.
where we use the setInterruptKey: to set the interruptKey value. For
historical reasons this
also sets the keycode and semaphore in the VM. If a newer VM works
with an image from 10 years back it
interacts with the class InputSensor and signals the
interruptSemaphore when a cmd-. is pressed,
or actually whatever the setInterruptKey: was set to.
In looking I saw this old email
Serge.Stinckwich at info.unicaen.fr
October 24, 2005 9:49:40 AM PDT (CA)
> Here is a changeset to allow to use the shift key for the Cmd-.
> I test it with the french and american keyboard.
> Could people with different keyboard layout (belgian, spanish, ...)
> could also test this changeset ?
>
> Thanks you,
>
> -- oooo
> Dr. Serge Stinckwich OOOOOOOO
> Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO
> http://purl.org/net/SergeStinckwich oooooo
> Smalltalkers do: [:it | All with: Class, (And love: it)] \ /
> ##
>
>
>
> 'From Squeak3.8 of ''5 May 2005'' [latest update: #6665] on 24
> October 2005 at 6:42:13 pm'!
>
> !EventSensor methodsFor: 'private-I/O' stamp: 'zz 10/24/2005 18:41'!
> processEvent: evt
> "Process a single event. This method is run at high priority."
> | type |
> type := evt at: 1.
>
> "Check if the event is a user interrupt"
> (type = EventTypeKeyboard and:[(evt at: 4) = 0 and:[
> ((evt at: 3) bitOr: (((evt at: 5) bitAnd:8) bitShift: 8)) =
> interruptKey]])
> ifTrue:["interrupt key is meta - not reported as event"
> ^interruptSemaphore signal].
>
On Feb 16, 2008, at 9:10 AM, Tom Phoenix wrote:
> On Feb 15, 2008 7:00 PM, Andreas Raab <andreas.raab at gmx.de> wrote:
>
>> It's a weird question but we just got it ;-) Since the period
>> appears to
>> be a shifted symbol it seems that pressing Cmd-Shift-Period doesn't
>> result in a user interrupt? If anyone knows the answer I'd
>> appreciate it.
>
> The more I study this issue, the more confused I get. As I understand
> things, the key sequence for canceling an operation in progress on Mac
> OS X is supposed to be Command + period, including the shift key if
> that's what's needed. But I also hear that there's been much confusion
> among application developers, so some people with French AZERTY
> keyboards use Command + / in some applications. It may be that you've
> found a bug in the VM, but at the moment I can't find an up-to-date
> reference on Apple's site that says how this is supposed to be done.
>
> This response wouldn't be complete if I didn't remind you to check
> that the cmdDotEnabled preference item is enabled in your image.
>
> Good luck with it!
>
> --Tom Phoenix
>
--
=
=
=
========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
=
=
=
========================================================================
More information about the Squeak-dev
mailing list
|