diff options
Diffstat (limited to 'include/rootston/seat.h')
-rw-r--r-- | include/rootston/seat.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/include/rootston/seat.h b/include/rootston/seat.h index aebd4399..ec0608e7 100644 --- a/include/rootston/seat.h +++ b/include/rootston/seat.h @@ -12,8 +12,7 @@ struct roots_drag_icon { bool is_pointer; int32_t touch_id; - int32_t sx; - int32_t sy; + int32_t sx, sy; struct wl_listener surface_destroy; struct wl_listener surface_commit; @@ -23,14 +22,15 @@ struct roots_seat { struct roots_input *input; struct wlr_seat *seat; struct roots_cursor *cursor; - struct wl_list link; struct wl_list drag_icons; + struct wl_list link; // coordinates of the first touch point if it exists int32_t touch_id; double touch_x, touch_y; - struct roots_view *focus; + struct wl_list views; // roots_seat_view::link + struct roots_seat_view *focus; struct wl_list keyboards; struct wl_list pointers; @@ -38,6 +38,14 @@ struct roots_seat { struct wl_list tablet_tools; }; +struct roots_seat_view { + struct roots_seat *seat; + struct roots_view *view; + struct wl_list link; // roots_seat::views + + struct wl_listener destroy; +}; + struct roots_pointer { struct roots_seat *seat; struct wlr_input_device *device; @@ -70,6 +78,10 @@ void roots_seat_add_device(struct roots_seat *seat, void roots_seat_remove_device(struct roots_seat *seat, struct wlr_input_device *device); +void roots_seat_add_view(struct roots_seat *seat, struct roots_view *view); + +void roots_seat_remove_view(struct roots_seat *seat, struct roots_view *view); + void roots_seat_configure_cursor(struct roots_seat *seat); void roots_seat_configure_xcursor(struct roots_seat *seat); |