Commit graph

344 commits

Author SHA1 Message Date
Ryan Dwyer
dc83b158e1 Fix issues with sticky containers and workspaces
* Attach sticky containers to new workspaces when switching
* Fire the close event *before* we start destroying the workspace to
prevent a crash

Because the sticky container now follows the visible workspace, this
simplifies the rendering and container_at logic.
2018-06-01 23:14:58 +10:00
Ryan Dwyer
754cb7944c Respect view's border config for floating containers 2018-06-01 23:14:58 +10:00
Ryan Dwyer
aaba7642b3 Replace is_floating boolean with function 2018-06-01 23:14:58 +10:00
Ryan Dwyer
34f35f0bad Use L_FLOATING instead of reapable boolean 2018-06-01 23:14:58 +10:00
Ryan Dwyer
1f2e399ade Implement floating 2018-06-01 23:14:58 +10:00
Drew DeVault
71db8de4be Render floating views 2018-06-01 23:14:58 +10:00
Brian Ashworth
205a1732cf Force fullscreen views to be fully opaque 2018-05-28 13:55:38 -04:00
Ryan Dwyer
f6c3682c05 Use constants for titlebar dimensions 2018-05-22 08:27:42 +10:00
Ryan Dwyer
664169fbf1 Implement stacked layout 2018-05-22 08:27:24 +10:00
Ryan Dwyer
048b29527b Pre-multiply alpha for tab decorations 2018-05-21 20:16:56 +10:00
Ryan Dwyer
90607dc329 Add left/right borders to tabs 2018-05-21 20:16:56 +10:00
Ryan Dwyer
5ab4930185 Fix tab border issues 2018-05-21 20:16:56 +10:00
Ryan Dwyer
efc07fb3d4 Don't track damage for views on inactive tabs 2018-05-21 20:16:56 +10:00
Ryan Dwyer
c08f9bf257 Implement tabbed layout 2018-05-21 20:16:56 +10:00
Brian Ashworth
750a497a8b Pre-multiply alpha for non-textures 2018-05-20 09:33:47 -04:00
Konstantin Pospelov
fcc11f9771 Fix pixel bar below title
This commit changes how the left and right indents are calculated for the
title bottom pixel bar, so that it is displayed properly in case the left or
right border is hidden.
2018-05-19 18:39:01 +03:00
Ryan Dwyer
f0212d66ee Update marks textures on output scale event 2018-05-17 08:29:14 +10:00
Ryan Dwyer
ebb0d051db Fix many border opacity issues 2018-05-17 08:29:14 +10:00
Ryan Dwyer
0e2cc0af30 Implement show_marks 2018-05-17 08:29:14 +10:00
emersion
79e970d86e
Correctly clip title texture if necessary 2018-05-15 08:38:28 +01:00
Brian Ashworth
9ba0dca7ba
Merge branch 'master' into fix-1975 2018-05-14 09:06:23 -04:00
Brian Ashworth
77b42ec821 Always render top border for border normal 2018-05-14 09:04:18 -04:00
emersion
95a10dd4f3
Kill wl_shell 2018-05-14 13:26:10 +01:00
Brian Ashworth
6ff7c52736 Fix titles and detect edges for hide_edge_borders 2018-05-14 00:20:34 -04:00
Brian Ashworth
2adf23c2a3 Only count views for hide_edge_borders smart 2018-05-12 12:56:26 -04:00
Brian Ashworth
e3625d8f33 Count descendant views for hide_edge_borders smart 2018-05-12 12:37:48 -04:00
Brian Ashworth
3db7fc2bb2 Implement hide_edge_borders 2018-05-11 18:44:56 -04:00
Ryan Dwyer
83e314bf51 Highlight all child borders when using focus parent 2018-05-11 09:20:46 +10:00
emersion
44fcc06efd
Fix damage tracking on HiDPI 2018-05-10 23:22:00 +01:00
emersion
90614f3a63
Accumulate surface damage even if whole=true 2018-05-10 23:03:51 +01:00
emersion
bec80f1551
Damage borders when damaging view 2018-05-10 23:03:50 +01:00
emersion
98f7ee8f59
Render borders with damage 2018-05-10 23:03:50 +01:00
emersion
c8a9ea3903
Implement full damage tracking 2018-05-10 23:02:37 +01:00
Ryan Dwyer
4922d269b8 Fix titles on rotated outputs
If the output is rotated, the scissor box needs to be transformed in the
opposite rotation.
2018-05-09 16:41:54 +10:00
Ryan Dwyer
e83e5487be Use scissor to render title texture
This allows the title's texture to always be the full width of the text,
and clipped at render time according to the desired width (eg. tabs...).

