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:
parent
b48a7d5cfd
commit
575ab0d609
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user