mirror of
https://github.com/gosticks/PaperWM.git
synced 2026-10-06 11:56:54 +00:00
Connect to size-changed after initial placement and resize
This prevents the move_to call in `resizeHandler` leading to the wrong initial position in wayland.
This commit is contained in:
@@ -560,7 +560,7 @@ class Spaces extends Map {
|
||||
global.display.get_tab_list(Meta.TabList.NORMAL_ALL, null)
|
||||
.forEach(w => {
|
||||
registerWindow(w);
|
||||
signals.connect(w, 'size-changed', cloneSizeHandler);
|
||||
signals.connect(w, 'size-changed', resizeHandler);
|
||||
});
|
||||
|
||||
let spaceContainer = new Clutter.Actor({name: 'spaceContainer'});
|
||||
@@ -848,7 +848,6 @@ function registerWindow(metaWindow) {
|
||||
signals.connect(metaWindow, "focus", focus_wrapper);
|
||||
signals.connect(metaWindow, 'notify::minimized', minimizeWrapper);
|
||||
signals.connect(metaWindow, 'notify::fullscreen', fullscreenWrapper);
|
||||
signals.connect(metaWindow, 'size-changed', resizeHandler);
|
||||
signals.connect(actor, 'show', showWrapper);
|
||||
|
||||
signals.connect(actor, 'destroy', destroyHandler);
|
||||
@@ -858,14 +857,12 @@ function destroyHandler(actor) {
|
||||
signals.disconnect(actor);
|
||||
}
|
||||
|
||||
function cloneSizeHandler(metaWindow) {
|
||||
function resizeHandler(metaWindow) {
|
||||
// On wayland the clone size doesn't seem to update properly if the window
|
||||
// actor is hidden.
|
||||
let b = metaWindow.get_buffer_rect();
|
||||
metaWindow.clone.set_size(b.width, b.height);
|
||||
}
|
||||
|
||||
function resizeHandler(metaWindow) {
|
||||
let space = spaces.spaceOfWindow(metaWindow);
|
||||
if (metaWindow !== space.selectedWindow)
|
||||
return;
|
||||
@@ -1069,7 +1066,7 @@ function insertWindow(metaWindow, {existing}) {
|
||||
}
|
||||
|
||||
if (!add_filter(metaWindow)) {
|
||||
!existing && signals.connect(metaWindow, 'size-changed', cloneSizeHandler);
|
||||
!existing && signals.connect(metaWindow, 'size-changed', resizeHandler);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1108,7 +1105,10 @@ function insertWindow(metaWindow, {existing}) {
|
||||
scale_y: 1,
|
||||
time: 0.25,
|
||||
transition: 'easeInOutQuad',
|
||||
onComplete: () => signals.connect(metaWindow, 'size-changed', cloneSizeHandler)
|
||||
onComplete: () => {
|
||||
space.layout();
|
||||
signals.connect(metaWindow, 'size-changed', resizeHandler);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
clone.set_position(
|
||||
|
||||
Reference in New Issue
Block a user