_e_client_hook_call(E_CLIENT_HOOK_ICONIFY, ec);
- if (ec->exp_iconify.buffer_flush)
- e_pixmap_buffer_clear(ec->pixmap, EINA_FALSE);
-
TRACE_DS_END();
}
}
state->buffer_viewport.changed = 0;
+
+ if (buffer &&
+ ec->exp_iconify.buffer_flush &&
+ e_policy_visibility_client_is_iconic(ec))
+ {
+ e_pixmap_buffer_clear(ec->pixmap, EINA_FALSE);
+ }
}
static void
vc->state = ec->iconic ? E_VIS_ICONIFY_STATE_ICONIC : E_VIS_ICONIFY_STATE_UNICONIC;
VS_DBG(ec, "\tUPDATE ICONIC STATE: %s", STATE_STR(vc));
vc->prepare_emitted = 0;
+
+ if (ec->exp_iconify.buffer_flush)
+ e_pixmap_buffer_clear(ec->pixmap, EINA_FALSE);
}
static void
_e_vis_client_defer_move(vc, E_VIS_JOB_TYPE_DEFER_MOVE, x, y);
}
+E_API Eina_Bool
+e_policy_visibility_client_is_iconic(E_Client *ec)
+{
+ E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE);
+
+ return _e_vis_client_is_iconic(vc);
+}
+
E_API E_Pol_Vis_Hook *
e_policy_visibility_hook_add(E_Pol_Vis_Hook_Type type, E_Pol_Vis_Hook_Cb cb, const void *data)
{
E_API void e_policy_visibility_client_grab_release(E_Vis_Grab *grab);
E_API E_Pol_Vis_Hook *e_policy_visibility_hook_add(E_Pol_Vis_Hook_Type type, E_Pol_Vis_Hook_Cb cb, const void *data);
E_API void e_policy_visibility_hook_del(E_Pol_Vis_Hook *h);
+E_API Eina_Bool e_policy_visibility_client_is_iconic(E_Client *ec);
EINTERN void e_policy_visibility_client_defer_move(E_Client *ec, int x, int y);