From 6e790ac6d22fe5eff0ab5a65aeff5f0d8920bfc1 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Thu, 23 Aug 2012 02:53:59 +0000 Subject: [PATCH] always guarantee there is an opaque object at the bottom of non-translucent windows. if you set media bg as png or other images with transparency, it would show garbage. SVN revision: 75586 --- src/bin/main.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bin/main.c b/src/bin/main.c index 6aef497a..41e7c304 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -13,7 +13,7 @@ int _log_domain = -1; -static Evas_Object *win = NULL, *bg = NULL, *term = NULL, *media = NULL; +static Evas_Object *win = NULL, *bg = NULL, *backbg = NULL, *term = NULL, *media = NULL; static Evas_Object *cmdbox = NULL; static Evas_Object *popmedia = NULL; static Evas_Object *conform = NULL; @@ -248,11 +248,13 @@ main_trans_update(const Config *config) { edje_object_signal_emit(bg, "translucent,on", "terminology"); elm_win_alpha_set(win, EINA_TRUE); + evas_object_hide(backbg); } else { edje_object_signal_emit(bg, "translucent,off", "terminology"); elm_win_alpha_set(win, EINA_FALSE); + evas_object_show(backbg); } } @@ -641,6 +643,13 @@ elm_main(int argc, char **argv) if (override) elm_win_override_set(win, EINA_TRUE); if (maximized) elm_win_maximized_set(win, EINA_TRUE); + backbg = o = evas_object_rectangle_add(evas_object_evas_get(win)); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_win_resize_object_add(win, o); + evas_object_show(o); + conform = o = elm_conformant_add(win); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);