summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--src/modules/comp/e_mod_comp.c34
2 files changed, 22 insertions, 13 deletions
diff --git a/AUTHORS b/AUTHORS
index 11d58ec2c..f08a69f62 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -30,3 +30,4 @@ billiob (Boris Faure) <billiob@gmail.com>
30Jihoon Kim <jihoon48.kim@samsung.com> 30Jihoon Kim <jihoon48.kim@samsung.com>
31Sthitha <iamsthitha@gmail> 31Sthitha <iamsthitha@gmail>
32Doyoun Kang <doyoun.kang@samsung.com> 32Doyoun Kang <doyoun.kang@samsung.com>
33Gwanglim Lee <gl77.lee@samsung.com>
diff --git a/src/modules/comp/e_mod_comp.c b/src/modules/comp/e_mod_comp.c
index 576702bdd..b0b4c470c 100644
--- a/src/modules/comp/e_mod_comp.c
+++ b/src/modules/comp/e_mod_comp.c
@@ -3164,10 +3164,30 @@ _e_mod_comp_add(E_Manager *man)
3164 E_Comp *c; 3164 E_Comp *c;
3165 Ecore_X_Window *wins; 3165 Ecore_X_Window *wins;
3166 Ecore_X_Window_Attributes att; 3166 Ecore_X_Window_Attributes att;
3167 Eina_Bool res;
3167 int i, num; 3168 int i, num;
3168 3169
3169 c = calloc(1, sizeof(E_Comp)); 3170 c = calloc(1, sizeof(E_Comp));
3170 if (!c) return NULL; 3171 if (!c) return NULL;
3172
3173 res = ecore_x_screen_is_composited(man->num);
3174 if (res)
3175 {
3176 e_util_dialog_internal
3177 (_("Compositor Error"),
3178 _("Another compositor is already running<br>"
3179 "on your screen."));
3180 free(c);
3181 return NULL;
3182 }
3183
3184 c->cm_selection = ecore_x_window_input_new(man->root, 0, 0, 1, 1);
3185 if (!c->cm_selection)
3186 {
3187 free(c);
3188 return NULL;
3189 }
3190 ecore_x_screen_is_composited_set(man->num, c->cm_selection);
3171 3191
3172 ecore_x_e_comp_sync_supported_set(man->root, _comp_mod->conf->efl_sync); 3192 ecore_x_e_comp_sync_supported_set(man->root, _comp_mod->conf->efl_sync);
3173 3193
@@ -3199,16 +3219,6 @@ _e_mod_comp_add(E_Manager *man)
3199 return NULL; 3219 return NULL;
3200 } 3220 }
3201 3221
3202 /* FIXME check if already composited? */
3203 c->cm_selection = ecore_x_window_input_new(man->root, 0, 0, 1, 1);
3204 if (!c->cm_selection)
3205 {
3206 ecore_x_composite_render_window_disable(c->win);
3207 free(c);
3208 return NULL;
3209 }
3210 ecore_x_screen_is_composited_set(c->man->num, c->cm_selection);
3211
3212 if (c->man->num == 0) e_alert_composite_win = c->win; 3222 if (c->man->num == 0) e_alert_composite_win = c->win;
3213 3223
3214 if (_comp_mod->conf->engine == ENGINE_GL) 3224 if (_comp_mod->conf->engine == ENGINE_GL)
@@ -3264,7 +3274,6 @@ _e_mod_comp_add(E_Manager *man)
3264 ecore_evas_show(c->ee); 3274 ecore_evas_show(c->ee);
3265 3275
3266 c->ee_win = ecore_evas_window_get(c->ee); 3276 c->ee_win = ecore_evas_window_get(c->ee);
3267 ecore_x_screen_is_composited_set(c->man->num, c->ee_win);
3268 ecore_x_composite_redirect_subwindows 3277 ecore_x_composite_redirect_subwindows
3269 (c->man->root, ECORE_X_COMPOSITE_UPDATE_MANUAL); 3278 (c->man->root, ECORE_X_COMPOSITE_UPDATE_MANUAL);
3270 3279
@@ -3365,7 +3374,6 @@ _e_mod_comp_del(E_Comp *c)
3365 c->grabbed = 0; 3374 c->grabbed = 0;
3366 ecore_x_ungrab(); 3375 ecore_x_ungrab();
3367 } 3376 }
3368 ecore_x_screen_is_composited_set(c->man->num, 0);
3369 while (c->wins) 3377 while (c->wins)
3370 { 3378 {
3371 cw = (E_Comp_Win *)(c->wins); 3379 cw = (E_Comp_Win *)(c->wins);
@@ -3390,8 +3398,8 @@ _e_mod_comp_del(E_Comp *c)
3390 if (c->wins_list) eina_list_free(c->wins_list); 3398 if (c->wins_list) eina_list_free(c->wins_list);
3391 3399
3392 ecore_x_window_free(c->cm_selection); 3400 ecore_x_window_free(c->cm_selection);
3393 ecore_x_screen_is_composited_set(c->man->num, 0);
3394 ecore_x_e_comp_sync_supported_set(c->man->root, 0); 3401 ecore_x_e_comp_sync_supported_set(c->man->root, 0);
3402 ecore_x_screen_is_composited_set(c->man->num, 0);
3395 3403
3396 free(c); 3404 free(c);
3397} 3405}