Commit Graph

4854 Commits

Author SHA1 Message Date
frsfnrrg
e33dfbfa75 Implement key repeat for pressed key bindings
Each sway_keyboard is provided with a wayland timer event source.
When a valid keypress binding has been found, a callback to
handle_keyboard_repeat is set. Any key event will either clear
the callback or (if the new key event is a valid keypress binding)
delay the callback again.
2018-07-29 19:15:02 -04:00
Drew DeVault
ca8f177e14
Merge pull request #2379 from emersion/xwayland-unmanaged
Don't give focus if xwayland window has a type hint
2018-07-29 13:49:58 -04:00
emersion
9a7e436fad Don't give focus if xwayland window has a type hint 2018-07-29 17:28:21 +01:00
emersion
0ad865f0b7 Make output_surface_for_each_surface_iterator static 2018-07-29 14:34:48 +01:00
emersion
9951b2ec33 Remove unused output_from_wlr_output 2018-07-29 14:33:26 +01:00
emersion
fe0750fec1 Remove output_surface_for_each_surface from header 2018-07-29 14:33:26 +01:00
emersion
8d5cc8625c Completely switch over to new iterators 2018-07-29 14:33:26 +01:00
emersion
e9d674cfd2 wip: redesign output_view_for_each_surface iterator 2018-07-29 14:33:26 +01:00
emersion
a0dd977617 wip: redesign output_layer_for_each_surface iterator 2018-07-29 14:33:26 +01:00
emersion
dbf6dd0dae wip: redesign output_drag_icons_for_each_surface iterator 2018-07-29 14:33:26 +01:00
emersion
d2172bd331 wip: redesign output_unmanaged_for_each_surface iterator 2018-07-29 14:33:26 +01:00
Ryan Dwyer
8fcf0505d0
Merge pull request #2380 from mariusor/tap-button-map-man-fix
Escaping underscores in tap_button_map
2018-07-29 23:12:01 +10:00
Ryan Dwyer
b2f58af46c
Merge branch 'master' into tap-button-map-man-fix 2018-07-29 23:01:59 +10:00
emersion
5af776e734
Merge pull request #2376 from swaywm/virtual-keyboard
Add virtual keyboard protocol
2018-07-29 13:59:54 +01:00
Marius Orcsik
7b9aee5451
Escaping underscores in tap_button_map 2018-07-29 14:47:53 +02:00
Drew DeVault
cded0ff7e8
Merge pull request #2371 from ggreer/numlock
Don't enable numlock by default.
2018-07-28 20:49:13 -04:00
Drew DeVault
1e65439a54 Add virtual keyboard protocol
Ref #2373
2018-07-28 20:47:56 -04:00
Geoff Greer
30fee94354 Don't enable numlock by default. This fixes an annoying issue where laptop keyboards would have 'numlock mode' enabled, remapping parts of the alphabet to numbers. 2018-07-28 16:22:20 -07:00
Drew DeVault
53069f1403
Merge pull request #2360 from RyanDwyer/floating-containers
Allow containers to float
2018-07-28 09:30:12 -04:00
Drew DeVault
e4b54ac16e
Merge pull request #2368 from RyanDwyer/handle-out-of-fds
Handle out-of-fd situations gracefully for transaction and urgent timers
2018-07-28 09:05:28 -04:00
Drew DeVault
68d6307aa6
Merge pull request #2365 from RyanDwyer/fix-cmd-defer-crash
Fix crash when a deferred command destroys a workspace
2018-07-28 09:05:04 -04:00
Ryan Dwyer
84cd22c8cb Fix crash when a deferred command destroys a workspace
Example config that produces the crash (with a single output):

    workspace 1
    workspace 2

Prior to this commit, container_workspace_free would manually mark the
L_FLOATING container as destroying and free it. This assumed the
L_FLOATING container would never be involved in a transaction. This was
a safe assumption when it was implemented, but became an incorrect
assumption once parent/child relationships became transactionised.

