aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* Automatically map built-in touchscreens/tablets to built-in panelsLibravatar Simon Ser2021-02-25
| | | | | Detect whether an output is built-in via its type. Detect whether a touchscreen or tablet tool is built-in via its ID_PATH property.
* man: document `input XXX map_to_output *`Libravatar Simon Ser2021-02-25
| | | | This is useful to reset the output mapping.
* render: handle containers without output when rendering titlesLibravatar Quantum2021-02-25
| | | | | | | | | | | In e0a94bee8da3271f942c0881ee18a7e2d4138063, it was believed that if the container is being rendered, it must have an output. This turned out not to be the case. When rendering a container, all its children are rendered, even if the children is positioned off screen and thus not having any output. This is the cause of the crash in #6061. This commit introduces a null-check, which fixes #6061.
* output: Reconfigure xcursor when applying output configLibravatar Tadeo Kondrak2021-02-24
| | | | | | | | | | | | Before this commit, when an output had its scale dynamically changed, Sway would not load a cursor theme with the new scale. This results in stale cursor images when moving the cursor into an area controlled by the compositor, like the background or resize areas. To reproduce: - Using IPC, set an output scale to a value that isn't currently used - Move the cursor into a compositor-controlled area - The cursor will not change
* build: stop cargo-culting assignment alignmentLibravatar Simon Ser2021-02-23
| | | | The Sway style guide says we shouldn't align assignments.
* build: Add dependency on libdrmLibravatar Tadeo Kondrak2021-02-23
| | | | | | As of 66343839b146a54505b746784cd42a8efb844963, sway now uses a libdrm header. Add this dependency to the build system so headers from it can be used on systems where pkg-config is required to find them.
* shells: Update comment about size change on commitLibravatar Kenny Levinsen2021-02-23
|
* transaction: Remove unused ready_immediatelyLibravatar Kenny Levinsen2021-02-23
|
* transaction: Note if instructions are server requestsLibravatar Kenny Levinsen2021-02-23
| | | | | | | | | On server request, we need to send configure events to inform the client of the new intended size. If the client changes size itself, sending a configure event will only cause problems. Use transaction_commit_dirty_client to distinguish between the two transaction causes.
* Fix wl_shm_format passed to wlr_texture_from_pixelsLibravatar Simon Ser2021-02-23
| | | | See https://github.com/swaywm/wlroots/pull/2744
* grimshot: document support for piping to STDOUT.Libravatar Mark Stosberg2021-02-23
|
* Fix #5643, #5064: rounding issues in floating-point -> integer conversionsLibravatar Dimitris Triantafyllidis2021-02-22
| | | | | | | | | | | | | Currently, various floating-point expressions involving the coordinates of borders, titlebars and content surfaces are directly assigned to integers, and so they are rounded towards zero. This results in off-by-one distances between these elements when the signs of their coordinates differ. Fixed by wrapping these expressions with a call to floor before the assignment.
* view: Set parent for view_child subsurfaces on initLibravatar Kenny Levinsen2021-02-23
| | | | | | | | | | | | view_child_init was calling view_init_subsurfaces, which did not set the parent attribute for the subchildren. This lead to the subchildren acting as standalone children. If the parent was an xdg_popup, this would make the subchild unaware of the popup position. Introduce view_child_init_subsurfaces for view_child_init to use instead. Closes: https://github.com/swaywm/sway/issues/6038
* view: Mark subchildren as unmapped in view_child_destroyLibravatar Kenny Levinsen2021-02-23
| | | | | | | The subchildren lose their parent association at this point, so they will not be able to see that the parent is unmapped. Instead, just set the subchildren to be unmapped directly.
* view: Recursively check mapped of view_child treeLibravatar Kenny Levinsen2021-02-23
| | | | A subsurface may be set to mapped without its parent.
* container: Add container_is_current_floatingLibravatar Kenny Levinsen2021-02-22
| | | | | Needed to check if containers are currently floating from render code, as container_is_floating checks pending state.
* render: scale titlebars correctly when straddling outputsLibravatar Quantum2021-02-22
| | | | | | | | | | | | When a container straddles multiple outputs, the title bar is only rendered at the scale of the "effective" output. If the title bar straddles onto another output with a different scale factor, it was drawn at the wrong size. In this commit, we take into consideration the scale the title was rendered at and scale it accordingly so that it appears at the right size on the other outputs. This fixes #6054.
* Fix incorrect damage being applied on popupsLibravatar Tadeo Kondrak2021-02-21
| | | | | | | | To reproduce: - Open a floating window and a popup that hangs over the bottom or right - Move the window in the direction of the popup overhang - The previous position of the popup is damaged, not the new one
* build: use wlroots dependency variablesLibravatar Simon Ser2021-02-21
| | | | | | | | | Instead of manually parsing header files and having two different code-paths depending on whether a subproject is used, use dependency variables which can come from either the subproject or pkg-config. References: https://github.com/swaywm/wlroots/pull/2734
* Fix typo in README.dk.mdLibravatar Falke Carlsen2021-02-18
|
* Update Russian translationLibravatar Daniil2021-02-17
|
* render: Use current instead of pending fullscreenLibravatar Kenny Levinsen2021-02-16
|
* container: Move pending state to state structLibravatar Kenny Levinsen2021-02-16
| | | | | | | | | Pending state is currently inlined directly in the container struct, while the current state is in a state struct. A side-effect of this is that it is not immediately obvious that pending double-buffered state is accessed, nor is it obvious what state is double-buffered. Instead, use the state struct for both current and pending.
* Add missing transaction commits to seatop_defaultLibravatar David962021-02-16
| | | | | | | | | Every seat_set_focus* should be followed by a transaction_commit_dirty. In cases where the focus change is followed by a seatop_begin* this is not needed, as transaction_commit_dirty is then called by the seatop_begin* function. Fixes #6034
* Prevent inactive-windows-transparency.py to crash on lockscreenLibravatar Pierre-Albéric TROUPLIN2021-02-16
|
* text_input: Add support for focusing layer-shell surfacesLibravatar Tadeo Kondrak2021-02-15
|
* transactions: Amend pending transactionsLibravatar Kenny Levinsen2021-02-16
| | | | | | | | | | | | | | | | The transaction system contains a necessary optimization where a popped transaction is combined with later, similar transactions. This breaks the chronological order of states, and can lead to desynchronized geometries. To fix this, we replace the queue with only 2 transactions: current and pending. If a pending transaction exists, it is updated with new state instead of creating additional transactions. As we never have more than a single waiting transaction, we no longer need the queue optimization that is causing problems. Closes: https://github.com/swaywm/sway/issues/6012
* Align ordering of core node properties with i3Libravatar Jan Palus2021-02-15
| | | | | | | | | | Try to better mimic JSON node structure produced by i3 which might be relied on by already existing tools. In particular having "type" right after "id" is quite handy for streaming high-performance JSON parsers such as simdjson (which are handy for maintaining responsiveness on resource constrained systems). refer https://github.com/i3/i3/blob/ab2a22a78b25ad12fed2c177a34c44950795cf33/src/ipc.c#L338
* transaction: Only wait for ack from visible viewsLibravatar Kenny Levinsen2021-02-15
| | | | | | | | | | | | | Transactions currently wait for all configures to be acked, regardless fo what they were sent to. This includes views that are hidden in tabbed or stacked containers. If these views do not ack the configure in response to a single frame callback, they can cause transaction timeouts. Check if a container is hidden before registering the configure serial and saving any view buffers. Closes: https://github.com/swaywm/sway/issues/6023
* text_input: Only send surrounding_text and content_type if supportedLibravatar Tadeo Kondrak2021-02-15
|
* text_input: Ignore text_input disable from unfocused windowsLibravatar Tadeo Kondrak2021-02-15
| | | | | | | Before this commit, there would be cases where focus changes from one window to another, the new window activates text_input, then the old window sends a deactivate request, making text_input unfocused completely.
* input: Commit transactions in seatop_defaultLibravatar Kenny Levinsen2021-02-15
| | | | | This is needed for focus_follows_mouse, and was accidentally omitted in the previous transaction commit shuffle.
* input: Only commit transactions when necessaryLibravatar Kenny Levinsen2021-02-14
| | | | | | | | | | | There is no need to check for transactions at the end of every user input, as the vast majority of input will not issue transactions. This implementation can also hide where changes are made without an appropriate transaction commit, as a future unrelated input would issue the commit instead. Instead, commit transactions in places where changes are made or are likely to be made.
* readme: update French translationLibravatar Simon Ser2021-02-10
| | | | Update to latest English README and improve wording.
* view: Read geometry directly in view_update_sizeLibravatar Kenny Levinsen2021-02-09
|
* shells: Align geometry change commit handlingLibravatar Kenny Levinsen2021-02-09
| | | | | | xdg_shell and xwayland handled geometry changes differently despite needing mostly identical behavior. The xwayland implementation has been changed to match that of xdg_shell.
* shells: Only center tiled views on size changeLibravatar Kenny Levinsen2021-02-09
| | | | | | | The size of a tiled container cannot change in response to new buffer sizes, so there is no need to commit a new transaction. Instead, simply recenter the view with the new geometry, leaving the full transaction flow for floating containers.
* transaction: Move centering to view_center_surfaceLibravatar Kenny Levinsen2021-02-09
| | | | This will allow us to reuse it for centering elsewhere.
* view: Save surface x and y on saved buffersLibravatar Kenny Levinsen2021-02-09
| | | | | | | | | We need to use surface_x and surface_y when rendering and damaging saved buffers as these compensate for views that have been centered due to being smaller than their container. Add them to the surface positions on the saved buffer so we have the values from the time the buffer was saved.
* swaynag: Use position from wl_pointer.enterLibravatar Kenny Levinsen2021-02-07
| | | | | | | | | | Only wl_pointer.motion was used to update pointer position, which would cause issues if the pointer was not moved prior to wl_pointer.button. This also fixes touch input through wl_pointer emulation, which fires wl_pointer.button immediately after wl_pointer.enter. Closes: https://github.com/swaywm/sway/issues/5991
* Make command line option lists constLibravatar Manuel Stoeckl2021-02-04
|
* Make Wayland request listeners static const when possibleLibravatar Manuel Stoeckl2021-02-04
|
* Declare all struct cmd_handler arrays constLibravatar Manuel Stoeckl2021-02-04
| | | | And make the functions handling these arrays use const types.
* xdg-foreign: add v1 and v2 implementationsLibravatar Aleksei Bavshin2021-02-02
| | | | Co-authored-by: Jason Francis <cycl0ps@tuta.io>
* Check the output state for recorded workspacesLibravatar Konstantin Pospelov2021-01-30
| | | | | | | Sway records pid, workspace, and output for every new process. However, if the output gets disabled and the workspace disappears, the workspace is still re-created on the disabled output. This commit adds a check for the enabled flag, so that NULL will be passed to workspace_create() in this case.
* desktop/layer_shell: Fix allocation type mismatchLibravatar Manuel Stoeckl2021-01-30
|
* desktop/output: Disable head if mode is NULLLibravatar Kenny Levinsen2021-01-26
| | | | | | | | | | wlr_output_configuration_head_v1_create normally fills out the head "enabled" field to match the wlr_output state. We overwrite this to also set the head as enabled if it is only turned off with DPMS. However, in some cases we may not have a mode for this display, in which case setting it as enabled will lead to a segfault later on. Therefore, enabled conditional on the presence of a mode.
* Fix typo in bug reporting templateLibravatar Martin Michlmayr2021-01-26
|
* Implement foreign toplevel fullscreen output hintsLibravatar fwsmit2021-01-25
|
* Adhere to ICCCM focus specificationLibravatar BrassyPanache2021-01-20
| | | | | | | | For certain applications (e.g. JetBrains) the parent window controls input. We need to adhere to the ICCCM input focus specification to properly handle these cases. Relates to swaywm/wlroots#2604