}
static void
+set_margin(struct shell_surface *shsurf,
+ int32_t left, int32_t right, int32_t top, int32_t bottom)
+{
+ shsurf->margin.left = left;
+ shsurf->margin.right = right;
+ shsurf->margin.top = top;
+ shsurf->margin.bottom = bottom;
+}
+
+static void
shell_surface_set_title(struct wl_client *client,
struct wl_resource *resource, const char *title)
{
{
struct shell_surface *shsurf = wl_resource_get_user_data(resource);
- shsurf->margin.left = left;
- shsurf->margin.right = right;
- shsurf->margin.top = top;
- shsurf->margin.bottom = bottom;
+ set_margin(shsurf, left, right, top, bottom);
}
static void
ec->shell_interface.move = shell_interface_move;
ec->shell_interface.resize = surface_resize;
ec->shell_interface.set_title = set_title;
+ ec->shell_interface.set_margin = set_margin;
weston_layer_init(&shell->fullscreen_layer, &ec->cursor_layer.link);
weston_layer_init(&shell->panel_layer, &shell->fullscreen_layer.link);
struct weston_seat *ws, uint32_t edges);
void (*set_title)(struct shell_surface *shsurf,
const char *title);
-
+ void (*set_margin)(struct shell_surface *shsurf,
+ int32_t left, int32_t right,
+ int32_t top, int32_t bottom);
};
struct weston_animation {
cairo_t *cr;
int x, y, width, height;
int32_t input_x, input_y, input_w, input_h;
-
+ struct weston_shell_interface *shell_interface =
+ &wm->server->compositor->shell_interface;
uint32_t flags = 0;
weston_wm_window_read_properties(window);
pixman_region32_init_rect(&window->surface->pending.input,
input_x, input_y, input_w, input_h);
+
+ shell_interface->set_margin(window->shsurf,
+ input_x,
+ width - input_w - input_x,
+ input_y,
+ height - input_h - input_y);
}
}