This commit removes the L_FLOATING free from container_workspace_free.
When the workspace is destroyed, it starts the normal destroy process on
the L_FLOATING container so it can be freed via transactions.
2018-07-28 22:41:24 +10:00
Ryan Dwyer
0337609667 Focus child when showing a scratchpad container 2018-07-28 22:41:04 +10:00
Ryan Dwyer
debb8e85b2 Fix crash when unfloating child of container into empty workspace 2018-07-28 22:41:04 +10:00
Ryan Dwyer
9d1f6e095b Send floating container to scratchpad when a child is focused 2018-07-28 22:41:04 +10:00
Ryan Dwyer
538e083f61 Fix focus mode_toggle from a child of a floating container
Also fixes a crash when unfloating a window. It needs to add it back to
the tiling tree as a sibling rather than a child, because the reference
container might be a view.
2018-07-28 22:41:04 +10:00
Ryan Dwyer
c95847c9e1 Allow splitting a floating view 2018-07-28 22:41:04 +10:00
Ryan Dwyer
da2a87f6c7 When unfloating, return container to previously focused tiled container
This introduces seat_get_focus_inactive_tiling and updates
`focus mode_toggle` to use it instead, because the previous method
wasn't guaranteed to return a tiling view.
2018-07-28 22:41:04 +10:00
Ryan Dwyer
936168e740 Operate on floating split container when a child is focused 2018-07-28 22:41:04 +10:00
Ryan Dwyer
902a1402ba Fix crash when a child of a floating container is in the scratchpad 2018-07-28 22:41:04 +10:00
Ryan Dwyer
0b6b6716e2 Fix clicking a floating split container
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.
2018-07-28 22:41:04 +10:00
Ryan Dwyer
08cfba2192 Allow containers to float
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 (b14bd1b0b1) 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.
2018-07-28 22:41:04 +10:00
Ryan Dwyer
a4bcddcfdc Include errno.h 2018-07-28 22:40:43 +10:00
Ryan Dwyer
d6daf10cad Show errno description in log 2018-07-28 22:40:43 +10:00
Ryan Dwyer
32663b7b01 Handle out-of-fd situations gracefully for transaction and urgent timers 2018-07-28 22:40:43 +10:00
Brian Ashworth
a2164c6661
Merge pull request #2372 from RyanDwyer/fix-use-after-free-v2
Second attempt at fixing transaction use-after-free
2018-07-28 08:38:09 -04:00
Ryan Dwyer
52cf410d3c Second attempt at fixing transaction use-after-free
The solution used in 073ac425d5 doesn't
work in all cases because the freed instruction might be ahead in the
list, not necessarily behind.

The new solution delays running the queue until after the loop has
finished iterating, thus avoiding the problem completely.
2018-07-28 17:43:18 +10:00
Brian Ashworth
92a4bc646a
Merge pull request #2370 from RyanDwyer/transactions-use-after-free
Fix use after free in transactions
2018-07-28 01:31:43 -04:00
Ryan Dwyer
073ac425d5 Fix use after free in transactions
In set_instructions_ready, calling set_instruction_ready may cause any
number of transactions to get applied, which removes them from the list
being iterated.  The iteration variables need to be adjusted
accordingly.
2018-07-28 15:21:39 +10:00
Drew DeVault
7ad9d743fa
Merge pull request #2369 from mihaicmn/preserve-workspace-name
Preserve workspace name
2018-07-27 21:24:22 -04:00
Mihai Coman
d37c94d1b6 Preserve workspace name 2018-07-28 00:18:52 +00:00
Brian Ashworth
f6db3acd24
Merge pull request #2357 from RyanDwyer/cleanup-view-map
Refactor view_map
2018-07-26 21:53:05 -04:00
Ryan Dwyer
6ceb1d33fd Fix assign to workspace 2018-07-27 09:21:55 +10:00
Ryan Dwyer
a90f2dbde9 Refactor view_map
* Move workspace selection into separate function
* Instead of keeping a `prev_focus` variable, do the check in
`should_focus` (ie. views can only take focus if they're mapped into the
active workspace)
* Fix assign-to-output - it previously set `prev_focus` but should be
`target_sibling`
* Remove call to `workspace_switch` as we'll only ever focus the view if
it's in the active workspace
2018-07-26 19:18:47 +10:00
Brian Ashworth
75ebeb4a16
Merge pull request #2356 from RyanDwyer/fullscreen-containers
Allow containers to be fullscreen
2018-07-25 21:30:56 -04:00
Ryan Dwyer
868dcde14e Fix indent 2018-07-26 08:28:05 +10:00
Ryan Dwyer
27a20a4884 Allow containers to be fullscreen 2018-07-26 08:27:07 +10:00
Brian Ashworth
c8dc9b3b30
Merge pull request #2330 from progandy/set-modifier-locks
Configure initial state for numlock/capslock
2018-07-25 12:07:35 -04:00
ProgAndy
76ece5788b Fix LEDs for configured modifier states 2018-07-25 17:24:45 +02:00
ProgAndy
0ba52458ab Restrict CapsLock and NumLock commands to the configuration file 2018-07-25 17:24:45 +02:00