Commit graph

1808 commits

Author SHA1 Message Date
emersion 61fabede14
Address review comments 2018-04-02 10:57:45 -04:00
Tony Crisci 53bb7ea996 dont copy seat config on the seat 2018-04-02 10:37:31 -04:00
Tony Crisci 0828c77251 rename input-manager functions 2018-04-02 08:49:38 -04:00
Tony Crisci e677c5b204 rename seat functions 2018-04-02 08:45:37 -04:00
Tony Crisci b5d49cc4e8 remove default from kill switch 2018-03-31 21:05:58 -04:00
Tony Crisci 27e394f8b0 fix children list segfault 2018-03-31 19:45:30 -04:00
Tony Crisci eda425fdab fix some segfaults 2018-03-31 18:52:02 -04:00
emersion 1d68f9ecca
Add sway_view_impl 2018-03-31 18:07:44 -04:00
emersion b2c2ee693b
Introduce common functions to create, map, unmap, destroy views 2018-03-31 17:49:40 -04:00
Tony Crisci 2aec85bf24 clean up view destroy seat cleanup 2018-03-31 17:07:37 -04:00
Tony Crisci 6f7b33e691 handle container destroy in the seat 2018-03-31 15:38:59 -04:00
Tony Crisci e7ecb001d7 reap container parent on destroy 2018-03-31 15:37:16 -04:00
Tony Crisci f7a20726fc temporarily add LD_LIBRARY_PATH stuff 2018-03-31 15:37:16 -04:00
Tony Crisci 7706d83160 basic split containers 2018-03-31 15:37:16 -04:00
Drew DeVault 122b96abed
Merge pull request #1684 from swaywm/follow-warp
Implement focus_follows_mouse, mouse_warping
2018-03-31 15:32:29 -04:00
Drew DeVault f2332dc75c Address review feedback 2018-03-31 15:20:43 -04:00
emersion 8aedc042ee
Fix two segfaults when destroying outputs 2018-03-31 13:47:22 -04:00
Drew DeVault b9d2983324 Fix interaction between warping and following 2018-03-31 13:05:45 -04:00
Drew DeVault 9b38ef950f Implement focus_follows_mouse
Also contains two other small changes:

