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

Function insertWindow

tiling.js:3994–4256  ·  view source on GitHub ↗
(metaWindow, options = {})

Source from the content-addressed store, hash-verified

3992 created to ensure that the WindowActor exists.
3993*/
3994export function insertWindow(metaWindow, options = {}) {
3995 const existing = options?.existing ?? false;
3996 const dropping = options?.dropping ?? false;
3997 const dropCallback = options?.dropCallback ?? function() {};
3998
3999 // Add newly created windows to the space being previewed
4000 if (!existing &&
4001 !metaWindow.is_on_all_workspaces() &&
4002 metaWindow.get_workspace() !== spaces.selectedSpace.workspace) {
4003 metaWindow.redirected = true;
4004 metaWindow.change_workspace(spaces.selectedSpace.workspace);
4005 return;
4006 }
4007
4008 const connectSizeChanged = tiled => {
4009 if (tiled) {
4010 animateWindow(metaWindow);
4011 }
4012 addResizeHandler(metaWindow);
4013 addPositionHandler(metaWindow);
4014
4015 delete metaWindow.unmapped;
4016 };
4017
4018 const actor = metaWindow.get_compositor_private();
4019
4020 let overwriteSpace;
4021 if (!existing) {
4022 /**
4023 * Note: Can't trust global.display.focus_window to determine currently focused window.
4024 * The mru is more flexible. (global.display.focus_window does not always agree with mru[0]).
4025 */
4026 let mru = display.get_tab_list(Meta.TabList.NORMAL_ALL, null);
4027 let focusWindow = mru[0];
4028
4029 if (focusWindow === metaWindow) {
4030 focusWindow = mru[1];
4031 }
4032
4033 let addToScratch = false;
4034
4035 let winprop = Settings.find_winprop(metaWindow);
4036 if (winprop) {
4037 if (winprop.oneshot) {
4038 Settings.winprops.splice(Settings.winprops.indexOf(winprop), 1);
4039 }
4040 if (winprop.scratch_layer) {
4041 console.debug("#winprops", `Move ${metaWindow?.title} to scratch`);
4042 addToScratch = true;
4043 }
4044
4045 // pass winprop properties to metaWindow
4046 metaWindow.preferredWidth = winprop.preferredWidth;
4047
4048 overwriteSpace = winprop.spaceIndex;
4049 if (overwriteSpace !== undefined) {
4050 if (typeof overwriteSpace !== "number") {
4051 console.error("#winprops", `${overwriteSpace} is not a valid index. Ignoring.`);

Callers 3

window_createdMethod · 0.85
add_handlerFunction · 0.85
takeWindowFunction · 0.85

Calls 15

connectSizeChangedFunction · 0.85
animateWindowFunction · 0.85
callbackOnActorShowFunction · 0.85
showWindowFunction · 0.85
add_filterFunction · 0.85
isWindowAnimatingFunction · 0.85
isMaximizedFunction · 0.85
unmaximizeFunction · 0.85
focus_handlerFunction · 0.85

Tested by

no test coverage detected