A new version of Morphic was added to project The Trunk:
http://source.squeak.org/trunk/Morphic-ar.358.mcz ==================== Summary ==================== Name: Morphic-ar.358 Author: ar Time: 26 February 2010, 4:46:26.845 pm UUID: 88c7d168-021f-7f40-8892-b7aabfc8b1e8 Ancestors: Morphic-ar.355, Morphic-kb.357, Morphic-kb.356 Merging Morphic-kb.356 - Changed the docking bar activation shortcut to ctrl-n, where n is the position of the docking bar menu to activate. - When selecting a docking bar menu item morph set the keyboard focus to its submenu. - If the docking bar can't handle a keystroke it passes the focus to the submenu, and sends the keystroke event to it. With these changes you can press ctrl-3, type "wo" and press enter to open a new workspace. Merging Morphic-kb.357: - fix for: 0007439: Selection in Trunk text editors does not extend correctly. http://bugs.squeak.org/view.php?id=7439 Put back old code handling shift-clicks. Further investigation needed, to find out why it was removed. =============== Diff against Morphic-ar.355 =============== Item was added: + ----- Method: DockingBarItemMorph>>select: (in category 'selecting') ----- + select: evt + + super select: evt. + subMenu ifNotNil: [ + evt hand newKeyboardFocus: subMenu ]! Item was changed: ----- Method: DockingBarMorph>>keyStroke: (in category 'events-processing') ----- keyStroke: evt | asc | asc := evt keyCharacter asciiValue. asc = 27 ifTrue: [ "escape key" ^self deactivate: evt ]. asc = self selectSubmenuKey ifTrue: [ self ensureSelectedItem: evt. self selectedItem subMenu ifNotNil: [ :subMenu | subMenu items ifNotEmpty: [ subMenu activate: evt. ^subMenu moveSelectionDown: 1 event: evt ] ] ]. asc = self previousKey ifTrue: [ ^self moveSelectionDown: -1 event: evt ]. + asc = self nextKey ifTrue: [ ^self moveSelectionDown: 1 event: evt ]. + selectedItem ifNotNil: [ + selectedItem subMenu ifNotNil: [ :subMenu | + " If we didn't handle the keystroke, pass the keyboard focus + to the open submenu. " + evt hand newKeyboardFocus: subMenu. + subMenu keyStroke: evt ] ]! - asc = self nextKey ifTrue: [ ^self moveSelectionDown: 1 event: evt ].! Item was changed: ----- Method: DockingBarMorph>>handleListenEvent: (in category 'events-processing') ----- handleListenEvent: anEvent + " I am registered as a keyboardListener of the ActiveHand, + watching for ctrl-<n> keystrokes, and upon them if I have + an nth menu item, I'll activate myself and select it. " + (anEvent controlKeyPressed and: [ + anEvent keyValue + between: 49 " $1 asciiValue " + and: 57 " $9 asciiValue " ]) ifTrue: [ + | index itemToSelect | + index := anEvent keyValue - 48. + itemToSelect := (submorphs select: [ :each | + each isKindOf: DockingBarItemMorph ]) at: index ifAbsent: [ ^self ]. + self activate: anEvent. + self + selectItem: itemToSelect + event: anEvent ]! - (anEvent controlKeyPressed and: [ anEvent keyValue = 96 " ` " ]) ifTrue: [ - self activate: anEvent ]! Item was changed: ----- Method: TextEditor>>mouseDown: (in category 'events') ----- mouseDown: evt "An attempt to break up the old processRedButton code into threee phases" | clickPoint b | oldInterval := self selectionInterval. clickPoint := evt cursorPoint. b := paragraph characterBlockAtPoint: clickPoint. (paragraph clickAt: clickPoint for: model controller: self) ifTrue: [ self markBlock: b. self pointBlock: b. evt hand releaseKeyboardFocus: self. ^ self ]. evt shiftPressed ifFalse: [ self closeTypeIn. self markBlock: b. + self pointBlock: b ] + ifTrue: [ + self closeTypeIn. + self mouseMove: evt ]. + self storeSelectionInParagraph! - self pointBlock: b ]! |
Free forum by Nabble | Edit this page |