()
| 2947 | } |
| 2948 | |
| 2949 | initWorkspaceStack() { |
| 2950 | if (inPreview) { |
| 2951 | return; |
| 2952 | } |
| 2953 | |
| 2954 | inPreview = PreviewMode.STACK; |
| 2955 | |
| 2956 | // Always show the topbar when using the workspace stack |
| 2957 | Topbar.fixTopBar(); |
| 2958 | const scale = 0.9; |
| 2959 | let space = this.activeSpace; |
| 2960 | let mru = [...this.stack]; |
| 2961 | this.monitors.forEach(space => mru.splice(mru.indexOf(space), 1)); |
| 2962 | mru = [space, ...mru]; |
| 2963 | |
| 2964 | if (Main.panel.statusArea.appMenu) |
| 2965 | Main.panel.statusArea.appMenu.container.hide(); |
| 2966 | let monitor = space.monitor; |
| 2967 | this.selectedSpace = space; |
| 2968 | |
| 2969 | this.forEach(s => s.setSpaceTopbarElementsVisible(true)); |
| 2970 | let cloneParent = space.clip.get_parent(); |
| 2971 | mru.forEach((space, i) => { |
| 2972 | space.startAnimate(); |
| 2973 | |
| 2974 | if (space.length !== 0) { |
| 2975 | let scaleX = monitor.width / space.width; |
| 2976 | let scaleY = monitor.height / space.height; |
| 2977 | space.clip.set_scale(scaleX, scaleY); |
| 2978 | space.clip.set_position(monitor.x, monitor.y); |
| 2979 | } else { |
| 2980 | space.setMonitor(monitor); |
| 2981 | } |
| 2982 | |
| 2983 | Easer.removeEase(space.border); |
| 2984 | space.border.opacity = 255; |
| 2985 | space.border.show(); |
| 2986 | |
| 2987 | let h; |
| 2988 | if (i === 0) { |
| 2989 | h = 0; |
| 2990 | space.show(); |
| 2991 | } else if (i === 1) { |
| 2992 | h = StackPositions.up; |
| 2993 | space.show(); |
| 2994 | } else if (i === 2) { |
| 2995 | h = StackPositions.top; |
| 2996 | space.show(); |
| 2997 | } else { |
| 2998 | h = StackPositions.top; |
| 2999 | space.hide(); |
| 3000 | } |
| 3001 | |
| 3002 | space.actor.set_position(0, space.height * h); |
| 3003 | |
| 3004 | space.actor.scale_y = scale - i * 0.01; |
| 3005 | space.actor.scale_x = scale - i * 0.01; |
| 3006 |
no test coverage detected