Commit graph

702 commits

Author SHA1 Message Date
Markus Ongyerth
3cf7225cec decouples outputenable state and wl_output global
This decouples wlr_output_enable and the wl_global.
The previously internal functions wlr_output_(destroy/create)_global are
exposed and used automatically in the wlr_output_layout to create/tear
down the global.
The compositor can handle them itself if it wants to, but I think this
is the right moment to create/destroy the wl_output when the
wlr_output_layout is used.
2018-01-23 17:40:12 +01:00
emersion
4d282c8590
rootston: damage tracking for drag icons 2018-01-23 13:37:58 +01:00
emersion
3f1c4f5be7
rootston: damage tracking for wl_shell 2018-01-22 16:01:32 +01:00
emersion
a8cb02f585
surface: add damage when subsurface moves 2018-01-22 10:34:23 +01:00
emersion
f5507ec677
cursor: fix segfault when destroying a wlr_output_layout with a wlr_cursor attached 2018-01-22 09:29:52 +01:00
emersion
59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-21 22:18:06 +01:00
emersion
66ae4071a7
rootston: damage tracking for xdg popups 2018-01-21 21:06:37 +01:00
Johannes Schramm
dcc743047b style: include brackets for if/while/for, even if it's a single statement 2018-01-21 16:28:21 +01:00
emersion
eeffe11337
surface: add wlr_surface new_subsurface and wlr_subsurface destroy events 2018-01-21 14:22:33 +01:00
emersion
0365b587f0
output: add damage tracking via buffer age 2018-01-21 00:06:35 +01:00
emersion
4ca38b84ed
backend/drm: fix hardware cursors not moving
This adds back `wlr_output::needs_swap`. This allows a backend to
request buffer swaps even if the output isn't damaged. This is
needed by the DRM backend to trigger pageflips when the cursor
moves.
2018-01-20 16:43:14 +01:00
emersion
ddafcb86a2
surface: add resize damage 2018-01-20 00:52:43 +01:00
emersion
e29a0df8c1
output: fix software cursors damage tracking 2018-01-19 14:08:47 +01:00
emersion
a0f24b809e
output: add damage event 2018-01-19 13:13:46 +01:00
emersion
443bd4cd89
output: fullscreen surface damage tracking 2018-01-19 11:20:27 +01:00
emersion
f061a1da63
output: fix software cursor artifacts 2018-01-18 22:18:53 +01:00
emersion
59ba8f35ed
rootston: use surface damage 2018-01-18 21:34:10 +01:00
emersion
bde255933e
output: add wlr_output::damage, fixes #572 2018-01-18 19:47:21 +01:00
Tony Crisci
b6f29e87e8 dont use pointer for modifiers 2018-01-17 08:31:15 -05:00
Tony Crisci
43896af90f Merge branch 'master' into modifier-fixes 2018-01-17 08:27:47 -05:00
Drew DeVault
b331c5c2c5
Merge pull request #549 from emersion/output-enabled
Add wlr_output::enabled
2018-01-15 20:53:13 -05:00
emersion
0eebaf98d0
drm: do not pageflip when enabling output 2018-01-15 21:49:37 +01:00
Heghedus Razvan
21cc5e6fef Add idle protocol
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2018-01-10 14:32:41 +02:00
emersion
33c427a6aa
output_layout: disabled outputs are just like enabled outputs 2018-01-07 18:40:58 +01:00
Tony Crisci
b40a5f084a keyboard grab enter with modifiers 2018-01-06 11:06:09 -05:00
Tony Crisci
2bd3a75f80 fix send modifiers in wlr-seat set keyboard 2018-01-06 10:31:32 -05:00
Tony Crisci
670d336099 Merge branch 'master' into modifier-fixes 2018-01-06 09:41:13 -05:00
Tony Crisci
9765232096 update xkb state on layout change 2018-01-06 09:36:57 -05:00
Tony Crisci
ca0f456d6c wlr-keyboard set layout error handling 2018-01-06 09:06:19 -05:00
Tony Crisci
fcab1e87ed fix data-device keyboard grab signature 2018-01-06 08:32:44 -05:00
emersion
8ebd7d4dbe
output: rename resolution event to mode 2018-01-06 12:42:32 +01:00
emersion
6fe380a176
output_layout: handle output enable event 2018-01-06 12:39:15 +01:00
Markus Ongyerth
6834067ef5 sends the modifiers on wlr_seat_set_keyboard
Without this, a client will lose modifiers for one keyboard, when a key
is pressed on the other.
With this the client will always use the modifiers tate of the keyboard
the key was pressed on.
2018-01-05 22:20:46 +01:00
Tony Crisci
0ef2df21f2 compositor modifier hook 2018-01-05 07:00:50 -05:00
emersion
d9ecfbaf32
Add wlr_output enable event 2018-01-04 14:51:36 +01:00
emersion
771263380c
Add wlr_output::enabled 2018-01-04 12:46:15 +01:00
Tony Crisci
ce3a48c316
Merge pull request #542 from emersion/abstract-data-source
Abstract data sources
2018-01-04 06:15:17 -05:00
emersion
c599d8024c
Remove serial validation TODOs 2018-01-03 16:46:59 +01:00
Drew DeVault
b23bd8ea28
Merge pull request #544 from emersion/fix-views-outside-output-layout
Fix views outside output layout
2018-01-01 11:45:08 -05:00
emersion
9ac9ba861f
Free fullscreen surface and cursors when destroying output 2017-12-31 13:00:35 +01:00
emersion
1fe1d64042
Fix views outside output layout 2017-12-31 12:49:06 +01:00
emersion
38ed3b4245
seat: rename selection_source to selection_data_source, remove unused data_device 2017-12-30 09:58:04 +01:00
emersion
720c1154dc
Fix use-after-free when destroying an offer 2017-12-30 09:26:48 +01:00
emersion
b20aed66d6
Abstract wlr_primary_selection_source 2017-12-29 23:23:00 +01:00
emersion
062809723a
Data source resource now holds a struct client_data_source * 2017-12-29 23:01:35 +01:00
emersion
f237b5c7a7
Make wlr_data_source abstract.
This removes some fields specific to sources coming from clients.

