aboutsummaryrefslogtreecommitdiff
path: root/sway/input/seat.c
AgeCommit message (Collapse)Author
2018-07-23Add missing checks to fix 2339Brian Ashworth
2018-07-22Set cursor when beginning resize and move operationsRyan Dwyer
2018-07-22Store last button and use it when views request to move or resizeRyan Dwyer
2018-07-22Replace static handle_end_operation with seat_end_mouse_operationRyan Dwyer
2018-07-22Implement xdg shell request_move and request_resize eventsRyan Dwyer
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
2018-07-21Fix urgent timer logic and remove unnecessary header includesRyan Dwyer
2018-07-21Implement force_display_urgency_hintRyan Dwyer
The directive sets the timeout before an urgent view becomes normal again after switching to it from another workspace. Also: * When an xwayland surface removes the urgent hint while the timer is active, we now ignore the request. This happens as soon as the view receives focus, so it was effectively making the timer pointless. * The timeout is now only applied when switching to it from another workspace.
2018-07-18Don't unfocus when an override redirect window is mappedemersion
2018-07-17Update cursor on focus changeemersion
This allows to send wl_pointer.enter when switching between views in a split/tabbed layout for instance. This (1) updates the cursor image accordingly (2) makes it unnecessary to move the mouse before scrolling. It's harmless to always call cursor_send_pointer_motion because in case the focused surface hasn't changed this is a no-op. The `last_focus != NULL` condition is required otherwise cursor_send_pointer_motion will crash when sway starts up (the sway_output doesn't yet have a workspace).
2018-07-16Merge pull request #2276 from RyanDwyer/urgencyDrew DeVault
Implement urgency base functionality
2018-07-16Fix tab split focus bugRyan Dwyer
Fixes a bug where if you have a tab containing a split, then switch from a non-split tab to the split tab, focus is not changed properly.
2018-07-16Implement urgency base functionalityRyan Dwyer
Introduces a command to manually set urgency, as well as rendering of urgent views, sending the IPC event, removing urgency after focused for one second, and matching urgent views via criteria.
2018-07-15Make focus part of transactionsRyan Dwyer
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).
2018-07-12Fix crash in seat codeRyan Dwyer
Container will be NULL if launching swaylock.
2018-07-11fix crash on floating windowsdudemanguy
2018-07-11Move floating windows to front when focusedRyan Dwyer
2018-07-09Update for swaywm/wlroots#1126emersion
2018-07-04Fix focus related damageRyan Dwyer
When you have an unfocused container (so one view is focused_inactive), and you focus any other view in that container, the view with focused_inactive was not damaged. This is because we damaged the previous focus and new focus, but needed to damage the parent of the new focus.
2018-07-02Don't return pending children in seat_get_active_current_childRyan Dwyer
Fixes #2192. seat_get_active_current_child is intended to return a child of the given container which has finished its mapping transaction and is able to be rendered on screen. The previous implementation was capable of returning a pending child, which caused a child of a tabbed or stacked view to be rendered prematurely while it was mapping.
2018-06-29Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-23Fix crash when deleting last child in a tabbed or stacked containerRyan Dwyer
There was no `current` child because the container was destroyed. This makes it fall back to looking in the parent's current children list.
2018-06-18Automatically float xwayland windowsemersion
2018-06-09Render drag iconsemersion
2018-06-04Restore focus when unmapping layer shell surfacesRyan Dwyer
2018-06-03Fix seat_get_active_childRyan Dwyer
seat_get_active_child is used for tabbed and stacked containers to get the active child. The previous implementation used seat_get_focus_inactive then ascended the tree to the child of the tabbed/stacked container, but this fails when the workspace itself is stacked or tabbed and the most recently active child is floating. The new implementation takes a more simple approach, where it directly scans the focus stack for the first immediate child which isn't the floating container. Fixes #2098.
2018-06-01Fix mouse warping interaction with layout coordsDrew DeVault
2018-06-01Implement floatingRyan Dwyer
2018-05-28Fix ancestor typosRyan Dwyer
2018-05-28Remove unused function.Scott Leggett
2018-05-28Store previous position in sway_cursor.Scott Leggett
2018-05-27Focus containers only on entry.Scott Leggett
2018-05-21Don't track damage for views on inactive tabsRyan Dwyer
2018-05-20Fix border commands from changing focusBrian Ashworth
2018-05-11Highlight all child borders when using focus parentRyan Dwyer
2018-05-10Damage container on focusemersion
2018-05-03Default to backend-wise input device mapping, if anyemersion
2018-05-02Implement basic touch supportDrew DeVault
This required changing container_at_cursor to container_at_coords so that we could get the appropriate surface (and sx/xy) without moving the cursor. Future work: - Simulate a cursor for clients which have not bound to wl_touch - Keep sending motion events when moving outside the surface (#1892) - Bind gestures to sway commands
2018-04-28Refactor arrange_windows()Ryan Dwyer
Replaces arrange_windows() with arrange_root(), arrange_output(), arrange_workspace() and arrange_children_of(). Also makes fullscreen views save and restore their dimensions, which allows it to preserve any custom resize and is also a requirement for floating views once they are implemented.
2018-04-26Add map_from_region commandemersion
2018-04-24Fix segfault when switching back to workspace with osu!emersion
2018-04-21Default to current time when triggering cursor eventsemersion
2018-04-21Update cursor when workspace focus changesemersion
2018-04-19Fix qutebrowser crash on context menu dismissalDrew DeVault
2018-04-17Create sway_workspace struct.Ryan Dwyer
2018-04-16Implement fullscreen.Ryan Dwyer
2018-04-15remove empty workspace when focusing its outputdb
Until now, focus changing code only considered cleaning up the last focused workspace. This commit adds removal of empty workspace from output that just received focus on a different workspace. Fixes: #1797
2018-04-13seat_set_focus_wrap: fix use-after-free when destroying last focused containerDominique Martinet
2018-04-08Merge pull request #1769 from acrisci/focus-inactive-fixesDrew DeVault
Focus inactive fixes
2018-04-08Add input "identifier" map_to_output "identifier"Drew DeVault
2018-04-08Merge branch 'wlroots' into focus-inactive-fixesTony Crisci