[SDL_Tizen] fix Skip event 96/91996/2
authorDaeKwang Ryu <dkdk.ryu@samsung.com>
Wed, 12 Oct 2016 12:59:10 +0000 (21:59 +0900)
committerDaeKwang Ryu <dkdk.ryu@samsung.com>
Thu, 13 Oct 2016 02:28:02 +0000 (11:28 +0900)
add enums SDL_WINDOW_INPUT_UNFOCUS, SDL_WINDOW_MOUSE_UNFOCUS

Change-Id: I21822fc88e0872c53c652c2096c2968cc09dac96

include/SDL_video.h
src/video/SDL_video.c
src/video/tizen/SDL_tizenwindow.c

index 4c60c27..b9ae044 100755 (executable)
@@ -110,7 +110,9 @@ typedef enum
     SDL_WINDOW_FOREIGN = 0x00000800,            /**< window not created by SDL */
     SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000,      /**< window should be created in high-DPI mode if supported */
     SDL_WINDOW_MOUSE_CAPTURE = 0x00004000,      /**< window has mouse captured (unrelated to INPUT_GRABBED) */
-    SDL_WINDOW_VULKAN = 0x10000000              /**< window usable with Vulkan */
+    SDL_WINDOW_VULKAN = 0x10000000,             /**< window usable with Vulkan */
+    SDL_WINDOW_INPUT_UNFOCUS = 0x20000000,      /**< window loses input focus */
+    SDL_WINDOW_MOUSE_UNFOCUS = 0x40000000       /**< window loses mouse focus */
 } SDL_WindowFlags;
 
 /**
index 19b2ae4..6029cef 100755 (executable)
@@ -1298,7 +1298,8 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen)
 }
 
 #define CREATE_FLAGS \
-    (SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_VULKAN | 0x00008000)
+    (SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI | \
+     SDL_WINDOW_VULKAN | SDL_WINDOW_INPUT_UNFOCUS | SDL_WINDOW_MOUSE_UNFOCUS )
 
 static void
 SDL_FinishWindowCreation(SDL_Window *window, Uint32 flags)
index 6618076..cecdca5 100644 (file)
@@ -193,12 +193,6 @@ Tizen_CreateWindow(_THIS, SDL_Window *window)
     wind->received_rotation = 0;
     ecore_wl_window_opaque_region_set(wind->window, window->x, window->y, window->w, window->h);
 
-    if (window->flags & 0x00008000)
-    {
-       ecore_wl_window_input_region_set(wind->window, 0, 0, 0, 0);
-       ecore_wl_window_focus_skip_set(wind->window, EINA_TRUE);
-    }
-
 #if SDL_VIDEO_OPENGL_EGL
     if (window->flags & SDL_WINDOW_OPENGL) {
         wind->egl_window = wl_egl_window_create(ecore_wl_window_surface_get(wind->window), window->w, window->h);
@@ -217,14 +211,17 @@ Tizen_CreateWindow(_THIS, SDL_Window *window)
 
     Tizen_InitKeyboard(_this);
 
-    SDL_SetMouseFocus(window);
-
-    if (window->flags & 0x00008000) {
-        SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "---------------------------------------");
-        SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "[SDL] touch bypass setting is done!\n");
-        SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "---------------------------------------");
+    if (window->flags & SDL_WINDOW_MOUSE_UNFOCUS) {
+        SDL_Log("SDL_WINDOW_MOUSE_UNFOCUS is set. Mouse event will be passed the focused window.");
         ecore_wl_window_input_region_set(wind->window, -1, -1, 1, 1);
-        //ecore_wl_window_focus_skip_set(wind->window, EINA_TRUE);
+    }
+    else {
+        SDL_SetMouseFocus(window);
+    }
+
+    if (window->flags & SDL_WINDOW_INPUT_UNFOCUS) {
+        SDL_Log("SDL_WINDOW_INPUT_UNFOCUS is set. Key event will be passed the focused window.");
+        ecore_wl_window_focus_skip_set(wind->window, EINA_TRUE);
     }
 
     EINA_INLIST_FOREACH(globals, global) {