Markus Ongyerth
6b51f3b57a
use previous resource versions and destroy pads
7 years ago
Markus Ongyerth
48e2cba9b6
Handle relative motion for mouse tools
7 years ago
Markus Ongyerth
5cbdd13df8
remove unused wl_listener
7 years ago
Markus Ongyerth
2bc09d91c3
Silent conversion from double to int should be illegal
7 years ago
Markus Ongyerth
dc525a9c5f
Clean up serial handling and automate proximity acompaning events
7 years ago
Markus Ongyerth
25c2808153
Clean up serial handling
7 years ago
Markus Ongyerth
88a4b908d1
Hide pad auxiliary data in .c file
7 years ago
Markus Ongyerth
fa39fd178d
Split tablet_v2 implementation for easier maintainance
7 years ago
Markus Ongyerth
2c12011472
Send all tablet tool axis events
7 years ago
Markus Ongyerth
2155c976f6
Improve inert resource handling
7 years ago
Markus Ongyerth
b79d11395c
Hook up set_cursor in rootston
7 years ago
Markus Ongyerth
0c9a26828a
Use wlr_list for paths, and improve inert resource handling
7 years ago
Markus Ongyerth
adba68a3c1
Use tablet_tool impl in libinput backend
7 years ago
Markus Ongyerth
31cec36b74
1st feedback pass
...
Rename make_ functions to _create
Implement set_cursor and set_feedback
7 years ago
Markus Ongyerth
5c7a37f309
Add tool buttons
7 years ago
Markus Ongyerth
391eef6ea9
Propagate most axis events to clients
7 years ago
Markus Ongyerth
f375246657
Implement basic tablet_pad handling (bound to keyboard focus)
7 years ago
Markus Ongyerth
e235f7d336
Basic tablet_v2 object lifetime
7 years ago
Markus Ongyerth
77bac448cc
storage commit #2
7 years ago
Markus Ongyerth
000b305ecc
backend/libinput: Manage tablet tool livetimes
...
This adds the management code to manage tablet tools lifetimes from
libinput.
It follows the suggestion made in the tablet-unstable-v2.xml to destroy
tablet_tools once all tablets that it got into contact with were removed
from the system. This is implemented via a refcount.
If a tool is *not* unique, it will be destroyed on proximity out. This
is libinput specific and mentioned in libinput docs that tools will not
be found again, so we shouldn't keep a reference to them.
Also they can't be on other tablets as well, because they cannot be
tracked.
The naming in this commit is a bit off (to not break things).
The wlr names stay the same, tablet_tool is the libinput_device with
capaiblity LIBINPUT_DEVICE_CAP_TABLET_TOOL which is more akin to
"tablet" in the tablet-unstable-v2 protocol.
The struct that corresponds to the tablet_tool in tablet-unstable-v2 is
called tablet_tool_tool, a rename should be done at some point in the
future.
7 years ago
emersion
5bb272d7f3
surface: add wlr_surface.opaque_region
7 years ago
emersion
c4915d1492
render: add wlr_texture_is_opaque
7 years ago
Drew DeVault
c0b4217fce
Merge pull request #1116 from emersion/surface-role
...
surface: replace wlr_surface_set_role_committed with wlr_surface_role
7 years ago
emersion
7cbef15206
util: add wlr_ prefix to log symbols
7 years ago
emersion
deeca53e33
Rename wl_resources to resource, wl_global to global
7 years ago
emersion
c19d475753
xdg-output: don't send no-op updates
...
To begin with, no-op updates are unnecessary, so this patch is an
improvement on its own.
Then, this fixes hotplugging issues with xwayland. xwayland waits
for both wl_output and xdg_output to send a "done" event. However,
it doesn't handle well desynchronized "done" updates: if xdg-output
sends "done" twice, the second one will wait for the next wl_output
"done" event. This is an issue when the first is a no-op and the
second is a real update: the second isn't applied. I've considered
patching xwayland instead, but it seems pretty complicated.
7 years ago
emersion
33db4263a0
surface: replace wlr_surface_set_role_committed with wlr_surface_role
7 years ago
Drew DeVault
be54278207
Merge pull request #1095 from agx/output-add-mode
...
Allow to add additional modes to outputs
7 years ago
Guido Günther
709d7dd722
rootston: Handle modeline parameter
...
This allows to pass custom modes.
7 years ago
Guido Günther
8d72090afe
drm: Allow to add additional modes
...
This allows to add additional modes to the list of available video modes
using VESA Coordinated Video Timing information.
Closes #1080
7 years ago
emersion
226306ed45
surface: rename wlr_surface_state.buffer to buffer_resource
7 years ago
emersion
012e38fbe5
surface: add wlr_surface.previous
7 years ago
emersion
78555abba3
surface: move position and scale out of wlr_surface_state
7 years ago
emersion
233bfe2f4f
surface: do not monkey-patch state damage
7 years ago
emersion
adf0423f7c
surface: better buffer position handling
7 years ago
emersion
e6399c61b7
surface: fix WLR_SURFACE_STATE_BUFFER_DAMAGE value
7 years ago
emersion
3c0d672ebd
surface: make pending and current embedded structs
7 years ago
emersion
64836ddfe7
surface: remove wlr_surface_state.subsurface_position
7 years ago
emersion
3ee86b6105
surface: rename invalid state
7 years ago
Ryan Dwyer
86f401e827
Introduce wlr_xdg_surface_for_each_popup
...
It is common to want to iterate an xdg-surface's popups separately from
the toplevel and subsurfaces. For example, popups are typically rendered
on top of most other surfaces.
wlr_xdg_surface_for_each_surface continues to iterate both surfaces and
popups to maintain backwards compatibility.
7 years ago
emersion
dbb01cbcd0
screencopy: listen to buffer destroy
7 years ago
emersion
c421700f3d
screncopy: update protocol
7 years ago
emersion
bf7560b7cd
screencopy: add capture_output_region support
7 years ago
emersion
2b9cbaddf3
screencopy: add support for frame flags
7 years ago
emersion
73755ad348
screencopy-v1: add basic implementation
7 years ago
Dominique Martinet
c263f7ca29
s/wlr_subsurface_from_surface/wlr_subsurface_from_wlr_surface/
...
This was the only x_from_wlr_surface function that lacked the wlr_ prefix,
let's have an API as uniform as possible.
7 years ago
Dominique Martinet
0ced9df350
wlr_idle_inhibit_v1: add *data pointer to wlr structs
7 years ago
Dominique Martinet
d0b902b962
wlr_idle: add helper to enable/disable all timers
...
There was no way to tell wlr_idle to stop processing input events
and rearm timers all the time, such an API is required to have
some form of idle inhibitor.
7 years ago
Drew DeVault
e459fe0ec7
Merge pull request #992 from emersion/screencontent
...
Implement wlr_export_dmabuf_unstable_v1 protocol
7 years ago
emersion
0e3b35c87e
Merge pull request #1072 from emersion/surface-remove-matrices
...
surface: remove matrices
7 years ago
emersion
831b7297a4
surface: remove matrices
...
These were unused.
7 years ago
emersion
a6c0e25d36
surface: remove wlr_frame_callback
...
This removes the need to allocate a structure for frame callbacks.
wl_resource_get_link is used instead.
7 years ago
emersion
57548b557a
Merge branch 'master' into screencontent
7 years ago
Drew DeVault
fb118ac996
Merge pull request #1062 from emersion/wlr-buffer-comeback
...
Add back wlr_buffer
7 years ago
Drew DeVault
8e33deb0be
Merge pull request #1063 from ascent12/multi-seat
...
Multiseat fixes
7 years ago
Scott Anderson
47985d2dc5
Multiseat fixes
7 years ago
Drew DeVault
d27eeaa14c
Revert "Merge pull request #1050 from emersion/wlr-buffer"
...
This reverts commit 5e4af4862e
, reversing
changes made to 9a1f0e2d5f
.
7 years ago
emersion
0378d143d9
surface: remove wlr_surface.texture
...
The texture is managed by the surface's wlr_buffer now. In
particular, the buffer can destroy the texture early if it becomes
invalid.
7 years ago
emersion
d643361c48
Merge pull request #1047 from NotKit/gles2fix
...
Fix GLES2 renderer to use glGetUniformLocations locations
7 years ago
Drew DeVault
5e4af4862e
Merge pull request #1050 from emersion/wlr-buffer
...
Introduce wlr_buffer
7 years ago
NeKit
6f29db1044
gles2 renderer: introduce struct wlr_gles2_tex_shader
7 years ago
emersion
38d415dd20
buffer: make wlr_buffer_ref return the buffer
7 years ago
Vincent Vanlaer
f1a62a3200
Rename egl.exts to match the extension names
7 years ago
emersion
9ea5b1a85e
Merge branch 'master' into wlr-buffer
7 years ago
Vincent Vanlaer
5ec6d8230d
Split eglSwapBuffersWithDamage feature detection
...
Detecting whether eglSwapBuffersWithDamageEXT or
eglSwapBuffersWithDamageKHR is used should be based on the extension
string, not only on the availability of the function.
7 years ago
emersion
7d24af43e5
buffer: improve docs
7 years ago
emersion
e4933ab445
Introduce wlr_buffer
7 years ago
emersion
457bfcab19
render/egl: only request high priority context on DRM
7 years ago
emersion
d425edc96c
render/egl: consistent extension checking
7 years ago
emersion
cbfe0e834a
Request a high priority EGL context
7 years ago
emersion
32f9699359
Merge pull request #1029 from emersion/wl-backend-keyboard-focus-keys
...
backend/wayland: fix keyboard keys not pressed/released when focus changes
7 years ago
NeKit
de91c55ea9
Fix GLES2 renderer to use glGetUniformLocations locations
...
This is needed as uniform locations are driver implementation-specific.
7 years ago
emersion
6f895081e1
Merge pull request #1043 from acrisci/drag-icon-unmap
...
drag-icon map and unmap fixes
7 years ago
Ilia Bozhinov
a989104a6b
xdg-shells: add a set_parent signal to toplevel surfaces
7 years ago
Tony Crisci
9333acd68e
handle drag icon map in rootston
7 years ago
Tony Crisci
319ebdf476
add back map event
7 years ago
Tony Crisci
1c75d4e54a
rename drag-icon map to unmap
7 years ago
emersion
78966417f4
Merge pull request #1031 from martinetd/multibind-seat
...
seat: allow clients to bind to seat multiple times
7 years ago
Dominique Martinet
51b9883ea0
seat: allow clients to bind to seat multiple times
...
This lets clients bind to a seat multiple times by re-using the existing
wlr_seat_client whenever a duplicate request happens.
Previously, an independant wlr_seat_client would be created and only
events from one would be processed.
Fixes #1023 .
7 years ago
Tony Crisci
58d549c98a
add data to wlr_drag_icon
7 years ago
Silvan Jegen
736309c228
Remove redundant roots_seat_remove_device function
...
This function is unimplemented and is redundant because all devices added
with roots_seat_add_device get destruction handlers assigned already.
This fixes issue #998 .
7 years ago
emersion
551700e887
backend/wayland: fix keyboard keys not pressed/released when focus changes
7 years ago
Timidger
2eb8b240e1
Added data field to wlr_subsurface
7 years ago
Markus Ongyerth
3994762ae0
Add wlr_surface_get_geometry
...
This function defaults and clips the xdg-surface geometry to the
bounding box of the surface + its subsurfaces, as specified by the
protocol spec.
7 years ago
emersion
21928cbe61
Merge branch 'master' into screencontent
7 years ago
emersion
135721118a
render: remove wlr_renderer_check_import_dmabuf
...
It's possible to implement it outside the renderer, by creating a
texture and destroying it right away. This reduces the API surface
of the renderer.
7 years ago
emersion
28020ff577
Only allow one modifier per DMA-BUF, split attributes struct in render/
7 years ago
emersion
00e108f2fc
export-dmabuf: correctly finish wlr_linux_dmabuf_attribs
7 years ago
emersion
7901740f94
rootston: enable export-dmabuf
7 years ago
emersion
e26f4dff98
export-dmabuf: wait for the frame to be ready, send timestamp
7 years ago
emersion
5ba1a9af56
render: add wlr_texture_to_dmabuf
7 years ago
emersion
bd430b8620
backend/drm: support multi-planar DMA-BUFs when exporting
7 years ago
emersion
36bd4795d4
export-dmabuf: add basic and incomplete implementation
7 years ago
emersion
9e26808c28
output, backend/drm: add wlr_output_export_dmabuf
7 years ago
emersion
e1f56538a8
Merge pull request #999 from dcz-purism/virtual-keyboard
...
Support virtual keyboard protocol
7 years ago
Tony Crisci
044fa52be4
reword new_surface docs
7 years ago
Tony Crisci
c27cd5f065
document the map/unmap xdg-shell events
7 years ago
Dorota Czaplejewicz
5334ee8bfd
virtual-keyboard: add support for the virtual-keyboard-v1 protocol
7 years ago
emersion
47f097e09b
xdg-shell: add wlr_xdg_toplevel_set_tiled
7 years ago
Tony Crisci
9971d06afb
document key and modifier signals
7 years ago
emersion
6eb4b5b54d
Merge pull request #993 from emersion/bind-wl-drm-in-renderer
...
render: bind wl_drm in renderer
7 years ago
Ilia Bozhinov
24cf70ae96
backends: implement custom EGL and renderer initialization
...
Compositors now have more control over how the backend creates its
renderer. Currently all backends create an EGL/GLES2 renderer, so
the necessary attributes for creating the context are passed to a
user-provided callback function. It is responsible for initializing
provided wlr_egl and to return a renderer. On fail, return 0.
Fixes #987
7 years ago
emersion
41130fe54b
render: bind wl_drm in renderer
7 years ago
emersion
52bd8aa716
backend/multi: disallow multiple renderers at the same time
7 years ago
emersion
3036507463
xdg-shell: split into multiple files
7 years ago
emersion
c7480d5084
xdg-shell-v6: rename shared private functions to prevent conflicts with xdg-shell stable
7 years ago
emersion
facc5aa359
xdg-shell-v6: split into separate files
7 years ago
emersion
db84379242
Send axis source event
7 years ago
emersion
0b58579564
Add support for discrete axis values
7 years ago
emersion
cf5013416d
xdg-output: redesign resource destroy
7 years ago
Vincent Vanlaer
72a75b3a72
Fix Xwayland cleanup
...
Fixes #964
7 years ago
emersion
13098a18ea
Fix hardware cursors scale & transform
7 years ago
emersion
8e831cd416
Merge pull request #959 from VincentVanlaer/xwayland-lazy
...
Add the option to start Xwayland only when a client connects
7 years ago
Vincent Vanlaer
119a6cf35c
Make xwayland_finish* clean up wlr_xwayland
7 years ago
Markus Ongyerth
8931452e1d
add wlr_layer_surface_surface_at
...
Adds wlr_layer_surface_surface_at, this is consistent with the other
shell implementations, and simplifies handling in compositors.
7 years ago
Vincent Vanlaer
dbf4f9a231
Make startup command no longer wait for xwayland
7 years ago
Vincent Vanlaer
31861b3a7a
Add option to rootston to start xwayland lazy
7 years ago
Vincent Vanlaer
c80bf1591e
Allow xwayland to start lazily
...
Makes the xwayland startup process two phased.
The first phase just initialises the X11 sockets.
The second phase starts the Xwayland server itself.
When starting xwayland lazily the second phase will be postponed until
a client has connected to the X11 socket.
Changes in behaviour:
The DISPLAY environment is now set immediately after the X11 sockets
are created.
When the Xwayland server is killed or crashes, the sockets will not be
recreated, but reused.
Fixes #849 : Start up Xwayland lazily
7 years ago
emersion
5087199d5d
output-damage: limit the number of damaged rectangles
7 years ago
emersion
cf10cbc00c
Use UTF-8 xwayland window title if available
7 years ago
emersion
caf9f9022c
Merge pull request #936 from emersion/full-hardware-cursors
...
output: always use hardware cursors if available
7 years ago
Drew DeVault
57d03a3eda
Merge pull request #931 from emersion/redesign-resource-destroy
...
Redesign resource destruction
7 years ago
emersion
d136026a2c
seat: implement inert seat resources
7 years ago
morganamilo
6305e6327f
Fix typos in comments and strings
7 years ago
emersion
5d37b14116
data-device: make sure resources are correctly destroyed
7 years ago
emersion
ff4708d406
linux-dmabuf: correctly destroy resources
7 years ago
emersion
2cff6dbd63
seat: split into multiple files
7 years ago
emersion
1e563e7ecf
data-device: split into multiple files
7 years ago
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
62d7337d00
backend/x11: add one pointer per output
7 years ago
emersion
ddac792b61
backend/wayland: only set one pointer listener
7 years ago
emersion
9f8a7c8fc4
backend/wayland: create one virtual pointer per output
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
6e7c0b57f6
cursor: use NAN for unspecified axes, refactor absolute warping code
7 years ago
emersion
7f70d244a9
xwayland: fix some Chromium comboboxes
...
Some comboboxes (e.g. in chrome://flags) are advertized as…
Notifications of course! Yeah, notifications, the thing that
tells you you have mail, your battery is low, or the dog has
eaten your carpet. This isn't the first time we notice Chromium's
X11 backend is pretty shit.
Anyway, added notifications and splash screens to the list of
unmanaged windows. Also removed utility windows because those
should be managed, but maybe I'm wrong and I'll revert this.
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
Ryan Dwyer
daa1ee35be
Make WLR_DIRECTION enum powers of 2
7 years ago
Drew DeVault
fecb971518
Merge pull request #902 from emersion/various-memory-leaks
...
Various memory leaks
7 years ago
Drew DeVault
25dddc0094
Merge pull request #911 from RyanDwyer/fix-output-direction
...
Fix WLR_DIRECTION enums
7 years ago
Ryan Dwyer
de97f90246
Fix WLR_DIRECTION enums.
...
Having 0 as an enum value causes wlr_output_layout_adjacent_output() to
never match WLR_DIRECTION_UP.
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
71ca45e2c0
Make sure we don't use others' prefixes
7 years ago
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
7 years ago
Drew DeVault
097561d6bf
Merge pull request #901 from emersion/layer-shell-minor-memory-leak
...
layer-shell: fix small memory leak
7 years ago
emersion
018b82c01e
render/egl: allow passing NULL to surface and image destructors
7 years ago
emersion
eaed6bd03b
render/egl: add wlr_egl_destroy_surface
7 years ago