headless-server::input : remove the global variable 56/207156/1
authorlsj119 <lsj119@samsung.com>
Wed, 24 Apr 2019 01:44:58 +0000 (10:44 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 30 May 2019 08:33:19 +0000 (17:33 +0900)
Change-Id: Ia91c2bf96bcde96a705fe2ea167fcc04c663adbd

src/bin/headless/headless_server.h
src/bin/headless/input.c
src/bin/headless/shell/shell.c

index 2fcf4fe..f1b7928 100644 (file)
@@ -37,9 +37,8 @@ PEPPER_API pepper_bool_t headless_shell_init(pepper_compositor_t *compositor);
 
 /* APIs for headless_input */
 PEPPER_API pepper_bool_t headless_input_init(pepper_compositor_t *compositor);
-PEPPER_API void *headless_input_get(void);
-PEPPER_API void headless_input_set_focus_view(void *input, pepper_view_t *view);
-PEPPER_API void headless_input_set_top_view(void *input, pepper_view_t *view);
+PEPPER_API void headless_input_set_focus_view(pepper_compositor_t *compositor, pepper_view_t *view);
+PEPPER_API void headless_input_set_top_view(pepper_compositor_t *compositor, pepper_view_t *view);
 
 #ifdef __cplusplus
 }
index cc1e811..7569867 100644 (file)
@@ -47,7 +47,6 @@ typedef struct
        uint32_t ndevices;
 } headless_input_t;
 
-headless_input_t *input = NULL;
 const static int KEY_INPUT = 0xdeadbeaf;
 
 static void headless_input_init_event_listeners(headless_input_t *hi);
@@ -136,10 +135,11 @@ end:
 }
 
 void
-headless_input_set_focus_view(void *input, pepper_view_t *focus_view)
+headless_input_set_focus_view(pepper_compositor_t *compositor, pepper_view_t *focus_view)
 {
-       headless_input_t *hi = (headless_input_t *)input;
+       headless_input_t *hi;
 
+       hi = (headless_input_t *)pepper_object_get_user_data((pepper_object_t *) compositor, &KEY_INPUT);
        PEPPER_CHECK(hi, return, "Invalid headless input.\n");
 
        if (hi->focus_view != focus_view)
@@ -156,10 +156,11 @@ headless_input_set_focus_view(void *input, pepper_view_t *focus_view)
 }
 
 void
-headless_input_set_top_view(void *input, pepper_view_t *top_view)
+headless_input_set_top_view(void *compositor, pepper_view_t *top_view)
 {
-       headless_input_t *hi = (headless_input_t *)input;
+       headless_input_t *hi;
 
+       hi = (headless_input_t *)pepper_object_get_user_data((pepper_object_t *) compositor, &KEY_INPUT);
        PEPPER_CHECK(hi, return, "Invalid headless input.\n");
 
        hi->top_view = top_view;
@@ -168,12 +169,6 @@ headless_input_set_top_view(void *input, pepper_view_t *top_view)
                pepper_keyrouter_set_top_view(hi->keyrouter, top_view);
 }
 
-headless_input_t *
-headless_input_get(void)
-{
-       return input;
-}
-
 static void
 headless_input_init_event_listeners(headless_input_t *hi)
 {
@@ -333,8 +328,6 @@ headless_input_deinit(void *data)
 
        pepper_object_set_user_data((pepper_object_t *)hi->compositor, &KEY_INPUT, NULL, NULL);
        free(hi);
-
-       input = hi = NULL;
 }
 
 pepper_bool_t
@@ -352,8 +345,7 @@ headless_input_init(pepper_compositor_t *compositor)
        init = headless_input_init_input(hi);
        PEPPER_CHECK(init, goto error, "headless_input_init_input() failed\n");
 
-       input = hi;
-       pepper_object_set_user_data((pepper_object_t *)compositor, &KEY_INPUT, NULL, headless_input_deinit);
+       pepper_object_set_user_data((pepper_object_t *)compositor, &KEY_INPUT, hi, headless_input_deinit);
 
        return PEPPER_TRUE;
 
index f1bb41c..28bb403 100644 (file)
@@ -656,9 +656,8 @@ tizen_policy_cb_activate(struct wl_client *client, struct wl_resource *resource,
        pepper_view_stack_top(hs_surface->view, PEPPER_TRUE);
 
        /* FIXME: set a view of the given surface as the focus/top view */
-       void *input = headless_input_get();
-       headless_input_set_focus_view(input, hs_surface->view);
-       headless_input_set_top_view(input, hs_surface->view);
+       headless_input_set_focus_view(pepper_surface_get_compositor(psurface), hs_surface->view);
+       headless_input_set_top_view(pepper_surface_get_compositor(psurface), hs_surface->view);
 }
 
 static void