static Ecore_Timer *action_timeout = NULL;
static Eina_Bool gl_avail = EINA_FALSE;
+E_Launch_Screen *launch_scrn = NULL;
+
static double ecore_frametime = 0;
static int _e_comp_log_dom = -1;
e_comp_client_redirect_toggle(e_client_focused_get());
}
+static void
+_e_launchscreen_free(E_Launch_Screen *plscrn)
+{
+ if(plscrn->shobj) evas_object_del(plscrn->shobj);
+ E_FREE(plscrn);
+}
+
+E_Launch_Screen *
+_e_launchscreen_new(Ecore_Evas *ee)
+{
+ E_Launch_Screen *plscrn = NULL;
+
+ EINA_SAFETY_ON_NULL_GOTO(ee, error);
+
+ if ((conf) && (conf->launch_file))
+ {
+ if(!edje_file_group_exists(conf->launch_file, "e/comp/effects/launch"))
+ goto error;
+ }
+
+ plscrn = E_NEW(E_Launch_Screen, 1);
+ EINA_SAFETY_ON_NULL_GOTO(plscrn, error);
+
+ plscrn->shobj = edje_object_add(e_comp->evas);
+ evas_object_name_set(plscrn->shobj, "launch_screen");
+
+ evas_object_move(plscrn->shobj, 0, 0);
+ evas_object_resize(plscrn->shobj, e_comp->w, e_comp->h);
+ evas_object_layer_set(plscrn->shobj, E_LAYER_CLIENT_TOP);
+ edje_object_file_set(plscrn->shobj, conf->launch_file, "e/comp/effects/launch");
+ return plscrn;
+
+error:
+ ERR("Could not initialize launchscreen");
+ return NULL;
+}
+
//////////////////////////////////////////////////////////////////////////
EINTERN Eina_Bool
e_object_del(E_OBJECT(ec));
}
+ if (e_comp->launchscrn)
+ {
+ _e_launchscreen_free(e_comp->launchscrn);
+ }
+
#ifdef HAVE_WAYLAND
e_comp_wl_shutdown();
#endif
e_pointer_hide(e_comp->pointer);
}
+ /* launchscreen setting */
+ if (!e_comp->launchscrn)
+ {
+ e_comp->launchscrn = _e_launchscreen_new(e_comp->ee);
+ }
+
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
e_comp_wl_deferred_job();
#endif
E_CONFIG_VAL(D, T, skip_first_damage, UCHAR);
E_CONFIG_VAL(D, T, disable_screen_effects, UCHAR);
E_CONFIG_VAL(D, T, enable_advanced_features, UCHAR);
+ E_CONFIG_VAL(D, T, launch_file, STR);
E_CONFIG_VAL(D, T, fast_popups, UCHAR);
E_CONFIG_VAL(D, T, fast_borders, UCHAR);
E_CONFIG_VAL(D, T, fast_menus, UCHAR);
cfg->smooth_windows = 0; // 1 if gl, 0 if not
cfg->first_draw_delay = 0.15;
cfg->skip_first_damage = 1;
+ cfg->launch_file = NULL;
cfg->match.popups = NULL;
eina_stringshare_del(cfg->effect_style);
eina_stringshare_del(cfg->effect_file);
eina_stringshare_del(cfg->shadow_style);
+ eina_stringshare_del(cfg->launch_file);
E_FREE_LIST(cfg->match.popups, e_comp_cfdata_match_free);
E_FREE_LIST(cfg->match.borders, e_comp_cfdata_match_free);