aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2019-11-01focus: add a NULL check in `focus <direction>`lbonn
container is checked for NULL in other conditions earlier, it's not obvious that it can't be undefined here.
2019-11-01Fix potential NULL reference on cleanuplbonn
If allocation of bindings failed. Found with clang-tidy
2019-11-01Fix various memory leakslbonn
Found with clang-tidy
2019-11-01seat: simplify a strduplbonn
2019-10-31Skip line continuation when it is a commentRobert Günzler
Currently commented lines ending in the backslash character will be concatenated with the following line. ``` # with this comment \ exec swaynag -m 'will not run' ``` This change modifies `getline_with_cont` to stop reading when the initial character is a '#'.
2019-10-27Fix presentation feedback when scanning out fullscreen viewSimon Ser
Closes: https://github.com/swaywm/sway/issues/4663
2019-10-27Handle layer changes for layer shell surfacesSimon Ser
Closes: https://github.com/swaywm/sway/issues/4644 References: https://github.com/emersion/rootston/commit/1982106c9b0fbd48ee9fe20e013524125f6ca3cf
2019-10-27criteria: make literal comparison for __focused__ valuesRonan Pigott
2019-10-27focus: support focus prev|next [sibling]Ronan Pigott
2019-10-27Fix segfault in wlr_output_manager_v1_set_configurationSimon Ser
Calling wlr_output_manager_v1_set_configuration with an enabled output and a NULL mode is incorrect if the output doesn't support modes. When DPMS'ing an output, wlr_output_enable(output, false) is called. This de-allocates the CRTC and sets wlr_output.current_mode to NULL. Because we mark DPMS'ed outputs as enabled, we also need to provide a correct output mode. Add a field to sway_output to hold the current mode. Closes: https://github.com/swaywm/wlroots/issues/1867
2019-10-27Fix apply_output_config return value when enabling outputSimon Ser
apply_output_config would call output_enable and always return true, even if the output couldn't be enabled.
2019-10-23Fix tiled containers resize with mouseKirill Chibisov
Fixes regression introduced in 2c1a11016ccb7646a74de51eff003c18e5aa7902
2019-10-21Fix refresh rate scale of outputDanilo Spinella
When applying config, value mode->refresh is mHz; convert it to Hz before assigning it to the temporary output config. oc->refresh_rate will be converted back to mHz in set_mode function. Fix debug log printing GHz instead of Hz.
2019-10-17focus: support focus_wrapping workspacelbonn
Following i3 support: https://github.com/i3/i3/pull/3407
2019-10-17xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.A. M. Joseph
When changing a surface from managed to unmanaged in handle_map(), the call to handle_destroy(.., view) causes the sway_xwayland_view pointed to by the untyped wlr_xwayland_surface.data field to become invalid garbage, yet the untyped wlr_xwayland_surface.data continues to point at it. In particular: view_get_*(view_from_wlr_surface(..)), even with appropriate NULL checking, will crash sway when this codepath is exercised (reliable test case: drop-down menus in Google Earth).
2019-10-16Updates per wlroots layer shell changesDrew DeVault
2019-10-16sway(5): move workspace_layout to config onlyRouven Czerwinski
According to the source files, workspace_layout is a configuration only command, move it to the correct section within the man page.
2019-10-09sway(5): Highlight valid values in the description of tiling_dragWieland Hoffmann
2019-10-09sway(5): Add a missing verbWieland Hoffmann
2019-10-02Fix syntax in examples in sway-output(5)Arkadiusz Hiler
Some examples use comma to separate x and y for setting the output position which is wrong. Let's change it to spaces, as correctly demonstrated in the `output <name> position|pos <X> <Y>` section.
2019-09-29layer-shell: Fix damage tracking of nested popupsSebastian Krzyszkowiak
Popups are positioned relative to local surface coordinates of the parent surface. There's no need to consider values set with xdg_surface.set_window_geometry for parent surfaces.
2019-09-26Fix direct scan-out flickeringSimon Ser
Sometimes when using direct scan-out, some flickering between the fullscreen app and the regular desktop could be seen. This happened because we called wlr_output_attach_render and then wlr_output_attach_buffer for direct scan-out. wlr_output_attach_render makes the OpenGL context current but also attaches the OpenGL buffer to the primary plane apparently (all of this happens inside eglMakeCurrent). This patch moves the scan-out logic outside of output_render, before wlr_output_attach_render. This lines it up with rootston's implementation. This also makes more sense since no rendering is involved when using direct scan-out. Sorry about that, I should've tested this with more clients. The new code has been tested with mpv and a GLFW demo.
2019-09-25input: Add support for tablet protocol.John Chadwick
Sway has basic support for drawing tablets, but does not expose properties such as pressure sensitivity. This implements the wlr tablet v2 protocol, providing tablet events to Wayland clients.
2019-09-25Add support for fullscreen view direct scan-outSimon Ser
2019-09-22view: create container before selecting workspaceRonan Pigott
2019-09-22Error out on unknown debug flagSimon Ser
Otehrwise it's pretty easy to misremember a flag and think damage=rerender is enabled when it's not.
2019-09-20view: always populate pidBrian Ashworth
If the view was mapped as fullscreen or the view was assigned either a workspace or output, the pid was not being populated since it was occurring as part of the pid mapping check in select_workspace. This extracts the pid population and makes it so it is always executed
2019-09-19render: set surface as sampled for presentationIvan Molodetskikh
2019-09-11sway-output.5: fix variable nameMartin Michlmayr
__foo__ is verbatim in scdoc, but we want the variable foo in italic, i.e. _foo_.
2019-09-05sway.5: clarify that a marks are unqiueBrian Ashworth
This just clarifies that a mark can only be set for a single window since they are used as unique identifiers
2019-09-05Fix type (an -> and)Nils ANDRÉ-CHANG
2019-09-05Do not search for edges on subsurfaces, fix #4381Versus Void
Subsurfaces (in most cases popups) aren't decorated by sway and will never have any borders, but may be drawn beyond container boundaries producing false positive when searching for edge. So we want to skip edge search when handling mouse event on subsurface.
2019-09-04swaybar: complete barconfig_update event handlingBrian Ashworth
This adds complete support for the barconfig_update ipc event. This also changes the bar command and subcommand handlers to correctly emit the event. This makes it so all bar subcommands other than id and swaybar_command are dynamically changeable at runtime. sway-bar.5 has been updated accordingly
2019-09-04seatop_default: only focus container on pressBrian Ashworth
This matches i3's behavior of only focusing a container when pressed. This allows for `bindsym button1 nop`, `bindsym BTN_LEFT nop`, or `bindcode 272 nop` to be used to disable focusing when clicking on the title (or with additional flags to bind{code,sym} other portions of the container). Without this additional condition, the user would need both `bindsym button1 nop` and `bindsym --release button1 nop` to override both the pressed and released behavior.
2019-09-03Fix bar_state_update docsxPMo
2019-09-02Fix typo for the force/immediate option in xwayland_mode enumBen Brown
2019-09-02man: document how to specify multiple xkb layouts and optionsSimon Ser
This isn't described in xkeyboard-config(7).
2019-09-01layer-shell: don't give focus to unmapped layer surfacesSimon Ser
Focused layers are not cleared when destroyed, they are cleared on unmap. Giving focus to an unmapped layer surface is (1) incorrect and (2) triggers a use-after-free. Closes: https://github.com/swaywm/sway/issues/4517
2019-09-01Ensure that seat->focused_layer is cleared on unmapKenny Levinsen
The current seat may have changed between the last focus change and this unmap, so we need to scan through all seats to find our layer.
2019-08-31seat: set cursor image only if no pointer cap previouslyxdavidwu
This make seat_update_capabilities set cursor image only if there was no pointer cap before update. This avoid resetting cursor to left_ptr if an input device is removed.
2019-08-31seat: avoid unneeded reloading xcursor themexdavidwu
Load xcursor theme on configuring pointer or tablet tool only if there was no pointer cap before.
2019-08-31Fix markup syntax in man pagesMartin Michlmayr
2019-08-27cmd_mode: don't reset to default after subcommandBrian Ashworth
In cmd_mode, the mode is currently being reset to the default mode after a mode subcommand handler is executed. This stores and restores the mode instead
2019-08-27A layer-shell will only be focused if it is non-nullasdfjkluiop
2019-08-25Fix formatting for title_format in man 5 swayMichael Aquilina
Use explicit linebreaks to make scdoc use a separate line for each entry listed
2019-08-24Update titlebar borders to match i3's current behavior.Dark
2019-08-23cmd_move: fix move to scratchpad hidden containerBrian Ashworth
When moving to a scratchpad hidden container (using `move [window|container] [to] mark <mark>`), this moves the container to the scratchpad (equivalent to `move [window|container] [to] scratchpad`). Previously, this would crash since the destination did not have a workspace.
2019-08-22ipc: collapse multi-container command resultsLaurent Bonnans
Match i3's behavior and only return one status response per command, even if it applies to several nodes. Also returns an error if the criteria returns an empty match. Closes #4483
2019-08-22sway.5: remove mention of floating_scrollBrian Ashworth
It looks like floating_scroll was still in the sway(5) man page as a remnant of the 0.x era. This just removes it from the man page since it is no longer a valid command. Mouse bindings with Button4-7 can be used instead
2019-08-20Allow moving a container hidden in scratchpadlbonn
(as i3 allows it) Just update the container's coordinates so that they will be applied at the next show.