Documentation for <wlr/types/wlr_foreign_toplevel_management_v1.h>

Back to index

Table of contents

struct wlr_foreign_toplevel_handle_v1

struct wlr_foreign_toplevel_handle_v1 {
	struct wlr_foreign_toplevel_manager_v1 *manager;
	struct wl_list resources;
	struct wl_list link;
	struct wl_event_source *idle_source;
	
	char *title;
	char *app_id;
	struct wlr_foreign_toplevel_handle_v1 *parent;
	struct wl_list outputs; // wlr_foreign_toplevel_v1_output.link
	uint32_t state; // enum wlr_foreign_toplevel_v1_state
	
	struct {
		// struct wlr_foreign_toplevel_handle_v1_maximized_event
		struct wl_signal request_maximize;
		// struct wlr_foreign_toplevel_handle_v1_minimized_event
		struct wl_signal request_minimize;
		// struct wlr_foreign_toplevel_handle_v1_activated_event
		struct wl_signal request_activate;
		// struct wlr_foreign_toplevel_handle_v1_fullscreen_event
		struct wl_signal request_fullscreen;
		struct wl_signal request_close;
		
		// struct wlr_foreign_toplevel_handle_v1_set_rectangle_event
		struct wl_signal set_rectangle;
		struct wl_signal destroy;
	} events;
	
	void *data;
};

struct wlr_foreign_toplevel_handle_v1_activated_event

struct wlr_foreign_toplevel_handle_v1_activated_event {
	struct wlr_foreign_toplevel_handle_v1 *toplevel;
	struct wlr_seat *seat;
};

wlr_foreign_toplevel_handle_v1_create()

struct wlr_foreign_toplevel_handle_v1 *wlr_foreign_toplevel_handle_v1_create(​struct wlr_foreign_toplevel_manager_v1 *manager);

wlr_foreign_toplevel_handle_v1_destroy()

void wlr_foreign_toplevel_handle_v1_destroy(​struct wlr_foreign_toplevel_handle_v1 *toplevel);

Destroy the given toplevel handle, sending the closed event to any client. Also, if the destroyed toplevel is set as a parent of any other valid toplevel, clients still holding a handle to both are sent a parent signal with NULL parent. If this is not desired, the caller should ensure that any child toplevels are destroyed before the parent.

struct wlr_foreign_toplevel_handle_v1_fullscreen_event

struct wlr_foreign_toplevel_handle_v1_fullscreen_event {
	struct wlr_foreign_toplevel_handle_v1 *toplevel;
	bool fullscreen;
	struct wlr_output *output;
};

struct wlr_foreign_toplevel_handle_v1_maximized_event

struct wlr_foreign_toplevel_handle_v1_maximized_event {
	struct wlr_foreign_toplevel_handle_v1 *toplevel;
	bool maximized;
};

struct wlr_foreign_toplevel_handle_v1_minimized_event

struct wlr_foreign_toplevel_handle_v1_minimized_event {
	struct wlr_foreign_toplevel_handle_v1 *toplevel;
	bool minimized;
};

struct wlr_foreign_toplevel_handle_v1_output

struct wlr_foreign_toplevel_handle_v1_output {
	struct wl_list link; // wlr_foreign_toplevel_handle_v1.outputs
	struct wlr_output *output;
	struct wlr_foreign_toplevel_handle_v1 *toplevel;
	
	// private state
	
	struct wl_listener output_bind;
	struct wl_listener output_destroy;
};

wlr_foreign_toplevel_handle_v1_output_enter()

void wlr_foreign_toplevel_handle_v1_output_enter(​struct wlr_foreign_toplevel_handle_v1 *toplevel, struct wlr_output *output);

wlr_foreign_toplevel_handle_v1_output_leave()

void wlr_foreign_toplevel_handle_v1_output_leave(​struct wlr_foreign_toplevel_handle_v1 *toplevel, struct wlr_output *output);

wlr_foreign_toplevel_handle_v1_set_activated()

void wlr_foreign_toplevel_handle_v1_set_activated(​struct wlr_foreign_toplevel_handle_v1 *toplevel, bool activated);

wlr_foreign_toplevel_handle_v1_set_app_id()

void wlr_foreign_toplevel_handle_v1_set_app_id(​struct wlr_foreign_toplevel_handle_v1 *toplevel, const char *app_id);

wlr_foreign_toplevel_handle_v1_set_fullscreen()

void wlr_foreign_toplevel_handle_v1_set_fullscreen(​struct wlr_foreign_toplevel_handle_v1 *toplevel, bool fullscreen);

wlr_foreign_toplevel_handle_v1_set_maximized()

void wlr_foreign_toplevel_handle_v1_set_maximized(​struct wlr_foreign_toplevel_handle_v1 *toplevel, bool maximized);

wlr_foreign_toplevel_handle_v1_set_minimized()

void wlr_foreign_toplevel_handle_v1_set_minimized(​struct wlr_foreign_toplevel_handle_v1 *toplevel, bool minimized);

wlr_foreign_toplevel_handle_v1_set_parent()

void wlr_foreign_toplevel_handle_v1_set_parent(​struct wlr_foreign_toplevel_handle_v1 *toplevel, struct wlr_foreign_toplevel_handle_v1 *parent);

Set the parent of a toplevel. If the parent changed from its previous value, also sends a parent event to all clients that hold handles to both toplevel and parent (no message is sent to clients that have previously destroyed their parent handle). NULL is allowed as the parent, meaning no parent exists.

struct wlr_foreign_toplevel_handle_v1_set_rectangle_event

struct wlr_foreign_toplevel_handle_v1_set_rectangle_event {
	struct wlr_foreign_toplevel_handle_v1 *toplevel;
	struct wlr_surface *surface;
	int32_t x, y, width, height;
};

wlr_foreign_toplevel_handle_v1_set_title()

void wlr_foreign_toplevel_handle_v1_set_title(​struct wlr_foreign_toplevel_handle_v1 *toplevel, const char *title);

enum wlr_foreign_toplevel_handle_v1_state

enum wlr_foreign_toplevel_handle_v1_state {
	WLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_MAXIMIZED,
	WLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_MINIMIZED,
	WLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_ACTIVATED,
	WLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_FULLSCREEN,
};

struct wlr_foreign_toplevel_manager_v1

struct wlr_foreign_toplevel_manager_v1 {
	struct wl_event_loop *event_loop;
	struct wl_global *global;
	struct wl_list resources; // wl_resource_get_link()
	struct wl_list toplevels; // wlr_foreign_toplevel_handle_v1.link
	
	struct wl_listener display_destroy;
	
	struct {
		struct wl_signal destroy;
	} events;
	
	void *data;
};

wlr_foreign_toplevel_manager_v1_create()

struct wlr_foreign_toplevel_manager_v1 *wlr_foreign_toplevel_manager_v1_create(​struct wl_display *display);