Commit Graph

508 Commits

Author SHA1 Message Date
Tony Crisci d3ebf99b0f xdg-popup: basic pointer grab 2017-10-06 06:54:43 -04:00
Versus Void 641d08ce7e Transform hotspot with cursor
Fix #188
2017-10-06 09:07:08 +03:00
Drew DeVault b2d478a418 Merge pull request #189 from emersion/xwayland-hints
xwayland: add support for window hints
2017-10-05 16:27:30 -04:00
emersion 12b9b1a4bd
Copy xcb_icccm structs into wlroots 2017-10-05 22:23:37 +02:00
Tony Crisci 17b134e178 wlr-seat: pointer grab interface 2017-10-05 13:30:46 -04:00
Drew DeVault d74a6d254f Merge pull request #198 from emersion/rootston-move-resize-rotate
rootston: force move, resize and rotate
2017-10-05 13:12:29 -04:00
emersion 454a6a902b
Parse _MOTIF_HINTS 2017-10-05 19:11:28 +02:00
emersion fc61e82795
Use pointers for xwayland hints and size_hints 2017-10-05 19:11:28 +02:00
emersion 267f24753f
Add support for WM_HINTS 2017-10-05 19:10:24 +02:00
emersion ca68ef37f0
Add padding if xcb_icccm is not available 2017-10-05 19:10:24 +02:00
emersion ed9796ec68
xwayland: parse normal hints 2017-10-05 19:10:23 +02:00
emersion ef5914bdb6
xwayland: add wlr_xwayland_surface->motif_hints 2017-10-05 19:10:23 +02:00
Versus Void c5df6ca900 Fix memory leaks 2017-10-05 20:01:56 +00:00
Tony Crisci 30eabf38b8 Merge branch 'master' into feature/xdg-popup 2017-10-03 18:58:38 -04:00
emersion f9dbc1841d
rootston: add meta-key to config file 2017-10-03 22:14:25 +02:00
Versus Void 606311c755 Reset buffer resource pointer on destroy signal 2017-10-03 19:57:54 +00:00
emersion 9b88f25208
rootston: rotate views! 2017-10-03 21:06:32 +02:00
emersion 521e893528
Add modifiers signal, remove wlr_keyboard_update_modifiers 2017-10-03 14:03:26 +02:00
emersion d3d9aca40c
Add modifiers support in wayland backend, parse modifiers in rootston config 2017-10-03 08:46:11 +02:00
emersion 3a8fdebaaa
Fix modifiers handling, add wlr_keyboard_get_modifiers 2017-10-03 08:46:11 +02:00
emersion 2fccff16eb
Begin modifiers support 2017-10-03 08:46:11 +02:00
emersion 238ded1578
Use a command string rather than an action enum 2017-10-03 08:46:10 +02:00
emersion 97d0fe8976
Parse bindings in config, execute bindings 2017-10-03 08:46:10 +02:00
emersion d32018f1ac
Use keysyms instead of keycodes 2017-10-03 08:46:10 +02:00
emersion ab6c1f88e6
Add keyboard state to rootston 2017-10-03 08:46:09 +02:00
Tony Crisci e003296c23 xdg-popup: render popups in the right place 2017-10-02 19:10:36 -04:00
Tony Crisci 97cdcccaf0 xdg-surface: get popup 2017-10-02 19:10:36 -04:00
Drew DeVault 87a0cb7ba3 Merge pull request #182 from ascent12/drm-multi-gpu
DRM Multi-GPU
2017-10-02 08:46:06 -04:00
Scott Anderson f193623ca1 Change iface prefix to suffix 2017-10-02 21:44:33 +13:00
Drew DeVault f2ea691b93 Add basic drawing tablet support to rootston 2017-10-01 11:21:55 -04:00
Scott Anderson f6f9c40965 Minor fixes 2017-10-01 22:44:24 +13:00
Scott Anderson 009c3747a8 Multi-GPU DRM 2017-10-01 22:29:25 +13:00
Scott Anderson fa3d0ed929 Change wlr_session to open every GPU 2017-10-01 16:47:05 +13:00
Scott Anderson eaef028976 Add renderer pointer inside drm_surface 2017-10-01 15:55:25 +13:00
Tony Crisci 8f41c497a7 Merge branch 'master' into feature/subcompositor 2017-09-30 13:29:31 -04:00
Tony Crisci 8b7ae61ad4 subsurface handle parent destroy 2017-09-30 13:24:59 -04:00
Tony Crisci 4c1bd9bde8 input events for subsurfaces 2017-09-30 12:59:45 -04:00
emersion 7f5d0624d6
Add x, y, width, height arguments to wlr_xwayland_surface_configure 2017-09-30 16:33:04 +02:00
Tony Crisci 19e30aab9b subcompositor protocol errors 2017-09-30 08:55:40 -04:00
Tony Crisci 93f79378f7 subsurface stacking requests 2017-09-30 08:55:40 -04:00
Tony Crisci 86bc4840a0 subsurface commit and render 2017-09-30 08:55:40 -04:00
Tony Crisci cb2d05e83b subsurface sync and position 2017-09-30 08:55:40 -04:00
Tony Crisci 7f39578824 cleanup wlr_surface.[ch] 2017-09-30 08:55:40 -04:00
Tony Crisci 68eeebc647 subsurface implementation stubs 2017-09-30 08:55:40 -04:00
emersion 74f2d0cd63
Completely fix resize offset 2017-09-30 14:02:09 +02:00
emersion 77d28183b5
Partially fix resize offset 2017-09-30 13:54:51 +02:00
emersion 28d4b475dc
Add edges support, remove get_input_bounds 2017-09-30 13:22:42 +02:00
Scott Anderson 4101b89700 Rename wlr_drm_output to wlr_drm_connector 2017-09-30 23:31:08 +13:00
emersion 33a97576ca
Add view_resize 2017-09-30 11:57:39 +02:00
Scott Anderson 22e77d9195 Rename backend to drm 2017-09-30 22:22:26 +13:00
Scott Anderson ec5b95e08f Add pointer to backend from DRM outputs 2017-09-30 22:01:59 +13:00
emersion 97679b8e12
React to xdg shell resize requests 2017-09-30 10:39:06 +02:00
Scott Anderson 096249a2a1 Split DRM rendering to its own file 2017-09-30 20:52:58 +13:00
Scott Anderson d0708b1a3a Split DRM internal interface to its own header 2017-09-30 19:11:41 +13:00
Scott Anderson 610b0493ac Rename files to remove pointless drm prefix 2017-09-30 19:03:34 +13:00
Scott Anderson c8a8ff66f2 Removed unused fields 2017-09-30 18:53:05 +13:00
Drew DeVault a48dedba3d Merge pull request #170 from emersion/xwayland
Improve xwayland, batch 2
2017-09-29 17:25:58 -04:00
emersion 4ccb83bf33
xwayland: add wlr_xwayland_surface_close 2017-09-29 23:18:12 +02:00
emersion 5002d968f3
xwayland: add window_type support 2017-09-29 23:03:01 +02:00
emersion b78ae54158
xwayland: add pid support 2017-09-29 22:43:14 +02:00
emersion 97346e7a1b
xwayland: add state support 2017-09-29 22:26:03 +02:00
emersion 7c9f3240f6
xwayland: add set_parent event 2017-09-29 20:22:35 +02:00
emersion d8c86431e0
xwayland: add signals for configure, set_{class,title} 2017-09-29 18:28:38 +02:00
emersion f2b03b2ec1
Add reply->type checks, add XCB_ATOM_WM_TRANSIENT_FOR 2017-09-29 16:44:22 +02:00
emersion 47d767dbc4
xwayland: expose wlr_xwayland_surface_configure 2017-09-29 16:19:06 +02:00
emersion e3917af69d
xwayland: read window title & class 2017-09-29 15:57:21 +02:00
Scott Anderson 1b18b0a27d Fix time and transform 2017-09-29 16:31:04 +13:00
Scott Anderson 6bf508df81 Add closing with WM button 2017-09-29 16:15:09 +13:00
Scott Anderson 8027232ae5 Add timer for rendering loop 2017-09-29 16:15:09 +13:00
Scott Anderson 9ca5b0cae8 Add basic input 2017-09-29 16:15:09 +13:00
Scott Anderson 3a5b150df2 Basic rendering 2017-09-29 16:15:09 +13:00
Scott Anderson bbe90d41bb Add EGL for X11 2017-09-29 16:15:09 +13:00
Scott Anderson 517ba0bc16 Change egl_get_config to always use visual id 2017-09-29 16:15:09 +13:00
Scott Anderson 7ad2a57feb Open X11 Window 2017-09-29 16:12:13 +13:00
Scott Anderson a598e6d026 Add X11 backend skeleton 2017-09-29 16:12:13 +13:00
Drew DeVault ada7fde6fb DRY up focus and implement z ordering 2017-09-28 19:48:55 -04:00
Drew DeVault 10240af6ea Handle input device removal 2017-09-28 19:05:38 -04:00
emersion b7927078e9
x11 -> xwayland, window -> surface, fix some calloc sizes and wrong types 2017-09-28 23:26:31 +02:00
Drew DeVault c92199a953 Merge pull request #163 from emersion/wl_shell-fixes
wl_shell fixes
2017-09-28 13:29:49 -04:00
Drew DeVault 220a6e9bf6 Add xwayland activate and fix EGL bug 2017-09-28 09:11:16 -04:00
Drew DeVault 906a816abf Fix rootston keyboard, add Xwayland 2017-09-28 08:54:57 -04:00
emersion 9d405cffa7
Use enums instead of uint32_t where applicable 2017-09-28 13:12:01 +02:00
emersion 3d03ef2d02
role -> state 2017-09-28 12:45:47 +02:00
emersion 27ca8eaced
Fix typo: s/transcient/transient/ 2017-09-28 12:38:41 +02:00
Drew DeVault 7cf4ee128e Merge remote-tracking branch 'origin/master' into rootston 2017-09-27 20:25:34 -04:00
emersion a04462ba8b
wl_shell: listen for wlr_surface destroy signal 2017-09-28 01:31:31 +02:00
emersion 63f277f3b9
rootston: handle request_move 2017-09-28 00:29:37 +02:00
emersion d6c6b7c506
class_ -> class, free more stuff in destroy_shell_surface 2017-09-27 23:47:39 +02:00
emersion 241fec4d87
wl_shell: add wlr_wl_shell_surface_{configure,popup_done} 2017-09-27 23:45:09 +02:00
emersion 14ab56b6c5
wl_shell: implement set_popup request 2017-09-27 23:10:33 +02:00
emersion 663bfe4cd8
wlr_wl_shell: implement all requests except set_popup 2017-09-27 21:15:31 +02:00
emersion e001e40022
Set view->surface 2017-09-27 15:03:35 +02:00
emersion acf58e04de
Fix segfault, add wl_shell view 2017-09-27 14:48:53 +02:00
Drew DeVault d7d73cd298 Merge pull request #144 from ascent12/drm-dp-mst
DisplayPort MST
2017-09-27 07:58:01 -04:00
emersion ed9a43c213
Add first try to add wl_shell to rootston 2017-09-26 23:59:25 +02:00
Drew DeVault e6a6634bc5 Minor tweaks to (broken) keyboard support 2017-09-25 08:47:00 -04:00
Drew DeVault f4387b437f Merge branch 'master' into rootston 2017-09-25 08:29:51 -04:00
Drew DeVault 61e451ea1b Move keyboard logic to wlr_{keyboard,seat} 2017-09-24 14:12:56 -04:00
Drew DeVault b84d59403f Initial keyboard support in rootston 2017-09-23 18:32:03 -04:00
Drew DeVault 0ca7932c3f Implement xdg surface request_move 2017-09-23 18:18:19 -04:00
Drew DeVault eaf6c0ccf4 Implement pointer motion and buttons 2017-09-23 17:48:13 -04:00
Drew DeVault d89272dbbd Merge pull request #156 from acrisci/feature/wlr-keyboard-events
[wip] wlr-seat-keyboard: keyboard events
2017-09-23 15:00:52 -04:00
Drew DeVault 57c50c78f0 Implement wlr_cursor in rootston 2017-09-23 14:53:15 -04:00
Tony Crisci 84a8f1b42d add keys array param to seat keyboard enter 2017-09-23 14:41:57 -04:00
Tony Crisci 3895593998 wlr-seat: keyboard layout 2017-09-23 14:09:54 -04:00
Drew DeVault e81e99d16d Render XDG shell surfaces 2017-09-23 11:13:18 -04:00
Drew DeVault 7523de7c61 Wire up pointer, start on cursor 2017-09-23 10:36:32 -04:00
Drew DeVault 0699aa62d8 Initial pass on roots_input 2017-09-23 10:13:05 -04:00
emersion 4809b7b3e4
Fix some include guard names in interfaces/ 2017-09-23 13:10:10 +02:00
emersion 427bdb5b55
Use more consistent include guard names 2017-09-23 10:26:01 +02:00
Scott Anderson 025b3ee515 Add error recovery for failed page flips 2017-09-23 18:27:14 +12:00
Scott Anderson 459d138fa2 Add timeout to DRM cleanup
This prevents a potential infinite loop preventing us from closing
properly.
2017-09-23 16:32:25 +12:00
Drew DeVault b6d7c3ed8e Initialize display, backend; add frame handling 2017-09-23 00:30:39 -04:00
Drew DeVault 550748681d Establish rootston headers & main 2017-09-22 23:30:40 -04:00
Tony Crisci 30b5d76426 wlr-seat: keyboard modifiers 2017-09-22 17:09:47 -04:00
Tony Crisci cef1f60522 wlr-seat-keyboard: basic events 2017-09-22 16:28:11 -04:00
Drew DeVault e5e6dab7fd Fix use of serial on motion_request 2017-09-22 11:11:53 -04:00
Tony Crisci e38248f34c wlr-seat: implement cursor axis events
Axis events for the cursor are generated with the scroll wheel.
2017-09-22 10:30:09 -04:00
Scott Anderson 8cb49f4d68 Add stdbool.h 2017-09-22 14:17:29 +12:00
Drew DeVault d558745633 Handle tablet motion in example compositor 2017-09-21 18:51:33 -04:00
Tony Crisci 7a3edf6e62 use double for cursor coordinates 2017-09-21 11:38:04 -04:00
Tony Crisci 8b74450b39 wlr_seat: pointer events 2017-09-20 19:43:49 -04:00
Tony Crisci aeaa983631 wlr_seat: formatting cleanup 2017-09-19 15:38:06 -04:00
Tony Crisci 5b9373a791 xdg-toplevel-v6 set parent 2017-09-16 20:07:19 -04:00
Tony Crisci 2573c429ee reset pending geometry on ack configure 2017-09-16 19:32:23 -04:00
Tony Crisci 94f4f1878d xdg-surface-v6: implement ping 2017-09-16 12:35:49 -04:00
Tony Crisci 0f865c547a xdg-toplevel-v6: seat events 2017-09-16 08:31:08 -04:00
Tony Crisci 27161a673f xdg-shell new surface and ack configure events 2017-09-15 08:53:08 -04:00
Tony Crisci 569b147bba schedule configure request on toplevel first commit 2017-09-15 07:50:13 -04:00
Tony Crisci a0bdbc92ba xdg-shell-toplevel configure requests 2017-09-14 16:27:14 -04:00
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 74e9578889 add surface destroy signal 2017-09-11 13:01:53 -04: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
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 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 40bd6bcc43 implement output layout auto configuration 2017-08-31 07:47:44 -04:00
Drew DeVault 6daf9e9ab2 Merge pull request #120 from acrisci/feature/wlr-cursor
wlr_cursor
2017-08-29 12:12:18 -05: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
Drew DeVault 30611894f2 Implement tablet_tool support in pointer example 2017-08-28 22:12:35 -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 5e06d61e42 implement touch up and touch down 2017-08-27 17:35:12 -04:00
Dominique Martinet 871646d225 Double-fork for xwayland execution
The intermediate fork needs to wait for SIGUSR1 for when Xserver is
ready, or SIGCHLD if the exec didn't work out.

