Compare commits
	
		
			2 Commits
		
	
	
		
			3.31.90
			...
			wip/carlos
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					c8ea06be26 | ||
| 
						 | 
					d734b117e0 | 
@@ -110,6 +110,7 @@ var WindowClone = new Lang.Class({
 | 
			
		||||
        this.metaWindow = realWindow.meta_window;
 | 
			
		||||
        this.metaWindow._delegate = this;
 | 
			
		||||
        this._workspace = workspace;
 | 
			
		||||
        this._attachedDialogs = [];
 | 
			
		||||
 | 
			
		||||
        this._windowClone = new Clutter.Clone({ source: realWindow });
 | 
			
		||||
        // We expect this.actor to be used for all interaction rather than
 | 
			
		||||
@@ -208,6 +209,12 @@ var WindowClone = new Lang.Class({
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    addDialog(win) {
 | 
			
		||||
        let realWin = win.get_compositor_private();
 | 
			
		||||
        if (this._attachedDialogs.includes(realWin))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        this._attachedDialogs.push(realWin);
 | 
			
		||||
 | 
			
		||||
        let parent = win.get_transient_for();
 | 
			
		||||
        while (parent.is_attached_dialog())
 | 
			
		||||
            parent = parent.get_transient_for();
 | 
			
		||||
@@ -225,7 +232,7 @@ var WindowClone = new Lang.Class({
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    hasAttachedDialogs() {
 | 
			
		||||
        return this.actor.get_n_children() > 1;
 | 
			
		||||
        return this._attachedDialogs.length > 1;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _doAddAttachedDialog(metaWin, realWin) {
 | 
			
		||||
@@ -235,6 +242,9 @@ var WindowClone = new Lang.Class({
 | 
			
		||||
        clone._posChangedId = metaWin.connect('position-changed',
 | 
			
		||||
            this._onMetaWindowSizeChanged.bind(this));
 | 
			
		||||
        clone._destroyId = realWin.connect('destroy', () => {
 | 
			
		||||
            let idx = this._attachedDialogs.indexOf(realWin);
 | 
			
		||||
            this._attachedDialogs.splice(idx, 1);
 | 
			
		||||
 | 
			
		||||
            clone.destroy();
 | 
			
		||||
 | 
			
		||||
            this._onMetaWindowSizeChanged();
 | 
			
		||||
 
 | 
			
		||||
@@ -151,7 +151,7 @@ var WindowClone = new Lang.Class({
 | 
			
		||||
 | 
			
		||||
    _doAddAttachedDialog(metaDialog, realDialog) {
 | 
			
		||||
        let clone = new Clutter.Clone({ source: realDialog });
 | 
			
		||||
        this._updateDialogPosition(realDialog, clone);
 | 
			
		||||
        this._updateDialogPosition(metaDialog, clone);
 | 
			
		||||
 | 
			
		||||
        clone._updateId = realDialog.connect('notify::position', dialog => {
 | 
			
		||||
            this._updateDialogPosition(dialog, clone);
 | 
			
		||||
@@ -162,8 +162,7 @@ var WindowClone = new Lang.Class({
 | 
			
		||||
        this.actor.add_child(clone);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _updateDialogPosition(realDialog, cloneDialog) {
 | 
			
		||||
        let metaDialog = realDialog.meta_window;
 | 
			
		||||
    _updateDialogPosition(metaDialog, cloneDialog) {
 | 
			
		||||
        let dialogRect = metaDialog.get_frame_rect();
 | 
			
		||||
        let rect = this.metaWindow.get_frame_rect();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user