diff --git a/multi-monitors-add-on@spin83/mmpanel.js b/multi-monitors-add-on@spin83/mmpanel.js index 521a79d..d08c019 100644 --- a/multi-monitors-add-on@spin83/mmpanel.js +++ b/multi-monitors-add-on@spin83/mmpanel.js @@ -540,6 +540,23 @@ var MultiMonitorsPanel = (() => { } return indicator; } + + _getDraggableWindowForPosition(stageX) { + let workspaceManager = global.workspace_manager; + let workspace = workspaceManager.get_active_workspace(); + let allWindowsByStacking = global.display.sort_windows_by_stacking( + workspace.list_windows() + ).reverse(); + + return allWindowsByStacking.find(metaWindow => { + let rect = metaWindow.get_frame_rect(); + return metaWindow.get_monitor() == this.monitorIndex && + metaWindow.showing_on_its_workspace() && + metaWindow.get_window_type() != Meta.WindowType.DESKTOP && + metaWindow.maximized_vertically && + stageX > rect.x && stageX < rect.x + rect.width; + }); + } }; MultiMonitors.copyClass(Panel.Panel, MultiMonitorsPanel); return GObject.registerClass(MultiMonitorsPanel);