Eina_Bool custom_effect_callee; /* custom effect enabled */
const char *appid;
+ Evas_Object *input_block_obj;
} E_Policy_Wl_Tzlaunch_Splash;
typedef struct _E_Policy_Wl_Tzlaunch_Effect_Info
tzlaunch_splash->obj = NULL;
}
+static void
+_launchscreen_splash_cb_show(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+ E_Policy_Wl_Tzlaunch_Splash *tzlaunch_splash = data;
+
+ if ((tzlaunch_splash) &&
+ (tzlaunch_splash->obj == obj) &&
+ (tzlaunch_splash->input_block_obj))
+ {
+ ELOGF("TZPOL", "Raise input blocker for launchscreen", tzlaunch_splash->ec);
+ evas_object_show(tzlaunch_splash->input_block_obj);
+ evas_object_raise(tzlaunch_splash->input_block_obj);
+ }
+}
+
static void
_launchscreen_splash_cb_hide(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
{
"Launchscreen hide | pid %d, replaced:%d, tzlaunch_pixmap:%p, ec_pixmap:%p",
ec, tzlaunch_splash->pid, tzlaunch_splash->replaced, tzlaunch_splash->ep, ec->pixmap);
+ if (tzlaunch_splash->input_block_obj)
+ {
+ ELOGF("TZPOL", "Remove input blocker for launchscreen", ec);
+ evas_object_del(tzlaunch_splash->input_block_obj);
+ tzlaunch_splash->input_block_obj = NULL;
+ }
+
if (tzlaunch_splash->indicator_obj)
{
e_comp_object_indicator_unswallow(ec->frame, tzlaunch_splash->indicator_obj);
}
}
+ if (splash->input_block_obj)
+ {
+ ELOGF("TZPOL", "Setup input blocker for launchscreen", ec);
+ evas_object_move(splash->input_block_obj, 0, 0);
+ evas_object_resize(splash->input_block_obj, e_comp->w, e_comp->h);
+ evas_object_freeze_events_set(splash->input_block_obj, EINA_TRUE);
+ evas_object_show(splash->input_block_obj);
+ }
/* Post job of setup content_type */
evas_object_event_callback_add(splash->obj,
EVAS_CALLBACK_DEL,
_launchscreen_splash_cb_del, splash);
+ evas_object_event_callback_add(splash->obj,
+ EVAS_CALLBACK_SHOW,
+ _launchscreen_splash_cb_show, splash);
evas_object_event_callback_add(splash->obj,
EVAS_CALLBACK_HIDE,
_launchscreen_splash_cb_hide, splash);
tzlaunch_splash->ec->icccm.name = eina_stringshare_add("Launchscreen");
tzlaunch_splash->ec->ignored = EINA_TRUE;
+ tzlaunch_splash->input_block_obj = evas_object_rectangle_add(e_comp->evas);
+ evas_object_name_set(tzlaunch_splash->input_block_obj, "tzlaunch_splash->input_block_obj");
+ evas_object_move(tzlaunch_splash->input_block_obj, tzlaunch_splash->ec->x, tzlaunch_splash->ec->y);
+ evas_object_resize(tzlaunch_splash->input_block_obj, tzlaunch_splash->ec->w, tzlaunch_splash->ec->h);
+ evas_object_color_set(tzlaunch_splash->input_block_obj, 0, 0, 0, 0);
+ evas_object_smart_member_add(tzlaunch_splash->input_block_obj, tzlaunch_splash->ec->frame);
+ ELOGF("TZPOL", "Create input blocker for launchscreen", tzlaunch_splash->ec);
+
e_comp->launchscrns = eina_list_append(e_comp->launchscrns, tzlaunch_splash->ec);
return tzlaunch_splash;
if (tzlaunch_splash)
{
ERR("Could not initialize launchscreen client");
+ if (tzlaunch_splash->input_block_obj)
+ evas_object_del(tzlaunch_splash->input_block_obj);
if (tzlaunch_splash->ep)
e_pixmap_win_id_del(tzlaunch_splash->ep);
if (tzlaunch_splash->ec)
if (tzlaunch_splash->obj)
{
evas_object_event_callback_del_full(tzlaunch_splash->obj, EVAS_CALLBACK_DEL, _launchscreen_splash_cb_del, tzlaunch_splash);
+ evas_object_event_callback_del_full(tzlaunch_splash->obj, EVAS_CALLBACK_SHOW, _launchscreen_splash_cb_show, tzlaunch_splash);
evas_object_event_callback_del_full(tzlaunch_splash->obj, EVAS_CALLBACK_HIDE, _launchscreen_splash_cb_hide, tzlaunch_splash);
}