From 57a4ad2d000628473293171293083ab54777e08f Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Sun, 30 Jan 2011 20:25:00 -0500 Subject: [PATCH] Don't check for Workspaces.WindowClone for window drops When checking the type of a DND source, instead of checking 'instanceof Workspaces.WindowClone' accept any actor with realWindow and metaWindow properties. This will be useful to support a separate type of actor dragged from workspace thumbnails. https://bugzilla.gnome.org/show_bug.cgi?id=640996 --- js/ui/appDisplay.js | 2 +- js/ui/dash.js | 8 ++++---- js/ui/workspace.js | 2 +- js/ui/workspacesView.js | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 6cefd6496..16e980695 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -630,7 +630,7 @@ AppIconMenu.prototype = { }, _findMetaWindowForActor: function (actor) { - if (actor._delegate instanceof Workspace.WindowClone) + if (actor._delegate.metaWindow) return actor._delegate.metaWindow; else if (actor.get_meta_window) return actor.get_meta_window(); diff --git a/js/ui/dash.js b/js/ui/dash.js index 7e6ce1d53..0ddae0b2c 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -54,7 +54,7 @@ RemoveFavoriteIcon.prototype = { if (source instanceof AppDisplay.AppWellIcon) { let appSystem = Shell.AppSystem.get_default(); app = appSystem.get_app(source.getId()); - } else if (source instanceof Workspace.WindowClone) { + } else if (source.metaWindow) { let tracker = Shell.WindowTracker.get_default(); app = tracker.get_window_app(source.metaWindow); } @@ -148,7 +148,7 @@ Dash.prototype = { let app = null; if (dragEvent.source instanceof AppDisplay.AppWellIcon) app = this._appSystem.get_app(dragEvent.source.getId()); - else if (dragEvent.source instanceof Workspace.WindowClone) + else if (dragEvent.source.metaWindow) app = this._tracker.get_window_app(dragEvent.source.metaWindow); else return DND.DragMotionResult.CONTINUE; @@ -265,7 +265,7 @@ Dash.prototype = { let app = null; if (source instanceof AppDisplay.AppWellIcon) app = this._appSystem.get_app(source.getId()); - else if (source instanceof Workspace.WindowClone) + else if (source.metaWindow) app = this._tracker.get_window_app(source.metaWindow); // Don't allow favoriting of transient apps @@ -316,7 +316,7 @@ Dash.prototype = { let app = null; if (source instanceof AppDisplay.AppWellIcon) { app = this._appSystem.get_app(source.getId()); - } else if (source instanceof Workspace.WindowClone) { + } else if (source.metaWindow) { app = this._tracker.get_window_app(source.metaWindow); } diff --git a/js/ui/workspace.js b/js/ui/workspace.js index cf3feb5c9..e16c360a7 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -1402,7 +1402,7 @@ Workspace.prototype = { }, acceptDrop : function(source, actor, x, y, time) { - if (source instanceof WindowClone) { + if (source.realWindow) { let win = source.realWindow; if (this._isMyWindow(win)) return false; diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index b1fc76f6b..540ac4914 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -264,7 +264,7 @@ WorkspacesView.prototype = { }, _handleDragOverNewWorkspace: function(source, dropActor, x, y, time) { - if (source instanceof Workspace.WindowClone) + if (source.realWindow) return DND.DragMotionResult.MOVE_DROP; if (source.shellWorkspaceLaunch) return DND.DragMotionResult.COPY_DROP;