| Age | Commit message (Collapse) | Author | 
|---|
|  |  | 
|  |  | 
|  | Introduces a command to manually set urgency, as well as rendering of
urgent views, sending the IPC event, removing urgency after focused for
one second, and matching urgent views via criteria. | 
|  | Rather than maintain copies of the entire focus stack, this PR
transactionises the focus by introducing two new properties to the
container state and using those when rendering.
* `bool focused` means this container has actual focus. Only one
container should have this equalling true in its current state.
* `struct sway_container *focus_inactive_child` points to the immediate
child that was most recently focused (eg. for tabbed and stacked
containers). | 
|  | This PR changes the way we handle transactions to a more simple method.
The new method is to mark containers as dirty from low level code
(eg. arranging, or container_destroy, and eventually seat_set_focus),
then call transaction_commit_dirty which picks up those containers and
runs them through a transaction. The old methods of using transactions
(arrange_and_commit, or creating one manually) are now no longer
possible.
The highest-level code (execute_command and view implementation
handlers) will call transaction_commit_dirty, so most other code just
needs to set containers as dirty. This is done by arranging, but can
also be done by calling container_set_dirty. | 
|  |  | 
|  | This implements the following for floating containers:
* move <direction> <amount>
* move [absolute] position <x> <y>
* move [absolute] position mouse | 
|  |  | 
|  |  | 
|  | This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6. | 
|  |  | 
|  | Rather than allocate a structure and expect callers to free it, take a
pointer to an existing struct as an argument.
This function is no longer called anywhere though. | 
|  |  | 
|  | Also moved the arranging into view_unmap to avoid excessive code
duplication. | 
|  | This implements atomic layout updates for when views map, reparent or
unmap. | 
|  | * Also fix parts of the rendering where it was rendering the pending
state instead of current. | 
|  |  | 
|  | Render drag icons | 
|  |  | 
|  |  | 
|  | * The arrange_foo functions are now replaced with arrange_and_commit, or
with manually created transactions and arrange_windows x2.
* The arrange functions are now only called from the highest level
functions rather than from both high level and low level functions.
* Due to the previous point, view_set_fullscreen_raw and
view_set_fullscreen are both merged into one function again.
* Floating and fullscreen are now working with transactions. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | Also centers them on the screen when initially floated
In the future we'll need a more sophisticated solution than that | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | * Add and use lenient_strcat and lenient_strncat functions
* Rename `concatenate_child_titles` function as that's no longer what it
does
* Rename `container_notify_child_title_changed` because we only need to
notify that the tree structure has changed, not titles
* Don't notify parents when a child changes its title
* Update ancestor titles when changing a container's layout
	* Eg. create nested tabs and change the inner container to stacking
* No need to store tree presentation in both container->name and
formatted_title | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | When moving a container to an output which has a different scale than
the previous, rebuild the title and marks textures at the new scale.
Fixes #1999. | 
|  |  |