From: Carsten Haitzler Date: Tue, 16 Mar 2010 08:54:57 +0000 (+0000) Subject: fix missed expose in comp X-Git-Tag: submit/efl/20131021.015651~7990 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f85d9326b8fbe4cbc88143d6ff28bfb5c973b15e;p=platform%2Fupstream%2Fenlightenment.git fix missed expose in comp SVN revision: 47282 --- diff --git a/src/modules/comp/e_mod_comp.c b/src/modules/comp/e_mod_comp.c index 522ba21..7a57044 100644 --- a/src/modules/comp/e_mod_comp.c +++ b/src/modules/comp/e_mod_comp.c @@ -1769,6 +1769,26 @@ _e_mod_comp_damage(void *data, int type, void *event) } static int +_e_mod_comp_damage_win(void *data, int type, void *event) +{ + Ecore_X_Event_Window_Damage *ev = event; + Eina_List *l; + E_Comp *c; + + // fixme: use hash if compositors list > 4 + EINA_LIST_FOREACH(compositors, l, c) + { + if (ev->win == c->ee_win) + { + // expose on comp win - init win or some other bypass win did it + _e_mod_comp_render_queue(c); + break; + } + } + return 1; +} + +static int _e_mod_comp_randr(void *data, int type, void *event) { Eina_List *l; @@ -1983,7 +2003,7 @@ _e_mod_comp_add(E_Manager *man) c->evas = ecore_evas_get(c->ee); ecore_evas_show(c->ee); - c->ee_win = ecore_evas_software_x11_window_get(c->ee); + c->ee_win = ecore_evas_window_get(c->ee); ecore_x_screen_is_composited_set(c->man->num, c->ee_win); ecore_x_composite_redirect_subwindows (c->man->root, ECORE_X_COMPOSITE_UPDATE_MANUAL); @@ -2084,6 +2104,7 @@ e_mod_comp_init(void) handlers = eina_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_mod_comp_message, NULL)); handlers = eina_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHAPE, _e_mod_comp_shape, NULL)); handlers = eina_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_DAMAGE_NOTIFY, _e_mod_comp_damage, NULL)); + handlers = eina_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DAMAGE, _e_mod_comp_damage_win, NULL)); handlers = eina_list_append(handlers, ecore_event_handler_add(E_EVENT_CONTAINER_RESIZE, _e_mod_comp_randr, NULL));