DashDND: Don't allow positioning before or after self
Don't allow the icon to be dropped immediately next to itself. https://bugzilla.gnome.org/show_bug.cgi?id=637104
This commit is contained in:
parent
ce2efc6a67
commit
cff503922c
@ -273,7 +273,11 @@ Dash.prototype = {
|
|||||||
if (app == null || app.is_transient())
|
if (app == null || app.is_transient())
|
||||||
return DND.DragMotionResult.NO_DROP;
|
return DND.DragMotionResult.NO_DROP;
|
||||||
|
|
||||||
let numFavorites = AppFavorites.getAppFavorites().getFavorites().length;
|
let favorites = AppFavorites.getAppFavorites().getFavorites();
|
||||||
|
let numFavorites = favorites.length;
|
||||||
|
|
||||||
|
let favPos = favorites.indexOf(app);
|
||||||
|
|
||||||
let numChildren = this._box.get_children().length;
|
let numChildren = this._box.get_children().length;
|
||||||
let boxHeight = this._box.height;
|
let boxHeight = this._box.height;
|
||||||
|
|
||||||
@ -291,15 +295,16 @@ Dash.prototype = {
|
|||||||
this._dragPlaceholderPos = pos;
|
this._dragPlaceholderPos = pos;
|
||||||
if (this._dragPlaceholder)
|
if (this._dragPlaceholder)
|
||||||
this._dragPlaceholder.destroy();
|
this._dragPlaceholder.destroy();
|
||||||
|
|
||||||
|
// Don't allow positioning before or after self
|
||||||
|
if (favPos != -1 && (pos == favPos || pos == favPos + 1))
|
||||||
|
return DND.DragMotionResult.CONTINUE;
|
||||||
|
|
||||||
this._dragPlaceholder = new St.Bin({ style_class: 'dash-placeholder' });
|
this._dragPlaceholder = new St.Bin({ style_class: 'dash-placeholder' });
|
||||||
this._box.insert_actor(this._dragPlaceholder, pos);
|
this._box.insert_actor(this._dragPlaceholder, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
let id = app.get_id();
|
let srcIsFavorite = (favPos != -1);
|
||||||
|
|
||||||
let favorites = AppFavorites.getAppFavorites().getFavoriteMap();
|
|
||||||
|
|
||||||
let srcIsFavorite = (id in favorites);
|
|
||||||
|
|
||||||
if (srcIsFavorite)
|
if (srcIsFavorite)
|
||||||
return DND.DragMotionResult.MOVE_DROP;
|
return DND.DragMotionResult.MOVE_DROP;
|
||||||
|
Loading…
Reference in New Issue
Block a user