diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2017-06-02 14:19:39 -0500 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2017-06-02 15:50:09 -0500 |
commit | cc708064979314a94971fa00668ae14e6d1cab43 (patch) | |
tree | ef3fa8a22b7e483b2e8101860e298888a552dbec | |
parent | 280c82fdd4af1e9d9446983627a9db992b9ba348 (diff) | |
download | efl-cc708064979314a94971fa00668ae14e6d1cab43.tar.gz |
ecore_evas_drm: Send a spurious pageflip when showing a canvas
This is a quick and harmless hack to make sure we don't come back to a
dead compositor on a vc switch.
A proper fix will follow eventually, I promise.
Really. Would I lie?
-rw-r--r-- | src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index c4446c11bd..b0e0ff41b9 100644 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -319,6 +319,8 @@ _drm_pointer_warp(const Ecore_Evas *ee, Evas_Coord x, Evas_Coord y) static void _drm_show(Ecore_Evas *ee) { + Ecore_Evas_Engine_Drm_Data *edata; + if ((!ee) || (ee->visible)) return; ee->should_be_visible = 1; @@ -344,6 +346,14 @@ _drm_show(Ecore_Evas *ee) if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee); } if (ee->func.fn_show) ee->func.fn_show(ee); + + edata = ee->engine.data; + /* HACK: sometimes we still have an animator ticking when we vc switch + * so for now we just fire off a flip here to kick it when we come back. + * This is just papering over a bug for now until I have time to track + * it down properly. :( + */ + ecore_drm2_fb_flip(NULL, edata->output); } static void |