diff --git a/src/modules/evas/engines/software_x11/evas_xlib_swapbuf.c b/src/modules/evas/engines/software_x11/evas_xlib_swapbuf.c index 2c83f6a43e..edcb63a47f 100644 --- a/src/modules/evas/engines/software_x11/evas_xlib_swapbuf.c +++ b/src/modules/evas/engines/software_x11/evas_xlib_swapbuf.c @@ -230,16 +230,17 @@ evas_software_xlib_swapbuf_new_region_for_update(Outbuf *buf, int x, int y, int data = evas_xlib_swapper_buffer_map(buf->priv.swapper, &bpl, &(ww), &(hh)); + // To take stride into account, we do use bpl as the real image width, but return the real useful one. #ifdef EVAS_CSERVE2 if (evas_cserve2_use_get()) im = (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(), - ww, hh, data, + bpl / sizeof (int), hh, data, buf->priv.destination_alpha, EVAS_COLORSPACE_ARGB8888); else #endif im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(), - ww, hh, data, + bpl / sizeof (int), hh, data, buf->priv.destination_alpha, EVAS_COLORSPACE_ARGB8888); buf->priv.onebuf = im;