emersion
225d182765
output: always use hardware cursors if available
...
This changes the `wlr_output_impl.set_cursor` function to take a
`wlr_texture` instead of a byte buffer. This simplifies the
DRM and Wayland backends since they were creating textures from
the byte buffer anyway.
With this commit, performance should be improved when moving the
cursor since outputs don't need to be re-rendered anymore.
7 years ago
emersion
2551ef8871
input-device: add output_name field, populate it from libinput
7 years ago
Drew DeVault
a0f4903063
Merge pull request #926 from emersion/fix-x11-backend-memory-leaks
...
Fix some backend memory leaks
7 years ago
emersion
f8e0a03451
backend/x11: correctly destroy input devices
7 years ago
emersion
79da4c175e
backend/headless: remove useless destructor
7 years ago
emersion
6e7c0b57f6
cursor: use NAN for unspecified axes, refactor absolute warping code
7 years ago
emersion
126f12e428
xdg-shell: fix invalid xdg-positioner cast
7 years ago
emersion
43012f3740
compositor: redesign how resources are managed
...
All public resource creators now take a new ID for the resource
and an optional list where the resource link is added. When the
resource is destroyed it is its own responsibility to remove
itself from the list. This removes the need for the caller to add
a destroy listener.
This commit fixes a few segfaults with resources not removed from
the list when destroyed.
7 years ago
Drew DeVault
979b1b22d5
Merge pull request #914 from emersion/misc-segfault-fixes
...
Misc segfault fixes
7 years ago
emersion
874909dca6
xdg-shell: fix invalid wlr_xdg_positioner alloc
7 years ago
emersion
fcb7ad925d
layer-shell: fix use-after-free when client requests an invalid layer
7 years ago
Drew DeVault
93ebd33aa8
Merge pull request #890 from agx/layer-shell-empty-output-crash
...
layer-shell: Fix crash when cursor is intially outside any output
7 years ago
Guido Günther
d81f0170a3
layer-shell: Don't crash when the compositor didn't find a suitable output
...
In that case it must have closed the surface.
7 years ago
Drew DeVault
fecb971518
Merge pull request #902 from emersion/various-memory-leaks
...
Various memory leaks
7 years ago
emersion
449f06556a
Destroy wlr_surface with wlr_renderer
7 years ago
emersion
d47713ac0f
compositor: destroy subsurface resources with wlr_subcompositor
7 years ago
emersion
89a9c96fab
compositor: make wlr_compositor_destroy destroy resources
7 years ago
emersion
625a7a48dc
Don't use the wlr_ prefix for static functions
7 years ago
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
7 years ago
emersion
8e2f3056f8
layer-shell: fix small memory leak
7 years ago
emersion
bc0bfde5ee
cursor: allow to call wlr_cursor_wrap_absolute with zero
7 years ago
emersion
38064f1d18
Fix protocol error when a client destroys and re-creates a subsurface
7 years ago
Drew DeVault
941f88ce23
Fix popup positioning & double popups
7 years ago
Drew DeVault
52baf3dd8a
Move get_geometry call back to xdg-shell
7 years ago
Drew DeVault
0a0627f5d0
Finish forward-porting @acrisci's positioner work
7 years ago
Drew DeVault
2e3d901ac5
Forward-port xdg-shell-v6 positioner improvements
7 years ago
Drew DeVault
278aa84619
Basic layer popup rendering
7 years ago
Drew DeVault
d3cdb00208
Add (shitty) support for popups to layer example
7 years ago
Drew DeVault
6b7b64ec1e
Generalize xdg-shell popups and add to layer-shell
7 years ago
Drew DeVault
625bc7b8b3
assert(surface->output); after new_surface emit
7 years ago
Drew DeVault
177b548b15
Update layer shell with optional wl_output
7 years ago
emersion
3bce5dfc9f
Fix segfaults in wlr_surface_is_*
7 years ago
emersion
bfcd3f3707
Add wlr_subcompositor
7 years ago
emersion
fa84b267e0
Remove wlr_surface::subsurface
7 years ago
Markus Ongyerth
c8ccb1bef3
reorder xkb state handling in wlr_keyboard
...
wlr_keyboard manages the xkb-common state of the compositor.
It used to update the state, update the modifiers, then notify the
compositor.
When [Shift_L] was pressed and released, this resulted in an event chain:
Modifiers: Shift
Key: Shift_L (Pressed)
Modifiers:
Key: Shift_L (Release)
The xkb-docs state that the state should be updated *after* the key was
handled [1], to prevent the new state from influencing the actual key
generated.
To achieve this, the event to the compositor is emitted, *before*
wlroots handles the xkb and internal keyboard state.
With this patch applied, the emitted events ill be:
Modifiers:
Key: Shift_L (Pressed)
Modifiers: Shift
Key: Shift_L (Release)
[1] https://xkbcommon.org/doc/current/group__state.html#gac554aa20743a621692c1a744a05e06ce
7 years ago
emersion
94fa6c88f4
output: don't emit the mode event if it hasn't changed
...
This also fixes #535 .
7 years ago
emersion
1b802d9251
Make wlr_renderer_scissor take normal coords instead of upside-down ones
7 years ago
Drew DeVault
8f4039d799
Merge pull request #861 from emersion/fix-output-transform-compose
...
Fix wlr_output_transform_compose
7 years ago
emersion
31c8bdc277
Fix wlr_output_transform_compose
7 years ago
emersion
fa0be972bb
Fix wlr_xdg_surface_surface_at for popups
7 years ago
Drew DeVault
bef5c1fd56
Merge pull request #850 from emersion/remove-backend-egl
...
backend: remove wlr_backend_get_egl
7 years ago
emersion
d2ebbd103c
backend: remove wlr_backend_get_egl
7 years ago
Drew DeVault
bf68854a38
Fix destruction of popups without grabs
...
Fixes #846
7 years ago
Drew DeVault
ae4cef9e41
Merge pull request #825 from emersion/surface-iterators
...
Add surface iterators
7 years ago
Drew DeVault
ec0ce8ae1c
Fix sending updates to xdg-output resources
...
Fixes #836
7 years ago
Drew DeVault
6710de9878
Merge branch 'master' into xwayland-dnd
7 years ago
emersion
4a9a9eae9a
Add surface iterators
7 years ago
emersion
19b576734e
Merge pull request #834 from emersion/surface-is-subsurface
...
Add wlr_surface_is_subsurface and wlr_subsurface_from_surface
7 years ago
emersion
aced024819
Add wlr_surface_is_subsurface and wlr_subsurface_from_surface
7 years ago
Drew DeVault
abfe7923c4
Add wlr_xdg_output_manager
7 years ago
emersion
3ea425d4e2
Fix xdg-shell popups, add wlr_xdg_surface_surface_at
7 years ago
emersion
c9d21106b4
Add wlr_xdg_surface_v6_surface_at and wlr_wl_shell_surface_surface_at
7 years ago
emersion
1a8b24bdd2
rootston: fix view_at
7 years ago
emersion
d16127b3cb
Fix wlr_surface_subsurface_at, change it to be wlr_surface_surface_at
7 years ago
Drew DeVault
36e94b2a8e
Actually fix input inhibitor destructor
7 years ago
Drew DeVault
1fa3ca3152
Revert "Add destructor to inhibitor"
...
This breaks shit
This reverts commit 657d2c9a69
.
7 years ago
Drew DeVault
657d2c9a69
Add destructor to inhibitor
7 years ago
Drew DeVault
ef4e833f13
Add wlr_input_inhibitor
7 years ago
emersion
58ac05c276
Merge branch 'master' into xwayland-dnd
7 years ago
Drew DeVault
333ab59902
Add wlr_surface_is_*_surface
...
And wlr_*_surface_from_wlr_surface
7 years ago
emersion
8836b4f024
Merge branch 'master' into xwayland-dnd
7 years ago
Tony Crisci
5a47da1ea6
annotate wlr-output-layout coord variables
7 years ago
Drew DeVault
1778818a50
Don't destroying all layer surfaces on client d/c
7 years ago
Drew DeVault
e19ee6d469
Add wlr_surface_point_accepts_input
...
Ref https://github.com/swaywm/sway/pull/1674
7 years ago
emersion
6bbf507082
surface: fix texture not updated on commit
...
When a client attaches a wl_drm or a linux_dmabuf buffer, we only
update it if the size is different from the one of the old buffer.
This means that if the client attaches a new, updated buffer with
the same size as the old buffer, the texture won't get updated.
This commit changes this behavior and re-creates the texture if
the client attaches a new buffer, without requiring the size to be
different.
7 years ago
emersion
d5f46f4db4
data-device: redesign wlr_data_source
7 years ago
Drew DeVault
4137d9fc80
Destroy layer surfaces on client destroyed
7 years ago
emersion
743466d475
data-device: add seat.drag_source
7 years ago
emersion
a316396eab
Merge pull request #720 from acrisci/xdg-positioner
...
xdg-positioner
7 years ago
Tony Crisci
2e63d1a0ca
toplevel_box to toplevel_sx_box
7 years ago
Tony Crisci
cf13a6d9c6
address toplevel coords issue
7 years ago
Tony Crisci
967bccffcd
remove xdg-positioner wlr wrappers
7 years ago
Tony Crisci
8b967fc573
bug: dont slide over too far
7 years ago
Tony Crisci
bf5ae85683
return early when no dest_x/y in output layout closest point
7 years ago
Tony Crisci
bd828e23de
dont allocate xdg-positioner attrs
7 years ago
Tony Crisci
376d1cc0da
rename xdg-positioner structs
7 years ago
emersion
3effe153bc
xwayland: make wayland → xwayland work
7 years ago
Tony Crisci
4ab88a5330
xdg-positioner bugfix
7 years ago
Tony Crisci
0bfcce50a9
xdg-positioner: honor constraint flags
7 years ago
Tony Crisci
dbffda7549
xdg-positioner wlr abstractions
7 years ago
emersion
2a34b154e6
xwayland: send DND_DROP
7 years ago
emersion
73394deb76
xwayland: send DND_POSITION
7 years ago
emersion
0d7a81ccdf
xwayland: send DND_ENTER
7 years ago
Drew DeVault
324b9d910d
Remove width_mm from wlr_touch events
7 years ago
Drew DeVault
a35a5786b0
Remove width_mm from wlr_pointer events
7 years ago
Tony Crisci
41e54ba632
Merge branch 'master' into xdg-positioner
7 years ago
Tony Crisci
330ee08126
Merge pull request #744 from emersion/texture-redesign
...
Redesign wlr_texture
7 years ago
Drew DeVault
7d89e7e58d
Assign layer surface role
7 years ago
Drew DeVault
96a8df2f9a
Fix ack configure/configure flow
...
Prevents FOUC/improves frame perfect rendering goal
7 years ago
Drew DeVault
52fe2688ea
Address @emersion's feedback
7 years ago
Drew DeVault
e841e5602b
Address @emersion's feedback
7 years ago
Drew DeVault
86ca4bea6d
Fix layer rendering/layout bugs
7 years ago
Drew DeVault
d1c0e6fe2c
Add layer_surface.close
7 years ago
Drew DeVault
4bf936360d
Arrange & render layer surfaces
7 years ago
Drew DeVault
fcf8c6c8a2
Fix issues preventing layer from getting allocated
...
Now all of the steps to get rootston a reference to the layer surface
are correctly wired up.
7 years ago
Drew DeVault
88eec637a4
Address feedback
7 years ago
Drew DeVault
1628730b09
Add wlr_layer_surface_configure
7 years ago
Drew DeVault
4a8c0c0784
Destroy layer surfaces when client is destroyed
7 years ago
Drew DeVault
b06105b564
Implement layer surface requests
7 years ago
Drew DeVault
3ba57fccd1
Wire up layer surface resources to stubs
7 years ago
Drew DeVault
f29d8b55ae
Initial scaffolding of layer shell
7 years ago
Tony Crisci
8371e2f41d
implement flip_x
7 years ago
emersion
171e28eaff
xdg-shell: don't destroy role resources on unmap, move toplevel fields
...
Ports 5233801530
and
334bab543d
to xdg-shell stable.
7 years ago
Tony Crisci
bbd0e23fa7
xdg-positioner constraint detection
7 years ago
emersion
334bab543d
xdg-shell-v6: move toplevel specific fields in wlr_xdg_toplevel_v6
7 years ago
emersion
adf4fb08dd
Merge branch 'master' into texture-redesign
7 years ago
emersion
5233801530
xdg-shell-v6: don't destroy role resources on unmap
...
The motivation for this is:
- `get_popup` and `get_toplevel` allocate role-specific resources.
- On the first non-null commit, the surface gets mapped.
- On a null commit, the surface gets unmapped. It can be mapped
again with a non-null commit.
- When the role object (xdg-toplevel or xdg-popup) is
destroyed, the surface is unmapped and role-specific resources
are destroyed. The client can call `get_popup` or `get_toplevel`
again on that surface.
- When the xdg-surface object is destroyed, the surface is
unmapped, role-specific resources are destroyed and the surface
itself is destroyed.
7 years ago
Tony Crisci
4da18f7fc3
xdg-positioner attrs
7 years ago
Tony Crisci
5617a59598
Merge pull request #741 from emersion/unmapped-surface-destroy
...
xdg-shell, xdg-shell-v6: don't emit unmap if surface is unmapped
7 years ago
emersion
c63d94483b
Redesign wlr_texture
...
- Textures are now immutable (apart from those created from raw
pixels), no more invalid textures
- Move all wl_drm stuff in wlr_renderer
- Most of wlr_texture fields are now private
- Remove some duplicated DMA-BUF code in the DRM backend
- Add more assertions
- Stride is now always given as bytes rather than pixels
- Drop wl_shm functions
Fun fact: this patch has been written 10,000 meters up in the air.
7 years ago
Tony Crisci
f53575e3a3
unified xdg-surface close
7 years ago
Guido Günther
b1852096c5
linux-dmabuf: Support multi plane formats like NV12
7 years ago
Guido Günther
805039457a
wlr_surface: fix indentation
7 years ago
Tony Crisci
30b8fb5572
Merge branch 'master' into xdg-positioner
7 years ago
Dominique Martinet
e86cd4dc33
wlr_pointer: fix potential null deref
...
if pointer is null here we'd access pointer->events... anyway
7 years ago
Dominique Martinet
de955a0f63
xdg_popup_grab: add listener on seat destroy
7 years ago
emersion
731ee24089
xdg-shell, xdg-shell-v6: don't emit unmap if surface is unmapped
...
Some clients create an xdg_surface, then create an xdg_toplevel,
but don't map it and destroy it right after. The xdg_surface ends
up in a state where it isn't mapped but role-specific resources
have been allocated. xdg_surface_unmap needs to free these
resources without emitting the unmap signal.
7 years ago
emersion
c41de2d1be
render: split render.h into wlr_renderer.h and wlr_texture.h
7 years ago
emersion
6ecb0eefcb
render/gles2: transpose matrices before binding them
...
Setting glUniformMatrix3fv's transpose parameter to GL_TRUE is
not allowed for OpenGL ES 2.
This adds a wlr_matrix_transpose function.
7 years ago
Drew DeVault
1956d3cedb
Merge pull request #722 from emersion/matrix-redesign
...
Matrix redesign
7 years ago
Tony Crisci
09413aa7f1
Merge pull request #711 from emersion/map-unmap
...
Add map/unmap to xdg-shell
7 years ago
emersion
7894fca224
matrix: rename wlr_matrix_texture to wlr_matrix_projection
7 years ago
emersion
e607d0f7ee
xdg-shell: add map/unmap support
7 years ago
emersion
42cc575266
xdg-shell-v6: fix wl_list_remove called twice
7 years ago
emersion
361d7c857e
xdg-shell-v6: don't leak wlr_xdg_surface_v6_configure.toplevel_state
7 years ago
emersion
1914a1aa2b
surface: drop wlr_surface_get_matrix
7 years ago
emersion
8b58e1a3ad
Merge branch 'master' into matrix-redesign
7 years ago
emersion
824a95ad19
matrix: use 2D matrices
7 years ago
emersion
de0e40d621
Merge pull request #698 from agx/linux-dmabuf
...
Add initial linux_dmabuf protocol support
7 years ago
Guido Günther
eb4337b5ee
Wire up linux_dmabuf in rootston
7 years ago
Guido Günther
14cdb6153f
Add initial linux_dmabuf protocol support
...
Tested with
./weston-simple-dmabuf-drm
./weston-simple-dmabuf-drm --import-immediate=1
./weston-simple-dmabuf-drm --y-inverted=1
(and combinations)
Supports only single plane XRGB dmabufs for now.
7 years ago
emersion
d26b67cb06
matrix: unify API, don't use array pointers
7 years ago
emersion
b6a3f240c7
matrix: move to types/
7 years ago
Tony Crisci
8836b167bf
store xdg-positioner properties on the popup
7 years ago
Tony Crisci
b2926a6c62
differentiate xdg-toplevel roles
7 years ago
emersion
ace738dbca
xdg-shell-v6: next_geometry and geometry fields are not longer pointers in wlr_xdg_surface_v6
7 years ago
emersion
149209b72e
xdg-shell-v6: rename toplevel and popup fields in wlr_xdg_surface_v6 for consistency
7 years ago
emersion
657e5c8c0d
xdg-shell-v6: changed wlr_xdg_surface_v6_configure.toplevel_state to be NULL if surface isn't a toplevel
7 years ago
emersion
e74ddaaf10
xdg-shell-v6: redesign the configure/ack_configure workflow
7 years ago
Tony Crisci
647c2e68ba
Merge pull request #696 from emersion/fix-output-layout-destroy-global
...
output-layout: fix output global not destroyed
7 years ago
emersion
adec3f5c0f
xdg-shell-v6: add unmap support, add more protocol errors
7 years ago
emersion
8e3d294d6a
output: fix trailing cursor at (0, 0) on startup
7 years ago
emersion
3f072bedd9
xdg-shell-v6: add map signal
7 years ago
emersion
a951fbb264
output: don't move hidden cursors
...
When using the DRM backend and multiple outputs, that reduces the
number of commits.
7 years ago
Scott Anderson
3c9fc7c68e
Add const to x11 and input interfaces
7 years ago
emersion
aa2b62fbff
output-layout: fix output global not destroyed
7 years ago
Drew DeVault
0820557c8c
Merge pull request #693 from emersion/fix-output-bind-multiple
...
Fix clients binding multiple times to the same output
7 years ago
emersion
90148e64ab
Fix clients binding multiple times to the same output
7 years ago
Drew DeVault
3296365ce5
Merge pull request #659 from agx/alpha
...
Make wlr_render_with_matrix use alpha
7 years ago
Guido Günther
d08792bfff
Add alpha to wlr_render_with_matrix
...
so we can use the alpha channel to e.g. blend in textures
7 years ago
Tony Crisci
b7b86a9591
Merge pull request #641 from Ongy/idle-inhibit
...
Add idle-inhibit implementation
7 years ago
Markus Ongyerth
67285c1d57
idle-inhibit: style adjustments and motivation
7 years ago
emersion
b1e2718dd7
xwayland: fix some use-after-free in xwm
7 years ago
Tony Crisci
1c1b5b1b17
Merge pull request #662 from emersion/surface-resize-frame-done
...
surface: don't reset frame_callback_list on resize
7 years ago
emersion
f0404f6d75
surface: don't reset frame_callback_list on resize
7 years ago
Markus Ongyerth
a715826751
move activity_notify into events in wlr_idle
...
This moves the `struct wl_signal activity_notify` in `struct wlr_idle`
into a local `struct {} events` to keep consistency with other modules
in the library.
7 years ago
Markus Ongyerth
87a7afb641
idle-inhibit: second feedback pass
7 years ago
Markus Ongyerth
3016133f91
idle-inhibit: feedback pass
7 years ago
emersion
4eaffc3e45
primary-selection: fix crash in device_handle_set_selection
7 years ago
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
7 years ago
Drew DeVault
09cfa39392
Merge pull request #632 from acrisci/output-layout-adjacent
...
add wlr_output_layout_adjacent_output
7 years ago
Scott Anderson
86269052eb
Explicitly export EFL symbols
7 years ago
Drew DeVault
c951000198
Remove XXX comment
7 years ago
Tony Crisci
9933b7ad95
fix direction determination
7 years ago
Tony Crisci
d2c7defa10
Merge branch 'master' into output-layout-adjacent
7 years ago
Markus Ongyerth
50d573b2ca
implements the idle_inhibit protocol type
...
This adds the types/wlr_idle_inhibit_v1 implementation.
7 years ago
Dominique Martinet
4941befeb0
Merge pull request #1 from emersion/martinetd/xdg_shell
...
Wrap wl_resource_get_user_data into safer helper functions (for xdg-shell stable too)
7 years ago
emersion
4b354745fe
xdg-shell: wrap wl_resource_get_user_data
7 years ago
emersion
717bdccb6e
Merge remote-tracking branch 'upstream/master' into martinetd/xdg_shell
7 years ago
Drew DeVault
8c1cc45c7d
Merge pull request #629 from emersion/safe-wl-resource-get-user-data
...
Wrap wl_resource_get_user_data into safer helper functions
7 years ago
Dominique Martinet
ac78bdb6bc
xdg shells: fix typo s/positives/positive/
7 years ago
Dominique Martinet
56ab3e9b10
xdg_shell stable: fix zero-sized positioner anchor_rect
...
We used 0 as unset-check value before, which was fine when 0-width
was invalid, but isn't anymore
7 years ago
Dominique Martinet
714f90a9d0
xdg_shell stable: allow zero-sized positioner set_anchor_rect
...
This is a protocol difference with xdg-shell-unstable-v6
7 years ago
Dominique Martinet
d1b28ec812
wayland protocol headers: use double-quote for includes
...
These headers are not installed so we should look for these locally
7 years ago
Dominique Martinet
6ae96c4832
wlr_xdg_shell: (style) add break to final switch case
7 years ago
Tony Crisci
85871cb666
add wlr_output_layout_adjacent_output
7 years ago
Rodrigo Lourenço
168e26489a
Add missing dependencies
7 years ago
Dominique Martinet
1080bf69f8
xdg_shell: add input validatoin for positioner anchor/gravity
7 years ago
Dominique Martinet
7d26a6debd
xdg-shell stable: copy-pasta implementation
7 years ago
emersion
392d54a35d
Wrap wl_resource_get_user_data into safer helper functions
...
This ensures we're not incorrectly casting a resource.
Fixes #628
7 years ago
emersion
c2e1474010
Reformat all #include directives
7 years ago
emersion
36ead80cd1
Make wlr_signal_emit_safe private
7 years ago
emersion
10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove}
7 years ago
emersion
5e58d46cc1
Add wlr_signal_emit_safe
7 years ago
emersion
a9632341bf
output_damage: listen to transform and scale output events
7 years ago
emersion
ec837e3c9e
Introduce wlr_output_damage
7 years ago
emersion
bf6d245400
Swap buffers with damage
7 years ago
emersion
cdd55b5d19
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
Vincent Vanlaer
8dcb2f2d6b
Prevent cursor from getting stuck at infinity
7 years ago
emersion
1cea73d2d8
rootston: fix rotated views damage tracking
7 years ago
emersion
faa57341ca
output: replace raw GL calls by wlr_renderer_* calls
7 years ago
emersion
3d3ea32137
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
emersion
8eed857292
output: add destroy signal for wlr_output_cursor
7 years ago
emersion
edb4c8d858
output: damage whole output when fullscreen surface size changes
7 years ago
emersion
a295c805c4
output: fix output_damage_whole for scaled outputs
7 years ago
emersion
babdd6ccf7
backend: fix use-after-free when destroying backends
...
The backend destroy signal is emitted before the output_remove
signal is. When the destroy signal is emitted listeners remove
their output_remove listener, so the output_remove signal is never
received and listeners have an invalid output pointer.
The correct way to solve this would be to remove the output_remove
signal completely and use the wlr_output.events.destroy signal
instead. This isn't yet possible because wl_signal_emit is unsafe
and listeners cannot be removed in listeners.
7 years ago
emersion
704130cc11
output: fix performance issues with wlr_output_schedule_frame
7 years ago
emersion
d498855b9d
backend/drm: fix hw cursor position on rotated and scaled outputs
...
output: add wlr_output_transformed_resolution
7 years ago
emersion
51c22d39a4
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
emersion
2cc989e097
output: restrict provided damage to output bounds
7 years ago