Hook up activate on search entry to launch if only one app displayed

svn path=/trunk/; revision=90
This commit is contained in:
Colin Walters 2008-11-28 22:05:09 +00:00
parent fae6839eb8
commit 10d5aaca83
2 changed files with 44 additions and 6 deletions

View File

@ -63,7 +63,7 @@ _init: function(appinfo, width) {
width: width,
height: APPDISPLAY_HEIGHT});
this._group.connect('button-press-event', function(group, e) {
me.emit('launch');
me.emit('activate');
return true;
});
this._bg = new Clutter.Rectangle({ color: APPDISPLAY_BACKGROUND_COLOR,
@ -102,6 +102,12 @@ _init: function(appinfo, width) {
y: this._name.height + 4})
this._group.add_actor(this._comment);
this.actor = this._group;
},
launch: function() {
this._appinfo.launch([], null);
},
appinfo: function () {
return this._appinfo;
}
}
Signals.addSignalMethods(AppDisplayItem.prototype);
@ -155,6 +161,7 @@ _removeItem: function(appid) {
let group = item.actor;
group.destroy();
delete this._displayed[appid];
},
_removeAll: function() {
@ -180,11 +187,11 @@ _filterAdd: function(appid) {
let appinfo = this._appset[appid];
let name = appinfo.get_name();
let index = 0; for (i in this._displayed) { index += 1; }
let index = 0; for (i in this._displayed) { index += 1; };
let appdisplay = new AppDisplayItem(appinfo, this._width);
appdisplay.connect('launch', function() {
appinfo.launch([], null);
appdisplay.connect('activate', function() {
appdisplay.launch();
me.emit('activated');
});
let group = appdisplay.actor;
@ -256,6 +263,27 @@ setSearch: function(text) {
this._redisplay();
},
searchActivate: function() {
let displayedActors = this._grid.get_children();
if (displayedActors.length != 1)
return;
let selectedActor = displayedActors[0];
let selectedMenuItem = null;
for (appid in this._displayed) {
let item = this._displayed[appid];
if (item.actor == selectedActor) {
selectedMenuItem = item;
break;
}
}
log("selected " + selectedMenuItem);
if (!selectedMenuItem)
return;
selectedMenuItem.launch();
this.emit('activated');
},
show: function() {
this._redisplay();
this._grid.show();

View File

@ -82,15 +82,25 @@ _init : function(width) {
this._group.add_actor(this._searchEntry);
global.stage.set_key_focus(this._searchEntry);
this._searchQueued = false;
this._searchEntry.connect('notify::text', function (se, prop) {
this._searchActive = false;
this._searchEntry.connect('notify::text', function (se, prop) {
if (me._searchQueued)
return;
Mainloop.timeout_add(250, function() {
let text = me._searchEntry.text;
me._searchQueued = false;
me._appdisplay.setSearch(me._searchEntry.text);
me._searchActive = text != '';
me._appdisplay.setSearch(text);
return false;
});
});
this._searchEntry.connect('activate', function (se) {
log("activate " + me._searchActive);
if (!me._searchActive)
return false;
me._appdisplay.searchActivate();
return true;
});
let appsText = new Clutter.Label({ color: SIDESHOW_TEXT_COLOR,
font_name: "Sans Bold 14px",