MCPcopy
hub / github.com/paperwm/PaperWM / registerWindow

Function registerWindow

tiling.js:3451–3589  ·  view source on GitHub ↗
(metaWindow)

Source from the content-addressed store, hash-verified

3449}
3450
3451export function registerWindow(metaWindow) {
3452 if (is_override_redirect(metaWindow)) {
3453 return false;
3454 }
3455
3456 if (metaWindow.clone) {
3457 // Can now happen when setting session-modes to "unlock-dialog" or
3458 // resetting gnome-shell in-place (e.g. on X11)
3459 console.warn("window already registered", metaWindow.title);
3460 return false;
3461 }
3462
3463 const actor = metaWindow.get_compositor_private();
3464 const cloneActor = new Clutter.Clone({ source: actor });
3465 const clone = new Clutter.Actor();
3466 clone.add_child(cloneActor);
3467
3468 // create shade
3469 const shade = new St.Widget({ style_class: 'paperwm-clone-shade' });
3470 // default opacity
3471 clone.add_child(shade);
3472 Utils.actor_raise(shade);
3473 shade.opacity = 0;
3474 shade.hide();
3475
3476 metaWindow.clone = clone;
3477 metaWindow.clone.cloneActor = cloneActor;
3478 metaWindow.clone.shade = shade;
3479
3480 clone.targetX = 0;
3481 clone.meta_window = metaWindow;
3482
3483 signals.connect(metaWindow, "focus", (metaWindow, user_data) => {
3484 focus_handler(metaWindow, user_data);
3485 });
3486 signals.connect(metaWindow, 'size-changed', allocateClone);
3487 // Note: runs before gnome-shell's minimize handling code
3488 signals.connect(metaWindow, 'notify::fullscreen', () => {
3489 // if window is in a column, expel it
3490 barf(metaWindow, metaWindow);
3491
3492 /**
3493 * Set fullscreen windows to "always on top". This is to ensure
3494 * that the fullscreened window is "above" modal windows.
3495 */
3496 if (metaWindow.fullscreen) {
3497 // get current "above" value (for later restoring)
3498 metaWindow._fullscreen_above = metaWindow.is_above();
3499 metaWindow.make_above();
3500 }
3501 else if (metaWindow._fullscreen_above !== null) {
3502 if (!metaWindow._fullscreen_above) {
3503 metaWindow.unmake_above();
3504 }
3505 delete metaWindow._fullscreen_above;
3506 }
3507
3508 spaces.spaceOfWindow(metaWindow)?.setSpaceTopbarElementsVisible(true);

Callers 2

initMethod · 0.85
window_createdMethod · 0.85

Calls 15

is_override_redirectFunction · 0.85
focus_handlerFunction · 0.85
barfFunction · 0.85
minimizeHandlerFunction · 0.85
isMaximizedFunction · 0.85
unmaximizeFunction · 0.85
showHandlerFunction · 0.85
resizeHandlerFunction · 0.85
isTiledFunction · 0.85
connectMethod · 0.80

Tested by

no test coverage detected