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