Compare commits
	
		
			3 Commits
		
	
	
		
			wip/exalm/
			...
			gbsneto/co
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | d6345a5c8b | ||
|   | 628b34e96f | ||
|   | 5743b52ec8 | 
| @@ -28,14 +28,20 @@ var AppIconMode = { | ||||
| function _createWindowClone(window, size) { | ||||
|     let [width, height] = window.get_size(); | ||||
|     let scale = Math.min(1.0, size / width, size / height); | ||||
|     return new Clutter.Clone({ source: window, | ||||
|                                width: width * scale, | ||||
|                                height: height * scale, | ||||
|                                x_align: Clutter.ActorAlign.CENTER, | ||||
|                                y_align: Clutter.ActorAlign.CENTER, | ||||
|                                // usual hack for the usual bug in ClutterBinLayout... | ||||
|                                x_expand: true, | ||||
|                                y_expand: true }); | ||||
|  | ||||
|     let cloneWidth = size; | ||||
|     let cloneHeight = size; | ||||
|  | ||||
|     if (width > height) | ||||
|         cloneHeight = size * (height / width); | ||||
|     else | ||||
|         cloneWidth = size * (width / height); | ||||
|  | ||||
|     return new Clutter.Actor({ | ||||
|         content: window.content, | ||||
|         width: cloneWidth, | ||||
|         height: cloneHeight, | ||||
|     }); | ||||
| } | ||||
|  | ||||
| function getWindows(workspace) { | ||||
| @@ -411,7 +417,7 @@ class CyclerHighlight extends St.Widget { | ||||
|         super._init({ layout_manager: new Clutter.BinLayout() }); | ||||
|         this._window = null; | ||||
|  | ||||
|         this._clone = new Clutter.Clone(); | ||||
|         this._clone = new Clutter.Actor(); | ||||
|         this.add_actor(this._clone); | ||||
|  | ||||
|         this._highlight = new St.Widget({ style_class: 'cycler-highlight' }); | ||||
| @@ -433,8 +439,8 @@ class CyclerHighlight extends St.Widget { | ||||
|  | ||||
|         this._window = w; | ||||
|  | ||||
|         if (this._clone.source) | ||||
|             this._clone.source.sync_visibility(); | ||||
|         if (this._clone.content) | ||||
|             this._clone.content.window_actor.sync_visibility(); | ||||
|  | ||||
|         let windowActor = this._window | ||||
|             ? this._window.get_compositor_private() : null; | ||||
| @@ -442,7 +448,7 @@ class CyclerHighlight extends St.Widget { | ||||
|         if (windowActor) | ||||
|             windowActor.hide(); | ||||
|  | ||||
|         this._clone.source = windowActor; | ||||
|         this._clone.content = windowActor.content; | ||||
|     } | ||||
|  | ||||
|     _onAllocationChanged() { | ||||
|   | ||||
| @@ -400,8 +400,12 @@ var Overview = class { | ||||
|             return null; | ||||
|  | ||||
|         let window = windows[0]; | ||||
|         let clone = new Clutter.Clone({ source: window, | ||||
|                                         x: window.x, y: window.y }); | ||||
|         let clone = new Clutter.Actor({ | ||||
|             source: window.content, | ||||
|             request_mode: Clutter.RequestMode.CONTENT_SIZE, | ||||
|             x: window.x, | ||||
|             y: window.y, | ||||
|         }); | ||||
|         clone.source.connect('destroy', () => { | ||||
|             clone.destroy(); | ||||
|         }); | ||||
|   | ||||
| @@ -84,7 +84,7 @@ class WindowCloneLayout extends Clutter.LayoutManager { | ||||
|             if (child == container._windowClone) | ||||
|                 realWindow = container.realWindow; | ||||
|             else | ||||
|                 realWindow = child.source; | ||||
|                 realWindow = child.content.window_actor; | ||||
|  | ||||
|             child.allocate(this._makeBoxForWindow(realWindow.meta_window), | ||||
|                            flags); | ||||
| @@ -110,7 +110,7 @@ var WindowClone = GObject.registerClass({ | ||||
|         this.metaWindow._delegate = this; | ||||
|         this._workspace = workspace; | ||||
|  | ||||
|         this._windowClone = new Clutter.Clone({ source: realWindow }); | ||||
|         this._windowClone = new Clutter.Actor({ content: realWindow.content }); | ||||
|         // We expect this to be used for all interaction rather than | ||||
|         // this._windowClone; as the former is reactive and the latter | ||||
|         // is not, this just works for most cases. However, for DND all | ||||
| @@ -197,7 +197,7 @@ var WindowClone = GObject.registerClass({ | ||||
|         // Delete all windows, starting from the bottom-most (most-modal) one | ||||
|         let windows = this.get_children(); | ||||
|         for (let i = windows.length - 1; i >= 1; i--) { | ||||
|             let realWindow = windows[i].source; | ||||
|             let realWindow = windows[i].content.window_actor; | ||||
|             let metaWindow = realWindow.meta_window; | ||||
|  | ||||
|             metaWindow.delete(global.get_current_time()); | ||||
| @@ -229,7 +229,7 @@ var WindowClone = GObject.registerClass({ | ||||
|     } | ||||
|  | ||||
|     _doAddAttachedDialog(metaWin, realWin) { | ||||
|         let clone = new Clutter.Clone({ source: realWin }); | ||||
|         let clone = new Clutter.Actor({ content: realWin.content }); | ||||
|         clone._sizeChangedId = metaWin.connect('size-changed', | ||||
|             this._onMetaWindowSizeChanged.bind(this)); | ||||
|         clone._posChangedId = metaWin.connect('position-changed', | ||||
| @@ -282,7 +282,7 @@ var WindowClone = GObject.registerClass({ | ||||
|             if (child == this._windowClone) | ||||
|                 realWindow = this.realWindow; | ||||
|             else | ||||
|                 realWindow = child.source; | ||||
|                 realWindow = child.content.window_actor; | ||||
|  | ||||
|             let metaWindow = realWindow.meta_window; | ||||
|             rect = rect.union(metaWindow.get_frame_rect()); | ||||
| @@ -327,7 +327,7 @@ var WindowClone = GObject.registerClass({ | ||||
|             if (child == this._windowClone) | ||||
|                 realWindow = this.realWindow; | ||||
|             else | ||||
|                 realWindow = child.source; | ||||
|                 realWindow = child.content.window_actor; | ||||
|  | ||||
|             realWindow.meta_window.disconnect(child._sizeChangedId); | ||||
|             realWindow.meta_window.disconnect(child._posChangedId); | ||||
|   | ||||
| @@ -53,7 +53,8 @@ var WindowClone = GObject.registerClass({ | ||||
|     } | ||||
| }, class WindowClone extends Clutter.Actor { | ||||
|     _init(realWindow) { | ||||
|         let clone = new Clutter.Clone({ source: realWindow }); | ||||
|         let clone = new Clutter.Actor({ content: realWindow.content, | ||||
|                                         request_mode: Clutter.RequestMode.CONTENT_SIZE }); | ||||
|         super._init({ | ||||
|             layout_manager: new PrimaryActorLayout(clone), | ||||
|             reactive: true | ||||
| @@ -137,7 +138,8 @@ var WindowClone = GObject.registerClass({ | ||||
|     } | ||||
|  | ||||
|     _doAddAttachedDialog(metaDialog, realDialog) { | ||||
|         let clone = new Clutter.Clone({ source: realDialog }); | ||||
|         let clone = new Clutter.Actor({ content: realDialog.content, | ||||
|                                         request_mode: Clutter.RequestMode.CONTENT_SIZE }); | ||||
|         this._updateDialogPosition(realDialog, clone); | ||||
|  | ||||
|         clone._updateId = realDialog.connect('notify::position', dialog => { | ||||
| @@ -163,7 +165,7 @@ var WindowClone = GObject.registerClass({ | ||||
|  | ||||
|     _disconnectSignals() { | ||||
|         this.get_children().forEach(child => { | ||||
|             let realWindow = child.source; | ||||
|             let realWindow = child.content.window_actor; | ||||
|  | ||||
|             realWindow.disconnect(child._updateId); | ||||
|             realWindow.disconnect(child._destroyId); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user