visibility: Make composite mode to norender state when foreground activity client... 09/93109/2
authorSeunghun Lee <shiin.lee@samsung.com>
Thu, 20 Oct 2016 07:42:37 +0000 (16:42 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 20 Oct 2016 11:22:13 +0000 (04:22 -0700)
We need to keep the frame of client which is just about to hide until
below activity is ready to show.

Change-Id: I14829fc5953f99baf5df84096c195cc429347603

src/bin/e_policy_visibility.c

index b601c1045a14c0c3b7d3e624183559d479bb05ab..cb58ba36f637b4e60d58f0398df4861beea74387 100644 (file)
@@ -416,6 +416,10 @@ _e_vis_job_add(E_Vis_Client *vc, E_Vis_Job_Type type, Ecore_Task_Cb timeout_func
    job->type = type;
    job->timer = ecore_timer_add(E_VIS_TIMEOUT, timeout_func, job);
 
+   if ((job->type == E_VIS_JOB_TYPE_LOWER) ||
+       (job->type == E_VIS_JOB_TYPE_HIDE))
+     e_comp_canvas_norender_push();
+
    return EINA_TRUE;
 }
 
@@ -426,6 +430,9 @@ _e_vis_job_del(Eina_Clist *elem)
 
    _e_vis_clist_unlink(elem);
    job = EINA_CLIST_ENTRY(elem, E_Vis_Job, entry);
+   if ((job->type == E_VIS_JOB_TYPE_LOWER) ||
+       (job->type == E_VIS_JOB_TYPE_HIDE))
+     e_comp_canvas_norender_pop();
    E_FREE_FUNC(job->timer, ecore_timer_del);
    free(job);
 }
@@ -942,9 +949,11 @@ _e_vis_ec_job_exec(E_Client *ec, E_Vis_Job_Type type)
          e_client_uniconify(ec);
          break;
       case E_VIS_JOB_TYPE_LOWER:
+         e_comp_canvas_norender_pop();
          evas_object_lower(ec->frame);
          break;
       case E_VIS_JOB_TYPE_HIDE:
+         e_comp_canvas_norender_pop();
          evas_object_hide(ec->frame);
          break;
       default: