viewSelector: don't process key presses from capture-event

Rather than connecting to stage::capture-event and then trying to
guess whether or not a given key-press should be handled by us or not,
handle the end-search-on-Escape case from entry::key-press-event
(since it only makes sense when the entry is focused anyway) and the
start-search-on-printable-key case from stage::key-press-event (which
will only get the events that no other actor wanted for itself).

Similarly, do exit-overview-on-Escape and switch-panes cases from
stage::key-press-event, rather than
viewSelector.actor::key-press-event, so that they will work correctly
even if the keyboard focus is somewhere else. (Also fix a longstanding
bug in the pane-switching code, which was supposed to be disabled when
a search was active, but was checking a non-existent variable.)

https://bugzilla.gnome.org/show_bug.cgi?id=642502
This commit is contained in:
Dan Winship
2011-02-16 13:27:05 -05:00
parent 3755783d41
commit d5735496af
2 changed files with 54 additions and 81 deletions

View File

@ -513,7 +513,7 @@ Overview.prototype = {
if (this._shown)
return;
// Do this manually instead of using _syncInputMode, to handle failure
if (!Main.pushModal(this.viewSelector.actor))
if (!Main.pushModal(this._group))
return;
this._modal = true;
this._animateVisible();