(focusedWindowCallback = _focusedWindow => { })
| 1367 | } |
| 1368 | |
| 1369 | moveDone(focusedWindowCallback = _focusedWindow => { }) { |
| 1370 | if (this.cloneContainer.x !== this.targetX || |
| 1371 | this.actor.y !== 0 || |
| 1372 | Navigator.navigating || inPreview || |
| 1373 | Main.overview.visible || |
| 1374 | // Block when we're carrying a window in dnd |
| 1375 | (inGrab && inGrab.window) |
| 1376 | ) { |
| 1377 | return; |
| 1378 | } |
| 1379 | |
| 1380 | this.visible = []; |
| 1381 | const monitor = this.monitor; |
| 1382 | this.getWindows().forEach(w => { |
| 1383 | let actor = w.get_compositor_private(); |
| 1384 | if (!actor) |
| 1385 | return; |
| 1386 | |
| 1387 | let placeable = this.isPlaceable(w); |
| 1388 | if (placeable) |
| 1389 | this.visible.push(w); |
| 1390 | |
| 1391 | // Guard against races between move_to and layout |
| 1392 | // eg. moving can kill ongoing resize on wayland |
| 1393 | if (Easer.isEasing(w.clone)) |
| 1394 | return; |
| 1395 | |
| 1396 | let unMovable = w.fullscreen || isMaximized(w); |
| 1397 | if (unMovable) |
| 1398 | return; |
| 1399 | |
| 1400 | let f = w.get_frame_rect(); |
| 1401 | let x = this.visibleX(w); |
| 1402 | let y = this.visibleY(w); |
| 1403 | x = Math.max(stack_margin - f.width, x); |
| 1404 | x = Math.min(this.width - stack_margin, x); |
| 1405 | x += monitor.x; |
| 1406 | // let b = w.get_frame_rect(); |
| 1407 | if (f.x !== x || f.y !== y) { |
| 1408 | w.move_frame(true, x, y); |
| 1409 | } |
| 1410 | }); |
| 1411 | |
| 1412 | this.visible.forEach(w => { |
| 1413 | if (Easer.isEasing(w.clone)) |
| 1414 | return; |
| 1415 | this.applyClipToClone(w); |
| 1416 | showWindow(w); |
| 1417 | }); |
| 1418 | |
| 1419 | this._floating.forEach(showWindow); |
| 1420 | |
| 1421 | this.fixOverlays(); |
| 1422 | |
| 1423 | // See startAnimate |
| 1424 | Main.layoutManager.untrackChrome(this.background); |
| 1425 | |
| 1426 | this._isAnimating = false; |
no test coverage detected