summaryrefslogtreecommitdiffstats
path: root/sway/input/cursor.c
Commit message (Collapse)AuthorAge
* Fix crash when moving cursor over a fullscreen split containerLibravatar Ryan Dwyer2018-08-03
| | | | | | Calling container_at_view fails an assertion if the container isn't a view. Calling tiling_container_at works correctly, as that function checks if the container is a view and calls container_at_view if so.
* Fix pointer events for fullscreen viewsLibravatar emersion2018-08-02
|
* Fix crash on mouse motion on fullscreen containerLibravatar minus2018-08-02
| | | | | container_at expects a workspace, not the fullscreened container. Fixes #2409
* Revert "Revert "Fix popups""Libravatar Ryan Dwyer2018-08-02
| | | | | | This reverts commit 9aa258d33a9baa42895214da7e82f4568fcb8f76. Reverting the revert, so that popups can be fixed.
* Revert "Fix popups"Libravatar Drew DeVault2018-08-02
| | | | This reverts commit de86d65627e96cffe77f4abf11c4a0b982326ff9.
* Merge pull request #2391 from RyanDwyer/fix-popups-v2Libravatar Drew DeVault2018-08-01
|\ | | | | Fix popups (v2)
| * Fix popupsLibravatar Ryan Dwyer2018-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the render and container_at order for popups. Fixes #2210 For rendering: * render_view_surfaces has been renamed to render_view_toplevels * render_view_toplevels now uses output_surface_for_each_surface (which is now public), as that function uses wlr_surface_for_each_surface which doesn't descend into popups * Views now have a for_each_popup iterator, which is used by the renderer to render the focused view's popups * When rendering a popup, toplevels (xdg subsurfaces) of that popup are also rendered For sending frame done, the logic has been updated to match the rendering logic: * send_frame_done_container no longer descends into popups * for_each_popup is used to send frame done to the focused view's popups and their child toplevels For container_at: * floating_container_at is now static, which means it had to be moved higher in the file. * container_at now considers popups for the focused view before checking containers. * tiling_container_at has been introduced, so that it doesn't call container_at recursively (it would check popups recursively if it did)
* | ipc: prevent emitting a workspace::focus event when moving a container to a ↵Libravatar Ian Fan2018-08-01
|/ | | | | | different workspace or output When a container is moved from, say, workspace 1 to workspace 2, workspace 2 is focused in order to arrange the windows before focus is moved back to workspace 1, which caused a workspace:focus event from workspace 2 to workspace 1 to be emitted. This commit inhibits that event.
* Fix clicking a floating split containerLibravatar Ryan Dwyer2018-07-28
| | | | | | | It would focus the split container rather than the child. This commit makes it track the child and the split container separately and send the surface click to the child.
* 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
|
* Merge pull request #2350 from ppascher/xwayland-optionalLibravatar Drew DeVault2018-07-25
|\ | | | | Added meson option to allow building sway without xwayland support
| * reverted includes of "sway/config.h" and replaced with "config.h" from meson ↵Libravatar Pascal Pascher2018-07-25
| | | | | | | | build
| * more style fixes, included "sway/config.h" where neededLibravatar Pascal Pascher2018-07-25
| |
| * 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
* | Change button var passed to seat_begin_moveLibravatar Brian Ashworth2018-07-24
| |
* | Implement floating_modifier <mod> [inverse|normal]Libravatar Brian Ashworth2018-07-24
|/
* Fix crash when clicking certain surfacesLibravatar Ryan Dwyer2018-07-24
| | | | cont was NULL.
* Make mod+resize work in any directionLibravatar Ryan Dwyer2018-07-24
| | | | | | | This makes it so if you hold mod and right click on a surface to resize it, the resize direction is chosen based on which quarter of the surface you've clicked. The previous implementation only resized towards the bottom right.
* Invoke mouse bindingsLibravatar frsfnrrg2018-07-23
| | | | | | | | | | | | | | | | The mouse binding logic is inspired/copied from the keyboard binding logic; we store a sorted list of the currently pressed buttons, and trigger a binding when the currently pressed (or just recently pressed, in the case of a release binding) buttons, as well as modifiers/container region, match those of a given binding. As the code to execute a binding is not very keyboard specific, keyboard_execute_command is renamed to seat_execute_command and moved to where the other binding handling functions are. The call to transaction_commit_dirty has been lifted out.
* Fix some cases where the cursor doesn't updateLibravatar Ryan Dwyer2018-07-24
| | | | | | | cursor_set_image only uploads the named image if it doesn't match the previous named image. This means when setting the cursor image to a surface as given by a client, we have to clear the currently stored image.
* Set cursor when beginning resize and move operationsLibravatar Ryan Dwyer2018-07-22
|
* Fix damage when shrinking a floating view using cursorLibravatar Ryan Dwyer2018-07-22
|
* Implement request_move and request_resize for xwayland viewsLibravatar Ryan Dwyer2018-07-22
| | | | | I discovered we have to send a click event when ending the move or resize operation to make xwayland's requests work correctly.
* Fix focus bug with floating containersLibravatar Ryan Dwyer2018-07-22
|
* Consider view's min/max sizes when resizingLibravatar Ryan Dwyer2018-07-22
|
* Store last button and use it when views request to move or resizeLibravatar Ryan Dwyer2018-07-22
|
* Prevent re-uploading the same cursor image multiple timesLibravatar Ryan Dwyer2018-07-22
|
* Replace static handle_end_operation with seat_end_mouse_operationLibravatar Ryan Dwyer2018-07-22
|
* Implement xdg shell request_move and request_resize eventsLibravatar Ryan Dwyer2018-07-22
| | | | | | | | | Also does a few other related things: * Now uses enum wlr_edges instead of our own enum resize_edge * Now uses wlr_xcursor_get_resize_name and removes our own find_resize_edge_name * Renames drag to move for consistency
* Use wlr_keyboard_get_modifiersLibravatar Ryan Dwyer2018-07-22
|
* Use separate function for choosing edge cursorLibravatar Ryan Dwyer2018-07-22
|
* Fix clicking xwayland menusLibravatar Ryan Dwyer2018-07-22
|
* Use max multiplier when resizing while preserving ratioLibravatar Ryan Dwyer2018-07-22
|
* Make mod + resize do it from the top left cornerLibravatar Ryan Dwyer2018-07-22
|
* Use WLR_MODIFIER_SHIFTLibravatar Ryan Dwyer2018-07-22
|
* Implement floating_modifier and mouse operations for floating viewsLibravatar Ryan Dwyer2018-07-22
| | | | | | | | | | | | | | This implements the following: * `floating_modifier` configuration directive * Drag a floating window by its title bar * Hold mod + drag a floating window from anywhere * Resize a floating view by dragging the border * Resize a floating view by holding mod and right clicking anywhere on the view * Resize a floating view and keep aspect ratio by holding shift while resizing using either method * Mouse cursor turns into resize when hovering floating border or corner
* Fix crash and render issues involving cursor_send_pointer_motionLibravatar Ryan Dwyer2018-07-19
| | | | | | | | | | | | | | | | | | | | | | | | Fixes #2303, as well as a crash. To replicate the crash: * Have multiple outputs * In config: for_window [<criteria>] workspace foo * Also in config: workspace foo output <left-output-name> * Focus the right output, and ensure workspace foo doesn't exist * Launch the app that triggers the criteria When the view maps, it calls workspace_switch which calls send_set_focus which calls cursor_send_pointer_motion which calls transaction_commit_dirty. This call to transaction_commit_dirty is not meant to happen at this time because the tree isn't guaranteed to be in a consistent state, but I'm not sure how exactly this leads to the crash or render issues. In this case the transaction is already committed by the view implementation's handle_map function. So the solution is to remove it from cursor_send_pointer_motion and add it to the other functions in cursor.c which call cursor_send_pointer_motion.
* Make focus part of transactionsLibravatar Ryan Dwyer2018-07-15
| | | | | | | | | | | | Rather than maintain copies of the entire focus stack, this PR transactionises the focus by introducing two new properties to the container state and using those when rendering. * `bool focused` means this container has actual focus. Only one container should have this equalling true in its current state. * `struct sway_container *focus_inactive_child` points to the immediate child that was most recently focused (eg. for tabbed and stacked containers).
* Update for swaywm/wlroots#1126Libravatar emersion2018-07-09
|
* Fix pointer button events for layer surfacesLibravatar Brian Ashworth2018-07-05
|
* dont focus-follow-mouse when keyboard grabLibravatar Tony Crisci2018-06-24
|
* Render drag iconsLibravatar emersion2018-06-09
|
* Initialise previous cursor position.Libravatar Scott Leggett2018-06-06
| | | | | Fix the problem with focus jumping to the container under the cursor when first starting sway.
* Don't set focus to NULL when clicking a surface which has no containerLibravatar Ryan Dwyer2018-06-04
|
* Store swayc coordinates as layout-localLibravatar Ryan Dwyer2018-06-01
|
* Implement floatingLibravatar Ryan Dwyer2018-06-01
|
* Improve comment.Libravatar Scott Leggett2018-05-28
|
* Avoid assert on container type.Libravatar Scott Leggett2018-05-28
|