Ryan Dwyer
e4e912ea91
Store swayc coordinates as layout-local
7 years ago
Ryan Dwyer
02de2a6f65
Rename set_maximized functions to set_tiled
7 years ago
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.
7 years ago
Ryan Dwyer
754cb7944c
Respect view's border config for floating containers
7 years ago
Ryan Dwyer
aaba7642b3
Replace is_floating boolean with function
7 years ago
Ryan Dwyer
34f35f0bad
Use L_FLOATING instead of reapable boolean
7 years ago
Ryan Dwyer
1f2e399ade
Implement floating
7 years ago
Drew DeVault
71db8de4be
Render floating views
7 years ago
Brian Ashworth
205a1732cf
Force fullscreen views to be fully opaque
7 years ago
emersion
b350e8ec82
xdg-shell: make all toplevels tiled
7 years ago
Ryan Dwyer
f6c3682c05
Use constants for titlebar dimensions
7 years ago
Ryan Dwyer
664169fbf1
Implement stacked layout
7 years ago
Ryan Dwyer
048b29527b
Pre-multiply alpha for tab decorations
7 years ago
Ryan Dwyer
90607dc329
Add left/right borders to tabs
7 years ago
Ryan Dwyer
5ab4930185
Fix tab border issues
7 years ago
Ryan Dwyer
efc07fb3d4
Don't track damage for views on inactive tabs
7 years ago
Ryan Dwyer
c08f9bf257
Implement tabbed layout
7 years ago
Brian Ashworth
750a497a8b
Pre-multiply alpha for non-textures
7 years ago
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.
7 years ago
Ryan Dwyer
f0212d66ee
Update marks textures on output scale event
7 years ago
Ryan Dwyer
ebb0d051db
Fix many border opacity issues
7 years ago
Ryan Dwyer
0e2cc0af30
Implement show_marks
7 years ago
emersion
79e970d86e
Correctly clip title texture if necessary
7 years ago
Brian Ashworth
9ba0dca7ba
Merge branch 'master' into fix-1975
7 years ago
Brian Ashworth
77b42ec821
Always render top border for border normal
7 years ago
emersion
95a10dd4f3
Kill wl_shell
7 years ago
Brian Ashworth
34b864fb17
Merge branch 'master' into fix-1975
7 years ago
Brian Ashworth
6ff7c52736
Fix titles and detect edges for hide_edge_borders
7 years ago
Ryan Dwyer
8432d8a15e
xdg_shell: Replace get_prop with get_string_prop
7 years ago
Ryan Dwyer
1e9aaa54a8
Revert "Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements""
...
This reverts commit 32a572cecf
.
This reimplements the criteria overhaul in preparation for fixing a
known bug.
7 years ago
emersion
88d9d43b36
Add xdg-shell stable support
7 years ago
Ryan Dwyer
90e6dfa268
Merge branch 'master' into edge-borders
7 years ago
emersion
360e63b8a7
Don't destroy view child on xdg-popup unmap
7 years ago
Brian Ashworth
2adf23c2a3
Only count views for hide_edge_borders smart
7 years ago
Brian Ashworth
e3625d8f33
Count descendant views for hide_edge_borders smart
7 years ago
Drew DeVault
32a572cecf
Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements"
...
This reverts commit 3e1bf721c6
, reversing
changes made to 2217518bd5
.
7 years ago
Brian Ashworth
3db7fc2bb2
Implement hide_edge_borders
7 years ago
Ryan Dwyer
3b0c26d149
Overhaul criteria implementation
...
The criteria struct now uses properties for each token type rather than
the list_t list of tokens. The reason for this is that different token
types have different data types: pcre, string and number to name a few.
This solution should be more flexible moving forward. A bonus of this is
that criteria is now easier to understand when looking at the struct
definition.
The criteria parser has been rewritten because the previous one didn't
support valueless pairs (eg. [class="foo" floating]).
Criteria now has types. Types at the moment are CT_COMMAND,
CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well.
Previously the assign command was creating a criteria with 'move to
workspace <name>' as its command, but this caused the window to appear
briefly on the focused workspace before being moved to the assigned
workspace. It now creates the view directly in the assigned workspace.
Each view will only execute a given criteria once. This is achieved by
storing a list of executed criteria in the view. This is the same
strategy used by i3.
Escaping now works properly. Previously you could do things like
[class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it
should be (and now is) 'Fire"fox'.
The public functions in criteria.c are now all prefixed with criteria_.
Xwayland views now listen to the set_title, set_class and
set_window_type events and criteria will be run when these happen. XDG
shell has none of these events so it continues to update the title in
handle_commit.
Each view type's get_prop function has been split into get_string_prop
and get_int_prop because some properties like the X11 window ID and
window type are numeric.
The following new criteria tokens are now supported:
* id (X11 window ID)
* instance
* tiling
* workspace
7 years ago
Ryan Dwyer
83e314bf51
Highlight all child borders when using focus parent
7 years ago
emersion
44fcc06efd
Fix damage tracking on HiDPI
7 years ago
emersion
90614f3a63
Accumulate surface damage even if whole=true
7 years ago
emersion
bec80f1551
Damage borders when damaging view
7 years ago
emersion
98f7ee8f59
Render borders with damage
7 years ago
emersion
c8a9ea3903
Implement full damage tracking
7 years ago
emersion
3d29e73e72
layer-shell: use usable_area when arranging non-exclusive layer surfaces
7 years ago
Ryan Dwyer
4922d269b8
Fix titles on rotated outputs
...
If the output is rotated, the scissor box needs to be transformed in the
opposite rotation.
7 years ago
Ryan Dwyer
228c478e8d
Implement title_format
...
This implements the title_format command, with a new placeholder %shell
which gets substituted with the view type (xwayland, xdg_shell_v6 or
wl_shell).
Example config:
for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
7 years ago
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.
7 years ago
Ryan Dwyer
74d1367fac
Update titles when surfaces are committed
7 years ago
Ryan Dwyer
b667298a0a
Render titles
7 years ago
Ryan Dwyer
daab8e3503
Support alpha in border colours
...
The alpha component is merged with the container's opacity.
Completes #1882 .
7 years ago
db
22170bde77
Fix layer surface crash on output destroy
...
Before freeing sway_output, NULL the wlr_output reference to it. Check for that
NULL in layer_shell handle_destroy. Don't damage null container in unmap.
Additionaly, terminate swaybg if its output is being disabled.
7 years ago
Ryan Dwyer
a19a511b90
Implement indicator border
7 years ago
Ryan Dwyer
d847ac1120
Scale borders according to output scale
7 years ago
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
7 years ago
emersion
976e6b99b6
Merge branch 'master' into refactor-arrange-windows
7 years ago
emersion
3fd8897abe
Don't call view_set_fullscreen on unmapped xwayland views
7 years ago
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.
7 years ago
emersion
df245780d2
Do not let tiled xwayland views do what they want
7 years ago
Drew DeVault
420a669f21
Updates per swaywm/wlroots#887
7 years ago
Ryan Dwyer
4d2b3fc950
Render unmanaged xwayland views when an xwayland view is fullscreen
...
This makes Chromium and Firefox context menus appear when fullscreen.
7 years ago
emersion
17bee33fc9
Don't unmap on destroy, this is already guaranteed by wlroots
7 years ago
Ryan Dwyer
6afccd07d9
Add TODO about rendering fullscreen views smaller than the output
7 years ago
Ryan Dwyer
76837b9132
Ignore xdg_shell_v6 request_fullscreen if not mapped
7 years ago
Ryan Dwyer
bd67342bdc
Don't render top layer when fullscreen.
7 years ago
Ryan Dwyer
9715e38ca8
render_output(): When fullscreen, clear to black and don't render background
7 years ago
Ryan Dwyer
2acfbc519e
xdg_shell_v6: Use client_pending state instead of current
...
It appears client_pending is the state that should be used here.
7 years ago
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.
7 years ago
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).
7 years ago
Ryan Dwyer
72beae209b
Fullscreen fixes.
7 years ago
Ryan Dwyer
143b528f71
Handle fullscreen flag when mapping a surface.
7 years ago
Ryan Dwyer
a44d016e2b
Don't damage views if they're hidden by a fullscreen view.
7 years ago
Ryan Dwyer
c685ef081f
Create sway_workspace struct.
7 years ago
Ryan Dwyer
bfd5834f4c
Feedback for fullscreen.
7 years ago
Ryan Dwyer
52420cc24d
Implement fullscreen.
7 years ago
emersion
bdaf420ead
Do not call the map handler when an xwayland surface is created
7 years ago
emersion
2b357af7ee
Give keyboard focus to unmanaged xwayland surfaces
...
This fixes dmenu
7 years ago
Drew DeVault
b12b848bdc
Merge pull request #1759 from emersion/output-send-frame-done
...
Don't send frame done immediately when rendering
7 years ago
emersion
8af0c2b000
Don't send frame done immediately when rendering
7 years ago
emersion
33b4f945ab
Fix inverted assertion
...
Seems like it doesn't work this way
7 years ago
Drew DeVault
c47b4d4edb
Merge pull request #1756 from emersion/output-damage
...
Fine-grained damage tracking
7 years ago
Drew DeVault
f5a9bd5cb7
Merge pull request #1700 from swaywm/move-cmd-full
...
Implement move [left|right|up|down]
7 years ago
Drew DeVault
640232eb22
Revert "Break everything^W^WUse wlr_box for sway_container"
7 years ago
emersion
0c627918bb
Damage all surfaces when damaging whole container
7 years ago
Drew DeVault
764489e737
Break everything^W^WUse wlr_box for sway_container
7 years ago
emersion
58914822aa
Don't damage the whole output
7 years ago
emersion
e550e22c0b
Refactor rendering code
7 years ago
Drew DeVault
603e0e42c5
Add debug tree view
7 years ago
emersion
516f5454ad
Simplify damage tracking functions, use them in layer shell
7 years ago
emersion
290c916290
Send surface enter/leave events to view children
7 years ago
emersion
641807d920
Handle unmanaged surfaces motion
7 years ago
emersion
d65d001aa5
Fix desktop_damage_whole_surface
7 years ago
emersion
076bedb85e
Add container_damage_whole
7 years ago
emersion
1c91d0c10f
Add damage tracking for xwayland unmanaged surfaces
7 years ago
emersion
07f3bb3ad1
Handle xwayland configure requests for unmanaged surfaces
7 years ago
emersion
a528aea2ee
Make xwayland surface destroy more foolproof
7 years ago
emersion
7ce1038478
Fix xwayland unmanaged surfaces
7 years ago
emersion
f5e5b1819b
Track damage of xdg-shell-v6 popups
7 years ago
emersion
dcd15a2d3d
Implement shell views
7 years ago
emersion
44b8d30f52
Use new wlr_*_surface_at functions
7 years ago
emersion
8eff00f723
Remove unused SWAY_VIEW_TYPES
7 years ago
Tony Crisci
fc9398a42e
Implement opacity command
7 years ago
Tony Crisci
741e3959e3
Merge branch 'wlroots' into split-containers2
7 years ago
Drew DeVault
deb63eda88
Merge pull request #1717 from emersion/fix-multiple-outputs
...
Fix rendering with multiple outputs
7 years ago
Tony Crisci
a001890fb8
move workspace create to workspace.c
7 years ago
emersion
c0554d23d3
Fix rendering with multiple outputs
7 years ago
Tony Crisci
481a8275c1
address feedback
7 years ago
emersion
5cd9457247
Send enter event to layer shell surfaces
7 years ago
Tony Crisci
cba258e16a
move output code out of the tree
7 years ago
Tony Crisci
09d448ea2d
unify container destroy functions
7 years ago
Drew DeVault
56078edd65
Give exclusive focus to layers above shell layer
7 years ago
Drew DeVault
623a08e14f
Identify topmost interactive layer post-arrange
7 years ago
emersion
a4a241697a
Merge branch 'wlroots' into view-redesign
7 years ago
emersion
2f64ce86c4
Xwayland unmanaged views aren't views anymore
7 years ago
Tony Crisci
5e024278a6
Merge branch 'wlroots' into seat-fixes
7 years ago
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
7 years ago
emersion
61fabede14
Address review comments
7 years ago
Tony Crisci
0828c77251
rename input-manager functions
7 years ago
Tony Crisci
e677c5b204
rename seat functions
7 years ago
emersion
1d68f9ecca
Add sway_view_impl
7 years ago
emersion
b2c2ee693b
Introduce common functions to create, map, unmap, destroy views
7 years ago
emersion
8aedc042ee
Fix two segfaults when destroying outputs
7 years ago
Drew DeVault
89ca6676be
Merge pull request #1681 from emersion/xwayland-configure-position
...
Fix various xwayland issues
7 years ago
emersion
98b67e2399
Fix xwayland configure in set_size
7 years ago
emersion
0f7936735c
Fix unmanaged views rendering on all outputs
7 years ago
emersion
6579717994
Fix xwayland configure position
7 years ago
emersion
5f3fce7519
Maximize xwayland views by default
7 years ago
emersion
139f80b0f0
Handle map/unmap events in xdg-shell-v6
7 years ago
emersion
3a68c012a9
Remove debug, add explicit TODO
7 years ago
emersion
50219564c2
Fix white screen due to bad cast
7 years ago
emersion
a776ecbb86
Add lite damage tracking
...
This skips the renderer if nothing has changed, and renders
everything otherwise.
7 years ago
Tony Crisci
7e0d430a0c
Merge branch 'wlroots' into wlroots-xwayland-map
7 years ago
Drew DeVault
49379dd0fc
Fix workspace deletion edge cases
7 years ago
emersion
cf09ea184b
Use the new map/unmap events for xwayland views
7 years ago
Drew DeVault
a5e457d59a
Add xwayland views to focused container
7 years ago
emersion
681f38c878
Fix segfault on xwayland unmanaged view unmap
7 years ago
emersion
28cb412b0d
Unify initial xwayland view mapping with map handler
7 years ago
emersion
981827ca42
Cleanup and remove global renderer reference
7 years ago
Drew DeVault
2d46050281
Fix crash when override redirect views close
7 years ago
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.
7 years ago
Drew DeVault
f26ecd9f58
Merge remote-tracking branch 'origin/wlroots' into swaybar-layers
7 years ago
Tony Crisci
8f490d7d2d
Fix oversights from previous pull request
7 years ago
Tony Crisci
dc8c9fbeb6
Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"
...
This reverts commit 472e81f35d
, reversing
changes made to 6b7841b11f
.
7 years ago
Drew DeVault
d0c7f66e95
Revert "Refactor tree"
7 years ago
Drew DeVault
6b7841b11f
Merge pull request #1647 from acrisci/refactor-tree
...
Refactor tree
7 years ago
Tony Crisci
2778edef97
arrange windows
7 years ago
Drew DeVault
c91adbd188
Fix failure to rearrange output in some cases
7 years ago
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
7 years ago
Drew DeVault
5f5076baff
Call arrange_windows on layer destroy
7 years ago
Drew DeVault
6836074fed
Implement enough IPC for swaybar to work
7 years ago
Drew DeVault
a76829f375
Some layer shell fixes
...
Based on the corresponding rootston changes
7 years ago
Scott Anderson
c8e7437b82
Clear buffer after beginning renderer
7 years ago
Tony Crisci
eca029f218
more renaming things
7 years ago
Tony Crisci
b90099b4b7
rename container functions
7 years ago
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.
7 years ago
Tony Crisci
874f009866
move tree includes to their own directory
7 years ago
Drew DeVault
8d6bce02af
Address review feedback
7 years ago
Drew DeVault
68cfa7ef67
Render layer surfaces and respect exclusive zone
7 years ago
Drew DeVault
0c8a64942e
Add initial layer shell skeleton
7 years ago
Drew DeVault
53df5889d5
Fix lingering xdg shell issues
7 years ago
Drew DeVault
cbb2e3308e
Update API to match latest wlroots
7 years ago
emersion
01beee5826
Update wlroots API
...
Breaking changes in wlr_xdg_shell_v6 and wlr_renderer have been
made upstream.
7 years ago
emersion
1004915796
Update rendering code for wlroots matrix redesign
7 years ago
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?
7 years ago
Drew DeVault
3c80498891
Utilize wlr_xwayland_surface_is_unmanaged
7 years ago
Drew DeVault
4b781356a4
Fix wlr_render_with_matrix call
...
This takes an alpha parameter now.
7 years ago
Drew DeVault
265378270a
Revert "Multiple output coords by scale"
...
This reverts commit 94f8bdf081
.
7 years ago
Drew DeVault
94f8bdf081
Multiple output coords by scale
7 years ago
Drew DeVault
8ad26c8afd
Send surface enter/leave events
7 years ago
Drew DeVault
61c1c3e7af
Use focus for new windows xwayland/wl_shell
7 years ago
Tony Crisci
23e9f5dc35
use wl_container_of() in output destroy callback
7 years ago
Tony Crisci
316effd7b1
make handle_output_destroy() static
7 years ago
Tony Crisci
b88f06e70a
bugfix: get right layout box for rendering views
7 years ago
Tony Crisci
80927985fb
fix output rendering issue
7 years ago
Tony Crisci
7c089442c3
use box projection function
7 years ago
Tony Crisci
9510a20fcd
arrange windows after output add
7 years ago
Tony Crisci
083e11ac7c
fix build for latest api
7 years ago
Tony Crisci
c6cb87be19
output damage fix
7 years ago
Tony Crisci
7dfbf06de9
output destroy
7 years ago
Tony Crisci
93084c9cf8
remove old focus member
7 years ago
Tony Crisci
095ddb1561
fix build for output damage
7 years ago
Tony Crisci
a7d49da239
separate seat get focus and seat get focus inactive
7 years ago
Tony Crisci
5151502298
basic focus overhaul
7 years ago
Drew DeVault
b28602aa74
Implement workspaces
7 years ago
Tony Crisci
c353e01c85
add kill command
7 years ago
Tony Crisci
ddc49ede46
xwm handle map and unmap
7 years ago
Tony Crisci
83ddd2d9db
render override redirect
7 years ago
Tony Crisci
2ce1d8d6cd
render wl-shell and xwayland views
7 years ago
Tony Crisci
76ce629198
xdg-popups
7 years ago
Tony Crisci
4c8c9b29e4
render xdg surface
7 years ago
Dominique Martinet
67985e9031
sway: change all sway_log to wlr_log
7 years ago
Tony Crisci
2f7e435c6f
desktop: use wlr-surface commit
7 years ago
Tony Crisci
41e71d950a
remove verbose commit logging
7 years ago
Tony Crisci
9fa70ce426
Merge branch 'wlroots' into feature/input
7 years ago
emersion
ec2fd6e5c0
Handle output remove
7 years ago
emersion
a4619e98c4
Update output containers on output layout change
7 years ago
emersion
d293c42942
Update output container box in event handler
7 years ago
emersion
c7abb77f22
Listen to output layout change
7 years ago
emersion
f3d880b0ec
Add scale and transform events to sway_output
7 years ago
Tony Crisci
163edc5a90
sway input device
7 years ago