event: destroy: recheck client instead of unmark client
We detach the client window from its frame when it's destroyed, so later a new window can be attached to that frame. But turns out that's not enough. When i3 restarts, it attaches a placeholder window to the frame, then the real window, and only after that, it will destroy the placeholder. The real window will fail to attach as the frame already has a client. When the placeholder is destroyed, we have to call recheck client to pick up the real window that failed to attach previously. Related: #299 Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
@ -299,6 +299,7 @@ void win_on_win_size_change(session_t *ps, struct managed_win *w);
|
||||
void win_update_wintype(session_t *ps, struct managed_win *w);
|
||||
void win_mark_client(session_t *ps, struct managed_win *w, xcb_window_t client);
|
||||
void win_unmark_client(session_t *ps, struct managed_win *w);
|
||||
void win_recheck_client(session_t *ps, struct managed_win *w);
|
||||
bool win_get_class(session_t *ps, struct managed_win *w);
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user