workaround rotation issues. 61/94361/2
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Fri, 28 Oct 2016 11:43:08 +0000 (13:43 +0200)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Wed, 2 Nov 2016 12:48:11 +0000 (13:48 +0100)
Frequently after rotating device and resize indicator disappears.
It looks like there is some engine issues with synchronizing
buffers after rotation. This patch woraround this by forcing
indicator to rerender after rotation.

Change-Id: I429b9d861012809d0cc68829f83c9257d21d74be

src/main.c

index aecf556..a9a0606 100644 (file)
@@ -305,6 +305,14 @@ static void _create_box(win_info *win)
        return;
 }
 
+static Eina_Bool _render_force(void *data)
+{
+       elm_win_render(data);
+       // below do not work - why??
+       // evas_render(evas_object_evas_get(data));
+       return EINA_FALSE;
+}
+
 static void _indicator_service_cb(void *data, tzsh_indicator_service_h service,
                int angle, int opacity)
 {
@@ -326,6 +334,10 @@ static void _indicator_service_cb(void *data, tzsh_indicator_service_h service,
                        return;
        }
        info->angle = angle;
+       // this line below is making indicator to appear, however there are some
+       // rendering artifcats, so we delay rendering
+       // elm_win_render(info->win);
+       ecore_timer_add(0.1, _render_force, info->win);
 }
 
 int indicator_tzsh_init(win_info *info)