}
static void
-warp_cursor(struct view *view, struct output *output, const char *to, const char *x, const char *y)
+warp_cursor(struct server *server, struct view *view, const char *to, const char *x, const char *y)
{
+ struct output *output = output_nearest_to_cursor(server);
struct wlr_box target_area = {0};
int goto_x;
int goto_y;
target_area.y + target_area.height + offset_y;
}
- wlr_cursor_warp(output->server->seat.cursor, NULL, goto_x, goto_y);
- cursor_update_focus(output->server);
+ wlr_cursor_warp(server->seat.cursor, NULL, goto_x, goto_y);
+ cursor_update_focus(server);
}
void
const char *to = action_get_str(action, "to", "output");
const char *x = action_get_str(action, "x", "center");
const char *y = action_get_str(action, "y", "center");
- struct output *output = output_nearest_to_cursor(server);
-
- warp_cursor(view, output, to, x, y);
+ warp_cursor(server, view, to, x, y);
break;
}
case ACTION_TYPE_HIDE_CURSOR:
static uint32_t last_resize_time = 0;
static struct view *last_resize_view = NULL;
+ assert(server->grabbed_view);
if (server->grabbed_view == last_resize_view) {
int32_t refresh = 0;
if (output_is_usable(last_resize_view->output)) {
handle_xdg_toplevel_icon_set_icon(struct wl_listener *listener, void *data)
{
struct wlr_xdg_toplevel_icon_manager_v1_set_icon_event *event = data;
-
- struct server *server =
- wl_container_of(listener, server, xdg_toplevel_icon_set_icon);
struct wlr_xdg_surface *xdg_surface = event->toplevel->base;
struct view *view = xdg_surface->data;
assert(view);