aboutsummaryrefslogtreecommitdiffstats
path: root/sway/desktop/transaction.c
Commit message (Collapse)AuthorAge
...
* Improve resize performance by partially flushing the transaction queueLibravatar Ryan Dwyer2018-07-22
| | | | | | | | | | | | When interactively resizing some views (eg. Nautilus), new transactions are added to the queue faster than the client can process them. Previously, we would wait for the entire queue to be ready before applying any of them, but in this case the transactions would time out, giving the client choppy performance. This changes the queue handling so it applies the transactions up to the first waiting transaction, without waiting for the entire queue to be ready.
* Update for swaywm/wlroots#1148Libravatar emersion2018-07-19
|
* Make focus part of transactionsLibravatar Ryan Dwyer2018-07-15
| | | | | | | | | | | | 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).
* Merge pull request #2272 from RyanDwyer/simplify-transactionsLibravatar Drew DeVault2018-07-15
|\ | | | | Simplify transactions by using a dirty flag on containers
| * Set signature to voidLibravatar Ryan Dwyer2018-07-15
| |
| * Simplify transactions by utilising a dirty flag on containersLibravatar Ryan Dwyer2018-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Add extended debugging flagsLibravatar Drew DeVault2018-07-14
|/ | | | | | We currently have several ways of setting debug flags, including command line arguments, environment variables, and compile-time macros. This replaces the lot with command line flags.
* Update for swaywm/wlroots#1126Libravatar emersion2018-07-09
|
* Updates per wlroots#1076Libravatar Drew DeVault2018-07-05
|
* Fix use after free in transaction codeLibravatar Ryan Dwyer2018-07-04
| | | | | | | | | If we set an instruction as ready twice, it decreases the transaction's num_waiting a second time and applies the transaction earlier than it should. This no doubt has undesired effects, probably resulting in a use after free. Hopefully fixes the first part of #2207.
* Merge pull request #2187 from martinetd/idle-inhibitLibravatar emersion2018-07-02
|\ | | | | Idle inhibit
| * idle_inhibit: move server data to its own structLibravatar Dominique Martinet2018-07-02
| |
| * idle_inhibit: stop inhibitor when views become invisibleLibravatar Dominique Martinet2018-07-02
| |
* | transaction_apply: use float for quotientLibravatar Dominique Martinet2018-07-02
|/ | | | | | Pre-dividing 1000/60 would lose 2/3 due to round-up Found through static analysis
* Fix flash of background when xwayland views are mappedLibravatar Ryan Dwyer2018-06-30
| | | | | | | | | | | A flash of background was happening for two reasons: 1) We were using the xsurface's dimensions to check if the surface is ready, but these are pending dimensions. 2) In my particular setup, the default geometry of the xsurface does not intersect any output, which prevented it from receiving a frame done event. This made the transaction time out and the client would only redraw once it's been rendered.
* Render saved buffers with the surface's dimensionsLibravatar Ryan Dwyer2018-06-29
|
* Replace list_empty with a simple alternativeLibravatar Ryan Dwyer2018-06-29
|
* Allow views to skip configuresLibravatar Ryan Dwyer2018-06-27
| | | | | To do this properly, the transaction queue will only be processed if it can be completely processed.
* Remove transaction_add_damageLibravatar Ryan Dwyer2018-06-27
| | | | Instead, damage each container when applying the transaction.
* Fix nitpicksLibravatar Ryan Dwyer2018-06-27
|
* Remove timer when transaction destroysLibravatar Ryan Dwyer2018-06-26
|
* Rename progress_queue to transaction_progress_queueLibravatar Ryan Dwyer2018-06-25
|
* Implement per-configure debug timingsLibravatar Ryan Dwyer2018-06-25
|
* Implement transaction timings debugLibravatar Ryan Dwyer2018-06-25
| | | | Launch sway with SWAY_DEBUG=txn_timings to enable it.
* Implement atomic layout updates for xwayland viewsLibravatar Ryan Dwyer2018-06-24
|
* Force transactions to complete in orderLibravatar Ryan Dwyer2018-06-24
| | | | | This forces transactions to complete in order by using a singly linked list stored in the sway server.
* Implement atomic layout updates for tree operationsLibravatar Ryan Dwyer2018-06-23
| | | | | This implements atomic layout updates for when views map, reparent or unmap.
* Preserve buffers during transactionsLibravatar Ryan Dwyer2018-06-18
| | | | | * Also fix parts of the rendering where it was rendering the pending state instead of current.
* Merge remote-tracking branch 'upstream/master' into atomicLibravatar Ryan Dwyer2018-06-11
|
* Refactor everything that needs to arrange windowsLibravatar Ryan Dwyer2018-06-09
| | | | | | | | | | * 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.
* Make main properties be the pending stateLibravatar Ryan Dwyer2018-06-09
|
* WIP: Atomic layout updates ground workLibravatar Ryan Dwyer2018-06-09