Closing windows is no longer a segfault
This commit is contained in:
parent
f65a9aaf12
commit
8304734230
3 changed files with 27 additions and 5 deletions
|
|
@ -5,5 +5,5 @@
|
|||
|
||||
echo ">>>>> before foot"
|
||||
/usr/bin/foot &
|
||||
# /usr/bin/foot &
|
||||
/usr/bin/foot &
|
||||
echo "<<<<< after foot"
|
||||
|
|
|
|||
|
|
@ -35,6 +35,15 @@ fn windowListener(river_window_v1: *river.WindowV1, event: river.WindowV1.Event,
|
|||
switch (event) {
|
||||
.closed => {
|
||||
river_window_v1.destroy();
|
||||
{
|
||||
var it = window.context.wm.seats.iterator(.forward);
|
||||
while (it.next()) |seat| {
|
||||
if (seat.hovered == window) {
|
||||
seat.hovered = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
window.link.remove();
|
||||
window.context.allocator.destroy(window);
|
||||
},
|
||||
.dimensions => |ev| {
|
||||
|
|
|
|||
|
|
@ -59,10 +59,23 @@ fn windowManagerV1Listener(window_manager_v1: *river.WindowManagerV1, event: riv
|
|||
window_manager_v1.manageFinish();
|
||||
},
|
||||
.render_start => {
|
||||
log.debug("2", .{});
|
||||
var it = wm.windows.iterator(.forward);
|
||||
while (it.next()) |window| {
|
||||
window.render();
|
||||
{
|
||||
var it = wm.seats.iterator(.forward);
|
||||
while (it.next()) |seat| {
|
||||
seat.render();
|
||||
}
|
||||
}
|
||||
{
|
||||
var it = wm.outputs.iterator(.forward);
|
||||
while (it.next()) |output| {
|
||||
output.render();
|
||||
}
|
||||
}
|
||||
{
|
||||
var it = wm.windows.iterator(.forward);
|
||||
while (it.next()) |window| {
|
||||
window.render();
|
||||
}
|
||||
}
|
||||
window_manager_v1.renderFinish();
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue