e_client: changed window's visibility to UN-OBSCURED when it is pended to show for... 17/80317/1 accepted/tizen/ivi/20160717.035243 accepted/tizen/mobile/20160717.035253 accepted/tizen/tv/20160717.035127 accepted/tizen/wearable/20160717.035148 submit/tizen/20160716.065840
authorDoyoun Kang <doyoun.kang@samsung.com>
Sat, 16 Jul 2016 06:33:31 +0000 (15:33 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Sat, 16 Jul 2016 06:33:31 +0000 (15:33 +0900)
There was a bug that the application window was not shown when it's above window was disappeared.
It was because the display server was waiting for rotation-done message, and the application is waiting for unobsucred message.

Change-Id: Ib84fa14c03df4b5c7a740edf13775069e39712d6

src/bin/e_client.c

index b4b72acdab4cd47535e11eb6075f088322e8bc36..aff657aa1bd8ee46ddb32ce38cc0c5fc5244c012 100644 (file)
@@ -2736,19 +2736,22 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
                }
           }
 
-        if (canvas_vis && calc_region)
+        if (canvas_vis)
           {
-             it = eina_tiler_iterator_new(t);
-             EINA_ITERATOR_FOREACH(it, _r)
+             if (calc_region || skip_rot_pending_show)
                {
-                  if (E_INTERSECTS(x, y, w, h,
-                                   _r->x, _r->y, _r->w, _r->h))
+                  it = eina_tiler_iterator_new(t);
+                  EINA_ITERATOR_FOREACH(it, _r)
                     {
-                       ec_vis = EINA_TRUE;
-                       break;
+                       if (E_INTERSECTS(x, y, w, h,
+                                        _r->x, _r->y, _r->w, _r->h))
+                         {
+                            ec_vis = EINA_TRUE;
+                            break;
+                         }
                     }
+                  eina_iterator_free(it);
                }
-             eina_iterator_free(it);
           }
 
         if (ec_vis)
@@ -2763,7 +2766,7 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
                }
 
              /* subtract window region from canvas region */
-             if (canvas_vis)
+             if (canvas_vis && !skip_rot_pending_show)
                {
                   /* check alpha window is opaque or not. */
                   if ((ec->visibility.opaque > 0) && (ec->argb))