summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-08-14 17:11:31 -0400
committerMike Blumenkrantz <zmike@samsung.com>2018-08-14 17:11:32 -0400
commit631fd714c36b253174df9edd5be5d2ae5963b4a5 (patch)
tree4351400f768fc635974edecd140a005e9b2c5d51
parent8e6d66450d8efa84697913b12a23beb747035606 (diff)
downloadefl-631fd714c36b253174df9edd5be5d2ae5963b4a5.tar.gz
ecore-evas/x: rework draw_block unsetting from ConfigureNotify
Summary: draw_block should only be unset if the event is triggered by the wm or the window is an override, otherwise it prematurely begins rendering the window at a size which may or may not be accurate ref T7008 Reviewers: devilhorns, ManMower Reviewed By: ManMower Subscribers: ManMower, cedric, #reviewers, #committers Tags: #efl_display_system Maniphest Tasks: T7008 Differential Revision: https://phab.enlightenment.org/D6793
-rw-r--r--src/modules/ecore_evas/engines/x/ecore_evas_x.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
index 4cfafcdd67..01fd64c746 100644
--- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
+++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
@@ -1650,18 +1650,22 @@ _ecore_evas_x_event_window_configure(void *data EINA_UNUSED, int type EINA_UNUSE
if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
edata = ee->engine.data;
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
- if (!edata->configured)
+ if ((e->from_wm) || (ee->prop.override))
{
- if (edata->fully_obscured)
+ if (!edata->configured)
{
- /* FIXME: round trip */
- if (!ecore_x_screen_is_composited(edata->screen_num))
+ if (edata->fully_obscured)
+ {
+ /* FIXME: round trip */
+ if (!ecore_x_screen_is_composited(edata->screen_num))
+ ee->draw_block = EINA_FALSE;
+ }
+ else
ee->draw_block = EINA_FALSE;
}
- else
- ee->draw_block = EINA_FALSE;
+ edata->configure_coming = 0;
+ edata->configured = 1;
}
- edata->configured = 1;
if (edata->direct_resize) return ECORE_CALLBACK_PASS_ON;
pointer = evas_default_device_get(ee->evas, EFL_INPUT_DEVICE_TYPE_MOUSE);
@@ -1671,7 +1675,6 @@ _ecore_evas_x_event_window_configure(void *data EINA_UNUSED, int type EINA_UNUSE
if (edata->configure_reqs > 0) edata->configure_reqs--;
- edata->configure_coming = 0;
if ((e->from_wm) || (ee->prop.override))
{
if ((ee->x != e->x) || (ee->y != e->y))