- Clicking any button will focus the container clicked (not just left)
- Remove seamless_mouse (doesn't make sense on wlroots)
2018-03-31 13:05:45 -04:00
Drew DeVault ae6d459000 Implement mouse warping 2018-03-31 13:05:45 -04:00
Drew DeVault 89ca6676be
Merge pull request #1681 from emersion/xwayland-configure-position
Fix various xwayland issues
2018-03-31 11:40:34 -04:00
emersion 98b67e2399
Fix xwayland configure in set_size 2018-03-31 11:30:15 -04:00
Drew DeVault a1e7ffd857
Merge pull request #1677 from emersion/maximize-xwayland-views
Maximize xwayland views by default
2018-03-31 11:27:05 -04:00
Brian Ashworth c901510e01 Fixes back-and-forth name saving for non-empty ws 2018-03-31 11:13:20 -04:00
emersion 0f7936735c
Fix unmanaged views rendering on all outputs 2018-03-31 10:56:49 -04:00
emersion 6579717994
Fix xwayland configure position 2018-03-31 10:53:53 -04:00
Drew DeVault eb5a8e03ff Check for null container 2018-03-31 10:51:39 -04:00
Drew DeVault e4fd47d3a1
Merge pull request #1682 from emersion/unmanaged-no-container
Make it clear that unmanaged views don't have a container
2018-03-31 10:49:06 -04:00
Drew DeVault ccdcaa478f Fix bug with previous commit 2018-03-31 10:47:04 -04:00
emersion a44a71c116
Make it clear that unmanaged views don't have a container
view->swayc is NULL anyway.
2018-03-31 10:39:05 -04:00
Drew DeVault 8aa195e311 Fix #1104 2018-03-31 09:45:11 -04:00
Drew DeVault 5c08e13e50 Set Xwayland seat on focus
Necessary to make primary selection syncronize
2018-03-31 09:29:34 -04:00
Drew DeVault ae0552606b Configure linux_dmabuf, primary_selection 2018-03-31 09:21:15 -04:00
Drew DeVault 6a1a94b87c
Merge pull request #1678 from emersion/xwayland-xcursor
Set xwayland cursor
2018-03-31 00:35:50 -04:00
Drew DeVault 18173fb5ad Free bar configs on reload and exit 2018-03-31 00:35:06 -04:00
emersion b237fa0b22
Set xwayland cursor 2018-03-31 00:24:38 -04:00
emersion 5f3fce7519
Maximize xwayland views by default 2018-03-30 23:58:40 -04:00
Drew DeVault 212b503992 Use wlr_surface_point_accepts_input 2018-03-30 23:08:24 -04:00
Drew DeVault f5470f3338 Pass pointer events to surface layers 2018-03-30 21:03:35 -04:00
emersion 9665642765
Merge branch 'wlroots' into client-cursors 2018-03-30 19:04:06 -04:00
Drew DeVault 1b88eaee6b
Merge pull request #1665 from emersion/damage-tracking-lite
Add lite damage tracking
2018-03-30 18:53:36 -04:00
Drew DeVault e6fa7a722e
Merge pull request #1669 from emersion/workspace-pointer-events
Fix pointer events for hidden workspaces
2018-03-30 18:49:18 -04:00
emersion 139f80b0f0
Handle map/unmap events in xdg-shell-v6 2018-03-30 17:43:43 -04:00
emersion 3a68c012a9
Remove debug, add explicit TODO 2018-03-30 17:24:29 -04:00
emersion 50219564c2
Fix white screen due to bad cast 2018-03-30 17:16:35 -04:00
emersion a776ecbb86
Add lite damage tracking
This skips the renderer if nothing has changed, and renders
everything otherwise.
2018-03-30 17:16:35 -04:00
Tony Crisci 7e0d430a0c
Merge branch 'wlroots' into wlroots-xwayland-map 2018-03-30 16:16:12 -04:00
emersion eb716c6c43
Fix segfaults when focusing a workspace 2018-03-30 16:12:02 -04:00
emersion 03255fd202
Fix pointer events for hidden workspaces 2018-03-30 15:33:16 -04:00
Drew DeVault 88f08a42f3 Fix segfault when reaping invisible workspaces 2018-03-30 14:31:17 -04:00
Drew DeVault b28e6d2369 IPC fixes 2018-03-30 13:56:31 -04:00
Drew DeVault 49379dd0fc Fix workspace deletion edge cases 2018-03-30 13:49:34 -04:00
emersion cf09ea184b
Use the new map/unmap events for xwayland views 2018-03-30 13:34:25 -04:00
Drew DeVault a5e457d59a Add xwayland views to focused container 2018-03-30 12:06:45 -04:00
emersion 1592543fd6
Merge pull request #1659 from swaywm/default-orientation
Add default_orientation command
2018-03-30 11:49:45 -04:00
Drew DeVault b6b674fd76
Merge pull request #1657 from emersion/render-fixes
Misc minor fixes
2018-03-30 11:42:59 -04:00
emersion 681f38c878
Fix segfault on xwayland unmanaged view unmap 2018-03-30 11:22:12 -04:00
emersion 6c9d67b105
Handle set_cursor requests from clients
Allow clients to set a custom cursor if they have the seat's
pointer focus.
2018-03-30 10:53:18 -04:00
Drew DeVault 01af343912 Destroy empty workspaces when moving away 2018-03-30 10:47:19 -04:00
Drew DeVault 69eb021767 Add default_orientation command 2018-03-30 10:43:55 -04:00
emersion 28cb412b0d
Unify initial xwayland view mapping with map handler 2018-03-30 10:09:56 -04:00
emersion 981827ca42
Cleanup and remove global renderer reference 2018-03-30 00:49:27 -04:00
Drew DeVault 2d46050281 Fix crash when override redirect views close 2018-03-30 00:46:40 -04:00
Drew DeVault e62cc0ac26 Finish porting over workspace_next_name 2018-03-30 00:34:24 -04:00
Drew DeVault 00d450e554 Use output coords for layer surfaces
This will need to be more carefully thought out when we get the
output_layout working entirely.
2018-03-30 00:16:18 -04:00
Drew DeVault d6acb3d86c Set WAYLAND_DISPLAY earlier in startup 2018-03-30 00:13:54 -04:00
Drew DeVault f26ecd9f58 Merge remote-tracking branch 'origin/wlroots' into swaybar-layers 2018-03-30 00:04:04 -04:00
Tony Crisci 8f490d7d2d Fix oversights from previous pull request 2018-03-29 23:53:38 -04:00
Tony Crisci dc8c9fbeb6 Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"
This reverts commit 472e81f35d, reversing
changes made to 6b7841b11f.
2018-03-29 23:41:33 -04:00
Drew DeVault d0c7f66e95
Revert "Refactor tree" 2018-03-29 23:29:29 -04:00
Drew DeVault 6b7841b11f
Merge pull request #1647 from acrisci/refactor-tree
Refactor tree
2018-03-29 23:19:14 -04:00
Tony Crisci 2778edef97 arrange windows 2018-03-29 23:15:39 -04:00
Tony Crisci 92c58b1e63 rename container_for_each_descendent 2018-03-29 23:08:59 -04:00
Drew DeVault dbda7bfbed Move declaration into loop 2018-03-29 22:23:41 -04:00
Drew DeVault ddc09940b1 Exit ipc_get_workspace_callback early 2018-03-29 22:16:43 -04:00
Drew DeVault 8efee109ad Implement modes 2018-03-29 22:11:08 -04:00
Drew DeVault 741424c4e7 Clean up imported bar commands 2018-03-29 22:11:08 -04:00
Drew DeVault 849c3515ab Use statically allocated text buffer 2018-03-29 22:11:08 -04:00
Drew DeVault c91adbd188 Fix failure to rearrange output in some cases 2018-03-29 22:11:08 -04:00
Drew DeVault f3fbf19312 Do some small cleanup
- Fix workspace events (security config isn't in use so it wasn't being
  sent)
- Kill status bar process when swaybar exits
- Don't rearrange windows on every layer surface commit
2018-03-29 22:11:08 -04:00
Drew DeVault 5f5076baff Call arrange_windows on layer destroy 2018-03-29 22:11:08 -04:00
Drew DeVault 8b5b72c576 Restart swaybar on config reload 2018-03-29 22:11:08 -04:00
Drew DeVault 2e84f21ab7 Terminate swaybar when freeing bar config 2018-03-29 22:11:08 -04:00
Drew DeVault 2719ddfe5e Spawn swaybars when outputs are added 2018-03-29 22:11:08 -04:00
Drew DeVault 5c9cdbcdd2 Add swaybg_command 2018-03-29 22:11:08 -04:00
Drew DeVault 569b2bfd5d Move bar config into its own file 2018-03-29 22:11:08 -04:00
Drew DeVault bf7a4cd0eb Add bar configuration commands 2018-03-29 22:11:08 -04:00
Drew DeVault 6836074fed Implement enough IPC for swaybar to work 2018-03-29 22:11:08 -04:00
Drew DeVault a76829f375 Some layer shell fixes
Based on the corresponding rootston changes
2018-03-29 22:11:08 -04:00
Scott Anderson c8e7437b82 Clear buffer after beginning renderer 2018-03-30 14:38:14 +13:00
Tony Crisci 4c394a0e9e address feedback 2018-03-29 21:22:39 -04:00
Tony Crisci 4ec8bf4cee 80col 2018-03-29 18:38:43 -04:00
Tony Crisci 62d1b4cb96 fix container_get_in_direction name 2018-03-29 18:17:31 -04:00
Tony Crisci e5491bf498 rename container destroy func 2018-03-29 18:17:03 -04:00
Tony Crisci ed2cedb544 rename layout init 2018-03-29 17:13:37 -04:00
Tony Crisci eca029f218 more renaming things 2018-03-29 17:06:29 -04:00
Tony Crisci b90099b4b7 rename container functions 2018-03-29 16:40:40 -04:00
Drew DeVault 941ca5c8fd Maximize xdg shell surfaces on creation
Makes them look better yo

In the future we might want to only do this for tiled windows, and let
floating windows do their own thing.
2018-03-29 15:40:15 -04:00
Tony Crisci 83d09cf594 remove swayc_t typedef 2018-03-29 14:31:10 -04:00
Tony Crisci 874f009866 move tree includes to their own directory 2018-03-29 14:21:42 -04:00
Drew DeVault 8d6bce02af Address review feedback 2018-03-28 18:11:03 -04:00
Drew DeVault 68cfa7ef67 Render layer surfaces and respect exclusive zone 2018-03-28 16:42:13 -04:00
Drew DeVault 0c8a64942e Add initial layer shell skeleton 2018-03-28 15:47:22 -04:00
Drew DeVault 1e604f3e35 Update input events per swaywm/wlroots#765 2018-03-28 12:22:45 -04:00
Drew DeVault 53df5889d5 Fix lingering xdg shell issues 2018-03-27 15:54:34 -04:00
Drew DeVault cbb2e3308e Update API to match latest wlroots 2018-03-27 13:28:43 -04:00
emersion 01beee5826
Update wlroots API
Breaking changes in wlr_xdg_shell_v6 and wlr_renderer have been
made upstream.
2018-03-19 23:31:18 +01:00
emersion 1004915796
Update rendering code for wlroots matrix redesign 2018-03-15 21:22:34 +01:00
emersion 4ab5506064
ipc: add output modes 2018-03-12 13:48:42 +01:00
Dominique Martinet 95963e4a1f xwayland: do not send surface configure when no width/height
The code in apply_horiz_layout systematically does `set_position`
then `set_size`, so for new windows there is an invalid call.

For old windows there are two calls when only one is needed,
with the current code set_position could not send any surface
configure without impact, but in the future it might be needed?
Native wayland surfaces do not need to know where they are (the
set_position handled only updates the sway internal view variable),
why does X11 window need that?
2018-03-03 16:37:14 +01:00
Tony Crisci 02804584e5 ipc new window event 2018-02-27 19:53:15 -05:00
Drew DeVault 3c80498891 Utilize wlr_xwayland_surface_is_unmanaged 2018-02-27 08:26:18 -05:00
Tony Crisci ad879c99e0 ipc show focused container 2018-02-26 19:07:59 -05:00
Drew DeVault 4b781356a4 Fix wlr_render_with_matrix call
This takes an alpha parameter now.
2018-02-26 19:04:57 -05:00
Drew DeVault 265378270a Revert "Multiple output coords by scale"
This reverts commit 94f8bdf081.
2018-02-25 17:55:49 -05:00
Drew DeVault 94f8bdf081 Multiple output coords by scale 2018-02-25 17:54:28 -05:00
Drew DeVault 8ad26c8afd Send surface enter/leave events 2018-02-25 17:23:36 -05:00
Drew DeVault 61c1c3e7af Use focus for new windows xwayland/wl_shell 2018-02-25 12:55:19 -05:00
Drew DeVault 669f91b991 Document updates to the output command 2018-02-25 11:35:31 -05:00
Tony Crisci 1cca3965f3 static bfs queue 2018-02-24 14:30:47 -05:00
Tony Crisci 2154b7c7d6 add config handlers 2018-02-24 13:34:47 -05:00
Tony Crisci 7262bf655f remove checks for command handlers 2018-02-24 13:22:57 -05:00
Tony Crisci 5b219a1598 separate config directives and commands 2018-02-24 13:20:34 -05:00
Tony Crisci ac8269d536 take seat param for handle_command and rename 2018-02-24 12:50:24 -05:00
Tony Crisci 66d1e0b313 basic layout command 2018-02-22 18:37:14 -05:00
Tony Crisci bcb870bcf2 bug: fix crash on focus up 2018-02-20 19:47:48 -05:00
Tony Crisci 23e9f5dc35 use wl_container_of() in output destroy callback 2018-02-20 19:21:32 -05:00
Tony Crisci 4b3aa59b8b rename new_input listener on input-manager 2018-02-20 19:09:38 -05:00
Tony Crisci 316effd7b1 make handle_output_destroy() static 2018-02-20 19:06:56 -05:00
Tony Crisci 4c4cc9c999 remove old comments 2018-02-20 19:04:03 -05:00
Tony Crisci b88f06e70a bugfix: get right layout box for rendering views 2018-02-19 17:55:16 -05:00
Tony Crisci 176d24f02d choose adjacent container between outputs 2018-02-17 19:03:21 -05:00
Tony Crisci fb37e80225 basic move focus in direction across outputs 2018-02-17 18:33:02 -05:00
Tony Crisci 80927985fb fix output rendering issue 2018-02-17 16:30:32 -05:00
Tony Crisci 7c089442c3 use box projection function 2018-02-17 15:18:21 -05:00
Tony Crisci 9510a20fcd arrange windows after output add 2018-02-17 13:32:04 -05:00
Tony Crisci a3ae67af4e basic focus in direction 2018-02-14 17:12:21 -05:00
Tony Crisci 52670c636c basic focus (without direction) 2018-02-14 16:47:23 -05:00
Tony Crisci 780d9fe1e3 cleanup layout.c 2018-02-14 15:23:56 -05:00
Tony Crisci 083e11ac7c fix build for latest api 2018-02-14 15:08:10 -05:00
Tony Crisci c6cb87be19 output damage fix 2018-02-14 14:55:38 -05:00
Tony Crisci 7dfbf06de9 output destroy 2018-02-14 14:51:51 -05:00
Tony Crisci 06c71f115b input device destroy 2018-02-14 14:47:59 -05:00
Tony Crisci 946d9459c5 get swayc in direction 2018-02-14 14:30:27 -05:00
Tony Crisci 93084c9cf8 remove old focus member 2018-02-10 19:53:50 -05:00
Tony Crisci ce3a1b3922 properly pick next focus 2018-02-10 18:19:53 -05:00
Tony Crisci 145b4fdf58 use bfs iterator to collect focus stack 2018-02-10 16:52:45 -05:00
Tony Crisci 095ddb1561 fix build for output damage 2018-02-10 16:13:08 -05:00
Tony Crisci a7d49da239 separate seat get focus and seat get focus inactive 2018-02-07 18:17:57 -05:00
Tony Crisci 7d8f2c52aa make index_child static 2018-02-06 18:54:10 -05:00
Tony Crisci 5151502298 basic focus overhaul 2018-02-04 14:08:54 -05:00
Drew DeVault b28602aa74 Implement workspaces 2018-01-30 23:09:21 -05:00
Drew DeVault a686fb07ae Execute pending commands when Xwayland is ready 2018-01-30 20:01:49 -05:00
Dominique Martinet 6259831d31 commands/reload: remove unimplemented 'load_swaybars' call 2018-01-22 07:26:40 +01:00
Dominique Martinet 5766f426aa config reload: destroy old seat when removed from config
This adds new sway_seat_destroy and sway_cursor_destroy helpers
and compare new and old config on free
2018-01-22 07:26:37 +01:00
Dominique Martinet 869be4378d commands: add 'reload' command 2018-01-22 07:25:23 +01:00
emersion 0c58673c6a
Merge pull request #1574 from acrisci/config-refactor
Command criteria
2018-01-22 01:16:23 +01:00
Tony Crisci beb3805cf0 dont allow kill command in config 2018-01-21 19:13:11 -05:00
Tony Crisci 38a1628a76 clear handler context before ipc command 2018-01-21 14:21:32 -05:00
Tony Crisci c3fc0d446f cmd-kill: use sway_assert when no container 2018-01-21 14:15:10 -05:00
Tony Crisci 5505d84ac2 criteria cleanup 2018-01-21 14:11:41 -05:00
Drew DeVault a6bc46eea9 Remove sway/old/ 2018-01-21 12:21:57 -05:00
Drew DeVault c933781fac
Merge pull request #1570 from acrisci/config-references
Copy input config references
2018-01-21 11:17:07 -05:00
Tony Crisci 6b03b1205d implement property criteria 2018-01-21 09:17:51 -05:00
Tony Crisci 0e3eae4baa view interface 2018-01-21 09:09:53 -05:00
Tony Crisci 1156523ccf run all commands with focused container context 2018-01-21 08:46:31 -05:00
Tony Crisci 6a1d71b8b8 basic command criteria 2018-01-20 16:21:45 -05:00
Tony Crisci c353e01c85 add kill command 2018-01-20 14:10:11 -05:00
Tony Crisci cc3c713889 seat config handler context 2018-01-20 11:44:34 -05:00
Tony Crisci 9e0595f26b input config handler context 2018-01-20 11:34:57 -05:00
Tony Crisci 2bf76509f8 update for new wlr-keyboard modifiers 2018-01-17 11:47:27 -05:00
Tony Crisci 9f54cd8935 copy config references for input and seat 2018-01-17 09:49:02 -05:00
Tony Crisci ddc49ede46 xwm handle map and unmap 2018-01-15 09:38:05 -05:00
Tony Crisci 83ddd2d9db render override redirect 2018-01-14 13:19:21 -05:00
Tony Crisci 2ce1d8d6cd render wl-shell and xwayland views 2018-01-14 11:47:48 -05:00
Tony Crisci 619254db76 subsurface input 2018-01-14 10:50:20 -05:00
Tony Crisci 76ce629198 xdg-popups 2018-01-14 10:47:19 -05:00
Tony Crisci 4c8c9b29e4 render xdg surface 2018-01-14 10:35:56 -05:00
Dominique Martinet 67985e9031 sway: change all sway_log to wlr_log 2018-01-05 23:39:46 +01:00
Dominique Martinet c83900593d config: add 'set' command 2018-01-05 15:36:20 +01:00
Dominique Martinet 19ddb70a32 fixup free config use free_sway_binding 2018-01-05 00:07:34 +01:00
Dominique Martinet 9a326be7f8 config: leak sanitizer pass
Add free for everything that's implemented right now.
Will need to add more as the implementations are re-added.
2018-01-05 00:07:34 +01:00
Dominique Martinet f5b33cb4b6 fix typos in comments/messages; add shutting down message 2018-01-05 00:07:34 +01:00
Dominique Martinet 28b8ea9f1e cmd_input: cleanup around current_input_config
- Restore old one if we weren't part of a block (should be NULL anyway)
- Check current_input_config got properly allocated
- free temporary current_input_config when done using it
2018-01-05 00:07:34 +01:00
Dominique Martinet afca73b6fc apply_input_config: restore previous current_input_config
This is important for freeing the proper one at end of block
2018-01-05 00:07:34 +01:00
Drew DeVault 91313d3847
Merge pull request #1539 from acrisci/bindings
Bindings
2018-01-04 09:47:36 -05:00
Drew DeVault bc7011db3c
Merge pull request #1543 from emersion/output-config-by-identifier
Allow to configure outputs by their identifier
2018-01-04 09:47:04 -05:00
Tony Crisci b01a53abfb Merge branch 'wlroots' into bindings 2018-01-04 08:00:22 -05:00
Tony Crisci 8b4eb5d7d1 cleanup bindings 2018-01-04 07:54:14 -05:00
Tony Crisci 50e791cadb binding release 2018-01-04 07:25:52 -05:00
Calvin Lee 7196f59db0 Consolidate WLR and Sway logging
See #1390
2017-12-31 14:32:28 -07:00
emersion ead3f1e676
Allow to configure outputs by their identifier 2017-12-29 19:04:16 +01:00
Tony Crisci bd3ca70e3d fix nitpicks 2017-12-29 09:11:15 -05:00
Tony Crisci 62b7ab3959 overwrite old bindings 2017-12-28 18:50:22 -05:00
Tony Crisci 0b8481f41a fix keyboard_execute_bindcode 2017-12-28 16:52:12 -05:00
Tony Crisci 8d567cd062 bindcode 2017-12-28 16:24:23 -05:00
Tony Crisci 27cd633b40 run compositor bindings last 2017-12-27 19:07:17 -05:00
Tony Crisci ccaedf5b15 run binding command 2017-12-27 15:25:16 -05:00
emersion 21c61f1c09
Refactor output command, add output enable 2017-12-27 21:23:30 +01:00
Tony Crisci d941246d58 match user bindsym 2017-12-27 15:17:01 -05:00