diff options
author | Chris Michael <cp.michael@samsung.com> | 2017-01-11 12:19:25 -0500 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2017-01-11 12:36:33 -0500 |
commit | 6c9dc2a5ba61f0409001115d0d31adc1e5c48e48 (patch) | |
tree | 3a49d4997f5e6e16a57d0fbcd629f6bc849e819b /src | |
parent | 4bb9038b679da22cb06cde084afd904802ef25ce (diff) |
evas-wayland-shm: Compare hidden flag during reconfigure
Small patch to compare if the hidden flag being passed in is the same
as the one stored in Outbuf. With the addition of xdg_shell v6
support, we cannot commit a surface with an existing buffer until the
surface has been configured. In order to facilitate this, we will use
the 'hidden' flag so that any surface_post does not actually attach a
buffer unless configure has already been handled on the surface.
ref T5090
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/evas/engines/wayland_shm/evas_outbuf.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules/evas/engines/wayland_shm/evas_outbuf.c b/src/modules/evas/engines/wayland_shm/evas_outbuf.c index 653d8ece3f..b76efadca1 100644 --- a/src/modules/evas/engines/wayland_shm/evas_outbuf.c +++ b/src/modules/evas/engines/wayland_shm/evas_outbuf.c | |||
@@ -356,7 +356,8 @@ _evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth depth, | |||
356 | 356 | ||
357 | if (!ob->dirty && (ob->w == w) && (ob->h == h) && | 357 | if (!ob->dirty && (ob->w == w) && (ob->h == h) && |
358 | (ob->rotation == rot) && (ob->depth == depth) && | 358 | (ob->rotation == rot) && (ob->depth == depth) && |
359 | (ob->priv.destination_alpha == alpha)) | 359 | (ob->priv.destination_alpha == alpha) && |
360 | (ob->hidden == hidden)) | ||
360 | return; | 361 | return; |
361 | 362 | ||
362 | dirty = ob->dirty; | 363 | dirty = ob->dirty; |
@@ -369,8 +370,6 @@ _evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth depth, | |||
369 | ob->priv.destination_alpha = alpha; | 370 | ob->priv.destination_alpha = alpha; |
370 | ob->hidden = hidden; | 371 | ob->hidden = hidden; |
371 | 372 | ||
372 | if (ob->hidden) return; | ||
373 | |||
374 | if ((ob->rotation == 0) || (ob->rotation == 180)) | 373 | if ((ob->rotation == 0) || (ob->rotation == 180)) |
375 | { | 374 | { |
376 | ob->surface->funcs.reconfigure(ob->surface, w, h, resize, dirty); | 375 | ob->surface->funcs.reconfigure(ob->surface, w, h, resize, dirty); |
@@ -391,6 +390,8 @@ _evas_outbuf_update_region_new(Outbuf *ob, int x, int y, int w, int h, int *cx, | |||
391 | 390 | ||
392 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | 391 | LOGFN(__FILE__, __LINE__, __FUNCTION__); |
393 | 392 | ||
393 | if (ob->hidden) return NULL; | ||
394 | |||
394 | RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, ob->w, ob->h); | 395 | RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, ob->w, ob->h); |
395 | if ((w <= 0) || (h <= 0)) return NULL; | 396 | if ((w <= 0) || (h <= 0)) return NULL; |
396 | 397 | ||
@@ -519,6 +520,8 @@ _evas_outbuf_update_region_push(Outbuf *ob, RGBA_Image *update, int x, int y, in | |||
519 | /* check for pending writes */ | 520 | /* check for pending writes */ |
520 | if (!ob->priv.pending_writes) return; | 521 | if (!ob->priv.pending_writes) return; |
521 | 522 | ||
523 | if (ob->hidden) return; | ||
524 | |||
522 | if ((ob->rotation == 0) || (ob->rotation == 180)) | 525 | if ((ob->rotation == 0) || (ob->rotation == 180)) |
523 | { | 526 | { |
524 | func = | 527 | func = |