Turning off and on monitor (using on monitor controller) makes floating all windows #472
Labels
No labels
A: maintenance
A: question
B: not applicable
B: not reproducible
B: resolved
C: multi-DPI
C: protocols
C: rendering
C: XWayland
Kind/Bug
Kind/Feature
Reviewed
Duplicate
Reviewed
Won't Fix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dwl/dwl#472
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Info
dwl version: dwl v0.4-45-g3c9742a-dirty
wlroots version: wlroots-0.16.2-r1
Description
I don't think there is anything left to add to this bug report I tried to get stacktrace of dwl using ssh but it doesn't seem to be related
Edit: doing the same using wlr-randr doesn't freezes the output
I was able to catch a stacktrace
gdb.txt
Can you check #474?
@sevz17 it doesn't freeze or crash anymore though there's another bug that turns all tiling windows into floating after turning on the monitor
You are using just one monitor, right?
yes
Can you check again? but with the two lines I added below
wlr_scene_node_reparentmoving two lines changes you made below
wlr_scene_node_reparentmade no differenceI see, I'm a bit busy rn.
I'll check in more detail asap.
@mortezadadgar, can you try #474 again?
same
I merged #474, as you said it does not fix the problem about the floating windows (but it's better than a segfault). This remains open until I figure out how to solve the problem.
more observations on toggle monitor:
now I'm getting a segmentation fault on new wlroots version
dwl version: dwl v0.5-60-ga5fcd31
wlroots version: 0.17.1-1
@sevz sorry forgot to tag your new account
@mortezadadgar, can you apply this diff and tell me if it still crashes?
@sevz Yes that solves the segmentation fault but still turning on/off monitor doesn't preserve last windows arrangements as explained above.
To explain the cause of this issue: selmon gets set to NULL on last monitor disconnect. That makes the monitors of the clients NULL. Selmon is not set to first connected monitor, it stays NULL, and the clients monitor are never set to the newly connected monitor (but stay NULL), as would be the case if there were two monitors, and one got disconnected. The user would have to manually move the clients to the monitor with some function to make them not "floating" - they are not actually "floating", it just seems they are since NULL monitor doesn't exist, have any layout etc.
This part of this issue is fixed by #621 that makes sure selmon is set to connected monitor and clients without monitor moved there.
I don't think the clients from other tags were actually killed, they are just not visible, and impossible to recover without change of dwl code.
Fixed by #621.