Improve startup sequence termination conditions
If a window with _NET_STARTUP_ID set is moved to another workspace, it will delete any associated startup sequence immediately. This will also occur if a window has a leader with _NET_STARTUP_ID set, if the leader has no container (never been mapped). A startup sequence may also be deleted if it's matched by startup_workspace_for_window() and its 30-second timeout has elapsed.
This commit is contained in:
@ -31,12 +31,27 @@
|
||||
*/
|
||||
void start_application(const char *command, bool no_startup_id);
|
||||
|
||||
/**
|
||||
* Deletes a startup sequence, ignoring whether its timeout has elapsed.
|
||||
* Useful when e.g. a window is moved between workspaces and its children
|
||||
* shouldn't spawn on the original workspace.
|
||||
*
|
||||
*/
|
||||
void startup_sequence_delete(struct Startup_Sequence *sequence);
|
||||
|
||||
/**
|
||||
* Called by libstartup-notification when something happens
|
||||
*
|
||||
*/
|
||||
void startup_monitor_event(SnMonitorEvent *event, void *userdata);
|
||||
|
||||
/**
|
||||
* Gets the stored startup sequence for the _NET_STARTUP_ID of a given window.
|
||||
*
|
||||
*/
|
||||
struct Startup_Sequence *startup_sequence_get(i3Window *cwindow,
|
||||
xcb_get_property_reply_t *startup_id_reply, bool ignore_mapped_leader);
|
||||
|
||||
/**
|
||||
* Checks if the given window belongs to a startup notification by checking if
|
||||
* the _NET_STARTUP_ID property is set on the window (or on its leader, if it’s
|
||||
|
Reference in New Issue
Block a user