aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop/output.c
AgeCommit message (Collapse)Author
2018-07-14Simplify transactions by utilising a dirty flag on containersRyan Dwyer
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.
2018-07-13Fix output_has_opaque_lockscreenemersion
2018-07-09Update for swaywm/wlroots#1126emersion
2018-07-07Split rendereremersion
2018-07-07Fix titles when container titles contain UTF-8 charactersRyan Dwyer
The title and marks textures would have their height set from the config's computed max font height, but the textures were not regenerated when the config's max font height changed which made a gap appear. Rather than making it regenerate the title textures every time the config font height was changed, I've changed it to just make the textures the height of the title itself and fill any gap when rendering. Also, the title_width and marks_width variables have been renamed to make it more obvious that they are in output-buffer-local coordinates. Fixes #1936.
2018-07-07Translate surface by its geo when doing opaque box checkRyan Dwyer
2018-07-07Don't clear when using opaque lockscreenRyan Dwyer
2018-07-07Detect opaque lockscreen when using a solid colorRyan Dwyer
2018-07-07Use pixman_region32_contains_rectangleRyan Dwyer
2018-07-07Use opaque region to determine if frame done should be sentRyan Dwyer
2018-07-07Don't send frame done to surfaces behind lockscreenRyan Dwyer
Also, when rendering, don't descend into the tree if the lockscreen is active. Just render the lockscreen's surfaces.
2018-07-05Use wlr_surface.buffer_damageemersion
2018-07-05Updates per wlroots#1076Drew DeVault
2018-06-30sway views: add helpers to get view and layer from wlr_surfaceDominique Martinet
2018-06-30Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-30Fix crash with stacking layout after f42bf0ad4Rostislav Pehlivanov
The "simple" rendering function only applies to tiled views.
2018-06-30Revert "Don't unmaximize floating views"Rostislav Pehlivanov
This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
2018-06-29Render saved buffers with the surface's dimensionsRyan Dwyer
2018-06-29Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-26layer_shell: order destroying before sway_outputDominique Martinet
Both sway_output and sway_layer_shell listen to wlr's output destroy event, but sway_layer_shell needs to access into sway_output's data strucure and needs to be destroyed first. Resolve this by making sway_layer_shell listen to a new event that happens at start of sway_output's destroy handler
2018-06-26Fix crash when disconnecting outputRyan Dwyer
We were freeing the sway_output immediately upon disconnect which left a dangling pointer in the output's container. It then tried to use the pointer when the container is freed. We don't need to store the sway_output in an output's container which is destroying, so the fix is to set the pointer to NULL and remove the use in container_free. Also added an arrange when the output is disconnected for good measure.
2018-06-24Fix crash related to stacks and tabsRyan Dwyer
2018-06-23Fix crash when deleting last child in a tabbed or stacked containerRyan Dwyer
There was no `current` child because the container was destroyed. This makes it fall back to looking in the parent's current children list.
2018-06-23Implement atomic layout updates for tree operationsRyan Dwyer
This implements atomic layout updates for when views map, reparent or unmap.
2018-06-18Preserve buffers during transactionsRyan Dwyer
* Also fix parts of the rendering where it was rendering the pending state instead of current.
2018-06-18Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-16Update for swaywm/wlroots#1060emersion
2018-06-11Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-09Render drag iconsemersion
2018-06-09Fix compilation errors related to disabled outputsemersion
2018-06-09Refactor everything that needs to arrange windowsRyan Dwyer
* 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.
2018-06-09Make main properties be the pending stateRyan Dwyer
2018-06-09WIP: Atomic layout updates ground workRyan Dwyer
2018-06-06Switch output storing from list_t to wl_listBrian Ashworth
2018-06-06Address emersions comments on output re-enablingBrian Ashworth
2018-06-06Store sway_outputs so that they can be reenabledBrian Ashworth
2018-06-05Merge pull request #2095 from emersion/fullscreen-damage-only-visibleemersion
Only send frame to visible surfaces when fullscreened
2018-06-02Add SWAY_DAMAGE_DEBUGemersion
Setting it to "rerender" will always re-render everything regardless of the damaged region. Setting it to "highlight" will clear the screen and render only damaged regions.
2018-06-02Only send frame to visible surfaces when fullscreenedemersion
2018-06-02Schedule a frame even if damage is emptyemersion
2018-06-02Only send frame done to visible viewsemersion
Also don't accumulate empty damage
2018-06-01Use swayc rather than wlr_output when renderingRyan Dwyer
2018-06-01Remove check for if floating view intersects outputRyan Dwyer
2018-06-01Render floating views before top layer and unmanagedRyan Dwyer
2018-06-01Store swayc coordinates as layout-localRyan Dwyer
2018-06-01Fix issues with sticky containers and workspacesRyan Dwyer
* Attach sticky containers to new workspaces when switching * Fire the close event *before* we start destroying the workspace to prevent a crash Because the sticky container now follows the visible workspace, this simplifies the rendering and container_at logic.
2018-06-01Respect view's border config for floating containersRyan Dwyer
2018-06-01Replace is_floating boolean with functionRyan Dwyer
2018-06-01Use L_FLOATING instead of reapable booleanRyan Dwyer
2018-06-01Implement floatingRyan Dwyer