aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-01-19Prevent crashes in handle_transform and handle_scale tooemersion
2019-01-19Fix crash in cursor_rebase with multiple screensemersion
Designing the output configuration sequence without invalid state is tricky. We have one function, apply_output_config, that takes an output and (besides other things) performs a modeset and inserts the output in the output layout. The modeset can fail, in which case we don't want the output to be enabled. We also have an output_enable function, which calls output_apply_config and also configures the output's workspace and inserts it in the root container. Now, we have two choices. Either we configure the output before it's been inserted in the root container and then, if the modeset was successful, we insert it and create the workspace. The main issue with this approach is that configuring the output triggers a handful of signals, namely wlr_output.mode and wlr_output_layout.change. In those event handlers, we need to make sure to ignore these outputs in the process of being configured. Either we first insert the output, create the workspace and then try to configure it. It means we need to undo everything if the modeset fails. The main issue with this solution is that it enables and disables the output very quickly, creates a workspace and immediately destroys it, and maybe moves views back and forth (see output_evacuate). I've tried to make it so an output isn't enabled then immediately disabled. We already have code for ignoring outputs when the output is being destructed. Fixes https://github.com/swaywm/sway/issues/3462
2019-01-19Merge pull request #3464 from emersion/meson-check-wlroots-xwaylandScott Anderson
Make sure wlroots has been built with xwayland
2019-01-18meson: make sure wlroots has been built with xwaylandemersion
2019-01-18Merge pull request #3452 from emersion/meson-featuresDrew DeVault
Use Meson feature options
2019-01-18Merge pull request #3460 from emersion/output-enable-segfaultDrew DeVault
Fix segfault in output_enable
2019-01-18Fix segfault in output_enableemersion
2019-01-18Merge pull request #3457 from emersion/swaybg-no-escapeDrew DeVault
Don't escape swaybg arguments anymore
2019-01-18Merge pull request #3455 from emersion/output-no-crtcDrew DeVault
Better handle outputs without CRTC
2019-01-18Better handle outputs without CRTCemersion
This happens if you plug in more outputs than supported by your GPU. This patch makes it so outputs without CRTCs appear as disabled. As soon as they get a CRTC (signalled via the mode event), we can enable them.
2019-01-18output: remove output_add_listenersemersion
Simplify the code by registering signals when outputs are created and removing signals when they are destroyed.
2019-01-18Don't escape swaybg arguments anymoreemersion
swaybg used to be invoked with sh, which made escaping necessary. This is no longer necessary. Fixes https://github.com/swaywm/sway/issues/3456
2019-01-18meson: remove extraneous parenthesesemersion
2019-01-18meson: remove rpath optionsemersion
2019-01-18meson: remove unused dependenciesemersion
2019-01-18meson: add gdk-pixbuf and man-pages optionsemersion
2019-01-17Use Meson feature optionsemersion
2019-01-17Merge pull request #3447 from emersion/remove-swaylock-includesDrew DeVault
Remove swaylock headers and unicode.c
2019-01-17Merge pull request #3448 from emersion/swaybg-xdg-outputDrew DeVault
swaybg fixes
2019-01-17Remove unicode.cemersion
2019-01-17Don't use sh when spawning swaybgemersion
2019-01-17swaybg: use wl_surface_damage_bufferemersion
2019-01-17swaybg: use output names instead of output indexesemersion
2019-01-17Remove swaylock headersemersion
2019-01-16Fixes for small existing bugs.Connor E
2019-01-16Use static arrays where possible.Connor E
2019-01-16Remove usage of VLAs.Connor E
2019-01-16bar_cmd_tray_bind: Use mouse button helpersBrian Ashworth
This modifies `bar_cmd_tray_bindsym` to use `get_mouse_bindsym` for parsing mouse buttons. This also introduces `bar_cmd_tray_bindcode`, which will use `get_mouse_bindcode` for parsing mouse buttons. Like with sway bindings, the two commands are encapsulated in a single file to maximize shared code. This also modifies tray bindings to work off of events codes rather than x11 buttons, which allows for any mouse buttons to be used. For `get_bar_config`, `event_code` has been added to the `tray_bindings` section and will include to event code for the button. If the event code can be mapped to a x11 button, `input_code` will still be the x11 button number. Otherwise, `input_code` will be `0`.
2019-01-16layer_shell: do not SIGABRT sway on zero outputsBrian Ashworth
If there are no outputs, do not SIGABRT when a layer surface is created, just close the layer surface.
2019-01-16cmd_resize: allow resizing hidden scratchpad by pxBrian Ashworth
Allow resizing a hidden scratchpad container by px. Resizing a hidden scratchpad container by ppt is still not allowed since there is no workspace
2019-01-15seatop_begin_down: raise floatingBrian Ashworth
In `seatop_begin_down`, raise the floating container. This appears to have been dropped in the transition to seatops.
2019-01-15Do not send ipc_event_shutdown from ipc clientBrian Ashworth
In `sway_terminate`, `ipc_event_shutdown` was being sent regardless which mode sway was running in. When running as an ipc client, `sway_terminate` should just exit
2019-01-15cursor: send clear_focus on hide and enter event on unhideRouven Czerwinski
Clear the focus when we hide the cursor and show it again during the unhide action. The unhide function will rebase the cursor after the unhide. Tested by looking at the WAYLAND_DEBUG=1 output of termite. Also call cursor_handle_activity before sending pointer events to send the enter events to the surface if the cursor was hidden before. Fixes #3431
2019-01-15Remove wlr_xdg_surface_send_close.Connor E
2019-01-15Do not damage view child when container is NULLBrian Ashworth
In `view_child_damage`, do not damage the surface if it has been unmapped or if the container is NULL.
2019-01-15Handle hidden scratchpad containers in commandsBrian Ashworth
This fixes the handling of hidden scratchpad containers for some commands. For the most part, this just prevents running the commands on hidden scratchpad containers, but there are some commands that have some special handling for them.
2019-01-14Merge pull request #3422 from RyanDwyer/resize-immediate-siblingsBrian Ashworth
Resize only current and immediate siblings rather than all siblings
2019-01-15Fix invalid pointers when using resize grow width on first/last siblingsRyan Dwyer
2019-01-15Resize only current and immediate siblings rather than all siblingsRyan Dwyer
For example, create layout V[view view view] and resize the leftmost view using mod+rightclick. Previously, the edge between view 2 and 3 would be adjusted as well. Now this edge will remain constant, which matches the behaviour of i3. To do this operation correctly, the resize tiling seatop now keeps track of two containers, as the container that resizes horizontally will be a different container to the one which resizes vertically (one will be an ancestor). The tiling resize seatop now figures out these containers during the start of the operation and keeps references to them in the event. A new function container_find_resize_parent has been introduced to do this. This function is also used by the resize command. During cursor motion, the seatop logic is similar to before, but now has to choose the correct container to resize. In resize.c, container_resize_tiled and resize_tiled have been merged into one. One of them originally did nothing except pass the values through to the other. container_resize_tiled now takes a simplified approach where it just finds the immediate siblings on either side and resizes them without worrying about the others. The parellel_coord and parallel_size functions are no longer needed and have been removed.
2019-01-14Disarm key repeat on reloadBrian Ashworth
When resetting the keyboard during reload, disarm the key repeat on all keyboards since the bindings (and possibly keyboard) will be freed before the key repeat can go off.
2019-01-14CONTRIBUTING.md: mention tab width for line lengthBrian Ashworth
Adds a note about assuming a tab width equal to 4 spaces when determining the line length to CONTRIBUTING.md
2019-01-14config.in: update swayidle/swaylock exampleIan Fan
2019-01-14Merge pull request #3403 from mstoeckl/ipcleanupBrian Ashworth
Remove 'input' field of IPC command return json
2019-01-14Remove now-unused "input" argument of cmd_results_newM Stoeckl
Patch tested by compiling with `__attribute__ ((format (printf, 2, 3)))` applied to `cmd_results_new`. String usage constants have been converted from pointers to arrays when encountered. General handler format strings were sometimes modified to include the old input string, especially for unknown command errors.
2019-01-14Remove 'input' field of IPC command return jsonM Stoeckl
This field is not in i3 and provides imprecise and redundant information. (Specifically, when swaymsg is given a list of commands, the IPC return array already indicates precisely which number command failed; knowing the name of the command is not useful when multiple commands of the same type are provided.)
2019-01-14Merge pull request #3418 from RyanDwyer/remove-resize-axisemersion
Replace resize_axis with wlr_edges
2019-01-14Use uint32_t where resize axis might contain a bitfieldRyan Dwyer
2019-01-14Merge pull request #3419 from ianyfan/swaynagemersion
swaynag: handle empty $XDG_CONFIG_HOME better
2019-01-14swaynag: handle empty $XDG_CONFIG_HOME betterIan Fan
Set config path to fallback instead of setting $XDG_CONFIG_HOME
2019-01-14Replace resize_axis with wlr_edgesRyan Dwyer
This patch removes the resize_axis enum in favour of wlr_edges. As wlr_edges has no `horizontal` or `vertical` value, it denotes these by bitwise `or`ing the left/right and up/down values. Two constants are defined to make it easier to refer to these. This will allow the tiling resize seatop to utilise the functions in this file. resize_axis was local to the resize command and couldn't be exposed in function arguments.