From 1e6eac5ea6abf852a49bcfcbf051ca9185935a08 Mon Sep 17 00:00:00 2001 From: lsj119 Date: Tue, 23 Apr 2019 06:36:04 +0900 Subject: [PATCH] shell: add skip_focus Change-Id: I8ba78d25f0590f02496210445847de9e2de8f3ef --- src/bin/headless/shell/shell.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/bin/headless/shell/shell.c b/src/bin/headless/shell/shell.c index 83a6e6f..e273f01 100644 --- a/src/bin/headless/shell/shell.c +++ b/src/bin/headless/shell/shell.c @@ -45,6 +45,8 @@ typedef struct { pepper_view_t *view; struct wl_resource *zxdg_shell_surface; uint32_t last_ack_configure; + + pepper_bool_t skip_focus; }headless_shell_surface_t; const static int KEY_SHELL = 0; @@ -611,11 +613,31 @@ tizen_policy_cb_lower_by_res_id(struct wl_client *client, struct wl_resource *re static void tizen_policy_cb_focus_skip_set(struct wl_client *client, struct wl_resource *resource, struct wl_resource *surf) { + pepper_surface_t *psurface; + headless_shell_surface_t *hs_surface; + + psurface = wl_resource_get_user_data(surf); + PEPPER_CHECK(psurface, return, "fail to get pepper_surface_t\n"); + + hs_surface = pepper_object_get_user_data((pepper_object_t *)psurface, surf); + PEPPER_CHECK(hs_surface, return, "fail to get headless_shell_surface\n"); + + hs_surface->skip_focus = PEPPER_TRUE; } static void tizen_policy_cb_focus_skip_unset(struct wl_client *client, struct wl_resource *resource, struct wl_resource *surf) { + pepper_surface_t *psurface; + headless_shell_surface_t *hs_surface; + + psurface = wl_resource_get_user_data(surf); + PEPPER_CHECK(psurface, return, "fail to get pepper_surface_t\n"); + + hs_surface = pepper_object_get_user_data((pepper_object_t *)psurface, surf); + PEPPER_CHECK(hs_surface, return, "fail to get headless_shell_surface\n"); + + hs_surface->skip_focus = PEPPER_FALSE; } static void -- 2.34.1