Tony Crisci
45a3b761a6
xdg-surface-v6: add events
2017-09-14 08:39:57 -04:00
Tony Crisci
50f4275298
implement xdg-toplevel state properties
2017-09-13 09:19:10 -04:00
Tony Crisci
353629b034
xdg-surface geometry
2017-09-13 08:44:32 -04:00
Tony Crisci
2fd5c7999b
set title and app_id
2017-09-13 07:57:16 -04:00
Tony Crisci
9d2dc8447a
use wlr_surface on shell struct and listen to events
2017-09-13 07:57:16 -04:00
Tony Crisci
b2c71287f2
set toplevel role on wlr_surface
2017-09-13 07:57:14 -04:00
Tony Crisci
c5f8f81e58
xdg_surface: handle wlr_surface destroy
2017-09-11 17:24:55 -04:00
Tony Crisci
4752b84f4e
wlr_xdg_shell_v6.c: fix formatting
2017-09-11 16:26:51 -04:00
Tony Crisci
74e9578889
add surface destroy signal
2017-09-11 13:01:53 -04:00
Markus Ongyerth
935b6d871e
fixes use after free caused by signal lists
...
A structs throughout the code use implementation specific free
functions.
When those functions are not used, they simply call free() on their
data, but this leaves around wl_signals linked into listeners.
When those listeners try to remove themself from the list, they write
into the now free memory.
This commit adds calls to remove the signals from those lists, so the
listeners can safely call wl_list_remove
2017-09-08 16:02:26 +02:00
emersion
7d43d662f5
Fix gamma_size event sent to wrong resource
2017-09-06 22:22:40 +02:00
emersion
6f98b5a337
Add set_gamma and get_gamma_size to wlr_output_impl
2017-09-06 18:53:08 +02:00
emersion
cd125377fc
Add wlr_output_{set_gamma,get_gamma_size}
2017-09-06 17:34:09 +02:00
emersion
1b588e7c1f
Add gamma_control skeleton
2017-09-06 14:48:27 +02:00
Drew DeVault
586ae674ae
Merge pull request #136 from acrisci/bug/rename-output-layout-create
...
Rename wlr_output_layout_init()
2017-09-06 08:29:55 +09:00
Tony Crisci
e733b0e643
Rename wlr_output_layout_init()
...
Rename wlr_output_layout_init() to wlr_output_layout_create() to be consistent
with the rest of the api.
2017-09-05 17:53:29 -04:00
Tony Crisci
6c24300d13
wlr_cursor_device create and destroy
...
Refactor wlr_cursor_device creation and destruction into their own functions.
Properly unsubscribe from signals in the wlr_cursor_device_destroy function.
2017-09-05 17:48:02 -04:00
Tony Crisci
57c18c38bb
wlr_cursor: handle layout changes
...
Add the layout `destroy` and `change` events.
When a layout is destroyed, detach is from the wlr_cursor.
When a layout is changed, warp the cursor to the closest layout boundary.
2017-09-05 07:48:28 -04:00
Tony Crisci
d84deb0742
add wlr_output destroy event
2017-08-31 07:47:44 -04:00
Tony Crisci
fa3d4ecc84
fix layout hotplugging issue in output-layout.c
2017-08-31 07:47:44 -04:00
Tony Crisci
f25511ee3d
refactor wlr_output_layout to use wlr_box
2017-08-31 07:47:44 -04:00
Tony Crisci
40bd6bcc43
implement output layout auto configuration
2017-08-31 07:47:44 -04:00
Tony Crisci
368f74e4df
Refactor meson build files
...
Use tabs for indentation and break up function calls over 80 col.
2017-08-30 14:30:47 -04:00
Tony Crisci
d9ab631f5d
bugfix: set cursor coords on warp_unchecked
2017-08-29 12:48:45 -04:00
Tony Crisci
b6031d1065
refactor wlr_output_layout_closest_point
2017-08-29 12:36:39 -04:00
Tony Crisci
9b65d0b3f0
refactor and rename wlr_geometry to wlr_box
2017-08-29 12:36:39 -04:00
Tony Crisci
a51b76083e
rename wlr_cursor_init to wlr_cursor_create
2017-08-29 12:36:39 -04:00
Tony Crisci
1fb8bc9340
wlr_cursor.c: fix formatting
2017-08-29 12:36:39 -04:00
Tony Crisci
3449777a8d
wlr_output_layout.c: fix style
2017-08-29 12:36:39 -04:00
Tony Crisci
4fbe322fa6
fix memory errors
2017-08-28 11:07:54 -04:00
Tony Crisci
ab1a12b174
fix formatting in types/meson.build
2017-08-28 11:07:21 -04:00
Tony Crisci
5c845f14ed
handle input device destroy
2017-08-28 10:29:53 -04:00
Tony Crisci
df0ee7f25f
implement tablet tool devices
2017-08-28 10:23:14 -04:00
Tony Crisci
0dc3aecfd4
refactor device mapping calculation
2017-08-27 20:10:46 -04:00
Tony Crisci
5e06d61e42
implement touch up and touch down
2017-08-27 17:35:12 -04:00
Tony Crisci
ed126b0881
add touch events
2017-08-27 11:34:25 -04:00
Tony Crisci
ac503a47a7
intersect cursor and device regions
2017-08-26 11:55:24 -04:00
Tony Crisci
0a97b68278
implement cursor and device geometry mapping
2017-08-26 08:32:11 -04:00
Tony Crisci
98f4cdfccb
implement wlr_cursor_map_input_to_output
2017-08-26 08:32:11 -04:00
Tony Crisci
13e895d943
implement wlr_cursor_map_to_output
2017-08-26 08:32:11 -04:00
Tony Crisci
a4810203cc
change output layout coords to double type
2017-08-26 08:32:11 -04:00
Tony Crisci
f69a7afd36
assert cursor layout for move and warp functions
2017-08-26 08:32:11 -04:00
Tony Crisci
0cba06dcef
implement wlr_cursor_warp
2017-08-26 08:32:11 -04:00
Tony Crisci
dd68f680e4
handle cursor to output edge cases
2017-08-26 08:32:11 -04:00
Tony Crisci
431e1ddeca
smooth pointer transitioning between outputs
2017-08-26 08:32:11 -04:00
Tony Crisci
9978349903
use safe for_each when freeing cursor devices
2017-08-26 08:32:11 -04:00
Tony Crisci
e3d47376dc
add wlr_cursor basic implementation
2017-08-26 08:32:11 -04:00
Dominique Martinet
3391e5b634
xwayland: fix style issues
2017-08-23 22:03:49 +02:00
Dominique Martinet
ea906ea3e2
wlr surface/shell types: add message on creation
...
Not sure if we really want to keep that, would be helpful to get more
logging levels at some point
2017-08-23 22:03:49 +02:00
Dominique Martinet
3cc5b1acc6
wlr_compositor: add signal for create_surface
2017-08-23 22:03:49 +02:00
Dominique Martinet
ee3c5c7fef
wlr_seat: fix destroy with multiple handles
...
Need to use for_each_safe because wl_resource_destroy's callback will
remove the handle from the list itself
2017-08-21 07:59:08 +02:00
Dominique Martinet
1ca08dc4cb
wlr_compositor: change _init/finish to _create/destroy
2017-08-19 23:17:39 +02:00
Dominique Martinet
4110788159
move wl_compositor into wlroots as wlr_compositor
2017-08-19 21:56:51 +02:00
Dominique Martinet
84c0c87a5d
wlr_surface: change update_size/damage to bool
2017-08-19 14:37:57 +02:00
Dominique Martinet
4da976bfad
wlr_surface: small refactoring
...
- split surface damage and buffer damage
- the pending buffers are always valid, so can be 'fini'shed
- consider opaque buffer and input buffer in commit, just to free
- only update size if scale/transform/buffer changed
2017-08-19 09:31:06 +02:00
Dominique Martinet
03b29eb32c
wlr region/surface: explicitely select interface fields
2017-08-19 09:31:06 +02:00
Dominique Martinet
fc1a851415
wlr_surface: clear/fini buffers when appropriate
2017-08-19 09:31:06 +02:00
Dominique Martinet
f24b3df980
wlr renderer/texture: rename init to create when it does alloc
2017-08-19 08:33:31 +02:00
Drew DeVault
a1551bccc0
Merge pull request #107 from nyorain/wlr_data_device_manager
...
Implement wlr_data_{source,device,device_manager}
2017-08-18 14:05:51 -04:00
nyorain
f2a9098691
Fix wlr_data_device_manager
2017-08-18 19:58:36 +02:00
Dominique Martinet
bb3b9d0156
wlr_surface: use post_event instead of queue
...
This fixes not sending anything back to the client if the only event
it's waiting for is a buffer release, and nothing else is in the pipe.
Workaround for #102 - there probably is a better solution as weston and
wlc do not need to use post_event here.
2017-08-18 19:38:11 +02:00
nyorain
154d2ad941
Fix data_device destruction
2017-08-18 19:12:31 +02:00
nyorain
86314caa5b
Implement wlr_data_{source,device,device_manager}
2017-08-18 18:56:21 +02:00
Tony Crisci
c6631e2140
Fix wild pointer to buffer
...
After the buffer is released from the release event, it should no longer be
accessed.
Fixes a GTK crash.
2017-08-18 12:41:42 -04:00
Drew DeVault
e5fd858394
Merge pull request #101 from nyorain/texture_fix
...
Fix surface buffer uploading
2017-08-18 10:16:45 -04:00
Dominique Martinet
978f935947
output: default scale to 1
...
This prevents us from telling application our scale is 0, when it has no
reason to be.
2017-08-18 16:01:40 +02:00
Drew DeVault
3138c5ddf0
Clean up wlr_output_layout
2017-08-17 21:06:28 -04:00
Tony Crisci
5a9baf487e
add helper methods for intersection
2017-08-17 21:05:13 -04:00
Tony Crisci
420bd3e422
bugfix: correctly get the output_layout
2017-08-17 21:05:13 -04:00
Tony Crisci
2e9e237f9d
layout-output example: handle empty config
2017-08-17 21:05:13 -04:00
Tony Crisci
44181b57ac
Add wlr_output_layout implementation
...
An output layout consists of a mapping of outputs to their position in a global
coordinate system that usually cooresponds to the output position in physical
space in front of the user.
Add an example that allows configuration of an output layout and demonstrates
its boundaries with a bouncing image.
2017-08-17 21:05:13 -04:00
nyorain
10eee58d2d
Fix surface buffer uploading
2017-08-17 17:50:09 +02:00
nyorain
2db04c369e
Fix style issues in wlr_seat
2017-08-17 14:14:31 +02:00
nyorain
ad22b4874d
Fix wlr_seat; add to example compositor
2017-08-17 13:06:53 +02:00
Drew DeVault
af5db7a44c
Initial pass on wlr_seat
2017-08-17 12:57:04 +02:00
Drew DeVault
19d6442f52
Merge pull request #91 from martinetd/move_wl_shell
...
Move wl_shell into wlroots
2017-08-15 17:39:18 -04:00
Drew DeVault
27c13d621d
Merge pull request #88 from 4e554c4c/alloc_crashing
...
Prevent alloc errors from crashing
2017-08-15 12:21:58 -04:00
Dominique Martinet
dca3f630dd
Fix wlr_wl/xdg_shell_destroy segfault
...
- Implement xdg_shell_destroy and use it at the right place
(impl->destroy is never called)
- Remove wl_global_destroy for now, something is missing with the
display/registry_resource_list
2017-08-15 15:52:20 +02:00
Dominique Martinet
f9b55dfa95
Make wlr_wl_shell_create work like xdg
...
Also:
- rename wlr_xdg_shell_v6_init to create as that is what it does
- free wlr_xdg_shell on failure to create wl_global, the struct
is not initialized enough to call destroy at that point
2017-08-15 15:36:02 +02:00
Dominique Martinet
d49edc8243
wl_shell/compositor surface: do not check if it's in list before removing
2017-08-15 15:34:26 +02:00
Dominique Martinet
5dae8e1be8
example compositor: only iterate over wl_shell and xdg_shell surfaces
2017-08-15 15:34:26 +02:00
Dominique Martinet
f4e6b138fb
Move wl_shell into wlroots
2017-08-15 15:13:23 +02:00
Drew DeVault
f60b53c6e3
Change how surface matricies are calculated
2017-08-15 08:52:30 -04:00
Tony Crisci
d5f98dbf61
refactor getting surface size into a function
2017-08-15 08:22:22 -04:00
Tony Crisci
2bf2dbb2bd
formatting fixup
2017-08-15 07:41:25 -04:00
Tony Crisci
5b1ce84350
implement buffer transform
2017-08-15 07:36:51 -04:00
Tony Crisci
84c6dbd58d
remove unused dimension from buffer calculations
2017-08-15 07:36:51 -04:00
Tony Crisci
e46ec57b43
implement surface sizing
2017-08-15 07:36:51 -04:00
Tony Crisci
b49650b555
initialize buffer damage before conversion
2017-08-15 07:36:50 -04:00
Tony Crisci
d87c58416b
clip surface damage to surface size
2017-08-15 07:36:50 -04:00
Tony Crisci
72a33b736f
implement texture get buffer size
2017-08-15 07:36:50 -04:00
Tony Crisci
f0f190bfa5
implement buffer scale
...
Keep track of the scale of the buffer set by surface.set_buffer_scale.
Calculate the height and width of the texture from the buffer depending on the
scale when it is attached.
Use buffer damage to determine the damage of the buffer when flushing damage.
Convert surface damage to buffer damage and union to the surface buffer_damage
prior to flushing damage.
2017-08-15 07:36:50 -04:00
Tony Crisci
e22e443717
fix formatting in surface_damage
2017-08-15 07:36:50 -04:00
Tony Crisci
0b3d56384f
implement surface_damage_buffer
2017-08-15 07:36:17 -04:00
nyorain
7d0bf9a1a7
Simplify tablet pad destruction
2017-08-15 12:16:23 +02:00
Calvin Lee
5cc7342606
Prevent alloc errors from crashing
...
Resolves #76
2017-08-15 08:04:57 +02:00
nyorain
aa20634309
Simplify input device destruction code
2017-08-14 18:23:20 +02:00
nyorain
f998bb8299
Fix style issues
2017-08-14 17:09:56 +02:00
Dominique Martinet
4bbf718e7d
impl->destroy cleanup:
...
- remove trivial destroy() function
- make sure we check impl and impl->destroy before calling
- always call free if not implemented
2017-08-14 16:22:31 +02:00
Dominique Martinet
ba20d5b3ca
Refactor out wlr_touch_state
2017-08-14 16:22:31 +02:00