searchDisplay: simplify drag actor source code

Make sure this._dragActorSource is always set from _init() to siplify
code.

https://bugzilla.gnome.org/show_bug.cgi?id=681797
This commit is contained in:
Cosimo Cecchi 2012-12-10 13:05:58 -05:00
parent b48a7d5cfd
commit 575ab0d609

View File

@ -28,9 +28,10 @@ const SearchResult = new Lang.Class({
x_align: St.Align.START, x_align: St.Align.START,
y_fill: true }); y_fill: true });
this.actor._delegate = this; this.actor._delegate = this;
this._dragActorSource = null;
let content = provider.createResultActor(metaInfo, terms); let content = provider.createResultActor(metaInfo, terms);
let dragSource = null;
if (content == null) { if (content == null) {
content = new St.Bin({ style_class: 'search-result-content', content = new St.Bin({ style_class: 'search-result-content',
reactive: true, reactive: true,
@ -40,11 +41,11 @@ const SearchResult = new Lang.Class({
let icon = new IconGrid.BaseIcon(this.metaInfo['name'], let icon = new IconGrid.BaseIcon(this.metaInfo['name'],
{ createIcon: this.metaInfo['createIcon'] }); { createIcon: this.metaInfo['createIcon'] });
content.set_child(icon.actor); content.set_child(icon.actor);
this._dragActorSource = icon.icon;
content.label_actor = icon.label; content.label_actor = icon.label;
dragSource = icon.icon;
} else { } else {
if (content._delegate && content._delegate.getDragActorSource) if (content._delegate && content._delegate.getDragActorSource)
this._dragActorSource = content._delegate.getDragActorSource(); dragSource = content._delegate.getDragActorSource();
} }
this._content = content; this._content = content;
this.actor.set_child(content); this.actor.set_child(content);
@ -64,6 +65,11 @@ const SearchResult = new Lang.Class({
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.endItemDrag(this); Main.overview.endItemDrag(this);
})); }));
if (!dragSource)
// not exactly right, but alignment problems are hard to notice
dragSource = content;
this._dragActorSource = dragSource;
}, },
setSelected: function(selected) { setSelected: function(selected) {
@ -83,10 +89,7 @@ const SearchResult = new Lang.Class({
}, },
getDragActorSource: function() { getDragActorSource: function() {
if (this._dragActorSource)
return this._dragActorSource; return this._dragActorSource;
// not exactly right, but alignment problems are hard to notice
return this._content;
}, },
getDragActor: function(stageX, stageY) { getDragActor: function(stageX, stageY) {