This adds some drag'n'drop-related callbacks.
2017-12-29 22:51:33 +01:00
Dominique Martinet
d7cefccaee wlr_seat_destroy: emit seat itself as data on destroy event 2017-12-29 20:29:40 +01:00
Dominique Martinet
58488ec5ce wlr_seat: add destroy signal 2017-12-29 17:55:03 +01:00
Timidger
6e9cef4ed6
Don't send custom mode info twice on DRM refresh 2017-12-28 11:12:44 -06:00
Timidger
f56ce11aa0
Fixes #535 send mode info on DRM refresh once
When DRM refreshed, wlr_output_set_mode is called. It would then call
the DRM set_mode callback which sends the updated matrix and mode info.

However once that call completed it would then immediantly send the
information again. This is handled poorly by xwayland, causing it to
scale up the clients twice.
2017-12-28 11:12:44 -06:00
Dominique Martinet
b0e440b5b1 xdg_toplevel send_configure: also post no_memory to resource on ENOMEM 2017-12-28 16:33:08 +01:00
Dominique Martinet
8e24aaa3c6 style: fix sizeof() calls without parentheses 2017-12-28 16:28:19 +01:00
Dominique Martinet
da3ef46daf xdg_toplevel send_configure: abort on ENOMEM instead of sending partial configure 2017-12-28 16:08:45 +01:00
Dominique Martinet
3eb4fa15ee ENOMEM checks: consistently check wl_array_add return 2017-12-28 09:48:35 +01:00
Drew DeVault
9c163b7d38
Merge pull request #531 from acrisci/keyboard-num-keycodes
wlr-keyboard: keep track of number of keycodes pressed
2017-12-27 16:14:06 -08:00
Tony Crisci
e8b810ce3e keep track of number of keycodes pressed 2017-12-27 18:58:43 -05:00
Björn Esser
ff13849624
config: Avoid clash with other config-headers 2017-12-27 17:13:58 +01:00
Tony Crisci
815d71a3aa validate grab serial for shell events 2017-12-27 08:04:01 -05:00
emersion
a79dc7df51
Merge pull request #524 from acrisci/role-committed
[wip] Role committed
2017-12-27 13:02:49 +01:00
Tony Crisci
e42d762a88 drag-icon: surface committed 2017-12-27 06:41:14 -05:00
Tony Crisci
68328700c7 wl-shell: role committed 2017-12-27 06:32:54 -05:00
Tony Crisci
e809250171
Merge pull request #519 from emersion/xwayland-primary-selection
Implement xwayland primary selection sync
2017-12-27 06:23:04 -05:00
Tony Crisci
d5ffa26564 xdg-shell: role-committed func 2017-12-27 06:15:25 -05:00
Tony Crisci
5a18f62fee add role-committed hook 2017-12-27 06:06:29 -05:00
Tony Crisci
6c2242e66b
Merge pull request #522 from emersion/fix-drm-output-transform-cursor
Fix cursor on transformed output with DRM backend
2017-12-27 05:48:45 -05:00
Björn Esser
57a09c8ca4
config: Put all defines into config.h 2017-12-26 18:51:27 +01:00
emersion
e737f65e38
Fix cursor on transformed output with DRM backend 2017-12-26 18:16:37 +01:00
emersion
4a11609b76
Fix use-after-free when destroying selection sources 2017-12-25 18:18:26 +01:00
emersion
6dffaa7bb7
Implement xwayland primary selection sync 2017-12-25 16:10:16 +01:00
emersion
d4d860666c
Correctly free primary selection manager & source 2017-12-23 17:43:55 +01:00
emersion
077bdfa789
Send primary selection when clients get keyboard focus 2017-12-23 00:03:15 +01:00
emersion
4476f79850
Fix primary clipboard issues 2017-12-22 23:45:07 +01:00
emersion
a95d09d561
Add missing gtk-primary-selection interfaces 2017-12-22 22:22:29 +01:00
emersion
0a171d3ace
Add wlr_primary_selection_device_manager and wlr_primary_selection_source 2017-12-22 19:20:12 +01:00
emersion
01cefbb868
Output fixes
Fixes setting a hardware cursor image twice (used to fallback to
software cursor) and destroy handlers.
2017-12-19 11:06:09 +01:00
Tony Crisci
d654a12b2e remove display_destroy unlisten before output free 2017-12-18 16:24:56 -05:00
Tony Crisci
c59210ad17 remove display destroy when output is destroyed 2017-12-18 15:10:32 -05:00
Tony Crisci
c838679393 fix memory leaks 2017-12-18 14:53:24 -05:00
Tony Crisci
20327d82cb Merge branch 'master' into keyboard-fixes 2017-12-18 10:04:27 -05:00
Tony Crisci
37c83d5c6d misc keyboard fixes 2017-12-18 09:59:59 -05:00
emersion
2c31cac116
Do not segfault when loading an unknown keymap 2017-12-18 15:11:05 +01:00
Drew DeVault
f3769a4b1f
Merge pull request #496 from emersion/headless-backend
Headless backend
2017-12-17 20:48:01 -05:00
Drew DeVault
10c72f4bf6
Merge pull request #487 from emersion/xwm-selection
xwm clipboard sync, 2nd edition
2017-12-17 20:03:26 -05:00
emersion
804c7a73a6
Allow clients to unset the selection 2017-12-18 00:44:43 +01:00
emersion
0256de0002
Add full refresh rate support to custom modes 2017-12-17 18:02:55 +01:00
Drew DeVault
3363ea869a
Merge pull request #492 from emersion/seat-client-multiple-resources
Support multiple resources per seat client
2017-12-16 11:53:14 -05:00
emersion
50d91bd260
Fix potential memory leak 2017-12-16 17:46:07 +01:00
emersion
9e345f0f98
Simplify seat pointer functions 2017-12-16 17:17:07 +01:00
emersion
9310d101bc
Fix potential segfault 2017-12-16 16:16:29 +01:00
Drew DeVault
95fddf2fa8 s/L_INFO/L_DEBUG/ @ software cursor fallback 2017-12-16 09:56:30 -05:00
emersion
8af6fbd7a0
Support multiple resources per seat client for data_device 2017-12-16 14:22:59 +01:00
emersion
4f0443a344
Support multiple resources per seat client for pointer, keyboard, touch 2017-12-16 13:53:39 +01:00
emersion
80b0b327de
Remove fractional output PR artifact 2017-12-15 17:14:30 +01:00
emersion
51db087210
Introduce fractional scaling 2017-12-15 01:00:03 +01:00
Drew DeVault
23fb663ea4
Merge pull request #453 from emersion/surface-transform
Add surface transforms support
2017-12-14 14:43:04 -05:00
emersion
466e86b7b2
Merge branch 'master' into surface-transform 2017-12-14 20:31:18 +01:00
emersion
75ef7860bb
Merge branch 'master' into display-destroy 2017-12-14 20:29:30 +01:00
emersion
257559d890
Remove output instead of terminating display when a wayland backend view closed 2017-12-13 21:48:59 +01:00
emersion
3b4b8953d9
Update output layout when scale or transform changes 2017-12-12 21:58:00 +01:00
emersion
c67a5824b8
Merge branch 'master' into display-destroy 2017-12-11 16:14:03 +01:00
emersion
529675b7b0
Add wlr_output_set_custom_mode 2017-12-11 12:14:23 +01:00
Dominique Martinet
542d886984 wlr_seat: send keyboard modifiers to the right client on enter
We were previously sending modifiers to the leaving client instead.
Fixes #476.
2017-12-10 08:09:33 +01:00
Drew DeVault
eb4e91f96d
Merge pull request #474 from emersion/customize-repeat-info
Make keyboard repeat info configurable
2017-12-08 15:47:11 -05:00
emersion
a3c0f97810
Make keyboard repeat info configurable 2017-12-08 17:03:05 +01:00
emersion
15bb9a53b4
Fix unscaled cursor sx, sy 2017-12-08 14:40:57 +01:00
emersion
5dc303fc26
Fix client cursors hotspot on scaled outputs 2017-12-08 14:33:02 +01:00
emersion
c5fa415a03
Send wl_surface.{enter,leave} to cursor surfaces 2017-12-08 14:23:33 +01:00
emersion
18eb1eee3f
Listen to display destroy in xwayland, rename wlr_egl_free 2017-12-08 00:59:37 +01:00
emersion
bdb6e0b84c
Remove destroy event in screenshooter for now 2017-12-07 01:19:41 +01:00
emersion
0e066f0d76
Listen to display destroy in output 2017-12-07 01:12:04 +01:00
emersion
cbf5763c22
Listen to display destroy in xdg-shell-v6 2017-12-07 01:08:35 +01:00
emersion
9ddaea14a1
Listen to display destroy in wl-shell 2017-12-07 01:05:49 +01:00
emersion
983ea3033f
Listen to display destroy in seat 2017-12-07 01:02:07 +01:00
emersion
088ff9a614
Listen to display destroy in gamma control manager 2017-12-07 00:55:50 +01:00
emersion
c7900663bc
Add display destroy listener to data device 2017-12-07 00:50:55 +01:00
emersion
e6d2e72401
Remove display destroy listeners, add compositor listener 2017-12-07 00:44:45 +01:00
emersion
32591d66d6
Add display destroy listener in server decoration 2017-12-07 00:36:05 +01:00
emersion
dfe11a2b0e
Add display destroy listener in screenshooter, destroy display in rootston 2017-12-07 00:13:06 +01:00
emersion
dac0233804
Send new output to clients when changing transform 2017-12-06 16:54:08 +01:00
emersion
bf2b58eb6d
Add wlr_output_set_scale
Fixes #465
2017-12-06 16:36:46 +01:00
Tony Crisci
41d7bad470 wl-shell: add commit event 2017-12-03 12:37:23 -05:00
emersion
4a56957a37
Fix inverted flipped-90 and flipped-270 2017-12-01 09:49:32 +01:00
emersion
6a69b4419f
Make wlr_output_transform_* functions public, refactoring 2017-12-01 09:15:33 +01:00
Tony Crisci
5d7eb438d9
Merge pull request #437 from emersion/fullscreen
Fullscreen support
2017-11-30 03:25:05 -05:00
emersion
0781f6e483
Fix initial hardware cursor position 2017-11-29 00:26:55 +01:00
emersion
cc2468923b
Fix non-HiDPI-aware fullscreen surface rendering in wlr_output 2017-11-21 21:12:12 +01:00
emersion
3262661e1e
Fix HiDPI support 2017-11-21 20:58:15 +01:00
emersion
5a664e1e46
Fix messed up outputs after fullscreen 2017-11-21 18:43:22 +01:00
emersion
dcb168914e
Merge branch 'master' into fullscreen 2017-11-21 18:34:12 +01:00
Drew DeVault
1228d0da19
Merge pull request #387 from emersion/laggy-move-resize
Fix laggy move-resize
2017-11-21 11:13:18 -05:00
emersion
17d9e2ce35
Unify view events naming, remove client from event structs 2017-11-21 09:50:00 +01:00
emersion
151901123f
Merge branch 'master' into refactor-wlr-list 2017-11-20 21:15:58 +01:00
emersion
a268f57ed5
Forgot a call to glClear 2017-11-20 21:05:05 +01:00
emersion
54f1135c05
Fix fullscreen in xdg-shell 2017-11-20 20:53:13 +01:00
emersion
80998cdf57
Add support for fullscreen xwayland views 2017-11-20 17:58:26 +01:00
emersion
b04a9a248d
Initial fullscreen support 2017-11-20 17:27:36 +01:00
emersion
7904b625f0
Merge branch 'master' into laggy-move-resize 2017-11-19 22:28:51 +01:00
Tony Crisci
af23192ede wlr-seat: remove client bound and unbound signal 2017-11-19 11:13:59 -05:00
Tony Crisci
8f38b0504b wlr-data-device: map icon by default 2017-11-19 10:14:57 -05:00
Tony Crisci
3b74db467b data-device: wlr-drag-icon 2017-11-19 09:33:55 -05:00
emersion
016744ef4d
Refactor wlr_list inside wlroots 2017-11-19 00:17:40 +01:00
Tony Crisci
458fe633df data-device: fix memory leak 2017-11-18 14:04:20 -05:00
Tony Crisci
f277f28eef Merge branch 'master' into feature/wlr-seat-touch 2017-11-18 13:43:25 -05:00
emersion
cd566ccd8e
Add cursor theme to rootston config 2017-11-18 09:47:53 +01:00
emersion
a3a8b7bfd8
Fixed a bug with move-resize, removed xdg-shell ack_configure event
Fixed move-resizing a view when only one coordinate changes.
2017-11-18 09:09:23 +01:00
emersion
e2843d87c8
Ensure to move the view when configured 2017-11-17 23:52:42 +01:00
Tony Crisci
fb18e345a6 wlr-seat: return serial from touch down interface 2017-11-16 17:44:10 -05:00
Tony Crisci
4434be835d wlr-seat: clear touch focus on touch point destroy 2017-11-16 17:20:55 -05:00
Tony Crisci
ae7d8870e7 data-device: bug: fix touch detection 2017-11-16 16:45:56 -05:00
Tony Crisci
584ff1df4c Merge branch 'master' into feature/wlr-seat-touch 2017-11-16 16:19:17 -05:00