appDisplay: Check instanceof AppIcon using constructor inside the class

It seems like some recent change (maybe the move to a ClutterActor
subclass for AppIcon) broke the check whether the drag source is an
instance of AppIcon. While the drag source indeed is an AppIcon and
everything else works correctly, the check still returns false, which
breaks the creation of new folders using DnD.

Theoretically it makes sense that this doesn't work, because we're
assigning AppIcon using `var AppIcon =` and that will only get set after
`GObject.register_class()` finished, so accessing `AppIcon` inside that
function seems risky and is probably wrong.

Fix this by comparing to `this.constructor` instead of `AppIcon`, which
works fine and we know for sure exists at this point.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/794
This commit is contained in:
Jonas Dreßler 2019-10-29 23:47:55 +01:00 committed by Florian Müllner
parent 8cb819926a
commit 5687035c9b

View File

@ -2372,7 +2372,7 @@ var AppIcon = GObject.registerClass({
let view = _getViewFromIcon(source); let view = _getViewFromIcon(source);
return source != this && return source != this &&
(source instanceof AppIcon) && (source instanceof this.constructor) &&
(view instanceof AllView); (view instanceof AllView);
} }