Also change the exit() to _exit() as that is apparently more appropriate
for forks (and waitpid's status was wrong without it for some reason)

Fixes #122.
2017-08-27 21:41:08 +02:00
Tony Crisci c914697676 add device to touch events 2017-08-27 11:44:55 -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 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 e3d47376dc add wlr_cursor basic implementation 2017-08-26 08:32:11 -04:00
Scott Anderson d16b2977f6 Remove single GPU assumptions from wlr_session 2017-08-26 14:50:16 +12:00
Scott Anderson fb93628bda Merge wlr_udev into wlr_session 2017-08-26 14:02:04 +12:00
Scott Anderson 46823152ea Rename functions to be consistent with #93 2017-08-26 11:56:43 +12:00
Dominique Martinet fd3ad3b9e4 xwayland: fix shutdown caused by Xwayland/client stop 2017-08-24 07:51:24 +02:00
Dominique Martinet 3391e5b634 xwayland: fix style issues 2017-08-23 22:03:49 +02:00
Dominique Martinet 1458a95e65 example compositor: loop through xwayland surfaces 2017-08-23 22:03:49 +02:00
Dominique Martinet eb5b9cc6da xwayland: move & split internal header file 2017-08-23 22:03:49 +02:00
Dominique Martinet fa0e1015c6 xwm: fix minimal init, this gets us some events on window creations 2017-08-23 22:03:49 +02:00
Dominique Martinet 6eb20fb8d2 init xwm only once Xwayland server is ready 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 b2bab1af5c xwayland: split xwm structure out, initial xwm.c 2017-08-23 22:03:49 +02:00
Dominique Martinet 49a823d4c6 Xwayland: first draft, just start server for now 2017-08-23 22:03:49 +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 f24b3df980 wlr renderer/texture: rename init to create when it does alloc 2017-08-19 08:33:31 +02:00
Tony Crisci f03be94309 rename wlr_cursor to wlr_xcursor
This is for the implementation of another type that should be called wlr_cursor.
2017-08-18 19:48:55 -04:00
nyorain 86314caa5b Implement wlr_data_{source,device,device_manager} 2017-08-18 18:56:21 +02:00
Drew DeVault e5fd858394 Merge pull request #101 from nyorain/texture_fix
Fix surface buffer uploading
2017-08-18 10:16:45 -04: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 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
Drew DeVault 18f1538108 Merge pull request #99 from nyorain/wlr_seat2
wlr_seat
2017-08-17 08:42:24 -04: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
Dominique Martinet 577d2f6fcd wayland backend: switch to xdg shell
Closes #72 and #96.
2017-08-17 10:24:27 +02:00
Calvin Lee 901c14c409 Prevent alloc errors from crashing in `list_t`
This commit changes the `list_t` api so that alloc errors can be
detected and worked around. Also fixes errors not found in 5cc7342
2017-08-16 09:23:21 +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 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 5b1ce84350 implement buffer transform 2017-08-15 07:36:51 -04:00