elm_win: fix bug that floating mode set API ignores borderless value 13/109213/2 accepted/tizen/3.0/common/20170110.125648 accepted/tizen/3.0/ivi/20170110.043322 accepted/tizen/3.0/tv/20170110.043142 accepted/tizen/3.0/wearable/20170110.043230 submit/tizen_3.0/20170109.102841
authorJiyoun Park <jy0703.park@samsung.com>
Mon, 9 Jan 2017 08:15:07 +0000 (17:15 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Mon, 9 Jan 2017 08:35:42 +0000 (00:35 -0800)
If app calls elm_win_floating_mode_set after elm_win_borderless_set,
it doesn't work correctly.
Because, inside the floating mode set function, it create frame object again.
so only when borderless set is false, floating win can create frame object.

Change-Id: I9f166178388ae40c77d6ff4d38217bd8fbecbd38

src/lib/elm_win.c

index 19bb0bb8763d8c210f79cd1743737aac5bb3f894..b1227a3a3e5ba7868bc903ab595e4b55c4ba6cbb 100644 (file)
@@ -6585,22 +6585,25 @@ elm_win_floating_mode_set(Evas_Object *obj, Eina_Bool floating)
      {
         if (floating)
           {
-             const char *engine_name = ecore_evas_engine_name_get(sd->ee);
-             Eina_Bool need_frame = engine_name &&
-                ((!strcmp(engine_name, ELM_WAYLAND_SHM)) ||
-                 (!strcmp(engine_name, ELM_WAYLAND_EGL)));
+             if (!sd->borderless)
+               {
+                  const char *engine_name = ecore_evas_engine_name_get(sd->ee);
+                  Eina_Bool need_frame = engine_name &&
+                     ((!strcmp(engine_name, ELM_WAYLAND_SHM)) ||
+                      (!strcmp(engine_name, ELM_WAYLAND_EGL)));
 
-             if (need_frame)
-               need_frame = !sd->fullscreen;
+                  if (need_frame)
+                    need_frame = !sd->fullscreen;
 
-             if (need_frame)
-               {
-                  _elm_win_frame_del(sd);
-                  _elm_win_frame_add(sd, "floating");
-               }
+                  if (need_frame)
+                    {
+                       _elm_win_frame_del(sd);
+                       _elm_win_frame_add(sd, "floating");
+                    }
 
-             if (sd->frame_obj)
-               evas_object_show(sd->frame_obj);
+                  if (sd->frame_obj)
+                    evas_object_show(sd->frame_obj);
+               }
 
              //TIZEN_ONLY(20161208): supported floating window
              edje_object_signal_emit(sd->edje, "elm,state,floating,on", "elm");