From e81e99d16d31765b51fcca31d5ffffd5087febfa Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 23 Sep 2017 11:13:18 -0400 Subject: Render XDG shell surfaces --- include/rootston/desktop.h | 7 +++++++ include/rootston/view.h | 21 +++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h index 3d31059c..8fb55219 100644 --- a/include/rootston/desktop.h +++ b/include/rootston/desktop.h @@ -21,8 +21,11 @@ struct roots_output { }; struct roots_desktop { + struct wl_list views; + struct wl_list outputs; struct timespec last_frame; + struct roots_server *server; struct roots_config *config; @@ -44,7 +47,11 @@ struct roots_desktop *desktop_create(struct roots_server *server, struct roots_config *config); void desktop_destroy(struct roots_desktop *desktop); +void view_destroy(struct roots_view *view); + void output_add_notify(struct wl_listener *listener, void *data); void output_remove_notify(struct wl_listener *listener, void *data); +void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); + #endif diff --git a/include/rootston/view.h b/include/rootston/view.h index d33e6bfb..9535094b 100644 --- a/include/rootston/view.h +++ b/include/rootston/view.h @@ -1,5 +1,8 @@ #ifndef _ROOTSTON_VIEW_H #define _ROOTSTON_VIEW_H +#include +#include +#include struct roots_wl_shell_surface { // TODO @@ -7,13 +10,14 @@ struct roots_wl_shell_surface { }; struct roots_xdg_surface_v6 { + struct roots_view *view; // TODO: Maybe destroy listener should go in roots_view - struct wl_listener destroy_listener; - struct wl_listener ping_timeout_listener; - struct wl_listener request_minimize_listener; - struct wl_listener request_move_listener; - struct wl_listener request_resize_listener; - struct wl_listener request_show_window_menu_listener; + struct wl_listener destroy; + struct wl_listener ping_timeout; + struct wl_listener request_minimize; + struct wl_listener request_move; + struct wl_listener request_resize; + struct wl_listener request_show_window_menu; }; enum roots_view_type { @@ -29,12 +33,13 @@ struct roots_view { enum roots_view_type type; union { struct wlr_shell_surface *wl_shell_surface; - struct xdg_shell_v6_surface *xdg_shell_v6_surface; + struct wlr_xdg_surface_v6 *xdg_surface_v6; }; union { struct roots_wl_shell_surface *roots_wl_shell_surface; - struct xdg_shell_v6_surface *roots_xdg_surface_v6; + struct roots_xdg_surface_v6 *roots_xdg_surface_v6; }; + struct wlr_surface *wlr_surface; struct wl_list link; }; -- cgit v1.2.3