refactoring: use new API instead of exp_iconify.by_client 08/281208/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 14 Sep 2022 06:31:30 +0000 (15:31 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 14 Sep 2022 07:44:26 +0000 (16:44 +0900)
Add new API for checking whether the window is iconified by client request or not.
- e_client_is_iconified_by_client

We replace code to use e_client_is_iconified_by_client() API instead of
ec->exp_iconify.by_client directly.

Change-Id: I823d3202d55dd8bc7ae220a016fafde544826487

13 files changed:
src/bin/e_client.c
src/bin/e_client.h
src/bin/e_comp_object.c
src/bin/e_comp_wl_capture.c
src/bin/e_comp_wl_rsm.c
src/bin/e_comp_wl_shell.c
src/bin/e_info_server.c
src/bin/e_policy.c
src/bin/e_policy_stack.c
src/bin/e_policy_visibility.c
src/bin/e_policy_wl.c
src/bin/e_test_helper.c
src/bin/services/e_service_cbhm.c

index 508f4614bd106bbce2f1b697eb8d8fc0577cc379..5240893ebd4d5267be06d36aa96bfb1316aa3484 100644 (file)
@@ -883,7 +883,7 @@ _e_client_check_really_iconified(E_Client *ec)
        if (!(e_policy_visibility_client_is_uniconic(ec) ||
              e_policy_visibility_client_is_uniconify_render_running(ec)))
          return EINA_TRUE;
-       else if (ec->exp_iconify.by_client)
+       else if (e_client_is_iconified_by_client(ec))
          return EINA_TRUE;
      }
 
@@ -2525,7 +2525,7 @@ _e_client_cb_evas_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA
              /* Don't stack iconic transients. If the user wants these shown,
               * that's another option.
               */
-             if (child->iconic && child->exp_iconify.by_client) continue;
+             if (child->iconic && e_client_is_iconified_by_client(child)) continue;
 
              transient_policy = e_client_transient_policy_get(child);
              if (transient_policy == E_TRANSIENT_ABOVE)
@@ -3569,6 +3569,8 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
    Eina_Bool touched_win_changed = EINA_FALSE;
    E_Client *touched_ec;
 
