i3bar: Set `mapped` flag on trayclient creation
When a trayclient is first created as a structure in memory, explicitly set the `mapped` flag to false. Otherwise it may initialize to `true` in some circumstances without actually being mapped, causing a request to be mapped from the client to be ignored. Create the trayclient in memory before handling a request to be mapped immediately. fixes #1138
This commit is contained in:
parent
cd6fb69977
commit
23b1da598e
|
@ -603,17 +603,18 @@ static void handle_client_message(xcb_client_message_event_t* event) {
|
|||
* exits/crashes. */
|
||||
xcb_change_save_set(xcb_connection, XCB_SET_MODE_INSERT, client);
|
||||
|
||||
trayclient *tc = smalloc(sizeof(trayclient));
|
||||
tc->win = client;
|
||||
tc->xe_version = xe_version;
|
||||
tc->mapped = false;
|
||||
TAILQ_INSERT_TAIL(output->trayclients, tc, tailq);
|
||||
|
||||
if (map_it) {
|
||||
DLOG("Mapping dock client\n");
|
||||
xcb_map_window(xcb_connection, client);
|
||||
} else {
|
||||
DLOG("Not mapping dock client yet\n");
|
||||
}
|
||||
trayclient *tc = smalloc(sizeof(trayclient));
|
||||
tc->win = client;
|
||||
tc->xe_version = xe_version;
|
||||
TAILQ_INSERT_TAIL(output->trayclients, tc, tailq);
|
||||
|
||||
/* Trigger an update to copy the statusline text to the appropriate
|
||||
* position */
|
||||
configure_trayclients();
|
||||
|
|
Loading…
Reference in New Issue