exampleClient: add code to use zxdg_shell 78/241778/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 10 Aug 2020 10:39:54 +0000 (19:39 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 10:10:36 +0000 (19:10 +0900)
Change-Id: I2558dc5a0180a73dfacf3fb8c2b13f694ecbd30a

samples/exampleClient.c
samples/meson.build

index 6bf344d..dc6d708 100644 (file)
@@ -13,6 +13,7 @@
 #include <wayland-client-protocol.h>
 #include <wayland-extension/tizen-extension-client-protocol.h>
 #include <wayland-extension/tizen-launch-client-protocol.h>
+#include <wayland-extension/xdg-shell-unstable-v6-client-protocol.h>
 
 struct wl_display *display = NULL;
 struct wl_compositor *compositor = NULL;
@@ -25,6 +26,9 @@ struct xkb_context *xkb_context = NULL;
 struct xkb_keymap *keymap = NULL;
 struct tizen_policy *tz_policy = NULL;
 struct tizen_launch_appinfo *tz_appinfo = NULL;
+struct zxdg_shell_v6 *zxdg_shell;
+struct zxdg_surface_v6 *zxdg_surface;
+struct zxdg_toplevel_v6 *zxdg_toplevel;
 
 static void pointer_enter(void *data, struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y)
 {
@@ -428,6 +432,10 @@ global_registry_handler(void *data, struct wl_registry *registry, uint32_t id,
                tz_policy = wl_registry_bind(registry, id, &tizen_policy_interface, 7);
                tizen_policy_add_listener(tz_policy, &tz_policy_listener, NULL);
        }
+       else if(strcmp(interface, "zxdg_shell_v6") == 0)
+       {
+               zxdg_shell = wl_registry_bind(registry, id, &zxdg_shell_v6_interface, 1);
+       }
        else if(strcmp(interface, "tizen_launch_appinfo") == 0)
        {
                tz_appinfo = wl_registry_bind(registry, id, &tizen_launch_appinfo_interface, 1);
@@ -450,6 +458,24 @@ static const struct wl_registry_listener registry_listener = {
        global_registry_remover
 };
 
+static void
+_zxdg_v6_shell_surface_create(struct wl_surface *surface)
+{
+       if (zxdg_surface) return;
+
+       printf("Request get xdg_surface. zxdg_shell:%p", zxdg_shell);
+
+       zxdg_surface = zxdg_shell_v6_get_xdg_surface(zxdg_shell, surface);
+       // zxdg_surface_v6_add_listener(zxdg_surface, &_zxdg_surface_listener, NULL);
+
+       printf("create zxdg_surface:%p", zxdg_surface);
+
+       zxdg_toplevel = zxdg_surface_v6_get_toplevel(zxdg_surface);
+       //zxdg_toplevel_v6_add_listener(zxdg_toplevel, &_zxdg_toplevel_listener, NULL);
+
+       zxdg_toplevel_v6_set_title(zxdg_toplevel, "zxdg_toplevel");
+}
+
 
 int main(int argc, char **argv) {
 
@@ -488,6 +514,8 @@ int main(int argc, char **argv) {
        else
        {
                fprintf(stderr, "Surface created.\n");
+
+               _zxdg_v6_shell_surface_create(surface);
        }
 
        while (wl_display_dispatch(display) != -1)
index 176e86b..28c5e1b 100644 (file)
@@ -29,11 +29,12 @@ executable('exampleCompositor',
 # exampleClient written for testing exampleCompositor
 wayland_client_dep = dependency('wayland-client')
 tizen_extension_client_dep = dependency('tizen-extension-client')
+xdg_shell_client_dep = dependency('xdg-shell-unstable-v6-client')
 tizen_launch_client_dep = dependency('tizen-launch-client')
 libxkbcommon_dep = dependency('xkbcommon')
 executable('exampleClient',
        'exampleClient.c',
-       dependencies : [libds_declared_dep, wayland_client_dep, tizen_extension_client_dep, libxkbcommon_dep, tizen_launch_client_dep],
+       dependencies : [libds_declared_dep, wayland_client_dep, tizen_extension_client_dep, xdg_shell_client_dep, libxkbcommon_dep, tizen_launch_client_dep],
        install_dir : libds_prefix_bindir,
        install : true
        )