As an added bonus, the texture no longer needs to be updated when
containers are arranged.
2018-05-05 20:32:31 +10:00
Ryan Dwyer
b667298a0a Render titles 2018-05-03 15:12:00 +10:00
Ryan Dwyer
daab8e3503 Support alpha in border colours
The alpha component is merged with the container's opacity.

Completes #1882.
2018-05-02 08:40:38 +10:00
Ryan Dwyer
a19a511b90 Implement indicator border 2018-05-01 19:21:29 +10:00
Ryan Dwyer
d847ac1120 Scale borders according to output scale 2018-05-01 18:35:58 +10:00
Ryan Dwyer
e67f354333 Implement borders
Implements rendering of borders. Title text is still to do.

Implements the following configuration directives:

* client.focused
* client.focused_inactive
* client.unfocused
* client.urgent
* border
* default_border
2018-04-30 21:24:13 +10:00
Ryan Dwyer
167c2e1aa9 Refactor arrange_windows()
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-28 11:26:14 +10:00
Ryan Dwyer
4d2b3fc950 Render unmanaged xwayland views when an xwayland view is fullscreen
This makes Chromium and Firefox context menus appear when fullscreen.
2018-04-23 09:20:19 +10:00
Ryan Dwyer
6afccd07d9 Add TODO about rendering fullscreen views smaller than the output 2018-04-20 08:12:03 +10:00
Ryan Dwyer
bd67342bdc Don't render top layer when fullscreen. 2018-04-20 08:08:34 +10:00
Ryan Dwyer
9715e38ca8 render_output(): When fullscreen, clear to black and don't render background 2018-04-19 13:01:43 +10:00
Ryan Dwyer
8d06b222f0 Fullscreen rendering and input fixes.
* Render background when using fullscreen, because transparency.
* Check that fullscreen surface allows input.
* Don't look for surfaces in top layer if there's a fullscreen view.
2018-04-18 13:06:10 +10:00
Ryan Dwyer
35ccdd67a8 More fullscreen fixes.
* Render fullscreen views without wlr function, which makes popups and
lockscreen work.
* Don't allow input events to surfaces behind fullscreen views.
* Use correct output dimensions (for rotated outputs).
2018-04-18 08:35:28 +10:00
Ryan Dwyer
a44d016e2b Don't damage views if they're hidden by a fullscreen view. 2018-04-17 10:58:42 +10:00
Ryan Dwyer
c685ef081f Create sway_workspace struct. 2018-04-17 09:31:34 +10:00
Ryan Dwyer
bfd5834f4c Feedback for fullscreen. 2018-04-17 08:11:50 +10:00
Ryan Dwyer
52420cc24d Implement fullscreen. 2018-04-16 20:36:40 +10:00
Drew DeVault
b12b848bdc
Merge pull request #1759 from emersion/output-send-frame-done
Don't send frame done immediately when rendering
2018-04-07 12:23:26 -04:00
emersion
8af0c2b000
Don't send frame done immediately when rendering 2018-04-07 12:10:50 -04:00
emersion
33b4f945ab
Fix inverted assertion
Seems like it doesn't work this way
2018-04-07 12:03:13 -04:00
Drew DeVault
c47b4d4edb
Merge pull request #1756 from emersion/output-damage
Fine-grained damage tracking
2018-04-07 11:53:10 -04:00
emersion
0c627918bb
Damage all surfaces when damaging whole container 2018-04-06 15:59:50 -04:00
emersion
58914822aa
Don't damage the whole output 2018-04-06 14:17:58 -04:00
emersion
e550e22c0b
Refactor rendering code 2018-04-06 13:27:01 -04:00
Drew DeVault
603e0e42c5 Add debug tree view 2018-04-06 11:49:27 -04:00
emersion
516f5454ad
Simplify damage tracking functions, use them in layer shell 2018-04-06 11:45:40 -04:00
emersion
641807d920
Handle unmanaged surfaces motion 2018-04-05 18:48:35 -04:00
emersion
d65d001aa5
Fix desktop_damage_whole_surface 2018-04-05 18:38:50 -04:00
emersion
076bedb85e
Add container_damage_whole 2018-04-05 18:31:19 -04:00
emersion
1c91d0c10f
Add damage tracking for xwayland unmanaged surfaces 2018-04-05 17:39:17 -04:00
emersion
44b8d30f52 Use new wlr_*_surface_at functions 2018-04-04 22:03:14 -04:00
emersion
8eff00f723 Remove unused SWAY_VIEW_TYPES 2018-04-04 22:03:14 -04:00
Tony Crisci
fc9398a42e Implement opacity command 2018-04-04 21:57:05 -04:00
Tony Crisci
741e3959e3 Merge branch 'wlroots' into split-containers2 2018-04-04 00:20:44 -04:00
Tony Crisci
a001890fb8 move workspace create to workspace.c 2018-04-03 19:52:17 -04:00
emersion
c0554d23d3
Fix rendering with multiple outputs 2018-04-03 19:34:56 -04:00
Tony Crisci
481a8275c1 address feedback 2018-04-03 19:23:59 -04:00
Tony Crisci
cba258e16a move output code out of the tree 2018-04-03 12:40:11 -04:00
Tony Crisci
09d448ea2d unify container destroy functions 2018-04-03 12:34:01 -04:00
emersion
a4a241697a
Merge branch 'wlroots' into view-redesign 2018-04-02 15:30:58 -04:00
emersion
2f64ce86c4
Xwayland unmanaged views aren't views anymore 2018-04-02 14:35:43 -04:00
Tony Crisci
5e024278a6 Merge branch 'wlroots' into seat-fixes 2018-04-02 13:23:43 -04:00
Drew DeVault
b2d871cfe2 Partially implement move command
Works:

