Hi Jura,
I had a short look (kind of hard at the moment) and I noticed that Ctrl+tab was working to switch the focus around correctly, but maybe in an incorrect order. This could be fixed by adding the morphs at creation time in a different order. However, Ctrl+Shift+Tab
wasn't working :( And tab has no effect in the filter (neither focus change nor text input).
Your solution is a bit heavy handed for me, I was thinking of something more like:
searchWidget onKeyCombination: Character tab asKeyCombination do: [self giveFocusToPackage].
Don't forget that, as you're touching the focus tab order, you have a duty to make it complete (i.e. all widgets can be tabbed to starting from any widget).
Thierry
De : Pharo-dev [pharo-dev-bounces@lists.pharo.org] de la part de Juraj Kubelka [juraj.kubelka@gmail.com]
Date d'envoi : vendredi 27 d�cembre 2013 18:49
� : Pharo Development List
Objet : Re: [Pharo-dev] Nautilus: tab key change focus
Thanks for the advice.
I have just tried to add my own key stroke handling and I face interesting issue. The first time I enter the package filter input field, everything works. When I press down-key, it change focus to package list. But since then whenever I enter again the
filter, any key stroke change the focus back to package list. I do not see any glue right now. The code is like this:
buildPackageSearch
"It is an search dialog which filters package list"
searchWidget := SearchMorph new
model: self;
updateSelector: #packageSearchUpdate:;
ghostText: 'Type: Pkg1|^Pkg2|Pk.*Core$';
list: SharedValueHolder instance;
useSelectionIndex: false;
setIndexSelector: #packageSearchUpdate:;
keystrokeSelector: #packageSearchKeyStroke:;
yourself.
^ searchWidget
packageSearchKeyStroke: anEvent
(anEvent keyCharacter = Character arrowDown)
ifTrue: [ self giveFocusToPackage. ^ true ].
^ false
Thanks.
Jura