random human
3e0a0f3c3a
wlr_surface: add wlr_surface_get_effective_damage
...
This calculates and returns the effective damage of the surface in
surface coordinates, including the client damage (in buffer
coordinates), and damage induced by resize or move events.
2018-10-04 02:19:09 +05:30
emersion
2beb68007e
output: make gamma size a size_t and gamma table const
2018-10-03 10:36:33 +02:00
Emmanuel Gil Peyrot
130bf15cfa
Fix a crash on zxdg_decoration_manager_v1 destroy
...
When this request was called from a client, the unimplemented callback
was NULL and thus was crashing rootston.
2018-10-01 14:45:17 +02:00
emersion
f5ff702a69
gamma-control-v1: add missing destroy handler
2018-09-29 14:30:41 +02:00
Drew DeVault
5e9959daaa
Merge pull request #852 from Laaas/master
...
Implement pointer-constraints-unstable-v1 protocol
2018-09-27 05:57:43 -05:00
emersion
fadbdcd13c
seat: remove unused keyboard focus_change event
2018-09-27 12:21:30 +02:00
emersion
d98181dab8
pointer-constraints: use proper wayland-scanner functions
2018-09-27 10:53:11 +02:00
emersion
dac4f8e19f
pointer-constraints: refactoring
...
* Rename the constraint_create signal to new_constraint for
consistency
* Move the constraint_destroy signal to the constraint itself
* Use rotate_child_position instead of duplicating logic
* Fix inert constraint resource handling
* Style fixes
2018-09-27 10:25:59 +02:00
emersion
31cc2fa4f9
pointer-constraints: make region not a pointer, add committed bitfield
2018-09-26 23:08:52 +02:00
emersion
c89cd4945b
pointer-constraints: rename wl_{global,resources}
2018-09-26 17:38:41 +02:00
random human
84ecfb546b
wlr_surface: more consistent argument naming in surface_update_damage
2018-09-25 02:06:02 +05:30
random human
5eca5d8946
wlr_surface: remove duplicated damage calculation
...
The damage is already calculated and stored in surface->buffer_damage
by surface_update_damage().
2018-09-25 01:38:09 +05:30
random human
3fd5da58a0
wlr_surface: fix surface damage on resize
...
Instead of damaging the buffer, damage only the surface on surface (not
buffer) resize.
2018-09-25 01:25:30 +05:30
random human
971cbeaa19
wlr_surface: fix surface damage transformation
...
Damage tracking on transformed surfaces now work (see
"weston-simple-damage --rotation=90"), using either of buffer or surface
damage.
2018-09-24 22:03:41 +05:30
Drew DeVault
33a3d8a555
Merge pull request #1252 from emersion/fatal-unknown-buffer
...
buffer: disconnect clients that commit an unknown buffer type
2018-09-19 08:02:31 -04:00
emersion
ac28d701c0
buffer: disconnect clients that commit an unknown buffer type
...
If this happens, something went really wrong and we should do more
than just logging an error. See [1].
[1]: https://gitlab.freedesktop.org/wayland/weston/issues/148
2018-09-19 11:29:48 +02:00
Las
afa2e399aa
Fix implicit conversion of floats to ints in calls to pixman_region32_contains_point
...
I do not think the conversion is specifically defined, but on my system and SirCmpwn's
the floats are rounded instead of floored, which is incorrect in this case, since
for a range from 0 to 256, any value greater or equal to 0 and less than 256 is valid.
I.e. [0;256[, or 0 <= x < 256, but if x is e.g. -0.1, then it will be rounded to 0, which
is invalid. The correct behavior would be to floor to -1.
2018-09-18 13:05:44 +02:00
emersion
3df602a62d
export-dmabuf: disable hardware cursors if desired
...
Also make the frame resource inert when sending "ready".
2018-09-18 11:48:04 +02:00
emersion
928572c14d
output: add wlr_output_set_hardware_cursors_enabled
...
And use it in screencopy.
2018-09-18 11:37:37 +02:00
random human
40a43003a1
Send unique keymap file descriptors
...
To prevent wl_keyboard keymap being written to by clients, use a unique
file descriptor for each wl_keyboard resource.
Reference: weston, commit 76829fc4eaea329d2a525c3978271e13bd76c078
2018-09-18 13:58:36 +05:30
Las
fa2e6e7d9d
Implement pointer-constraints protocol in wlroots and rootston
2018-09-18 10:14:33 +02:00
Las
6367e0bc93
Add wlr_surface::input_region member
...
This is analogous to the opaque_region member.
In addition the code for setting the opaque region is cleaned up.
2018-09-18 10:14:33 +02:00
Las
d446c53fe1
Make (wlr_)seat_client_from_pointer_resource public
2018-09-18 10:14:33 +02:00
Las
252bcce2f3
Add focus change event for seats
2018-09-18 10:14:33 +02:00
emersion
9f76263404
output-layout: don't expose outputs without a mode
2018-09-17 15:22:33 +02:00
Drew DeVault
df991a55ab
Merge pull request #1241 from emersion/output-enable-error-checking
...
output: make wlr_output_enable return a bool
2018-09-14 21:14:18 -04:00
Drew DeVault
0210905eef
Merge pull request #1243 from emersion/layer-shell-suffix
...
layer-shell: add _v1 suffix
2018-09-14 20:47:42 -04:00
Drew DeVault
a088000983
Merge pull request #1244 from emersion/xdg-output-suffix
...
xdg-output: add _v1 suffix
2018-09-14 20:47:14 -04:00
emersion
fc960e5d06
layer-shell: add _v1 suffix
2018-09-14 19:32:33 +02:00
emersion
b3cb22c003
xdg-output: add _v1 suffix
2018-09-14 19:29:08 +02:00
emersion
cb293f09e7
output: make wlr_output_enable return a bool
2018-09-14 18:18:07 +02:00
emersion
524702eb16
output: introduce WLR_NO_HARDWARE_CURSORS
2018-09-14 18:07:21 +02:00
emersion
769a8e9917
Merge pull request #1160 from Ongy/tablet-grabs
...
Tablet grabs
2018-09-12 19:01:50 +02:00
Markus Ongyerth
21e1cc9ab4
Implement feedback
2018-09-08 19:17:44 +02:00
nyorain
f6168c2afe
Fix #1129 and remove sx, sy from wlr_drag_icon
...
sx, sy used to store the buffer offset of the drag surface which was
then be added (by rootston) to the drag icon position.
Buffer offsets are handled already in surface_intersect_output
(output.c) so they were added twice for dnd surfaces.
2018-09-07 14:48:28 +02:00
emersion
017cfb0b86
backend/drm: log when de-allocating CRTC
2018-09-04 19:44:44 +02:00
emersion
d22431d969
Merge pull request #1228 from arandomhuman/misc-mem
...
Miscellaneous memory leak fixes
2018-09-03 08:26:59 +02:00
random human
9f511ae942
Remove listener link after tablet_manager destroy
2018-09-03 05:05:18 +05:30
random human
568b0ffe2c
Call wl_global_create first in case of failure
2018-09-03 02:43:55 +05:30
cnt0
6946134883
fix incorrect NULL check
2018-09-02 20:48:18 +02:00
Aidan Epstein
e334b46b39
Fix uninitialized value in wlr_cursor.
2018-08-31 23:36:38 +00:00
random human
8589ae19de
Fix bugs listed by clang's static analyzer
...
A few pedantic changes and unused variables (1-4), and genuine bugs (5,
6).
The reports with the corresponding files and lines numbers are as
follows.
1. backend/libinput/tablet_pad.c@31,44,57
"Allocator sizeof operand mismatch"
"Result of 'calloc' is converted to a pointer of type 'unsigned int',
which is incompatible with sizeof operand type 'int'"
2. types/tablet_v2/wlr_tablet_v2_pad.c@371
"Allocator sizeof operand mismatch"
"Result of 'calloc' is converted to a pointer of type 'uint32_t', which
is incompatible with sizeof operand type 'int'"
3. types/wlr_cursor.c@335
"Dead initialization"
"Value stored to 'dx'/'dy' during its initialization is never read"
4. rootston/xdg_shell.c@510
"Dead initialization"
"Value stored to 'desktop' during its initialization is never read"
5. types/tablet_v2/wlr_tablet_v2_pad.c@475
"Dereference of null pointer"
"Access to field 'strips' results in a dereference of a null pointer
(loaded from field 'current_client')"
The boolean logic was incorrect (c.f. the check in the following
function).
6. examples/idle.c@163,174,182
"Uninitialized argument value"
"1st function call argument is an uninitialized value"
If close_timeout != 0, but simulate_activity_timeout >= close_timeout,
the program would segfault at pthread_cancel(t1).
2018-08-31 19:41:18 +02:00
Alexander Bakker
221d412824
Init the new destroy signals added by #1200
2018-08-27 18:21:36 +02:00
Alexander Bakker
20db29779e
Add destroy signals to types that are destroyed by wl_display_destroy
2018-08-26 23:23:12 +02:00
Brian Ashworth
c6955fa89c
Merge pull request #1199 from apreiml/farthest_output
...
introduce wlr_output_layout_farthest_output
2018-08-25 11:00:25 -04:00
Armin Preiml
5617d2bd60
introduce wlr_output_layout_farthest_output
...
Similar to wlr_output_layout_adjacent_output but will return the
one that is the farthest away from the reference in given direction.
2018-08-25 09:14:55 +02:00
Dorota Czaplejewicz
6db9c4b746
wlr_virtual_keyboard: use wlr_input_device_destroy
2018-08-22 14:43:29 +01:00
Dorota Czaplejewicz
2929f0f8dd
wlr_input_device: fix keyboard destruction
...
After destroying a keyboard input device, seat's listeners could still be pointing to destroyed wlr_input_device signals. This patch makes sure the references are removed while the input device is being destroyed.
2018-08-22 14:43:29 +01:00
emersion
f86f1daf9a
Fix build on FreeBSD
2018-08-16 10:54:45 +01:00
Markus Ongyerth
3ad7b146eb
Fix typos/order in tablet-v2
2018-08-06 08:45:44 +02:00
Markus Ongyerth
f64962ace8
tablet-v2 tool: Implement implicit grab
...
Implement the tablet-v2 tablet tool's implicit grab semantics for
buttons and tip.
This avoids losing focus (to other [sub]surfaces) when a button is held,
or the tip is down.
This should help when the device is used close to a surface's border and
would otherwise have to be very precise.
2018-08-06 08:45:41 +02:00
emersion
c4522062f6
xdg-output: fix segfault in handle_layout_destroy
2018-08-03 14:03:53 +01:00
Scott Anderson
eb9c9d8852
Merge pull request #1173 from sdilts/add-missing-libinput
...
Add missing dependency libinput to types/meson.build
2018-08-03 14:58:22 +12:00
sdilts
c95078320c
Add missing dependency libinput to types/meson.build
...
The file `types/tablet_v2/wlr_tablet_v2.c` includes <libinput.h>.
Without this change, libinput.h may not be found on
some systems.
2018-08-02 20:13:48 -06:00
emersion
c3afe4f42e
gamma-control-v1: improve error handling
2018-08-02 23:33:59 +01:00
emersion
bbd0fbe573
gamma-control-v1: fix fds not closed
2018-08-02 23:33:59 +01:00
emersion
1705316fa7
gamma-control-v1: set O_NONBLOCK, improve error handling style
2018-08-02 23:33:59 +01:00
emersion
73b7111846
gamma-control-v1: reset gamma table when control is destroyed
2018-08-02 23:33:59 +01:00
emersion
6e8892d4d7
gamma-control-v1: don't insert control in the list before checking unicity
2018-08-02 23:33:59 +01:00
emersion
a149c2370a
Implement wlr-gamma-control-unstable-v1
2018-08-02 23:33:04 +01:00
Drew DeVault
5642c5cc8f
Merge pull request #1053 from emersion/xdg-decoration
...
Add xdg-decoration-unstable-v1 support
2018-08-02 09:33:10 -04:00
emersion
555721f714
Add xdg-decoration-unstable-v1 support
2018-07-28 22:48:07 +01:00
Drew DeVault
f1b65b34a6
Merge pull request #1127 from emersion/surface-precommit
...
surface: add wlr_surface_role.precommit
2018-07-27 13:21:03 -04:00
Markus Ongyerth
d5950255de
tablet-v2 tablet_tool grab implementation
...
Implement the basic logic for tablet-v2 tablet_tool's grabs. And plug in
the default grab.
2018-07-23 10:08:10 +02:00
Ilia Bozhinov
8b7c85d765
xdg-shell(-v6): add set_title and set_app_id toplevel signals
...
This is useful for example when rendering decorations
2018-07-22 22:42:37 +03:00
Drew DeVault
4b096fc114
Revert "Merge pull request #1153 from emersion/include-config"
...
This reverts commit ef0a6ea4d2
, reversing
changes made to 8d03bc9178
.
2018-07-21 09:44:20 -04:00
emersion
41094a7df5
Always include config.h
2018-07-21 13:08:23 +01:00
emersion
5dbf0fe7f2
linux-dmabuf: add v1 suffix
...
This prevents some future conflicts with the stable version.
Fixes #1133
2018-07-19 21:50:05 +01:00
Markus Ongyerth
454f2a84a8
tablet-v2 tablet_pad grab implementation
...
Implement the basic logic for tablet-v2 tablet_pad's grabs. And plug in
the default grab.
Features like "holding" the focus should be implemented via grabs, like
they are for pointer and keyboard.
2018-07-19 11:35:00 +02:00
emersion
4afd69bbe7
Remove unused types/wlr_tablet_v2.c
2018-07-17 11:14:43 +01:00
emersion
16d7e09d99
surface: add wlr_surface_role.precommit
...
This allows to emit the unmap event before the surface becomes
actually unmapped for most shells.
2018-07-15 19:30:19 +01:00
Markus Ongyerth
9a6f77fc2c
tablet-v2: fix merge commits and test again
...
There were a few issues after rebase, that the merge algorithm didn't
throw at my face:
wlr_output did a check on the actual role, not a string anymore, so that
had to go to allow tablet-v2 to set cursor surfaces.
A few L_DEBUG/L_ERRORs were still around
There was a user-after-free in tablet-group free()ing, probably after
insufficient testing from a previous feedback pass
2018-07-14 10:29:22 +02:00
Markus Ongyerth
74ca2f8fcf
Another round of feedback from acrisci
2018-07-14 09:52:34 +02:00
Markus Ongyerth
43b20bfea2
First feedback pass from acrisci
2018-07-14 09:52:05 +02:00
Markus Ongyerth
d9e978e1b3
rename wlr_tablet_tool to wlr_tablet
...
The previous naming was based on the input-device capability names from
libinput.
With code that uses the libinput_tablet_tool and mapping into tablet-v2,
this is confusing, so the name is changed to follow the names used in
the protocol.
2018-07-14 09:49:58 +02:00
Markus Ongyerth
101080a382
Another feedback pass
2018-07-14 09:48:57 +02:00
Markus Ongyerth
6b51f3b57a
use previous resource versions and destroy pads
2018-07-14 09:48:57 +02:00
Markus Ongyerth
503f9d6e52
emersion feedback
...
Introduce TABLET_MANAGER_VERSION and remove the wlr_tablet_tool_tool.c
2018-07-14 09:48:57 +02:00
Markus Ongyerth
2bc09d91c3
Silent conversion from double to int should be illegal
2018-07-14 09:48:57 +02:00
Markus Ongyerth
dc525a9c5f
Clean up serial handling and automate proximity acompaning events
2018-07-14 09:48:57 +02:00
Markus Ongyerth
25c2808153
Clean up serial handling
2018-07-14 09:48:57 +02:00
Markus Ongyerth
88a4b908d1
Hide pad auxiliary data in .c file
2018-07-14 09:48:57 +02:00
Markus Ongyerth
fa39fd178d
Split tablet_v2 implementation for easier maintainance
2018-07-14 09:48:57 +02:00
Markus Ongyerth
2c12011472
Send all tablet tool axis events
2018-07-14 09:47:16 +02:00
Markus Ongyerth
6a40561e4c
Fix clang build errors
2018-07-14 09:47:16 +02:00
Markus Ongyerth
2155c976f6
Improve inert resource handling
2018-07-14 09:47:16 +02:00
Markus Ongyerth
b79d11395c
Hook up set_cursor in rootston
2018-07-14 09:47:16 +02:00
Markus Ongyerth
0c9a26828a
Use wlr_list for paths, and improve inert resource handling
2018-07-14 09:43:17 +02:00
Markus Ongyerth
31cec36b74
1st feedback pass
...
Rename make_ functions to _create
Implement set_cursor and set_feedback
2018-07-14 09:43:16 +02:00
Markus Ongyerth
5c7a37f309
Add tool buttons
2018-07-14 09:40:39 +02:00
Markus Ongyerth
391eef6ea9
Propagate most axis events to clients
2018-07-14 09:40:39 +02:00
Markus Ongyerth
f375246657
Implement basic tablet_pad handling (bound to keyboard focus)
2018-07-14 09:40:39 +02:00
Markus Ongyerth
f696e980f1
stabilise tablet_v2 code (prevent bunch of crashes)
2018-07-14 09:40:39 +02:00
Markus Ongyerth
e235f7d336
Basic tablet_v2 object lifetime
2018-07-14 09:40:39 +02:00
Markus Ongyerth
77bac448cc
storage commit #2
2018-07-14 09:40:39 +02:00
Markus Ongyerth
4947295c8f
convoluted tablet code
2018-07-14 09:40:39 +02:00
Markus Ongyerth
bf8751d632
Start tablet protocol
2018-07-14 09:40:39 +02:00
emersion
935a3f2ebb
screencopy: fix segfault when client supplies invalid buffer
2018-07-13 19:27:04 +01:00
emersion
5bb272d7f3
surface: add wlr_surface.opaque_region
2018-07-13 10:54:51 +01:00
Drew DeVault
e226e2c011
Missed some old wlr_log calls
2018-07-11 18:36:31 -04:00