diff -r a6db617369e9 -r d9bc25103826 ListView.st --- a/ListView.st Tue Jul 19 21:45:20 2016 +0200 +++ b/ListView.st Wed Jul 20 10:11:27 2016 +0200 @@ -2315,8 +2315,9 @@ "a key was pressed - handle page-keys here" + #BeginOfText #EndOfText + #ScrollUp #ScrollDown + #ZoomIn #ZoomOut)> |n| (key == #PreviousPage) ifTrue: [^ self pageUp]. @@ -2328,17 +2329,24 @@ (key == #EndOfText) ifTrue:[^ self scrollToBottom]. (key == #ScrollUp) ifTrue:[ - n := 1 + (self sensor compressKeyPressEventsWithKey:#ScrollUp). - ^ self scrollUp:n + n := 1 + (self sensor compressKeyPressEventsWithKey:#ScrollUp). + ^ self scrollUp:n ]. (key == #ScrollDown) ifTrue:[ - n := 1 + (self sensor compressKeyPressEventsWithKey:#ScrollDown). - ^ self scrollDown:n + n := 1 + (self sensor compressKeyPressEventsWithKey:#ScrollDown). + ^ self scrollDown:n ]. + (key == #ZoomIn or:[key == #ZoomOut]) ifTrue:[ self keyboardZoom:(key == #ZoomIn) ]. super keyPress:key x:x y:y ! +keyboardZoom:larger + "CTRL+/- zoom action" + + self fontLargerOrSmaller:larger +! + mapped self stopAutoScroll. super mapped @@ -2351,16 +2359,16 @@ amount > 0 ifTrue:[ "/ delta := 1. mul := 1. - delta := 0. mul := 1.2. + delta := 0. mul := 1.05. ] ifFalse:[ "/ delta := -1. mul := 1. - delta := 0. mul := 0.8. + delta := 0. mul := 0.95. ]. font := gc font. font sizeUnit ~~ #px ifTrue:[ oldSize := font size. - newSize := ((oldSize + delta)* mul) max:2. + newSize := (((oldSize + delta)* mul) max:4) min:100. newSize ~= oldSize ifTrue:[ self font:(font asSize:newSize). ]