#include "ivi-compositor.h"
#include "shared/helpers.h"
-static struct ivi_surface *
+struct ivi_surface *
get_ivi_shell_surface(struct weston_surface *surface)
{
struct weston_desktop_surface *desktop_surface =
free(shseat);
}
-static struct ivi_shell_seat *
+struct ivi_shell_seat *
get_ivi_shell_seat(struct weston_seat *seat)
{
struct wl_listener *listener;
+ if (!seat)
+ return NULL;
+
+
listener = wl_signal_get(&seat->destroy_signal,
ivi_shell_seat_handle_destroy);
- assert(listener != NULL);
+ if (!listener)
+ return NULL;
return container_of(listener,
struct ivi_shell_seat, seat_destroy_listener);
}
+struct weston_seat *
+get_ivi_shell_weston_first_seat(struct ivi_compositor *ivi)
+{
+ struct wl_list *node;
+ struct weston_compositor *compositor = ivi->compositor;
+
+ if (wl_list_empty(&compositor->seat_list))
+ return NULL;
+
+ node = compositor->seat_list.next;
+ return container_of(node, struct weston_seat, link);
+}
+
static void
ivi_shell_seat_handle_pointer_focus(struct wl_listener *listener, void *data)
{
void
ivi_shell_finalize(struct ivi_compositor *ivi);
+struct ivi_surface *
+get_ivi_shell_surface(struct weston_surface *surface);
+
+struct ivi_shell_seat *
+get_ivi_shell_seat(struct weston_seat *seat);
+
+struct weston_seat *
+get_ivi_shell_weston_first_seat(struct ivi_compositor *ivi);
+
#endif
static void
create_black_surface_view(struct ivi_output *output);
-static struct ivi_surface *
-get_ivi_shell_surface(struct weston_surface *wsurface)
-{
- if (weston_surface_is_desktop_surface(wsurface)) {
- struct weston_desktop_surface *dsurface =
- weston_surface_get_desktop_surface(wsurface);
- return weston_desktop_surface_get_user_data(dsurface);
- }
-
- return NULL;
-}
-
void
agl_shell_desktop_advertise_application_id(struct ivi_compositor *ivi,
struct ivi_surface *surface)