Skip to content

Commit cf503d6

Browse files
fix: properly delete toplevel on unmap
1 parent e1ab267 commit cf503d6

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/toplevel.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "toplevel.h"
2424
#include "src/server.h"
2525
#include "src/workspace.h"
26+
#include "wlr/util/log.h"
2627
#include <stdlib.h>
2728
#include <wlr/types/wlr_cursor.h>
2829
#include <wlr/types/wlr_scene.h>
@@ -134,7 +135,7 @@ void xdg_toplevel_unmap(struct wl_listener *listener, void *data) {
134135
/* Called when the surface is unmapped, and should no longer be shown. */
135136
struct turtile_toplevel *toplevel = wl_container_of(listener, toplevel, unmap);
136137

137-
/* Reset the cursor mode if the grabbed toplevel was unmapped. */
138+
/* Reset the cursor mode and focus if the grabbed toplevel was unmapped. */
138139
if (toplevel == toplevel->server->grabbed_toplevel) {
139140
reset_cursor_mode(toplevel->server);
140141

@@ -143,6 +144,7 @@ void xdg_toplevel_unmap(struct wl_listener *listener, void *data) {
143144
}
144145

145146
wl_list_remove(&toplevel->link);
147+
wl_list_remove(&toplevel->flink);
146148
}
147149

148150
void xdg_toplevel_commit(struct wl_listener *listener, void *data) {

0 commit comments

Comments
 (0)