diff --git a/legacy/elementary/data/themes/edc/elm/scroller.edc b/legacy/elementary/data/themes/edc/elm/scroller.edc index a1a02f3b36..e36abd6ac2 100644 --- a/legacy/elementary/data/themes/edc/elm/scroller.edc +++ b/legacy/elementary/data/themes/edc/elm/scroller.edc @@ -41,10 +41,7 @@ group { name: "elm/scroller/base/default"; } // vert bar //////////////////////////////////////////////////////////////// part { name: "sb_vbar_show"; type: RECT; - scale: 1; description { state: "default" 0.0; -// rel1.offset: -11 -11; -// rel2.offset: 10 10; } description { state: "hidden" 0.0; inherit: "default" 0.0; @@ -54,8 +51,8 @@ group { name: "elm/scroller/base/default"; part { name: "sb_vbar"; type: RECT; scale: 1; description { state: "default" 0.0; - fixed: 1 0; - min: 15 15; + fixed: 1 1; + min: 15 1; align: 1.0 0.0; rel1.relative: 1.0 0.0; rel1.offset: -1 0; @@ -76,6 +73,7 @@ group { name: "elm/scroller/base/default"; rel1.to: "sb_vbar_a1"; rel2.relative: 1.0 0.0; rel2.to: "sb_vbar_a2"; + fixed: 1 1; } } part { name: "sb_vbar_p1"; type: RECT; @@ -86,6 +84,7 @@ group { name: "elm/scroller/base/default"; rel1.to: "sb_vbar_a1"; rel2.relative: 1.0 0.0; rel2.to: "elm.dragable.vbar"; + fixed: 1 1; } } part { name: "sb_vbar_p2"; type: RECT; @@ -96,6 +95,7 @@ group { name: "elm/scroller/base/default"; rel1.to: "elm.dragable.vbar"; rel2.relative: 1.0 0.0; rel2.to: "sb_vbar_a2"; + fixed: 1 1; } } part { name: "elm.dragable.vbar"; type: RECT; @@ -106,13 +106,17 @@ group { name: "elm/scroller/base/default"; dragable.confine: "sb_vbar_base"; description { state: "default" 0.0; fixed: 1 1; - min: 15 15; + min: 15 1; rel1.relative: 0.5 0.5; rel1.to: "sb_vbar_base"; rel2.relative: 0.5 0.5; rel2.to: "sb_vbar_base"; color: 0 0 0 0; } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + } } part { name: "sb_vbar_a1"; type: RECT; clip_to: "sb_vbar"; @@ -127,6 +131,10 @@ group { name: "elm/scroller/base/default"; rel2.relative: 1.0 0.0; rel2.offset: -1 0; } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + } } part { name: "sb_vbar_a2"; type: RECT; clip_to: "sb_vbar"; @@ -141,18 +149,28 @@ group { name: "elm/scroller/base/default"; rel1.relative: 0.0 1.0; rel2.to: "sb_vbar"; } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + } } program { signal: "elm,action,show,vbar"; source: "elm"; action: STATE_SET "default" 0.0; target: "sb_vbar"; target: "sb_vbar_show"; + target: "elm.dragable.vbar"; + target: "sb_vbar_a1"; + target: "sb_vbar_a2"; } program { signal: "elm,action,hide,vbar"; source: "elm"; action: STATE_SET "hidden" 0.0; target: "sb_vbar"; target: "sb_vbar_show"; + target: "elm.dragable.vbar"; + target: "sb_vbar_a1"; + target: "sb_vbar_a2"; } program { signal: "mouse,down,1*"; source: "sb_vbar_a1"; @@ -201,10 +219,7 @@ group { name: "elm/scroller/base/default"; // horiz bar ///////////////////////////////////////////////////////////// part { name: "sb_hbar_show"; type: RECT; - scale: 1; description { state: "default" 0.0; -// rel1.offset: -11 -11; -// rel2.offset: 10 10; } description { state: "hidden" 0.0; inherit: "default" 0.0; @@ -214,8 +229,8 @@ group { name: "elm/scroller/base/default"; part { name: "sb_hbar"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; - fixed: 0 1; - min: 15 15; + fixed: 1 1; + min: 1 15; align: 0.0 1.0; rel1.relative: 0.0 1.0; rel1.offset: 0 -1; @@ -236,6 +251,7 @@ group { name: "elm/scroller/base/default"; rel1.to: "sb_hbar_a1"; rel2.relative: 0.0 1.0; rel2.to: "sb_hbar_a2"; + fixed: 1 1; } } part { name: "sb_hbar_p1"; type: RECT; @@ -246,6 +262,7 @@ group { name: "elm/scroller/base/default"; rel1.to: "sb_hbar_a1"; rel2.relative: 0.0 1.0; rel2.to: "elm.dragable.hbar"; + fixed: 1 1; } } part { name: "sb_hbar_p2"; type: RECT; @@ -256,6 +273,7 @@ group { name: "elm/scroller/base/default"; rel1.to: "elm.dragable.hbar"; rel2.relative: 0.0 1.0; rel2.to: "sb_hbar_a2"; + fixed: 1 1; } } part { name: "elm.dragable.hbar"; type: RECT; @@ -266,13 +284,17 @@ group { name: "elm/scroller/base/default"; dragable.confine: "sb_hbar_base"; description { state: "default" 0.0; fixed: 1 1; - min: 15 15; + min: 1 15; rel1.relative: 0.5 0.5; rel1.to: "sb_hbar_base"; rel2.relative: 0.5 0.5; rel2.to: "sb_hbar_base"; color: 0 0 0 0; } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + } } part { name: "sb_hbar_a1"; type: RECT; clip_to: "sb_hbar"; @@ -287,6 +309,10 @@ group { name: "elm/scroller/base/default"; rel2.relative: 0.0 1.0; rel2.offset: 0 -1; } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + } } part { name: "sb_hbar_a2"; type: RECT; clip_to: "sb_hbar"; @@ -301,18 +327,28 @@ group { name: "elm/scroller/base/default"; rel1.relative: 1.0 0.0; rel2.to: "sb_hbar"; } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + } } program { signal: "elm,action,show,hbar"; source: "elm"; action: STATE_SET "default" 0.0; target: "sb_hbar"; target: "sb_hbar_show"; + target: "elm.dragable.hbar"; + target: "sb_hbar_a1"; + target: "sb_hbar_a2"; } program { signal: "elm,action,hide,hbar"; source: "elm"; action: STATE_SET "hidden" 0.0; target: "sb_hbar"; target: "sb_hbar_show"; + target: "elm.dragable.hbar"; + target: "sb_hbar_a1"; + target: "sb_hbar_a2"; } program { signal: "mouse,down,1*"; source: "sb_hbar_a1"; @@ -424,6 +460,7 @@ group { name: "elm/scroller/base/default"; rel2.to: "elm.swallow.content"; } } + part { name: "runner_vbar"; mouse_events: 0; clip_to: "sb_vbar_show"; description { state: "default" 0.0; @@ -434,6 +471,7 @@ group { name: "elm/scroller/base/default"; fill.smooth: 0; min: 3 4; max: 3 99999; + fixed: 1 1; } } part { name: "runner_hbar"; mouse_events: 0; @@ -446,6 +484,7 @@ group { name: "elm/scroller/base/default"; fill.smooth: 0; min: 4 3; max: 99999 3; + fixed: 1 1; } } part { name: "runner_vbar_clip"; type: RECT; @@ -457,6 +496,7 @@ group { name: "elm/scroller/base/default"; rel1.offset: 0 1; rel2.to: "runner_vbar"; rel2.offset: -1 -2; + fixed: 1 1; } } part { name: "runner_hbar_clip"; type: RECT; @@ -468,6 +508,7 @@ group { name: "elm/scroller/base/default"; rel1.offset: 1 0; rel2.to: "runner_hbar"; rel2.offset: -2 -1; + fixed: 1 1; } } @@ -507,6 +548,7 @@ group { name: "elm/scroller/base/default"; image.normal: "shadow_square_tiny.png"; image.border: 6 6 6 6; fill.smooth: 0; + fixed: 1 1; } description { state: "clicked" 0.0; inherit: "default" 0.0; @@ -526,6 +568,7 @@ group { name: "elm/scroller/base/default"; image.border: 7 7 7 7; fill.smooth: 0; visible: 0; + fixed: 1 1; } description { state: "clicked" 0.0; inherit: "default" 0.0; @@ -543,6 +586,7 @@ group { name: "elm/scroller/base/default"; rel2.to_y: "base_vbar"; image.normal: "runner_glow_vert.png"; image.border: 0 0 33 33; + fixed: 1 1; } } part { name: "base_vbar"; mouse_events: 0; @@ -557,6 +601,7 @@ group { name: "elm/scroller/base/default"; fill.smooth: 0; min: 3 13; TILED_HORIZ(120) + fixed: 1 1; } } part { name: "bevel_vbar"; mouse_events: 0; @@ -569,6 +614,7 @@ group { name: "elm/scroller/base/default"; image.middle: 0; fill.smooth: 0; min: 3 3; + fixed: 1 1; } } part { name: "center_vbar"; mouse_events: 0; @@ -631,6 +677,7 @@ group { name: "elm/scroller/base/default"; image.normal: "shadow_square_tiny.png"; image.border: 6 6 6 6; fill.smooth: 0; + fixed: 1 1; } description { state: "clicked" 0.0; inherit: "default" 0.0; @@ -650,6 +697,7 @@ group { name: "elm/scroller/base/default"; image.border: 7 7 7 7; fill.smooth: 0; visible: 0; + fixed: 1 1; } description { state: "clicked" 0.0; inherit: "default" 0.0; @@ -667,6 +715,7 @@ group { name: "elm/scroller/base/default"; rel2.to_y: "runner_hbar_clip"; image.normal: "runner_glow_horiz.png"; image.border: 33 33 0 0; + fixed: 1 1; } } part { name: "base_hbar"; mouse_events: 0; @@ -693,6 +742,7 @@ group { name: "elm/scroller/base/default"; image.middle: 0; fill.smooth: 0; min: 3 3; + fixed: 1 1; } } part { name: "center_hbar"; mouse_events: 0; @@ -702,6 +752,7 @@ group { name: "elm/scroller/base/default"; rel2.to: "base_hbar"; image.normal: "holes_tiny_horiz.png"; FIXED_SIZE(11, 3) + fixed: 1 1; } } part { name: "center_glow_hbar"; mouse_events: 0; diff --git a/legacy/elementary/src/lib/elm_interface_scrollable.c b/legacy/elementary/src/lib/elm_interface_scrollable.c index d6c0fc0d9a..06290c657d 100644 --- a/legacy/elementary/src/lib/elm_interface_scrollable.c +++ b/legacy/elementary/src/lib/elm_interface_scrollable.c @@ -3470,19 +3470,32 @@ _on_edje_move(void *data, static void _on_edje_resize(void *data, - Evas *e EINA_UNUSED, + Evas *e, Evas_Object *edje_obj, void *event_info EINA_UNUSED) { Elm_Scrollable_Smart_Interface_Data *sid = data; - int w, h; + Evas_Coord w, h; + int current_calc; + Eina_Bool reconf_ok = EINA_TRUE; evas_object_geometry_get(edje_obj, NULL, NULL, &w, &h); sid->w = w; sid->h = h; - _elm_scroll_reconfigure(sid); + current_calc = evas_smart_objects_calculate_count_get(e); + if (current_calc == sid->current_calc) + { + sid->size_count++; + if (sid->size_count > 3) reconf_ok = EINA_FALSE; + } + else + { + sid->current_calc = current_calc; + sid->size_count = 0; + } + if (reconf_ok) _elm_scroll_reconfigure(sid); _elm_scroll_wanted_region_set(sid->obj); } diff --git a/legacy/elementary/src/lib/elm_interface_scrollable.h b/legacy/elementary/src/lib/elm_interface_scrollable.h index b771613e7b..3ae2699b11 100644 --- a/legacy/elementary/src/lib/elm_interface_scrollable.h +++ b/legacy/elementary/src/lib/elm_interface_scrollable.h @@ -1193,8 +1193,10 @@ struct _Elm_Scrollable_Smart_Interface_Data double pagerel_h, pagerel_v; Evas_Coord pagesize_h, pagesize_v; int page_limit_h, page_limit_v; + int current_calc; unsigned char size_adjust_recurse; + unsigned char size_count; Eina_Bool size_adjust_recurse_abort : 1; Eina_Bool momentum_animator_disabled : 1;