diff options
Diffstat (limited to 'include/rootston')
-rw-r--r-- | include/rootston/desktop.h | 11 | ||||
-rw-r--r-- | include/rootston/view.h | 9 |
2 files changed, 15 insertions, 5 deletions
diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h index c245eb09..e5c5f806 100644 --- a/include/rootston/desktop.h +++ b/include/rootston/desktop.h @@ -19,13 +19,14 @@ struct roots_output { struct wlr_output *wlr_output; struct wl_listener frame; struct timespec last_frame; - struct wl_list link; + struct wl_list link; // roots_desktop:outputs + struct roots_view *fullscreen_view; }; struct roots_desktop { struct wl_list views; // roots_view::link - struct wl_list outputs; + struct wl_list outputs; // roots_output::link struct timespec last_frame; struct roots_server *server; @@ -59,11 +60,13 @@ struct roots_server; struct roots_desktop *desktop_create(struct roots_server *server, struct roots_config *config); void desktop_destroy(struct roots_desktop *desktop); +struct roots_output *desktop_output_from_wlr_output( + struct roots_desktop *desktop, struct wlr_output *output); +struct roots_view *desktop_view_at(struct roots_desktop *desktop, double lx, + double ly, struct wlr_surface **surface, double *sx, double *sy); void view_init(struct roots_view *view, struct roots_desktop *desktop); void view_destroy(struct roots_view *view); -struct roots_view *view_at(struct roots_desktop *desktop, double lx, double ly, - struct wlr_surface **surface, double *sx, double *sy); void view_activate(struct roots_view *view, bool activate); void output_add_notify(struct wl_listener *listener, void *data); diff --git a/include/rootston/view.h b/include/rootston/view.h index 0f13b2d6..bb7297d0 100644 --- a/include/rootston/view.h +++ b/include/rootston/view.h @@ -12,7 +12,8 @@ struct roots_wl_shell_surface { struct wl_listener destroy; struct wl_listener request_move; struct wl_listener request_resize; - struct wl_listener request_set_maximized; + struct wl_listener request_maximize; + struct wl_listener request_fullscreen; struct wl_listener set_state; struct wl_listener surface_commit; @@ -26,6 +27,7 @@ struct roots_xdg_surface_v6 { struct wl_listener request_move; struct wl_listener request_resize; struct wl_listener request_maximize; + struct wl_listener request_fullscreen; uint32_t pending_move_resize_configure_serial; }; @@ -38,6 +40,7 @@ struct roots_xwayland_surface { struct wl_listener request_move; struct wl_listener request_resize; struct wl_listener request_maximize; + struct wl_listener request_fullscreen; struct wl_listener map_notify; struct wl_listener unmap_notify; @@ -58,6 +61,7 @@ struct roots_view { float rotation; bool maximized; + struct roots_output *fullscreen_output; struct { double x, y; uint32_t width, height; @@ -103,6 +107,7 @@ struct roots_view { void (*move_resize)(struct roots_view *view, double x, double y, uint32_t width, uint32_t height); void (*maximize)(struct roots_view *view, bool maximized); + void (*set_fullscreen)(struct roots_view *view, bool fullscreen); void (*close)(struct roots_view *view); }; @@ -113,6 +118,8 @@ void view_resize(struct roots_view *view, uint32_t width, uint32_t height); void view_move_resize(struct roots_view *view, double x, double y, uint32_t width, uint32_t height); void view_maximize(struct roots_view *view, bool maximized); +void view_set_fullscreen(struct roots_view *view, bool fullscreen, + struct wlr_output *output); void view_close(struct roots_view *view); bool view_center(struct roots_view *view); void view_setup(struct roots_view *view); |