forked from enlightenment/efl
elm scroller - fix self feeding reconfigure to bail out on many loops
This commit is contained in:
parent
c45fd8aff3
commit
1d4b74e1de
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue