Compare commits
	
		
			3 Commits
		
	
	
		
			3.35.3
			...
			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