mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Unify view events naming, remove client from event structs
This commit is contained in:
		
							parent
							
								
									a268f57ed5
								
							
						
					
					
						commit
						17d9e2ce35
					
				
					 6 changed files with 55 additions and 111 deletions
				
			
		| 
						 | 
				
			
			@ -12,8 +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_set_fullscreen;
 | 
			
		||||
	struct wl_listener request_maximize;
 | 
			
		||||
	struct wl_listener request_fullscreen;
 | 
			
		||||
	struct wl_listener set_state;
 | 
			
		||||
 | 
			
		||||
	struct wl_listener surface_commit;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,8 +81,8 @@ struct wlr_wl_shell_surface {
 | 
			
		|||
 | 
			
		||||
		struct wl_signal request_move;
 | 
			
		||||
		struct wl_signal request_resize;
 | 
			
		||||
		struct wl_signal request_set_fullscreen;
 | 
			
		||||
		struct wl_signal request_set_maximized;
 | 
			
		||||
		struct wl_signal request_fullscreen;
 | 
			
		||||
		struct wl_signal request_maximize;
 | 
			
		||||
 | 
			
		||||
		struct wl_signal set_state;
 | 
			
		||||
		struct wl_signal set_title;
 | 
			
		||||
| 
						 | 
				
			
			@ -93,14 +93,12 @@ struct wlr_wl_shell_surface {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_wl_shell_surface_move_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_wl_shell_surface *surface;
 | 
			
		||||
	struct wlr_seat_client *seat;
 | 
			
		||||
	uint32_t serial;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_wl_shell_surface_resize_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_wl_shell_surface *surface;
 | 
			
		||||
	struct wlr_seat_client *seat;
 | 
			
		||||
	uint32_t serial;
 | 
			
		||||
| 
						 | 
				
			
			@ -108,15 +106,13 @@ struct wlr_wl_shell_surface_resize_event {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_wl_shell_surface_set_fullscreen_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_wl_shell_surface *surface;
 | 
			
		||||
	enum wl_shell_surface_fullscreen_method method;
 | 
			
		||||
	uint32_t framerate;
 | 
			
		||||
	struct wlr_output *output;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_wl_shell_surface_set_maximized_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
struct wlr_wl_shell_surface_maximize_event {
 | 
			
		||||
	struct wlr_wl_shell_surface *surface;
 | 
			
		||||
	struct wlr_output *output;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,14 +138,12 @@ struct wlr_xdg_surface_v6 {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_xdg_toplevel_v6_move_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_xdg_surface_v6 *surface;
 | 
			
		||||
	struct wlr_seat_client *seat;
 | 
			
		||||
	uint32_t serial;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_xdg_toplevel_v6_resize_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_xdg_surface_v6 *surface;
 | 
			
		||||
	struct wlr_seat_client *seat;
 | 
			
		||||
	uint32_t serial;
 | 
			
		||||
| 
						 | 
				
			
			@ -153,19 +151,16 @@ struct wlr_xdg_toplevel_v6_resize_event {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_xdg_toplevel_v6_set_fullscreen_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_xdg_surface_v6 *surface;
 | 
			
		||||
	bool fullscreen;
 | 
			
		||||
	struct wlr_output *output;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_xdg_toplevel_v6_show_window_menu_event {
 | 
			
		||||
	struct wl_client *client;
 | 
			
		||||
	struct wlr_xdg_surface_v6 *surface;
 | 
			
		||||
	struct wlr_seat_client *seat;
 | 
			
		||||
	uint32_t serial;
 | 
			
		||||
	uint32_t x;
 | 
			
		||||
	uint32_t y;
 | 
			
		||||
	uint32_t x, y;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct wlr_xdg_shell_v6 *wlr_xdg_shell_v6_create(struct wl_display *display);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,23 +50,21 @@ static void handle_request_resize(struct wl_listener *listener, void *data) {
 | 
			
		|||
	roots_seat_begin_resize(seat, view, e->edges);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void handle_request_set_maximized(struct wl_listener *listener,
 | 
			
		||||
static void handle_request_maximize(struct wl_listener *listener,
 | 
			
		||||
		void *data) {
 | 
			
		||||
	struct roots_wl_shell_surface *roots_surface =
 | 
			
		||||
		wl_container_of(listener, roots_surface, request_set_maximized);
 | 
			
		||||
		wl_container_of(listener, roots_surface, request_maximize);
 | 
			
		||||
	struct roots_view *view = roots_surface->view;
 | 
			
		||||
	//struct wlr_wl_shell_surface_set_maximized_event *e = data;
 | 
			
		||||
	//struct wlr_wl_shell_surface_maximize_event *e = data;
 | 
			
		||||
	view_maximize(view, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void handle_request_set_fullscreen(struct wl_listener *listener,
 | 
			
		||||
static void handle_request_fullscreen(struct wl_listener *listener,
 | 
			
		||||
		void *data) {
 | 
			
		||||
	struct roots_wl_shell_surface *roots_surface =
 | 
			
		||||
		wl_container_of(listener, roots_surface, request_set_fullscreen);
 | 
			
		||||
		wl_container_of(listener, roots_surface, request_fullscreen);
 | 
			
		||||
	struct roots_view *view = roots_surface->view;
 | 
			
		||||
	struct wlr_wl_shell_surface_set_fullscreen_event *e = data;
 | 
			
		||||
 | 
			
		||||
	// TODO: support e->method, e->framerate
 | 
			
		||||
	view_set_fullscreen(view, true, e->output);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -95,8 +93,8 @@ static void handle_destroy(struct wl_listener *listener, void *data) {
 | 
			
		|||
	wl_list_remove(&roots_surface->destroy.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->request_move.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->request_resize.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->request_set_maximized.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->request_set_fullscreen.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->request_maximize.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->request_fullscreen.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->set_state.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->surface_commit.link);
 | 
			
		||||
	wl_list_remove(&roots_surface->view->link);
 | 
			
		||||
| 
						 | 
				
			
			@ -125,13 +123,13 @@ void handle_wl_shell_surface(struct wl_listener *listener, void *data) {
 | 
			
		|||
	roots_surface->request_resize.notify = handle_request_resize;
 | 
			
		||||
	wl_signal_add(&surface->events.request_resize,
 | 
			
		||||
		&roots_surface->request_resize);
 | 
			
		||||
	roots_surface->request_set_maximized.notify = handle_request_set_maximized;
 | 
			
		||||
	wl_signal_add(&surface->events.request_set_maximized,
 | 
			
		||||
		&roots_surface->request_set_maximized);
 | 
			
		||||
	roots_surface->request_set_fullscreen.notify =
 | 
			
		||||
		handle_request_set_fullscreen;
 | 
			
		||||
	wl_signal_add(&surface->events.request_set_fullscreen,
 | 
			
		||||
		&roots_surface->request_set_fullscreen);
 | 
			
		||||
	roots_surface->request_maximize.notify = handle_request_maximize;
 | 
			
		||||
	wl_signal_add(&surface->events.request_maximize,
 | 
			
		||||
		&roots_surface->request_maximize);
 | 
			
		||||
	roots_surface->request_fullscreen.notify =
 | 
			
		||||
		handle_request_fullscreen;
 | 
			
		||||
	wl_signal_add(&surface->events.request_fullscreen,
 | 
			
		||||
		&roots_surface->request_fullscreen);
 | 
			
		||||
	roots_surface->set_state.notify = handle_set_state;
 | 
			
		||||
	wl_signal_add(&surface->events.set_state, &roots_surface->set_state);
 | 
			
		||||
	roots_surface->surface_commit.notify = handle_surface_commit;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,25 +108,17 @@ static void shell_surface_protocol_pong(struct wl_client *client,
 | 
			
		|||
static void shell_surface_protocol_move(struct wl_client *client,
 | 
			
		||||
		struct wl_resource *resource, struct wl_resource *seat_resource,
 | 
			
		||||
		uint32_t serial) {
 | 
			
		||||
	wlr_log(L_DEBUG, "got shell surface move");
 | 
			
		||||
	struct wlr_wl_shell_surface *surface = wl_resource_get_user_data(resource);
 | 
			
		||||
	struct wlr_seat_client *seat =
 | 
			
		||||
		wl_resource_get_user_data(seat_resource);
 | 
			
		||||
 | 
			
		||||
	struct wlr_wl_shell_surface_move_event *event =
 | 
			
		||||
		calloc(1, sizeof(struct wlr_wl_shell_surface_move_event));
 | 
			
		||||
	if (event == NULL) {
 | 
			
		||||
		wl_client_post_no_memory(client);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	event->client = client;
 | 
			
		||||
	event->surface = surface;
 | 
			
		||||
	event->seat = seat;
 | 
			
		||||
	event->serial = serial;
 | 
			
		||||
	struct wlr_wl_shell_surface_move_event event = {
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.seat = seat,
 | 
			
		||||
		.serial = serial,
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wl_signal_emit(&surface->events.request_move, event);
 | 
			
		||||
 | 
			
		||||
	free(event);
 | 
			
		||||
	wl_signal_emit(&surface->events.request_move, &event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct wlr_wl_shell_popup_grab *shell_popup_grab_from_seat(
 | 
			
		||||
| 
						 | 
				
			
			@ -174,26 +166,18 @@ static void shell_surface_destroy_popup_state(
 | 
			
		|||
static void shell_surface_protocol_resize(struct wl_client *client,
 | 
			
		||||
		struct wl_resource *resource, struct wl_resource *seat_resource,
 | 
			
		||||
		uint32_t serial, enum wl_shell_surface_resize edges) {
 | 
			
		||||
	wlr_log(L_DEBUG, "got shell surface resize");
 | 
			
		||||
	struct wlr_wl_shell_surface *surface = wl_resource_get_user_data(resource);
 | 
			
		||||
	struct wlr_seat_client *seat =
 | 
			
		||||
		wl_resource_get_user_data(seat_resource);
 | 
			
		||||
 | 
			
		||||
	struct wlr_wl_shell_surface_resize_event *event =
 | 
			
		||||
		calloc(1, sizeof(struct wlr_wl_shell_surface_resize_event));
 | 
			
		||||
	if (event == NULL) {
 | 
			
		||||
		wl_client_post_no_memory(client);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	event->client = client;
 | 
			
		||||
	event->surface = surface;
 | 
			
		||||
	event->seat = seat;
 | 
			
		||||
	event->serial = serial;
 | 
			
		||||
	event->edges = edges;
 | 
			
		||||
	struct wlr_wl_shell_surface_resize_event event = {
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.seat = seat,
 | 
			
		||||
		.serial = serial,
 | 
			
		||||
		.edges = edges,
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wl_signal_emit(&surface->events.request_resize, event);
 | 
			
		||||
 | 
			
		||||
	free(event);
 | 
			
		||||
	wl_signal_emit(&surface->events.request_resize, &event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void shell_surface_set_state(struct wlr_wl_shell_surface *surface,
 | 
			
		||||
| 
						 | 
				
			
			@ -279,7 +263,6 @@ static void shell_surface_protocol_set_fullscreen(struct wl_client *client,
 | 
			
		|||
		struct wl_resource *resource,
 | 
			
		||||
		enum wl_shell_surface_fullscreen_method method, uint32_t framerate,
 | 
			
		||||
		struct wl_resource *output_resource) {
 | 
			
		||||
	wlr_log(L_DEBUG, "got shell surface fullscreen");
 | 
			
		||||
	struct wlr_wl_shell_surface *surface = wl_resource_get_user_data(resource);
 | 
			
		||||
	struct wlr_output *output = NULL;
 | 
			
		||||
	if (output_resource != NULL) {
 | 
			
		||||
| 
						 | 
				
			
			@ -289,23 +272,15 @@ static void shell_surface_protocol_set_fullscreen(struct wl_client *client,
 | 
			
		|||
	shell_surface_set_state(surface, WLR_WL_SHELL_SURFACE_STATE_FULLSCREEN,
 | 
			
		||||
		NULL, NULL);
 | 
			
		||||
 | 
			
		||||
	struct wlr_wl_shell_surface_set_fullscreen_event *event =
 | 
			
		||||
		calloc(1, sizeof(struct wlr_wl_shell_surface_set_fullscreen_event));
 | 
			
		||||
	if (event == NULL) {
 | 
			
		||||
		wl_client_post_no_memory(client);
 | 
			
		||||
		return;
 | 
			
		||||
	struct wlr_wl_shell_surface_set_fullscreen_event event = {
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.method = method,
 | 
			
		||||
		.framerate = framerate,
 | 
			
		||||
		.output = output,
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wl_signal_emit(&surface->events.request_fullscreen, &event);
 | 
			
		||||
}
 | 
			
		||||
	event->client = client;
 | 
			
		||||
	event->surface = surface;
 | 
			
		||||
	event->method = method;
 | 
			
		||||
	event->framerate = framerate;
 | 
			
		||||
	event->output = output;
 | 
			
		||||
 | 
			
		||||
	wl_signal_emit(&surface->events.request_set_fullscreen, event);
 | 
			
		||||
 | 
			
		||||
	free(event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void shell_surface_protocol_set_popup(struct wl_client *client,
 | 
			
		||||
		struct wl_resource *resource, struct wl_resource *seat_resource,
 | 
			
		||||
| 
						 | 
				
			
			@ -368,7 +343,6 @@ static void shell_surface_protocol_set_popup(struct wl_client *client,
 | 
			
		|||
 | 
			
		||||
static void shell_surface_protocol_set_maximized(struct wl_client *client,
 | 
			
		||||
		struct wl_resource *resource, struct wl_resource *output_resource) {
 | 
			
		||||
	wlr_log(L_DEBUG, "got shell surface maximized");
 | 
			
		||||
	struct wlr_wl_shell_surface *surface = wl_resource_get_user_data(resource);
 | 
			
		||||
	struct wlr_output *output = NULL;
 | 
			
		||||
	if (output_resource != NULL) {
 | 
			
		||||
| 
						 | 
				
			
			@ -378,19 +352,12 @@ static void shell_surface_protocol_set_maximized(struct wl_client *client,
 | 
			
		|||
	shell_surface_set_state(surface, WLR_WL_SHELL_SURFACE_STATE_MAXIMIZED,
 | 
			
		||||
		NULL, NULL);
 | 
			
		||||
 | 
			
		||||
	struct wlr_wl_shell_surface_set_maximized_event *event =
 | 
			
		||||
		calloc(1, sizeof(struct wlr_wl_shell_surface_set_maximized_event));
 | 
			
		||||
	if (event == NULL) {
 | 
			
		||||
		wl_client_post_no_memory(client);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	event->client = client;
 | 
			
		||||
	event->surface = surface;
 | 
			
		||||
	event->output = output;
 | 
			
		||||
	struct wlr_wl_shell_surface_maximize_event event = {
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.output = output,
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wl_signal_emit(&surface->events.request_set_maximized, event);
 | 
			
		||||
 | 
			
		||||
	free(event);
 | 
			
		||||
	wl_signal_emit(&surface->events.request_maximize, &event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void shell_surface_protocol_set_title(struct wl_client *client,
 | 
			
		||||
| 
						 | 
				
			
			@ -545,8 +512,8 @@ static void shell_protocol_get_shell_surface(struct wl_client *client,
 | 
			
		|||
	wl_signal_init(&wl_surface->events.ping_timeout);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.request_move);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.request_resize);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.request_set_fullscreen);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.request_set_maximized);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.request_fullscreen);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.request_maximize);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.set_state);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.set_title);
 | 
			
		||||
	wl_signal_init(&wl_surface->events.set_class);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -564,23 +564,15 @@ static void xdg_toplevel_protocol_show_window_menu(struct wl_client *client,
 | 
			
		|||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	struct wlr_xdg_toplevel_v6_show_window_menu_event *event =
 | 
			
		||||
		calloc(1, sizeof(struct wlr_xdg_toplevel_v6_show_window_menu_event));
 | 
			
		||||
	if (event == NULL) {
 | 
			
		||||
		wl_client_post_no_memory(client);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	struct wlr_xdg_toplevel_v6_show_window_menu_event event = {
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.seat = seat,
 | 
			
		||||
		.serial = serial,
 | 
			
		||||
		.x = x,
 | 
			
		||||
		.y = y,
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	event->client = client;
 | 
			
		||||
	event->surface = surface;
 | 
			
		||||
	event->seat = seat;
 | 
			
		||||
	event->serial = serial;
 | 
			
		||||
	event->x = x;
 | 
			
		||||
	event->y = y;
 | 
			
		||||
 | 
			
		||||
	wl_signal_emit(&surface->events.request_show_window_menu, event);
 | 
			
		||||
 | 
			
		||||
	free(event);
 | 
			
		||||
	wl_signal_emit(&surface->events.request_show_window_menu, &event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void xdg_toplevel_protocol_move(struct wl_client *client,
 | 
			
		||||
| 
						 | 
				
			
			@ -598,7 +590,6 @@ static void xdg_toplevel_protocol_move(struct wl_client *client,
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	struct wlr_xdg_toplevel_v6_move_event event = {
 | 
			
		||||
		.client = client,
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.seat = seat,
 | 
			
		||||
		.serial = serial,
 | 
			
		||||
| 
						 | 
				
			
			@ -622,7 +613,6 @@ static void xdg_toplevel_protocol_resize(struct wl_client *client,
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	struct wlr_xdg_toplevel_v6_resize_event event = {
 | 
			
		||||
		.client = client,
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.seat = seat,
 | 
			
		||||
		.serial = serial,
 | 
			
		||||
| 
						 | 
				
			
			@ -672,7 +662,6 @@ static void xdg_toplevel_protocol_set_fullscreen(struct wl_client *client,
 | 
			
		|||
	surface->toplevel_state->next.fullscreen = true;
 | 
			
		||||
 | 
			
		||||
	struct wlr_xdg_toplevel_v6_set_fullscreen_event event = {
 | 
			
		||||
		.client = client,
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.fullscreen = true,
 | 
			
		||||
		.output = output,
 | 
			
		||||
| 
						 | 
				
			
			@ -688,7 +677,6 @@ static void xdg_toplevel_protocol_unset_fullscreen(struct wl_client *client,
 | 
			
		|||
	surface->toplevel_state->next.fullscreen = false;
 | 
			
		||||
 | 
			
		||||
	struct wlr_xdg_toplevel_v6_set_fullscreen_event event = {
 | 
			
		||||
		.client = client,
 | 
			
		||||
		.surface = surface,
 | 
			
		||||
		.fullscreen = false,
 | 
			
		||||
		.output = NULL,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue