forked from enlightenment/enlightenment
E Comp (Wayland): Only fetch pixmap from wayland if we are a 'border'
window and 'borderless' (helps reduce apparent lag people were having). NB: This is only enabled IF you do it on purpose with --enable-wayland-clients when building E17. If NOT, then it defaults to the code path that was there pre-existing. SVN revision: 67576
This commit is contained in:
parent
9619be1673
commit
a764120adf
|
@ -443,7 +443,7 @@ _e_mod_comp_win_ready_timeout_setup(E_Comp_Win *cw)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cw->ready_timeout = ecore_timer_add
|
cw->ready_timeout = ecore_timer_add
|
||||||
(_comp_mod->conf->first_draw_delay, _e_mod_comp_cb_win_show_ready_timeout, cw);
|
(_comp_mod->conf->first_draw_delay, _e_mod_comp_cb_win_show_ready_timeout, cw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -511,13 +511,13 @@ _e_mod_comp_win_update(E_Comp_Win *cw)
|
||||||
|
|
||||||
if ((!cw->pixmap) || (cw->needpix))
|
if ((!cw->pixmap) || (cw->needpix))
|
||||||
{
|
{
|
||||||
Ecore_X_Pixmap pm;
|
Ecore_X_Pixmap pm = 0;
|
||||||
|
|
||||||
/* #ifdef HAVE_WAYLAND */
|
#ifdef HAVE_WAYLAND
|
||||||
/* pm = e_mod_comp_wl_pixmap_get(cw->win); */
|
if ((cw->bd) && (cw->bd->borderless))
|
||||||
/* #endif */
|
pm = e_mod_comp_wl_pixmap_get(cw->win);
|
||||||
|
#endif
|
||||||
pm = ecore_x_composite_name_window_pixmap_get(cw->win);
|
if (!pm) pm = ecore_x_composite_name_window_pixmap_get(cw->win);
|
||||||
if (pm)
|
if (pm)
|
||||||
{
|
{
|
||||||
Ecore_X_Pixmap oldpm;
|
Ecore_X_Pixmap oldpm;
|
||||||
|
@ -601,7 +601,7 @@ _e_mod_comp_win_update(E_Comp_Win *cw)
|
||||||
/* #ifdef HAVE_WAYLAND */
|
/* #ifdef HAVE_WAYLAND */
|
||||||
/* DBG("DEBUG - pm now %x\n", e_mod_comp_wl_pixmap_get(cw->win)); */
|
/* DBG("DEBUG - pm now %x\n", e_mod_comp_wl_pixmap_get(cw->win)); */
|
||||||
/* #endif */
|
/* #endif */
|
||||||
DBG("DEBUG - pm now %x\n", ecore_x_composite_name_window_pixmap_get(cw->win));
|
/* DBG("DEBUG - pm now %x\n", ecore_x_composite_name_window_pixmap_get(cw->win)); */
|
||||||
evas_object_image_size_set(cw->obj, cw->pw, cw->ph);
|
evas_object_image_size_set(cw->obj, cw->pw, cw->ph);
|
||||||
EINA_LIST_FOREACH(cw->obj_mirror, l, o)
|
EINA_LIST_FOREACH(cw->obj_mirror, l, o)
|
||||||
{
|
{
|
||||||
|
@ -1118,11 +1118,12 @@ nocomp:
|
||||||
printf(" redr\n");
|
printf(" redr\n");
|
||||||
ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
|
ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
|
||||||
|
|
||||||
/* #ifdef HAVE_WAYLAND */
|
#ifdef HAVE_WAYLAND
|
||||||
/* cw->pixmap = e_mod_comp_wl_pixmap_get(cw->win); */
|
if ((cw->bd) && (cw->bd->borderless))
|
||||||
/* #endif */
|
cw->pixmap = e_mod_comp_wl_pixmap_get(cw->win);
|
||||||
/* if (!cw->pixmap) */
|
#endif
|
||||||
cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
|
if (!cw->pixmap)
|
||||||
|
cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
|
||||||
if (cw->pixmap)
|
if (cw->pixmap)
|
||||||
{
|
{
|
||||||
ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));
|
ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));
|
||||||
|
@ -2058,15 +2059,17 @@ _e_mod_comp_win_show(E_Comp_Win *cw)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
cw->dmg_updates = 1;
|
cw->dmg_updates = 1;
|
||||||
|
|
||||||
if ((!cw->redirected) || (!cw->pixmap))
|
if ((!cw->redirected) || (!cw->pixmap))
|
||||||
{
|
{
|
||||||
// we redirect all subwindows anyway
|
// we redirect all subwindows anyway
|
||||||
// ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
|
// ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
|
||||||
/* #ifdef HAVE_WAYLAND */
|
#ifdef HAVE_WAYLAND
|
||||||
/* cw->pixmap = e_mod_comp_wl_pixmap_get(cw->win); */
|
if ((cw->bd) && (cw->bd->borderless))
|
||||||
/* #endif */
|
cw->pixmap = e_mod_comp_wl_pixmap_get(cw->win);
|
||||||
/* if (!cw->pixmap) */
|
#endif
|
||||||
cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
|
if (!cw->pixmap)
|
||||||
|
cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
|
||||||
if (cw->pixmap)
|
if (cw->pixmap)
|
||||||
{
|
{
|
||||||
ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));
|
ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));
|
||||||
|
|
Loading…
Reference in New Issue