aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2018-10-20Merge pull request #2872 from RyanDwyer/cursor-rebaseDrew DeVault
Introduce cursor_rebase
2018-10-20Fix crash when ending tiling dragRyan Dwyer
If the container being dragged has a parent that needs to be reaped, it must be reaped after we've reinserted the dragging container into the tree. During reaping, handle_seat_node_destroy tries to refocus the dragging container which isn't possible while it's detached.
2018-10-19Introduce cursor_rebaseRyan Dwyer
This function "rebases" the cursor on top of whatever is underneath it, without triggering any focus changes.
2018-10-19Fix logic used for mouse_warping outputRyan Dwyer
Turns out we don't need to store the previous focus, and it should be based on which output the cursor was in.
2018-10-19Merge pull request #2875 from RedSoxFan/input-device-bindingsDrew DeVault
cmd_bind{sym,code}: Implement per-device bindings
2018-10-19Consider cursor warp when switching workspacesRyan Dwyer
Fixes a regression introduced in 24a90e5d86441fc345356eb3767e5a6880dcedbd. consider_warp_to_focus has been renamed to seat_consider_warp_to_focus, moved to seat.c and made public. It is now called when switching workspaces via `workspace <ws>`.
2018-10-18cmd_bind{sym,code}: Implement per-device bindingsBrian Ashworth
bindsym --input-device=<identifier> ... bindcode --input-device=<identifier> ...
2018-10-18Remove cursor warping from seat_set_focusRyan Dwyer
Because cursor warping was the default behaviour in seat_set_focus, there may be cases where we may have been warping the cursor unintentionally. This patch removes cursor warping from seat_set_focus and only does it in the focus command. This is managed by a static function in focus.c. To know whether to warp or not, we need to know which node had focus previously. To keep track of this easily, seat->prev_focus has been introduced and is set to the previous in seat_set_focus.
2018-10-17Export XCURSOR_SIZE and XCURSOR_THEMEemersion
These can be used by toolkits (currently Qt, libxcursor, glfw) to choose a default cursor theme and size. This backports this rootston commit: https://github.com/swaywm/wlroots/pull/1294/commits/3a181ab430997aaf03a75cbe3b79b0fc56ec96c3
2018-10-17Merge pull request #2858 from RyanDwyer/fix-move-to-floating-wsDrew DeVault
Fix moving tiled containers to workspaces which only have floating views
2018-10-17Merge pull request #2861 from RyanDwyer/fix-empty-workspace-crashesDrew DeVault
Fix crashes when running certain commands on an empty workspace
2018-10-17Merge pull request #2820 from Emantor/fix-mouse-warping-containerDrew DeVault
Fix mouse warping container
2018-10-17Fix crashes when running certain commands on an empty workspaceRyan Dwyer
This fixes crashes when running the border, mark, unmark and title_format commands on an empty workspace.
2018-10-17Fix moving tiled containers to workspaces which only have floating viewsRyan Dwyer
* Make a workspace which only contains floating views * Switch to another workspace and create a tiled view * Move the tiled view to the workspace with `move container to workspace N` The container would be added as a sibling to the floating view, which makes the container floating while having the geometry of a tiled container. This changes it so it only looks for tiled containers in the workspace with a fallback to the workspace itself.
2018-10-16view: rewarp cursor during view_unmapRouven Czerwinski
If the cursor is warped during the destruction of the workspace, we end up in the wrong position. Warp the cursor after arrange_workspace() so we end up in the correct position.
2018-10-16seat: use new warping functions for cursor warping during focus warpRouven Czerwinski
2018-10-16cursor: functions to warp cursor to container and workspaceRouven Czerwinski
The new functions allow a cursor to be warped without changing the focus. This is a preparation commit to handle cursor warping not only in seat_set_focus_warp.
2018-10-16view: move arrange_workspace into view_mapRouven Czerwinski
For mouse_warping cursor to correctly work on newly spawned containers, the workspace needs to be arranged before the cursor is warped. The shell functions each implement their own fullscreen and arrange checks, move them into the view_map function and pass their states via boolean arguments. Fixes #2819
2018-10-16Fix crash when using workspace back_and_forth with no previousRyan Dwyer
2018-10-16Merge branch 'master' into set-set-raw-focusIan Fan
2018-10-16Prevent duplicate workspace::focus eventsRyan Dwyer
Previously we would compare the last focus's workspace with the new focus's workspace to determine if we need to emit an IPC workspace::focus event. This doesn't work when moving the focused container to a new workspace. This adds a workspace property to the seat which stores the last emitted workspace::focus workspace. Using this method, after moving the container, refocusing it will trigger exactly one workspace::focus event: from the old workspace to the new workspace.
2018-10-15Introduce seat_set_raw_focus and remove notify argument from seat_set_focus_warpRyan Dwyer
This introduces seat_set_raw_focus: a function that manipulates the focus stack without doing any other behaviour whatsoever. There are a few places where this is useful, such as where we set focus_inactive followed by another call to set the real focus again. With this change, the notify argument to seat_set_focus_warp is also removed as these cases now use the raw function instead. A bonus of this is we are no longer emitting window::focus IPC events when setting focus_inactive, nor are we sending focus/unfocus events to the surface. This also fixes the following: * When running `move workspace to output <name>` and moving the last workspace from the source output, the workspace::focus IPC event is no longer emitted for the newly created workspace. * When splitting the currently focused container, unfocus/focus events will not be sent to the surface when giving focus_inactive to the newly created parent, and window::focus events will not be emitted.
2018-10-15Fix crash in swap commandRyan Dwyer
When swapping containers that are in the root of the workspace, parent will be NULL.
2018-10-14Establish sway-output(5)Drew DeVault
2018-10-14Document `border csd`Drew DeVault
2018-10-14swaybar: add documentation for hide/hidden_state subcommandsIan Fan
2018-10-14swaybar: show hidden bar on key eventIan Fan
Since wayland does not currently allow swaybar to create global keybinds, this is handled within sway and sent to the bar using a custom event, so as not to pollute existing events, called bar_state_update.
2018-10-14commands: fix sending bar mode/hidden_state updates to all barsIan Fan
Previously, if a change was sent to all bars, it would only actually change the first bar it encountered, due to return value handling
2018-10-14Merge pull request #2808 from RedSoxFan/bar-subcommandsDrew DeVault
Fix bar subcommand handler structs and selection
2018-10-13Remove unnecessary commentDrew DeVault
2018-10-13Merge branch 'master' into fix_edge_gapsBrian Ashworth
2018-10-13cmd_bar: simplify logicBrian Ashworth
2018-10-13cmd_bar: fix bar id issuesBrian Ashworth
Allows bar-subcommand to be a valid bar-ids Destroys runtime created bar if trying to use a config only subcommand Allow subcommands (except for id) to be ids
2018-10-13fix_edge_gaps: Allow negative values for outer gaps.Tarmack
While allowing negative values for the outer gaps it is still prevented that negative values move windows out of the container. This replaces the non-i3 option for edge_gaps.
2018-10-13bar_cmd_status_command: only reload current barBrian Ashworth
Ideally, this will be replaced with an IPC barconfig_update event in the near future
2018-10-13Fix bar subcommand handler structs and selectionBrian Ashworth
2018-10-13Fix crash when view maps while lockedRyan Dwyer
When locked, there is no active workspace so it must find the focus_inactive workspace instead. Additionally, this adds a check for if a view maps while there are no outputs connected and handles it gracefully.
2018-10-12Fix pixel leaks when using fractional scalingRyan Dwyer
The basic idea here is to apply rounding after scaling. It's not as simple as this, though, and I've detailed it in the comments for a function. In order to fix some pixel leaks in the title bar, I found it easier to change how we place rectangles to fill the area. Instead of placing two rectangles across the full width above and below the title and having shorter rectangles in the inner area, it's now pieced together in vertical chunks. This method involves drawing two less rectangles per container.
2018-10-12Merge branch 'master' into masterRyan Dwyer
2018-10-11fix: cmd_sticky crash sway with empty containermeak
2018-10-11Fix documentation of outputchtison
2018-10-10Add libinput send_events config for touchThiago Mendes
2018-10-10Merge pull request #2806 from v-gu/add-libinput-support-for-keyboardDrew DeVault
add libinput config for keyboard
2018-10-10Merge branch 'master' into bar-bindsymIan Fan
2018-10-10Merge branch 'master' into mouse-warping-containerRyan Dwyer
2018-10-10Add mouse_warping containerRouven Czerwinski
This option always moves the cursor into the middle of the container if the warp variable is true in seat_set_focus_warp. Fixes #2577
2018-10-10Fix floating click eventsRyan Dwyer
* Set focus to a floating container when clicking its title bar. * Raise floating when user clicks title bar or decorations (in the seat_begin functions). * In container_at, it only returned a floating container if the user had clicked the surface. This makes it use floating_container_at instead.
2018-10-10Fix back_and_forth documentationRyan Dwyer
2018-10-09Fix undesirable height change of floating viewsmwenzkowski
In view_autoconfigure the height of the view is adjusted if the parent container has a tabbed/stacked layout. Previously this height change would also be applied to floating views, although it is not needed for them.
2018-10-09add libinput config for keyboardVincent Gu
add send_events support