aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorLines
2018-10-26Fix #2992mwenzkowski-1/+2
Move a function call, such that data it depends on is initialized before.
2018-10-26Merge pull request #2989 from RyanDwyer/fix-focus-glitchinessDrew DeVault-0/+4
Fix focus after a non-visible workspace's last container is destroyed
2018-10-26Fix focus after a non-visible workspace's last container is destroyedRyan Dwyer-0/+4
The code being changed is responsible for updating the focus stack when a container is destroyed in a different part of the tree to where the real focus is. It's attempting to set focus_inactive to a sibling (or parent if no siblings) of the container that is being destroyed, then put our real focus back on the end of the focus stack. The problem occurs when the container being destroyed is in a different workspace. For example: * Have a focused view on workspace 1 * Have workspace 2 not visible with a single view that is unmapping * The first call to seat_set_raw_focus sets focus to workspace 2 because it's the parent * Prior to this patch, the second call to seat_set_raw_focus would set focus to the view on workspace 1 * Later, when using output_get_active_workspace, this function would return workspace 2 because it's the first workspace it finds in the focus stack. To fix this, workspace 1 must be placed on the focus stack between workspace 2 and the focused view. That's what this patch does. Lastly, it also uses seat_get_focus_inactive to choose the focus. This fixes a crash when a view unmaps while a non-container is focused (eg. swaylock), because focus is NULL.
2018-10-26Merge pull request #2985 from mihaicmn/fix-retilingDrew DeVault-4/+1
Fix re-tiling for floating containers
2018-10-25Merge pull request #2984 from Ferdi265/masteremersion-2/+2
sway-ipc: don't log errno if unneeded and add more descriptive errors
2018-10-25Fix re-tiling for floating containersMihai Coman-4/+1
When a floating container is tiled (e.g.: 'floating toggle' or 'floating disable'), it should be placed after/below the inactive focused container from the tiling layout.
2018-10-25sway-ipc: don't log errno if unneeded and add more descriptive errorsFerdinand Bachmann-2/+2
2018-10-25Merge pull request #2982 from Toromtomtom/masterDrew DeVault-1/+2
protect newline
2018-10-25protect newlineTom Warnke-1/+2
2018-10-25Merge pull request #2980 from ppascher/allow_workspace_missing_outputDrew DeVault-4/+3
Update workspace.c
2018-10-25Update workspace.cppascher-0/+3
re-added missing output check after config load
2018-10-25Update workspace.cppascher-4/+0
Remove output requirement for workspace command
2018-10-25Merge pull request #2973 from ianyfan/swaybaremersion-42/+32
swaybar: fix scrolling behaviour
2018-10-25Merge pull request #2975 from RyanDwyer/deny-commands-when-no-outputsDrew DeVault-0/+52
Deny several commands when there's no outputs connected
2018-10-25Merge pull request #2974 from RyanDwyer/cursor-rebase-after-txn-applyemersion-68/+18
Rebase the cursor after applying transactions
2018-10-26Deny several commands when there's no outputs connectedRyan Dwyer-0/+52
2018-10-25Rebase the cursor after applying transactionsRyan Dwyer-68/+18
This approaches cursor rebasing from a different angle. Rather than littering the codebase with cursor_rebase calls and using transaction callbacks, this just runs cursor_rebase after applying every transaction - but only if there's outputs connected, because otherwise it causes a crash during shutdown. There is one known case where we still need to call cursor_rebase directly, and that's when running `seat seat0 cursor move ...`. This command doesn't set anything as dirty so no transaction occurs.
2018-10-25Merge pull request #2950 from emersion/presentation-timeDrew DeVault-89/+108
Implement the presentation-time protocol
2018-10-25swaybar: when scrolling, check that there are workspaces to scroll onIan Fan-0/+4
2018-10-25swaybar: fix scrolling behaviourIan Fan-40/+26
1. wrap_scroll has been fixed 2. release bindings are checked when returning early
2018-10-25swaybar: reverse order of workspaces listIan Fan-3/+3
This makes it congruent with its visual appearance, making it easier to reason about.
2018-10-25Merge pull request #2971 from RyanDwyer/document-output-identifiersemersion-0/+7
Document how to identify outputs by make, model and serial
2018-10-25Merge pull request #2970 from RyanDwyer/fix-scratchpad-sizeemersion-2/+2
Fix containers not being resized when entering scratchpad
2018-10-25Document how to identify outputs by make, model and serialRyan Dwyer-0/+7
2018-10-25Fix containers not being resized when entering scratchpadRyan Dwyer-2/+2
This fixes a regression introduced by 662466e8db773926bf61b21280194a3540ae26ec. When adding a container to the scratchpad, setting container->scratchpad = true before container_set_floating made container_set_floating believe that the container was already floating. This fixes it by setting the property afterwards instead.
2018-10-24Merge pull request #2925 from ianyfan/swaylockDrew DeVault-4/+22
swaylock: exit early if unable to get input inhibitor
2018-10-24Merge pull request #2964 from RyanDwyer/tab-wheel-focus-inactiveDrew DeVault-4/+15
When scrolling on a tab titlebar, set focus_inactive if not focused
2018-10-24When scrolling on a tab titlebar, set focus_inactive if not focusedRyan Dwyer-4/+15
For example, create layout H[view T[view view view]], focus the view in the hsplit and scroll the mouse wheel over the tab title bars. Prior to this patch, focus would be given to a descendant of the tabbed container. This patch keeps the focus on the hsplit view. This also renames some of the variables used in this part of the code to make it be easier to follow.
2018-10-24Merge pull request #2957 from RyanDwyer/rebase-cursor-after-mapDrew DeVault-11/+63
Rebase the cursor after mapping a view
2018-10-24Merge pull request #2954 from RyanDwyer/cursor-rebase-after-focus-directionDrew DeVault-0/+1
Rebase the cursor after focusing in a direction
2018-10-24Merge pull request #2961 from RyanDwyer/swaylock-multiseatemersion-14/+21
Add multiseat support to swaylock
2018-10-24Add multiseat support to swaylockRyan Dwyer-14/+21
2018-10-24Rebase the cursor after mapping a viewRyan Dwyer-11/+63
I originally put the rebase at the end of view_map, but at this point the view is still at its native size and will ignore the motion event if it falls outside of its native size. The only way to do this properly is to rebase the cursor later - either after sending the configure, after the view commits with the new size, or after applying the transaction. I chose to do it after applying the transaction for simplicity. I then attempted to just call cursor_rebase after applying every transaction, but this causes crashes when exiting sway (and possibly other places) because cursor_rebase assumes the tree is in a valid state. So my chosen solution introduces transaction_commit_dirty_with_callback which allows handle_map to register a callback which will run when the transaction is applied.
2018-10-24Rebase the cursor after focusing in a directionRyan Dwyer-0/+1
Prior to this patch, creating a tabbed container with two views, switching tab and then scrolling without motion would cause the scroll events to be sent to the old focus. To fix this, rebasing the cursor is needed after changing focus.
2018-10-24Merge pull request #2933 from Snaipe/xwayland-window-propertiesDrew DeVault-0/+38
xwayland: populate window_properties in json for views
2018-10-23Implement the presentation-time protocolemersion-89/+108
2018-10-23xwayland: populate window_properties in json for viewsFranklin "Snaipe" Mathieu-0/+38
window_properties is documented to contain a subset of the X11 properties of a window (its title, class, instance, role, and transient ID). This commit adds the missing json object from the get_tree output for xwayland windows only. This is a follow-up of #2911. Signed-off-by: Franklin "Snaipe" Mathieu <me@snai.pe>
2018-10-23Merge pull request #2942 from ianyfan/swaybarDrew DeVault-7/+3
swaybar: absorb bar_init function into bar_setup
2018-10-23Merge pull request #2944 from RyanDwyer/fix-multiseat-dormant-cursorDrew DeVault-2/+8
Fix dormant cursor when using multiple seats
2018-10-23seat_update_capabilities: Set cursor image while we have the capabilityRyan Dwyer-2/+5
2018-10-23Fix dormant cursor when using multiple seatsRyan Dwyer-0/+3
The cursor's image would be removed or set when the seat's capabilities were updated, but there was nothing to prevent the image from being set at other times.
2018-10-23swaybar: absorb bar_init function into bar_setupIan Fan-7/+3
2018-10-23swaybar: exit on display errorIan Fan-1/+4
2018-10-23swaylock: exit on display errorIan Fan-3/+13
2018-10-23swaylock: exit early if unable to inhibit inputIan Fan-0/+5
This stops the program from going into a spinlock without exiting
2018-10-23Merge pull request #2941 from ianyfan/commandsRyan Dwyer-41/+27
commands: clean up checkargs function +other small changes
2018-10-23commands: replace EXPECTED_LESS_THAN with EXPECTED_AT_MOSTIan Fan-7/+7
This makes it a bit more obvious what the expected number of arguments is.
2018-10-23commands: clean-up checkarg functionIan Fan-19/+14
Consolidates logic and fixes mistake that used argc instead of val for determining plural.
2018-10-23commands: remove EXPECTED_MORE_THANIan Fan-14/+5
Its uses have been replaced with EXPECTED_AT_LEAST.
2018-10-23commands: print correct command on error for exec and opacityIan Fan-5/+5