diff options
author | Rafael Antognolli <rafael.antognolli@intel.com> | 2013-05-21 16:43:09 -0300 |
---|---|---|
committer | Rafael Antognolli <rafael.antognolli@intel.com> | 2013-06-13 19:21:51 -0300 |
commit | 9f30870d64b8d17e7e09ace333e54f024b008944 (patch) | |
tree | b50807fdb299140e298a6d54c89a1f6563d78ad1 | |
parent | 5938b36622ba6ff1babac2577551f9c8c0e4136f (diff) | |
download | elementary-9f30870d64b8d17e7e09ace333e54f024b008944.tar.gz |
Backport: elm/framespace: Get the framespace from the theme.
Additionally, if the frame object can't be created (no theme group
available), do not use it. This will enable us to have a borderless
elm theme.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | data/themes/widgets/border.edc | 5 | ||||
-rw-r--r-- | src/lib/elm_win.c | 20 |
3 files changed, 23 insertions, 5 deletions
@@ -824,3 +824,6 @@ 2013-06-11 Daniel Willmann * Make elm_tooltip more robust if not run inside X + +2013-06-13 Rafael Antognolli + * Get the framespace from the theme. diff --git a/data/themes/widgets/border.edc b/data/themes/widgets/border.edc index f979a04ff..35c4d9494 100644 --- a/data/themes/widgets/border.edc +++ b/data/themes/widgets/border.edc @@ -24,7 +24,10 @@ color_classes { group { name: "elm/border/base/default"; - data.item: "focus_highlight" "off"; + data { + item: "focus_highlight" "off"; + item: "framespace" "0 22 0 26"; + } images { image: "bd_top.png" COMP; image: "bd_top_hilight.png" COMP; diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index d46bacebd..80a30354b 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -2101,11 +2101,22 @@ static void _elm_win_frame_add(Elm_Win_Smart_Data *sd, const char *style) { - evas_output_framespace_set(sd->evas, 0, 22, 0, 26); + const char *framespacestr; + int fx = 0, fy = 0, fw = 0, fh = 0; sd->frame_obj = edje_object_add(sd->evas); - elm_widget_theme_object_set - (ELM_WIDGET_DATA(sd)->obj, sd->frame_obj, "border", "base", style); + if (!elm_widget_theme_object_set + (ELM_WIDGET_DATA(sd)->obj, sd->frame_obj, "border", "base", style)) + { + evas_object_del(sd->frame_obj); + sd->frame_obj = NULL; + return; + } + + framespacestr = edje_object_data_get(sd->frame_obj, "framespace"); + if (framespacestr) + sscanf(framespacestr, "%d %d %d %d", &fx, &fy, &fw, &fh); + evas_output_framespace_set(sd->evas, fx, fy, fw, fh); evas_object_is_frame_object_set(sd->frame_obj, EINA_TRUE); evas_object_move(sd->frame_obj, 0, 0); @@ -3146,7 +3157,8 @@ elm_win_fullscreen_set(Evas_Object *obj, ENGINE_COMPARE(ELM_WAYLAND_EGL)) _elm_win_frame_add(sd, "default"); - evas_object_show(sd->frame_obj); + if (sd->frame_obj) + evas_object_show(sd->frame_obj); } TRAP(sd, fullscreen_set, fullscreen); |