+   Eina_Bool iconified_by_client = EINA_FALSE;
+
    if (!e_config->calc_vis_without_effect)
      {
         if (e_comp->animating) return;
@@ -3639,6 +3641,7 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
         skip_by_pending_show = 0;
         calc_region = EINA_TRUE;
         ec_frame_visible = evas_object_visible_get(ec->frame);
+        iconified_by_client = e_client_is_iconified_by_client(ec);
 
         if (!ec->visible)
           {
@@ -3678,7 +3681,7 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
                     }
                   else
                     {
-                       if (ec->exp_iconify.by_client)
+                       if (iconified_by_client)
                          {
                             EC_IS_NOT_VISIBLE continue;
                             calc_region = EINA_FALSE;
@@ -3699,7 +3702,7 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
           {
              if (calc_region &&
                  (!ec->visibility.force_obscured) &&
-                 (!ec->exp_iconify.by_client))
+                 (!iconified_by_client))
                {
                   it = eina_tiler_iterator_new(t);
                   EINA_ITERATOR_FOREACH(it, _r)
@@ -3770,7 +3773,7 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
              if ((!skip_by_pending_show) ||
                  (ec->visibility.force_obscured) ||
                  (ec->bg_state) ||
-                 (ec->exp_iconify.by_client))
+                 (iconified_by_client))
                {
                   /* obscured case */
                   if (ec->visibility.obscured != E_VISIBILITY_FULLY_OBSCURED)
@@ -4598,6 +4601,8 @@ e_client_new(E_Pixmap *cp, int first_map, int internal)
    else
      ec->exp_iconify.buffer_flush = 0;
 
+   e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
+
    if (!_e_client_hook_call(E_CLIENT_HOOK_NEW_CLIENT, ec))
      {
         /* delete the above allocated object */
@@ -5905,6 +5910,7 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
           }
         ELOGF("COMP", "Un-Set ICONIFY BY CLIENT", ec);
         ec->exp_iconify.by_client = 0;
+        e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
 
         if ((!ec->iconic) && (!ec->sticky))
           {
@@ -6385,18 +6391,19 @@ e_client_iconify(E_Client *ec)
    E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
 
    E_Comp_Wl_Client_Data *cdata = e_client_cdata_get(ec);
+   Eina_Bool iconified_by_client = e_client_is_iconified_by_client(ec);
 
-   ELOGF("TZVIS", "ICONIFY  |iconic:%d  |argb:%d       |not_raise:%d   |by_client:%d",
+   ELOGF("TZVIS", "ICONIFY  |iconic:%d  |argb:%d       |not_raise:%d   |by_client:%d, type:%d",
          ec, ec->iconic, ec->argb, (unsigned int)ec->exp_iconify.not_raise,
-         ec->exp_iconify.by_client);
+         ec->exp_iconify.by_client, ec->exp_iconify.type);
 
    if (!ec->zone) return;
    if (ec->shading || ec->iconic) return;
-   if (ec->exp_iconify.skip_iconify && !ec->exp_iconify.by_client) return;
+   if (ec->exp_iconify.skip_iconify && !iconified_by_client) return;
    if (ec->exp_iconify.skip_by_remote) return;
    if (!cdata || !cdata->mapped)
      {
-        if (!ec->exp_iconify.by_client)
+        if (!iconified_by_client)
           {
              ELOGF("TZVIS", "Not mapped.. So, don't iconify", ec);
              return;
@@ -6447,9 +6454,9 @@ e_client_uniconify(E_Client *ec)
 
    E_Comp_Wl_Client_Data *cdata = e_client_cdata_get(ec);
 
-   ELOGF("TZVIS", "UNICONIFY|iconic:%d  |argb:%d       |not_raise:%d  |by_client:%d  |mapped:%d",
+   ELOGF("TZVIS", "UNICONIFY|iconic:%d  |argb:%d       |not_raise:%d  |by_client:%d, type:%d |mapped:%d",
          ec, ec->iconic, ec->argb, (unsigned int)ec->exp_iconify.not_raise,
-         ec->exp_iconify.by_client,
+         ec->exp_iconify.by_client, ec->exp_iconify.type,
          cdata ? cdata->mapped : 0);
 
    if (!ec->zone) return;
@@ -6543,6 +6550,7 @@ e_client_uniconify(E_Client *ec)
 
    ec->exp_iconify.not_raise = 0;
    ec->exp_iconify.by_client = 0;
+   e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
 
    TRACE_DS_END();
 }
@@ -6561,6 +6569,22 @@ e_client_iconified_type_get(E_Client *ec)
    return ec->exp_iconify.type;
 }
 
+E_API Eina_Bool e_client_is_iconified_by_client(E_Client *ec)
+{
+   if (!ec) return EINA_FALSE;
+
+   if (ec->exp_iconify.type == E_ICONIFIED_TYPE_ICONIFY_BY_CLIENT)
+     return EINA_TRUE;
+
+   if (ec->exp_iconify.by_client)
+     {
+        ELOGF("POL", "CHECK. mismatch value. by_client:%d, type:%d", ec, ec->exp_iconify.by_client, ec->exp_iconify.type);
+        return EINA_TRUE;
+     }
+
+   return EINA_FALSE;
+}
+
 ///////////////////////////////////////
 
 E_API void
index b900a3f936f0599da6701fbf3d7911761907bceb..cf0286bd4433118b49be77f9009c45b0d3208cad 100644 (file)
@@ -1168,6 +1168,7 @@ E_API void e_client_iconify(E_Client *ec);
 E_API void e_client_uniconify(E_Client *ec);
 E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
 E_API E_Iconified_Type e_client_iconified_type_get(E_Client *ec);
+E_API Eina_Bool e_client_is_iconified_by_client(E_Client *ec);
 E_API void e_client_urgent_set(E_Client *ec, Eina_Bool urgent);
 E_API void e_client_stick(E_Client *ec);
 E_API void e_client_unstick(E_Client *ec);
index 2fecfc4e2632c1538660ec8ec3d5ca6961f21977..059b01d8f38763663f813c8b69aaae5bfd7d8770 100644 (file)
@@ -2408,9 +2408,9 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw)
      }
 #endif
 
-   ELOGF("COMP", "show_helper. cw(v:%d,a:%d,dh:%d,ct:%d,u:%p,s(%d,%d)), ec(i:%d(%d),o:%d,g:%d,n:%d)", ec,
+   ELOGF("COMP", "show_helper. cw(v:%d,a:%d,dh:%d,ct:%d,u:%p,s(%d,%d)), ec(i:%d(%d,%d),o:%d,g:%d,n:%d)", ec,
          cw->visible, cw->animating, cw->defer_hide, cw->content_type, cw->updates, cw->w, cw->h,
-         ec->iconic, ec->exp_iconify.by_client, ec->input_only, ec->ignored, ec->new_client);
+         ec->iconic, ec->exp_iconify.by_client, ec->exp_iconify.type, ec->input_only, ec->ignored, ec->new_client);
 
    if (ec->sticky)
      e_comp_object_signal_emit(cw->smart_obj, "e,state,sticky", "e");
@@ -2534,7 +2534,7 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw)
         if (ec->internal) //internal clients render when they feel like it
           e_comp_object_damage(cw->smart_obj, 0, 0, cw->w, cw->h);
 
-        if (!ec->exp_iconify.by_client ||
+        if (!e_client_is_iconified_by_client(ec)||
             e_policy_visibility_client_is_uniconic(ec))
           {
              ELOGF("COMP", "show_helper. evas_object_show!!!", ec);
@@ -3322,7 +3322,7 @@ _e_comp_smart_show(Evas_Object *obj)
      }
    if (cw->ec->iconic && (!cw->ec->new_client))
      {
-        if (cw->ec->exp_iconify.by_client)
+        if (e_client_is_iconified_by_client(cw->ec))
           {
              ELOGF("COMP", "Set launching flag..", cw->ec);
              cw->ec->launching = EINA_TRUE;
index a45c23339d979673e2ffb51d466eb195a162adff..3f1560ac2f76e36180a72780a85b17c8b35163f2 100644 (file)
@@ -1300,7 +1300,7 @@ _e_capture_client_child_data_check(Thread_Data *td)
         if (!child_ec->comp_data) continue;
         if (!child_ec->comp_data->mapped) continue;
 
-        if (child_ec->iconic && child_ec->exp_iconify.by_client)
+        if (child_ec->iconic && e_client_is_iconified_by_client(child_ec))
           continue;
 
         if (child_ec->bg_state)
index de171dade572660f1e6d5ebcd259b323cf0cbc4c..cf686356c2a1aa37d4f05bafe063cab4f7dfde78 100644 (file)
@@ -1250,7 +1250,7 @@ _remote_source_offscreen_set(E_Comp_Wl_Remote_Source *source, Eina_Bool set)
              _remote_surface_ignore_output_transform_send(&source->common);
 
              source->common.ec->exp_iconify.not_raise = 1;
-             if (!source->common.ec->exp_iconify.by_client)
+             if (!e_client_is_iconified_by_client(source->common.ec))
                e_policy_wl_iconify_state_change_send(source->common.ec, 0);
 
              RSMINF("Un-Set ICONIFY BY Remote_Surface", source->common.ec,
@@ -1258,6 +1258,7 @@ _remote_source_offscreen_set(E_Comp_Wl_Remote_Source *source, Eina_Bool set)
              e_client_uniconify(source->common.ec);
 
              source->common.ec->exp_iconify.by_client = 0;
+             e_client_iconified_type_set(source->common.ec, E_ICONIFIED_TYPE_NONE);
              source->common.ec->exp_iconify.skip_by_remote = 1;
 
              EC_CHANGED(source->common.ec);
index 0a75979ac3a8d11932dd203f6561d11eef9269f8..87d2d65539b941276f05d672a3dbfe290c2b3fe0 100644 (file)
@@ -767,7 +767,7 @@ _e_shell_client_map_common_post(E_Client *ec)
    ec->first_mapped = 1;
 
    e_policy_visibility_client_hide_job_cancel(ec);
-   if (!(ec->iconic && ec->exp_iconify.by_client) && !ec->bg_state && (ec->show_pending.count == 0))
+   if (!(ec->iconic && e_client_is_iconified_by_client(ec)) && !ec->bg_state && (ec->show_pending.count == 0))
      e_vis_client_check_send_pre_visibility_event(ec, EINA_FALSE);
 
    ELOGF("COMP", "Un-Set launching flag", ec);
@@ -805,9 +805,9 @@ _e_shell_surface_map(struct wl_resource *resource)
               ec->w, ec->h, ec->netwm.pid, ec->icccm.title, ec->netwm.name);
 
         ELOGF("SHELL",
-              "spash:%d, first_mapped:%d, iconic:%d(client:%d), raise:%d, lower:%d, ignore:%d, override:%d, input_only:%d",
+              "spash:%d, first_mapped:%d, iconic:%d(client:%d, type:%d), raise:%d, lower:%d, ignore:%d, override:%d, input_only:%d",
               ec,
-              ec->use_splash, ec->first_mapped, ec->iconic, ec->exp_iconify.by_client,
+              ec->use_splash, ec->first_mapped, ec->iconic, ec->exp_iconify.by_client, ec->exp_iconify.type,
               ec->post_raise, ec->post_lower, ec->ignored, ec->override, ec->input_only);
 
         _e_shell_client_map_common_pre(ec);
@@ -1313,9 +1313,9 @@ _e_xdg_shell_surface_map_cb_timer(void *data)
               ec->w, ec->h, ec->netwm.pid, ec->icccm.title, ec->netwm.name);
 
         ELOGF("SHELL",
-              "spash:%d, first_mapped:%d, iconic:%d(client:%d), raise:%d, lower:%d, ignore:%d, override:%d, input_only:%d",
+              "spash:%d, first_mapped:%d, iconic:%d(client:%d, type:%d), raise:%d, lower:%d, ignore:%d, override:%d, input_only:%d",
               ec,
-              ec->use_splash, ec->first_mapped, ec->iconic, ec->exp_iconify.by_client,
+              ec->use_splash, ec->first_mapped, ec->iconic, ec->exp_iconify.by_client, ec->exp_iconify.type,
               ec->post_raise, ec->post_lower, ec->ignored, ec->override, ec->input_only);
 
         _e_shell_client_map_common_pre(ec);
@@ -1394,9 +1394,9 @@ e_shell_e_client_map(E_Client *ec)
          ec->w, ec->h, ec->netwm.pid, ec->icccm.title, ec->netwm.name);
 
    ELOGF("SHELL",
-         "spash:%d, first_mapped:%d, iconic:%d(client:%d), raise:%d, lower:%d, ignore:%d, override:%d, input_only:%d",
+         "spash:%d, first_mapped:%d, iconic:%d(client:%d, type:%d), raise:%d, lower:%d, ignore:%d, override:%d, input_only:%d",
          ec,
-         ec->use_splash, ec->first_mapped, ec->iconic, ec->exp_iconify.by_client,
+         ec->use_splash, ec->first_mapped, ec->iconic, ec->exp_iconify.by_client, ec->exp_iconify.type,
          ec->post_raise, ec->post_lower, ec->ignored, ec->override, ec->input_only);
 
    _e_shell_client_map_common_pre(ec);
index ce4f8641f9cec973bff9afb004f0eef7d37b9534..4bd48cbbdfe0be1a148a6dd1a98b1a93e2c35b71 100644 (file)
@@ -319,7 +319,7 @@ _msg_ecs_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
 
         if (ec->iconic)
           {
-             if (ec->exp_iconify.by_client)
+             if (e_client_is_iconified_by_client(ec))
                iconified = 2;
              else
                iconified = 1;
@@ -415,7 +415,7 @@ _msg_clients_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
 
         if (ec->iconic)
           {
-             if (ec->exp_iconify.by_client)
+             if (e_client_is_iconified_by_client(ec))
                iconified = 2;
              else
                iconified = 1;
index 7941f6428a35ed0c2e66f077ab30ddc71bc4cc27..f87d1d2a7ea7b7a628f77c10e2fe124b8cce3a66 100644 (file)
@@ -889,7 +889,7 @@ _e_policy_cb_hook_client_visibility(void *d EINA_UNUSED, E_Client *ec)
                        if (e_client_util_ignored_get(above_ec)) continue;
                        if (!above_ec->visible) continue;
 
-                       if (above_ec->exp_iconify.by_client) continue;
+                       if (e_client_is_iconified_by_client(above_ec)) continue;
                        if (above_ec->exp_iconify.skip_by_remote) continue;
                        if (above_ec->bg_state) continue;
 
@@ -933,7 +933,7 @@ _e_policy_cb_hook_client_visibility(void *d EINA_UNUSED, E_Client *ec)
              else if (ec->zone->display_state == E_ZONE_DISPLAY_STATE_OFF)
                {
                   if (e_client_util_ignored_get(ec)) return;
-                  if (ec->exp_iconify.by_client) return;
+                  if (e_client_is_iconified_by_client(ec)) return;
                   if (ec->bg_state) return;
                   if (ec->exp_iconify.skip_iconify) return;
                   if (ec->exp_iconify.skip_by_remote) return;
@@ -979,7 +979,7 @@ _e_policy_cb_hook_pixmap_unusable(void *data EINA_UNUSED, E_Pixmap *cp)
 
    if (!ec) return;
    if (!ec->iconic) return;
-   if (ec->exp_iconify.by_client) return;
+   if (e_client_is_iconified_by_client(ec)) return;
    if (ec->exp_iconify.skip_iconify) return;
    if (ec->exp_iconify.skip_by_remote) return;
    if (ec->remote_surface.bind_ref > 0) return;
@@ -1569,6 +1569,7 @@ e_policy_client_unmap(E_Client *ec)
    ec->iconic = 0;
 
    ec->exp_iconify.by_client = 0;
+   e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
    ec->exp_iconify.not_raise = 0;
    ec->exp_iconify.skip_iconify = 0;
 
index 23036a773ff5e4019133dc89942a50f7911772f9..8385bf9d39a20954cf0ed7f743daaaffced1cfad 100644 (file)
@@ -614,7 +614,7 @@ e_policy_stack_clients_restack_above_lockscreen(E_Client *ec_lock, Eina_Bool sho
                }
              if (!passed_new_lock) continue;
              if (e_policy_client_is_lockscreen(ec)) continue;
-             if (ec->exp_iconify.by_client) continue;
+             if (e_client_is_iconified_by_client(ec)) continue;
              if (ec->bg_state) continue;
 
              if (ec->changable_layer[E_CHANGABLE_LAYER_TYPE_ABOVE_NOTIFICATION].set)
index f80b7b64a6ea8d2d46dfb78147cd37853550515f..26e7640d4fce9b018c3e2e13ffe0a9c8e9427482 100644 (file)
@@ -284,7 +284,7 @@ _e_policy_client_iconify_by_visibility(E_Client *ec)
 
    if (!ec) return;
    if (ec->iconic) return;
-   if (ec->exp_iconify.by_client) return;
+   if (e_client_is_iconified_by_client(ec)) return;
    if (ec->bg_state) return;
    if (ec->exp_iconify.skip_iconify) return;
    if (ec->exp_iconify.skip_by_remote) return;
@@ -354,7 +354,7 @@ _e_policy_client_ancestor_uniconify(E_Client *ec)
    if (!ec) return;
    if (e_object_is_del(E_OBJECT(ec))) return;
    if (!ec->iconic) return;
-   if (ec->exp_iconify.by_client) return;
+   if (e_client_is_iconified_by_client(ec)) return;
    if (ec->bg_state) return;
    if (ec->exp_iconify.skip_iconify) return;
    if (ec->exp_iconify.skip_by_remote) return;
@@ -371,7 +371,7 @@ _e_policy_client_ancestor_uniconify(E_Client *ec)
 
         if (e_object_is_del(E_OBJECT(parent))) break;
         if (!parent->iconic) break;
-        if (parent->exp_iconify.by_client) break;
+        if (e_client_is_iconified_by_client(parent)) break;
         if (parent->bg_state) break;
         if (parent->exp_iconify.skip_iconify) break;
         if (parent->exp_iconify.skip_by_remote) break;
@@ -442,7 +442,7 @@ _e_policy_client_uniconify_by_visibility(E_Client *ec)
    if (!ec) return;
    if (e_object_is_del(E_OBJECT(ec))) return;
    if (!ec->iconic) return;
-   if (ec->exp_iconify.by_client) return;
+   if (e_client_is_iconified_by_client(ec)) return;
    if (ec->bg_state) return;
    if (ec->exp_iconify.skip_iconify) return;
    if (ec->exp_iconify.skip_by_remote) return;
@@ -1352,7 +1352,7 @@ _e_vis_client_check_obscured_by_same_layer(E_Client *ec)
         if (above->layer > ec->layer) break;
         if (e_client_util_ignored_get(above)) continue;
         if (e_object_is_del(E_OBJECT(above))) continue;
-        if (above->iconic && above->exp_iconify.by_client) continue;
+        if (above->iconic && e_client_is_iconified_by_client(above)) continue;
         if (above->bg_state) continue;
         if (above->comp_data && !above->comp_data->mapped) continue;
 
@@ -1398,7 +1398,7 @@ _e_vis_client_check_obscured_by_above_layers(E_Client *ec)
         if (above->layer <= ec->layer) continue;
         if (e_client_util_ignored_get(above)) continue;
         if (e_object_is_del(E_OBJECT(above))) continue;
-        if (above->iconic && above->exp_iconify.by_client) continue;
+        if (above->iconic && e_client_is_iconified_by_client(above)) continue;
         if (above->bg_state) continue;
         if (above->comp_data && !above->comp_data->mapped) continue;
 
@@ -1593,7 +1593,7 @@ _e_vis_ec_activity_check(E_Client *ec, Eina_Bool check_alpha, Eina_Bool check_fu
    /* check unmapped client */
    if (check_mapped && ec->comp_data && !ec->comp_data->mapped) return EINA_FALSE;
    /* check iconify window by client */
-   if ((ec->iconic) && (ec->exp_iconify.by_client)) return EINA_FALSE;
+   if ((ec->iconic) && (e_client_is_iconified_by_client(ec))) return EINA_FALSE;
    /* check background state */
    if (ec->bg_state) return EINA_FALSE;
    /* check special client */
@@ -1742,7 +1742,7 @@ _e_vis_ec_above_visible_type(E_Client *ec, Eina_Bool check_child)
                continue;
           }
 
-        if (above->iconic && above->exp_iconify.by_client)
+        if (above->iconic && e_client_is_iconified_by_client(above))
           continue;
 
         if (above->bg_state)
@@ -1787,7 +1787,7 @@ _e_vis_client_check_obscure_below(E_Client *ec)
 
    if (e_client_util_ignored_get(ec)) return EINA_FALSE;
    if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
-   if (ec->iconic && ec->exp_iconify.by_client) return EINA_FALSE;
+   if (ec->iconic && e_client_is_iconified_by_client(ec)) return EINA_FALSE;
    if (ec->bg_state) return EINA_FALSE;
    if (ec->comp_data && !ec->comp_data->mapped) return EINA_FALSE;
    if ((ec->argb) && (ec->visibility.opaque <= 0)) return EINA_FALSE;
@@ -1940,7 +1940,7 @@ _e_vis_ec_below_uniconify(E_Client *ec, E_Pol_Vis_Type above_vis_type)
 
              if (!job_added)
                {
-                  if ((below_ec->iconic) && (!below_ec->exp_iconify.by_client))
+                  if ((below_ec->iconic) && (!e_client_is_iconified_by_client(below_ec)))
                     {
                        // show evas obj if uniconify pending is not necessary
                        ELOGF("POL_VIS", "Show below iconic client in advance", below_ec);
@@ -2057,7 +2057,7 @@ _e_vis_transient_group_make(E_Client *ec, Eina_List **list)
         EINA_LIST_FOREACH(ec->transients, l, child)
           {
              if (!child) continue;
-             if (child->iconic && ec->exp_iconify.by_client)
+             if (child->iconic && e_client_is_iconified_by_client(ec))
                continue;
              if (child->bg_state)
                continue;
@@ -2403,7 +2403,7 @@ e_policy_visibility_client_raise(E_Client *ec)
    if (!ec->iconic && !ec->exp_iconify.deiconify_update)
      return EINA_FALSE;
 
-   if (ec->exp_iconify.by_client)
+   if (e_client_is_iconified_by_client(ec))
      return EINA_FALSE;
 
    ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY, 1, EINA_FALSE);
@@ -2555,7 +2555,7 @@ e_policy_visibility_client_uniconify(E_Client *ec, Eina_Bool raise)
 
         EINA_LIST_FREE(l, child)
           {
-             if (child->exp_iconify.by_client) continue;
+             if (e_client_is_iconified_by_client(child)) continue;
 
              ret |= e_policy_visibility_client_uniconify(child, raise);
           }
@@ -2601,7 +2601,7 @@ e_policy_visibility_client_activate(E_Client *ec)
 
         EINA_LIST_FREE(l, child)
           {
-             if (child->exp_iconify.by_client) continue;
+             if (e_client_is_iconified_by_client(child)) continue;
 
              pend = e_policy_visibility_client_uniconify(child, EINA_TRUE);
              if (pend)
index 41d15ef811cbe32e58efc6a20d6d6aeeec37ba80..0ee0dfd761a756ce96a38d001525fcc5ebc67d33 100644 (file)
@@ -1180,7 +1180,7 @@ e_policy_wl_iconify_state_change_send(E_Client *ec, int iconic)
         EINA_LIST_FREE(list, child)
           {
              if ((child->iconic == ec->iconic) &&
-                 (child->exp_iconify.by_client == ec->exp_iconify.by_client))
+                 (e_client_is_iconified_by_client(child) == e_client_is_iconified_by_client(ec)))
                e_policy_wl_iconify_state_change_send(child, iconic);
 
           }
@@ -1371,7 +1371,7 @@ e_policy_wl_activate(E_Client *ec)
      {
         if (!e_policy_visibility_client_activate(ec))
           {
-             if ((ec->iconic) && (!ec->exp_iconify.by_client))
+             if ((ec->iconic) && (!e_client_is_iconified_by_client(ec)))
                e_policy_wl_iconify_state_change_send(ec, 0);
 
              if (!ec->visibility.force_obscured)
@@ -1515,7 +1515,7 @@ _tzpol_iface_cb_activate_below_by_res_id(struct wl_client *client EINA_UNUSED, s
 
    if ((!starting) && (!ec->focused))
      {
-        if ((ec->iconic) && (!ec->exp_iconify.by_client))
+        if ((ec->iconic) && (!e_client_is_iconified_by_client(ec)))
           e_policy_wl_iconify_state_change_send(ec, 0);
 
         e_client_uniconify(ec);
@@ -1585,7 +1585,7 @@ _tzpol_iface_cb_activate_above_by_res_id(struct wl_client *client EINA_UNUSED, s
 
    if (!starting)
      {
-        if ((ec->iconic) && (!ec->exp_iconify.by_client))
+        if ((ec->iconic) && (!e_client_is_iconified_by_client(ec)))
           e_policy_wl_iconify_state_change_send(ec, 0);
 
         e_client_uniconify(ec);
@@ -2252,9 +2252,11 @@ e_policy_wl_iconify(E_Client *ec)
    if (e_policy_visibility_client_iconify(ec))
      {
         ec->exp_iconify.by_client = 1;
+        e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_ICONIFY_BY_CLIENT);
         return;
      }
    ec->exp_iconify.by_client = 1;
+   e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_ICONIFY_BY_CLIENT);
 
    e_client_iconify(ec);
 
@@ -2270,18 +2272,20 @@ e_policy_wl_uniconify(E_Client *ec)
    if (e_policy_visibility_client_uniconify(ec, 1))
      return;
 
-   if ((ec->iconic) && (!ec->exp_iconify.by_client))
+   if ((ec->iconic) && (!e_client_is_iconified_by_client(ec)))
      e_policy_wl_iconify_state_change_send(ec, 0);
 
    if (ec->visibility.force_obscured)
      {
         ec->exp_iconify.by_client = 0;
+        e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
         return;
      }
 
    e_client_uniconify(ec);
    ELOGF("TZPOL", "Un-Set ICONIFY BY CLIENT", ec);
    ec->exp_iconify.by_client = 0;
+   e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
 
    EC_CHANGED(ec);
 }
index 5906daa9cfe2acca3ecbb3a40691b14bccd6eca5..364633699c72992d146890d8deb12dc38b76c221 100644 (file)
@@ -375,7 +375,7 @@ _e_test_helper_message_append_client(Eldbus_Message_Iter *iter, E_Client *ec)
        ec->visibility.opaque,
        ec->visibility.obscured,
        ec->visibility.skip,
-       ec->iconic ? (ec->exp_iconify.by_client ? 2 : 1) : 0,
+       ec->iconic ? (e_client_is_iconified_by_client(ec) ? 2 : 1) : 0,
 
        /* color depth */
        ec->argb,
@@ -1729,7 +1729,7 @@ _e_test_helper_cb_client_iconic_state_changed(void *data EINA_UNUSED, int type E
    if (!_e_test_helper_find_win_on_reg_list(win)) return ECORE_CALLBACK_PASS_ON;
 
    sig = eldbus_service_signal_new(th_data->iface, E_TEST_HELPER_SIGNAL_ICONIC_STATE_CHANGED);
-   eldbus_message_arguments_append(sig, "ubb", win, ec->iconic, ec->exp_iconify.by_client);
+   eldbus_message_arguments_append(sig, "ubb", win, ec->iconic, e_client_is_iconified_by_client(ec));
    eldbus_service_signal_send(th_data->iface, sig);
 
    return ECORE_CALLBACK_PASS_ON;
index 3f52d24259559881367a2a9697cdc6aa5c4b09f7..0a6506501830881f105451b900afb8d75561a16c 100644 (file)
@@ -114,7 +114,7 @@ _e_cbhm_vis_change(E_Policy_Cbhm *cbhm, Eina_Bool vis)
         if (ec->iconic)
           {
              ELOGF("CBHM", "Un-set ICONIFY BY CBHM", ec);
-             if ((ec->iconic) && (!ec->exp_iconify.by_client))
+             if ((ec->iconic) && (!e_client_is_iconified_by_client(ec)))
                e_policy_wl_iconify_state_change_send(ec, 0);
              ec->exp_iconify.not_raise = 0;
              e_client_uniconify(ec);
@@ -137,6 +137,7 @@ _e_cbhm_vis_change(E_Policy_Cbhm *cbhm, Eina_Bool vis)
              ELOGF("CBHM", "Set ICONIFY BY CBHM", ec);
              e_policy_wl_iconify_state_change_send(ec, 1);
              ec->exp_iconify.by_client = 0;
+             e_client_iconified_type_set(ec, E_ICONIFIED_TYPE_NONE);
              e_client_iconify(ec);
              e_client_lower(ec);
           }