- move [container|window] to workspace <name>
    - Note, this should be able to move C_CONTAINER but this is untested
- move [workspace] to output [left|right|up|down|<name>]

Not implemented yet:

- move [left|right|up|down]
- move scratchpad
- move position
2018-04-02 11:12:18 -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
emersion
b2c2ee693b
Introduce common functions to create, map, unmap, destroy views 2018-03-31 17:49:40 -04:00
emersion
98b67e2399
Fix xwayland configure in set_size 2018-03-31 11:30:15 -04:00
emersion
0f7936735c
Fix unmanaged views rendering on all outputs 2018-03-31 10:56:49 -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
emersion
981827ca42
Cleanup and remove global renderer reference 2018-03-30 00:49:27 -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
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
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
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
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
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
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
Tony Crisci
23e9f5dc35 use wl_container_of() in output destroy callback 2018-02-20 19:21:32 -05:00
Tony Crisci
316effd7b1 make handle_output_destroy() static 2018-02-20 19:06:56 -05:00
Tony Crisci
b88f06e70a bugfix: get right layout box for rendering views 2018-02-19 17:55:16 -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
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
93084c9cf8 remove old focus member 2018-02-10 19:53:50 -05:00
Tony Crisci
095ddb1561 fix build for output damage 2018-02-10 16:13:08 -05:00
Drew DeVault
b28602aa74 Implement workspaces 2018-01-30 23:09:21 -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
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
Tony Crisci
9fa70ce426 Merge branch 'wlroots' into feature/input 2017-12-16 07:33:23 -05:00
emersion
ec2fd6e5c0
Handle output remove 2017-12-13 21:47:37 +01:00
emersion
a4619e98c4
Update output containers on output layout change 2017-12-13 15:52:18 +01:00
emersion
d293c42942
Update output container box in event handler 2017-12-12 21:09:51 +01:00
emersion
c7abb77f22
Listen to output layout change 2017-12-12 20:02:01 +01:00
emersion
f3d880b0ec
Add scale and transform events to sway_output 2017-12-12 19:40:17 +01:00
Tony Crisci
163edc5a90 sway input device 2017-12-12 08:29:37 -05:00
Tony Crisci
e69b052a6d working pointer motion 2017-12-10 08:48:44 -05:00
Tony Crisci
9333a7eb53 working xcursor 2017-12-09 14:06:00 -05:00
Tony Crisci
9220225f1d remove unused timespec_to_msec 2017-12-03 08:42:47 -05:00
Tony Crisci
31e44c01b4 send callbacks with send_frame_done 2017-12-01 07:15:34 -05:00
Tony Crisci
6993a76232 set mode on output 2017-11-28 04:46:22 -05:00
Drew DeVault
a57d462926 Fix rendering issues, wire up some xdg listeners 2017-11-25 15:49:10 -05:00
Drew DeVault
ce1936bc65 Arrange windows on desktop 2017-11-25 11:19:25 -05:00
Drew DeVault
4ca1e77fdb Add views to tree and render them 2017-11-22 21:06:08 -05:00
Drew DeVault
db4fb1c85c Add outputs to the tree 2017-11-19 17:04:28 -05:00
Drew DeVault
733993a651 Move everything to sway/old/ 2017-11-18 11:22:02 -05:00
Drew DeVault
1efd5f819f Wire up output frame loop 2017-11-11 14:41:18 -05:00
Drew DeVault
7eafcc75f6 Initialize outputs from backend and add to tree 2017-11-11 11:58:43 -05:00