screen: Add handler for assign_surface request 21/320921/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 16 Jan 2025 08:42:49 +0000 (17:42 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 11 Mar 2025 06:40:08 +0000 (15:40 +0900)
Change-Id: Ifaa96e96ee7b2c9d67705c83978b04cff033c242

include/libds-tizen/screen.h
packaging/libds-tizen.spec
src/meson.build
src/screen/screen.c

index 11a39ab4de16ef7fcf88de6a33e7ace953d2fccb..feba87319ee35809ea0748517ea414d01b1cba76 100644 (file)
@@ -34,6 +34,10 @@ ds_tizen_screen_add_get_splitscreen_listener(
         struct ds_tizen_screen *screen,
         struct wl_listener *listener);
 
+WL_EXPORT void
+ds_tizen_screen_add_assign_surface_listener(
+        struct ds_tizen_screen *screen,
+        struct wl_listener *listener);
 
 WL_EXPORT void
 ds_tizen_splitscreen_add_destroy_listener(
index 12036796cd6b6b24d2fb6b8a3cd53982e2abd200..0995271d8930bcfc3fb85d921573a0ad3b9347b2 100644 (file)
@@ -48,6 +48,10 @@ BuildRequires:  pkgconfig(xdg-shell-unstable-v6-server)
 BuildRequires:  pkgconfig(gbm)
 BuildRequires:  pkgconfig(wtz-blender-server)
 BuildRequires:  pkgconfig(wtz-blur-server)
+BuildRequires:  pkgconfig(wtz-shell-server)
+BuildRequires:  pkgconfig(wtz-shell-client)
+BuildRequires:  pkgconfig(wtz-screen-server)
+BuildRequires:  pkgconfig(wtz-screen-client)
 
 %description
 Wayland Compositor Library for Tizen
index 6f46363e205097e1b861a1c7d628ef4fb7b76be7..9dbac70d92d1f0640ead9b2fddafb2a26fab2c26 100644 (file)
@@ -114,6 +114,7 @@ libds_tizen_deps = [
   dependency('scaler-server', required: true),
   dependency('tizen-extension-server', required: true),
   dependency('xkbcommon', required: true),
+  dependency('wtz-shell-server', required: true),
   dependency('wtz-screen-server', required: true),
   dependency('wtz-blender-server', required: true),
   dependency('wtz-blur-server', required: true),
index cca51274abf8b4470853aa89bcd996a9cb423bc6..14c68118d1d7dee2083929129cb15a044bd92fb5 100644 (file)
@@ -27,6 +27,7 @@ struct ds_tizen_screen
     struct {
         struct wl_signal destroy;
         struct wl_signal get_splitscreen;
+        struct wl_signal assign_surface;
     } events;
 };
 
@@ -182,6 +183,20 @@ screen_handle_get_splitscreen(struct wl_client *client,
     wl_signal_emit(&screen_client->screen->events.get_splitscreen, splitscreen);
 }
 
+static void
+screen_handle_assign_surface(struct wl_client *client,
+    struct wl_resource *screen_client_resource,
+    struct wl_resource *wtz_surf)
+{
+    struct ds_tizen_screen_client *screen_client;
+    struct ds_tizen_screen *screen;
+
+    screen_client = wl_resource_get_user_data(screen_client_resource);
+    screen = screen_client->screen;
+
+    wl_signal_emit(&screen->events.assign_surface, wtz_surf);
+}
+
 static void
 screen_handle_destroy(struct wl_client *wl_client,
     struct wl_resource *resource)
@@ -193,6 +208,7 @@ static const struct wtz_screen_interface screen_impl =
 {
     .destroy = screen_handle_destroy,
     .get_splitscreen = screen_handle_get_splitscreen,
+    .assign_surface = screen_handle_assign_surface,
 };
 
 static void
@@ -288,6 +304,7 @@ ds_tizen_screen_create(struct wl_display *display)
 
     wl_signal_init(&screen->events.destroy);
     wl_signal_init(&screen->events.get_splitscreen);
+    wl_signal_init(&screen->events.assign_surface);
 
     ds_inf("Global created: tizen_screen(%p)", screen);
 
@@ -340,6 +357,14 @@ ds_tizen_screen_add_get_splitscreen_listener(
     wl_signal_add(&screen->events.get_splitscreen, listener);
 }
 
+WL_EXPORT void
+ds_tizen_screen_add_assign_surface_listener(
+        struct ds_tizen_screen *screen,
+        struct wl_listener *listener)
+{
+    wl_signal_add(&screen->events.assign_surface, listener);
+}
+
 WL_EXPORT void
 ds_tizen_splitscreen_add_destroy_listener(
         struct ds_tizen_splitscreen *splitscreen,