[PATCH weston] desktop-shell: Make resize and move functions take a pointer instead of a seat

Derek Foreman derekf at osg.samsung.com
Wed Aug 5 12:48:11 PDT 2015


An earlier patch made surface_resize() and surface_move() take pointers
instead of seats, this updates the weston_shell_interface resize and move to
match.

Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
---
 desktop-shell/shell.c     |  8 ++++----
 src/compositor.h          |  5 +++--
 xwayland/window-manager.c | 14 ++++++++------
 3 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 487c3e7..a1158fc 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -3087,17 +3087,17 @@ shell_interface_set_maximized(struct shell_surface *shsurf)
 }
 
 static int
-shell_interface_move(struct shell_surface *shsurf, struct weston_seat *ws)
+shell_interface_move(struct shell_surface *shsurf, struct weston_pointer *pointer)
 {
-	return surface_move(shsurf, weston_seat_get_pointer(ws), true);
+	return surface_move(shsurf, pointer, true);
 }
 
 static int
 shell_interface_resize(struct shell_surface *shsurf,
-		       struct weston_seat *ws,
+		       struct weston_pointer *pointer,
 		       uint32_t edges)
 {
-	return surface_resize(shsurf, weston_seat_get_pointer(ws), edges);
+	return surface_resize(shsurf, pointer, edges);
 }
 
 static const struct weston_pointer_grab_interface popup_grab_interface;
diff --git a/src/compositor.h b/src/compositor.h
index 2654f8d..e1a7954 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -56,6 +56,7 @@ struct shell_surface;
 struct weston_seat;
 struct weston_output;
 struct input_method;
+struct weston_pointer;
 
 enum weston_keyboard_modifier {
 	MODIFIER_CTRL = (1 << 0),
@@ -106,9 +107,9 @@ struct weston_shell_interface {
 			       struct weston_output *output);
 	void (*set_xwayland)(struct shell_surface *shsurf,
 			       int x, int y, uint32_t flags);
-	int (*move)(struct shell_surface *shsurf, struct weston_seat *ws);
+	int (*move)(struct shell_surface *shsurf, struct weston_pointer *pointer);
 	int (*resize)(struct shell_surface *shsurf,
-		      struct weston_seat *ws, uint32_t edges);
+		      struct weston_pointer *pointer, uint32_t edges);
 	void (*set_title)(struct shell_surface *shsurf,
 	                  const char *title);
 	void (*set_window_geometry)(struct shell_surface *shsurf,
diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index daebf47..03adaa6 100644
--- a/xwayland/window-manager.c
+++ b/xwayland/window-manager.c
@@ -1362,7 +1362,7 @@ weston_wm_window_handle_moveresize(struct weston_wm_window *window,
 	detail = client_message->data.data32[2];
 	switch (detail) {
 	case _NET_WM_MOVERESIZE_MOVE:
-		shell_interface->move(window->shsurf, seat);
+		shell_interface->move(window->shsurf, pointer);
 		break;
 	case _NET_WM_MOVERESIZE_SIZE_TOPLEFT:
 	case _NET_WM_MOVERESIZE_SIZE_TOP:
@@ -1372,7 +1372,7 @@ weston_wm_window_handle_moveresize(struct weston_wm_window *window,
 	case _NET_WM_MOVERESIZE_SIZE_BOTTOM:
 	case _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT:
 	case _NET_WM_MOVERESIZE_SIZE_LEFT:
-		shell_interface->resize(window->shsurf, seat, map[detail]);
+		shell_interface->resize(window->shsurf, pointer, map[detail]);
 		break;
 	case _NET_WM_MOVERESIZE_CANCEL:
 		break;
@@ -1758,6 +1758,7 @@ weston_wm_handle_button(struct weston_wm *wm, xcb_generic_event_t *event)
 	struct weston_shell_interface *shell_interface =
 		&wm->server->compositor->shell_interface;
 	struct weston_seat *seat;
+	struct weston_pointer *pointer;
 	struct weston_wm_window *window;
 	enum theme_location location;
 	enum frame_button_state button_state;
@@ -1775,6 +1776,7 @@ weston_wm_handle_button(struct weston_wm *wm, xcb_generic_event_t *event)
 		return;
 
 	seat = weston_wm_pick_seat_for_window(window);
+	pointer = weston_seat_get_pointer(seat);
 
 	button_state = button->response_type == XCB_BUTTON_PRESS ?
 		FRAME_BUTTON_PRESSED : FRAME_BUTTON_RELEASED;
@@ -1793,14 +1795,14 @@ weston_wm_handle_button(struct weston_wm *wm, xcb_generic_event_t *event)
 		weston_wm_window_schedule_repaint(window);
 
 	if (frame_status(window->frame) & FRAME_STATUS_MOVE) {
-		if (seat != NULL)
-			shell_interface->move(window->shsurf, seat);
+		if (pointer)
+			shell_interface->move(window->shsurf, pointer);
 		frame_status_clear(window->frame, FRAME_STATUS_MOVE);
 	}
 
 	if (frame_status(window->frame) & FRAME_STATUS_RESIZE) {
-		if (seat != NULL)
-			shell_interface->resize(window->shsurf, seat, location);
+		if (pointer)
+			shell_interface->resize(window->shsurf, pointer, location);
 		frame_status_clear(window->frame, FRAME_STATUS_RESIZE);
 	}
 
-- 
2.4.6



More information about the wayland-devel mailing list