summaryrefslogtreecommitdiffstats
path: root/include/sway/tree/view.h
Commit message (Collapse)AuthorAge
...
| * | ipc: add window::mark eventLibravatar Ian Fan2018-08-01
| |/
* / Correctly track saved surfaces during multiple transactionsLibravatar Ryan Dwyer2018-08-01
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #2364. Suppose a view is 600px wide, and we tell it to resize to 601px during a resize operation. We create a transaction, save the 600px buffer and send the configure. This buffer is saved into the associated instruction, and is rendered while we wait for the view to commit a 601px buffer. Before the view commits the 601px buffer, suppose we tell it to resize to 602px. The new transaction will also save the buffer, but it's still the 600px buffer because we haven't received a new one yet. Then suppose the view commits its original 601px buffer. This completes the first transaction, so we apply the 601px width to the container. There's still the second (now only) transaction remaining, so we render the saved buffer from that. But this is still the 600px buffer, and we believe it's 601px. Whoops. The problem here is we can't stack buffers like this. So this commit removes the saved buffer from the instructions, places it in the view instead, and re-saves the latest buffer every time the view completes a transaction and still has further pending transactions. As saved buffers are now specific to views rather than instructions, the functions for saving and removing the saved buffer have been moved to view.c. The calls to save and restore the buffer have been relocated to more appropriate functions too, favouring transaction_commit and transaction_apply rather than transaction_add_container and transaction_destroy.
* Allow containers to floatLibravatar Ryan Dwyer2018-07-28
| | | | | | | | | | | | | | | | Things worth noting: * When a fullscreen view unmaps, the check to unset fullscreen on the workspace has been moved out of view_unmap and into container_destroy, because containers can be fullscreen too * The calls to `container_reap_empty_recursive(workspace)` have been removed from `container_set_floating`. That function reaps upwards so it wouldn't do anything. I'm probably the one who originally added it... * My fix (b14bd1b0b1536039e4f46fe94515c7c44e7afc61) for the tabbed child crash has a side effect where when you close a floating container, focus is not given to the tiled container again. I've removed my fix and removed the call to `send_cursor_motion` from `seat_set_focus_warp`. We should consider calling it from somewhere earlier in the call stack.
* Allow containers to be fullscreenLibravatar Ryan Dwyer2018-07-26
|
* reverted includes of "sway/config.h" and replaced with "config.h" from meson ↵Libravatar Pascal Pascher2018-07-25
| | | | build
* style fixes, exclude sway/desctop/xwayland.c when enable_xwayland: falseLibravatar Pascal Pascher2018-07-24
|
* Added meson option "enable_xwayland" (default: true) to enable/disable ↵Libravatar Pascal Pascher2018-07-24
| | | | xwayland support
* Handle set_{title,app_id} for xdg-shell and zxdg-shell-v6Libravatar emersion2018-07-22
| | | | | | This allows to update the title even if the view doesn't commit. This is useful e.g. when a terminal sets its toplevel title to the currently running command and when the view isn't visible.
* Consider view's min/max sizes when resizingLibravatar Ryan Dwyer2018-07-22
|
* Allow xwayland views to become urgent when on a non-visible workspaceLibravatar Ryan Dwyer2018-07-19
| | | | | | | This removes the urgency stuff from the commit handler and puts it in a new set_hints handler instead. This allows the xwayland surface to become urgent without having to commit (which doesn't happen if it's on an non-visible workspace).
* Implement default_floating_border command and adjust CSD behaviourLibravatar Ryan Dwyer2018-07-17
|
* Implement urgency base functionalityLibravatar Ryan Dwyer2018-07-16
| | | | | | 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.
* Don't disable borders for xwayland floating viewsLibravatar emersion2018-07-12
|
* sway views: add helpers to get view and layer from wlr_surfaceLibravatar Dominique Martinet2018-06-30
|
* Merge remote-tracking branch 'upstream/master' into atomicLibravatar Ryan Dwyer2018-06-30
|\
| * Revert "Don't unmaximize floating views"Libravatar Rostislav Pehlivanov2018-06-30
| | | | | | | | This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
* | Rename view's free callback to destroyLibravatar Ryan Dwyer2018-06-26
| |
* | Damage output when a fullscreen view unmapsLibravatar Ryan Dwyer2018-06-26
| | | | | | | | | | Also moved the arranging into view_unmap to avoid excessive code duplication.
* | 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.
* | 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.
* | WIP: Atomic layout updates ground workLibravatar Ryan Dwyer2018-06-09
|/
* Fix mpv damage issue when unfullscreening into floatingLibravatar Ryan Dwyer2018-06-01
|
* Don't unmaximize floating viewsLibravatar Ryan Dwyer2018-06-01
|
* Don't let xwayland views set position unless unmanagedLibravatar Ryan Dwyer2018-06-01
|
* Store swayc coordinates as layout-localLibravatar Ryan Dwyer2018-06-01
|
* Rename set_maximized functions to set_tiledLibravatar Ryan Dwyer2018-06-01
|
* Implement floatingLibravatar Ryan Dwyer2018-06-01
|
* Rename view_get_type to view_get_shellLibravatar Ryan Dwyer2018-05-27
|
* Don't track damage for views on inactive tabsLibravatar Ryan Dwyer2018-05-21
|
* Implement show_marksLibravatar Ryan Dwyer2018-05-17
|
* Implement marksLibravatar Ryan Dwyer2018-05-15
|
* Merge branch 'master' into fix-1975Libravatar Brian Ashworth2018-05-14
|\
| * Kill wl_shellLibravatar emersion2018-05-14
| |
| * Revert "Revert "Merge pull request #1953 from RyanDwyer/criteria-focused""Libravatar Ryan Dwyer2018-05-14
| | | | | | | | | | | | | | This reverts commit ac0e62584f6101277b76622a7274866cd50f615c. This reimplements the criteria __focused__ commit in preparation for fixing a known bug.
| * Revert "Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements""Libravatar Ryan Dwyer2018-05-14
| | | | | | | | | | | | | | This reverts commit 32a572cecfd0f6072a78ce0a381a2f8365f9010a. This reimplements the criteria overhaul in preparation for fixing a known bug.
* | Merge branch 'master' into fix-1975Libravatar Brian Ashworth2018-05-14
|\|
| * Add xdg-shell stable supportLibravatar emersion2018-05-13
| |
* | Fix titles and detect edges for hide_edge_bordersLibravatar Brian Ashworth2018-05-14
|/
* Don't destroy view child on xdg-popup unmapLibravatar emersion2018-05-12
|
* Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements"Libravatar Drew DeVault2018-05-12
| | | | | This reverts commit 3e1bf721c69cb6df70c3dc3d3d4933e987339676, reversing changes made to 2217518bd554d0f11dafa7ec4e8f35f2e4762fbd.
* Revert "Merge pull request #1953 from RyanDwyer/criteria-focused"Libravatar Drew DeVault2018-05-12
| | | | | This reverts commit 2511adffc29996b64d01d85b3de31de9a2af9096, reversing changes made to 3e1bf721c69cb6df70c3dc3d3d4933e987339676.
* Implement __focused__ criteriaLibravatar Ryan Dwyer2018-05-12
|
* Overhaul criteria implementationLibravatar Ryan Dwyer2018-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The criteria struct now uses properties for each token type rather than the list_t list of tokens. The reason for this is that different token types have different data types: pcre, string and number to name a few. This solution should be more flexible moving forward. A bonus of this is that criteria is now easier to understand when looking at the struct definition. The criteria parser has been rewritten because the previous one didn't support valueless pairs (eg. [class="foo" floating]). Criteria now has types. Types at the moment are CT_COMMAND, CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well. Previously the assign command was creating a criteria with 'move to workspace <name>' as its command, but this caused the window to appear briefly on the focused workspace before being moved to the assigned workspace. It now creates the view directly in the assigned workspace. Each view will only execute a given criteria once. This is achieved by storing a list of executed criteria in the view. This is the same strategy used by i3. Escaping now works properly. Previously you could do things like [class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it should be (and now is) 'Fire"fox'. The public functions in criteria.c are now all prefixed with criteria_. Xwayland views now listen to the set_title, set_class and set_window_type events and criteria will be run when these happen. XDG shell has none of these events so it continues to update the title in handle_commit. Each view type's get_prop function has been split into get_string_prop and get_int_prop because some properties like the X11 window ID and window type are numeric. The following new criteria tokens are now supported: * id (X11 window ID) * instance * tiling * workspace
* Damage borders when damaging viewLibravatar emersion2018-05-10
|
* Implement title_formatLibravatar Ryan Dwyer2018-05-05
| | | | | | | | | | This implements the title_format command, with a new placeholder %shell which gets substituted with the view type (xwayland, xdg_shell_v6 or wl_shell). Example config: for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
* Restore view_update_position()Libravatar Ryan Dwyer2018-05-01
|
* Move docblock and fix indenting of switch/case.Libravatar Ryan Dwyer2018-05-01
|
* Implement bordersLibravatar Ryan Dwyer2018-04-30
| | | | | | | | | | | | | Implements rendering of borders. Title text is still to do. Implements the following configuration directives: * client.focused * client.focused_inactive * client.unfocused * client.urgent * border * default_border
* Refactor arrange_windows()Libravatar Ryan Dwyer2018-04-28
| | | | | | | | | Replaces arrange_windows() with arrange_root(), arrange_output(), arrange_workspace() and arrange_children_of(). Also makes fullscreen views save and restore their dimensions, which allows it to preserve any custom resize and is also a requirement for floating views once they are implemented.