summaryrefslogtreecommitdiff
path: root/src/lib/elementary
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2018-01-15 17:56:31 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2018-01-15 21:18:48 +0900
commit26738a3a25507d21c5b5709a868d674546eaeb2c (patch)
treef1d99188d6d79e0ee1a89566fc7276087d04f71f /src/lib/elementary
parentb04aeb41e74a6979bfe66ef859e4d9144b3468b1 (diff)
eo: Warn on calls to NULL objectdevs/jpeg/no_null_calls
This makes eo print a WRN message in case a function is called on NULL. efl_del is an exception to this rule (implemented in a hackish way, I admit). A few (most likely not all) of said warnings have been resolved.
Diffstat (limited to 'src/lib/elementary')
-rw-r--r--src/lib/elementary/efl_ui_button.c1
-rw-r--r--src/lib/elementary/efl_ui_check.c1
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_calc.c15
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_sub.c9
-rw-r--r--src/lib/elementary/efl_ui_focus_util.c2
-rw-r--r--src/lib/elementary/efl_ui_layout.c45
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c1
-rw-r--r--src/lib/elementary/efl_ui_radio.c6
-rw-r--r--src/lib/elementary/efl_ui_widget.c12
-rw-r--r--src/lib/elementary/elm_interface_scrollable.c3
-rw-r--r--src/lib/elementary/elm_widget.h7
-rw-r--r--src/lib/elementary/els_cursor.c2
12 files changed, 74 insertions, 30 deletions
diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c
index 34dbd02..8cdfa7d 100644
--- a/src/lib/elementary/efl_ui_button.c
+++ b/src/lib/elementary/efl_ui_button.c
@@ -109,6 +109,7 @@ _icon_signal_emit(Evas_Object *obj)
109{ 109{
110 char buf[64]; 110 char buf[64];
111 111
112 if (!elm_widget_resize_object_get(obj)) return;
112 snprintf(buf, sizeof(buf), "elm,state,icon,%s", 113 snprintf(buf, sizeof(buf), "elm,state,icon,%s",
113 elm_layout_content_get(obj, "icon") ? "visible" : "hidden"); 114 elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
114 115
diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c
index f4917b3..2bb3e07 100644
--- a/src/lib/elementary/efl_ui_check.c
+++ b/src/lib/elementary/efl_ui_check.c
@@ -93,6 +93,7 @@ _icon_signal_emit(Evas_Object *obj)
93 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); 93 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
94 char buf[64]; 94 char buf[64];
95 95
96 if (!elm_widget_resize_object_get(obj)) return;
96 snprintf(buf, sizeof(buf), "elm,state,icon,%s", 97 snprintf(buf, sizeof(buf), "elm,state,icon,%s",
97 elm_layout_content_get(obj, "icon") ? "visible" : "hidden"); 98 elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
98 99
diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c
index c8641b5..2e1b10a 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -81,6 +81,8 @@ typedef struct {
81static void 81static void
82_manager_in_chain_set(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd) 82_manager_in_chain_set(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd)
83{ 83{
84 Eo *manager;
85
84 EINA_SAFETY_ON_NULL_RETURN(pd->root); 86 EINA_SAFETY_ON_NULL_RETURN(pd->root);
85 87
86 if (!efl_isa(pd->root->focusable, EFL_UI_WIN_CLASS)) 88 if (!efl_isa(pd->root->focusable, EFL_UI_WIN_CLASS))
@@ -89,7 +91,12 @@ _manager_in_chain_set(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd)
89 //so we dont run infinitly this does not fix it, but at least we only have a error 91 //so we dont run infinitly this does not fix it, but at least we only have a error
90 EINA_SAFETY_ON_TRUE_RETURN(efl_ui_focus_user_focus_manager_get(pd->root->focusable) == obj); 92 EINA_SAFETY_ON_TRUE_RETURN(efl_ui_focus_user_focus_manager_get(pd->root->focusable) == obj);
91 93
92 efl_ui_focus_manager_focus_set(efl_ui_focus_user_focus_manager_get(pd->root->focusable), pd->root->focusable); 94 manager = efl_ui_focus_user_focus_manager_get(pd->root->focusable);
95 if (manager)
96 efl_ui_focus_manager_focus_set(manager, pd->root->focusable);
97 else
98 DBG("No focus manager for focusable %s@%p",
99 efl_class_name_get(pd->root->focusable), pd->root->focusable);
93} 100}
94 101
95static Efl_Ui_Focus_Direction 102static Efl_Ui_Focus_Direction
@@ -1569,8 +1576,10 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_manager_focus_set(Eo *obj, Efl_U
1569 if (node_type == NODE_TYPE_NORMAL) 1576 if (node_type == NODE_TYPE_NORMAL)
1570 { 1577 {
1571 //populate the new change 1578 //populate the new change
1572 efl_ui_focus_object_focus_set(last_focusable, EINA_FALSE); 1579 if (last_focusable)
1573 efl_ui_focus_object_focus_set(new_focusable, EINA_TRUE); 1580 efl_ui_focus_object_focus_set(last_focusable, EINA_FALSE);
1581 if (new_focusable)
1582 efl_ui_focus_object_focus_set(new_focusable, EINA_TRUE);
1574 efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_FOCUSED, last_focusable); 1583 efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_FOCUSED, last_focusable);
1575 } 1584 }
1576 1585
diff --git a/src/lib/elementary/efl_ui_focus_manager_sub.c b/src/lib/elementary/efl_ui_focus_manager_sub.c
index 5404eb0..4e1ce22 100644
--- a/src/lib/elementary/efl_ui_focus_manager_sub.c
+++ b/src/lib/elementary/efl_ui_focus_manager_sub.c
@@ -137,10 +137,10 @@ _logical_manager_change(void *data EINA_UNUSED, const Efl_Event *ev)
137 Eina_List *n; 137 Eina_List *n;
138 Efl_Ui_Focus_User *b; 138 Efl_Ui_Focus_User *b;
139 Efl_Ui_Focus_Manager *manager; 139 Efl_Ui_Focus_Manager *manager;
140 manager = efl_ui_focus_user_focus_manager_get(ev->object);
141 140
142 if (!ev->info) return; 141 if (!ev->info) return;
143 142
143 manager = efl_ui_focus_user_focus_manager_get(ev->object);
144 EINA_LIST_FOREACH(pd->current_border, n, b) 144 EINA_LIST_FOREACH(pd->current_border, n, b)
145 { 145 {
146 if (b == ev->object) continue; 146 if (b == ev->object) continue;
@@ -156,13 +156,12 @@ _flush_manager(Eo *obj, Efl_Ui_Focus_Manager_Sub_Data *pd)
156 Efl_Ui_Focus_User *b; 156 Efl_Ui_Focus_User *b;
157 Eina_List *n; 157 Eina_List *n;
158 158
159
160 logical = efl_ui_focus_user_focus_parent_get(obj); 159 logical = efl_ui_focus_user_focus_parent_get(obj);
161 manager = efl_ui_focus_user_focus_manager_get(obj); 160 manager = efl_ui_focus_user_focus_manager_get(obj);
162 161
163 //unregister from the old 162 //unregister from the old
164 efl_event_callback_array_del(pd->manager, parent_manager(), obj); 163 if (pd->manager) efl_event_callback_array_del(pd->manager, parent_manager(), obj);
165 efl_event_callback_array_add(manager, parent_manager(), obj); 164 if (manager) efl_event_callback_array_add(manager, parent_manager(), obj);
166 165
167 EINA_LIST_FOREACH(pd->current_border , n, b) 166 EINA_LIST_FOREACH(pd->current_border , n, b)
168 { 167 {
@@ -203,7 +202,7 @@ _efl_ui_focus_manager_sub_efl_object_destructor(Eo *obj, Efl_Ui_Focus_Manager_Su
203{ 202{
204 _border_unregister(obj, pd); 203 _border_unregister(obj, pd);
205 204
206 efl_event_callback_array_del(pd->manager, parent_manager(), obj); 205 if (pd->manager) efl_event_callback_array_del(pd->manager, parent_manager(), obj);
207 206
208 efl_destructor(efl_super(obj, MY_CLASS)); 207 efl_destructor(efl_super(obj, MY_CLASS));
209} 208}
diff --git a/src/lib/elementary/efl_ui_focus_util.c b/src/lib/elementary/efl_ui_focus_util.c
index 76ec928..aa0fbbd 100644
--- a/src/lib/elementary/efl_ui_focus_util.c
+++ b/src/lib/elementary/efl_ui_focus_util.c
@@ -25,7 +25,7 @@ _efl_ui_focus_util_focus(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, Efl_Ui_Focus
25 top = elm_widget_top_get(user); 25 top = elm_widget_top_get(user);
26 26
27 o = efl_key_data_get(top, "__delayed_focus_set"); 27 o = efl_key_data_get(top, "__delayed_focus_set");
28 efl_event_callback_del(o, EFL_UI_FOCUS_USER_EVENT_MANAGER_CHANGED, _manager_changed, o); 28 if (o) efl_event_callback_del(o, EFL_UI_FOCUS_USER_EVENT_MANAGER_CHANGED, _manager_changed, o);
29 efl_key_data_set(top, "__delayed_focus_set", NULL); 29 efl_key_data_set(top, "__delayed_focus_set", NULL);
30 30
31 if (!m) 31 if (!m)
diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c
index 60c6500..cc63671 100644
--- a/src/lib/elementary/efl_ui_layout.c
+++ b/src/lib/elementary/efl_ui_layout.c
@@ -165,8 +165,12 @@ _icon_signal_emit(Efl_Ui_Layout_Data *sd,
165{ 165{
166 char buf[1024]; 166 char buf[1024];
167 const char *type; 167 const char *type;
168 Eo *edje;
168 int i; 169 int i;
169 170
171 edje = elm_widget_resize_object_get(sd->obj);
172 if (!edje) return;
173
170 //FIXME: Don't limit to the icon and end here. 174 //FIXME: Don't limit to the icon and end here.
171 // send signals for all contents after elm 2.0 175 // send signals for all contents after elm 2.0
172 if (sub_d->type != SWALLOW) return; 176 if (sub_d->type != SWALLOW) return;
@@ -184,11 +188,10 @@ _icon_signal_emit(Efl_Ui_Layout_Data *sd,
184 snprintf(buf, sizeof(buf), "elm,state,%s,%s", type, 188 snprintf(buf, sizeof(buf), "elm,state,%s,%s", type,
185 visible ? "visible" : "hidden"); 189 visible ? "visible" : "hidden");
186 190
187 ELM_WIDGET_DATA_GET_OR_RETURN(sd->obj, wd); 191 edje_object_signal_emit(edje, buf, "elm");
188 edje_object_signal_emit(wd->resize_obj, buf, "elm");
189 192
190 /* themes might need immediate action here */ 193 /* themes might need immediate action here */
191 edje_object_message_signal_process(wd->resize_obj); 194 edje_object_message_signal_process(edje);
192} 195}
193 196
194static inline void 197static inline void
@@ -640,17 +643,14 @@ _efl_ui_layout_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Layout_Data *sd)
640 Efl_Ui_Layout_Sub_Connect *sc; 643 Efl_Ui_Layout_Sub_Connect *sc;
641 Edje_Signal_Data *esd; 644 Edje_Signal_Data *esd;
642 Evas_Object *child; 645 Evas_Object *child;
643 Eina_List *l; 646 Eina_List *l, *ll;
644 647
645 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); 648 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
646 649
647 elm_layout_freeze(obj); 650 elm_layout_freeze(obj);
648 651
649 EINA_LIST_FREE(sd->subs, sub_d) 652 EINA_LIST_FOREACH_SAFE(sd->subs, l, ll, sub_d)
650 { 653 efl_ui_widget_sub_object_del(obj, sub_d->obj);
651 eina_stringshare_del(sub_d->part);
652 free(sub_d);
653 }
654 654
655 EINA_LIST_FREE(sd->parts_cursors, pc) 655 EINA_LIST_FREE(sd->parts_cursors, pc)
656 _part_cursor_free(pc); 656 _part_cursor_free(pc);
@@ -943,6 +943,13 @@ elm_layout_content_get(const Evas_Object *obj, const char *swallow)
943 else if (!_elm_layout_part_aliasing_eval(obj, &swallow, EINA_FALSE)) 943 else if (!_elm_layout_part_aliasing_eval(obj, &swallow, EINA_FALSE))
944 return NULL; 944 return NULL;
945 945
946 if (!efl_layout_group_part_exist_get(obj, swallow))
947 {
948 DBG("No such part '%s' in group '%s'",
949 swallow, elm_widget_theme_element_get(obj));
950 return NULL;
951 }
952
946 return efl_content_get(efl_part(obj, swallow)); 953 return efl_content_get(efl_part(obj, swallow));
947} 954}
948 955
@@ -951,6 +958,7 @@ _efl_ui_layout_content_get(Eo *obj, Efl_Ui_Layout_Data *sd, const char *part)
951{ 958{
952 const Eina_List *l; 959 const Eina_List *l;
953 Efl_Ui_Layout_Sub_Object_Data *sub_d; 960 Efl_Ui_Layout_Sub_Object_Data *sub_d;
961 Eo *handle;
954 962
955 EINA_LIST_FOREACH(sd->subs, l, sub_d) 963 EINA_LIST_FOREACH(sd->subs, l, sub_d)
956 { 964 {
@@ -962,7 +970,8 @@ _efl_ui_layout_content_get(Eo *obj, Efl_Ui_Layout_Data *sd, const char *part)
962 } 970 }
963 971
964 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); 972 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
965 return efl_content_get(efl_part(wd->resize_obj, part)); 973 handle = efl_part(wd->resize_obj, part);
974 return handle ? efl_content_get(handle) : NULL;
966} 975}
967 976
968EAPI Evas_Object * 977EAPI Evas_Object *
@@ -2430,17 +2439,18 @@ elm_layout_theme_set(Evas_Object *obj, const char *klass, const char *group, con
2430EOLIAN static Eo * 2439EOLIAN static Eo *
2431_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part) 2440_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part)
2432{ 2441{
2433 Efl_Canvas_Layout_Part_Type type; 2442 Efl_Canvas_Layout_Part_Type type = EFL_CANVAS_LAYOUT_PART_TYPE_NONE;
2434 2443
2435 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); 2444 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
2436 ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL); 2445 ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL);
2437 2446
2438 // Check part type without using edje_object_part_object_get(), as this 2447 // Check part type without using edje_object_part_object_get(), as this
2439 // can cause recalc, which has side effects... and could be slow. 2448 // can cause recalc, which has side effects... and could be slow.
2440 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2441 2449
2442 if (eina_streq(part, "background")) 2450 if (eina_streq(part, "background"))
2443 { 2451 {
2452 if (efl_layout_group_part_exist_get(wd->resize_obj, part))
2453 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2444 if (type != EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW) 2454 if (type != EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW)
2445 { 2455 {
2446 if (type < EFL_CANVAS_LAYOUT_PART_TYPE_LAST && 2456 if (type < EFL_CANVAS_LAYOUT_PART_TYPE_LAST &&
@@ -2459,6 +2469,10 @@ _efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED,
2459 else if (eina_streq(part, "shadow")) 2469 else if (eina_streq(part, "shadow"))
2460 return efl_part(efl_super(obj, MY_CLASS), part); 2470 return efl_part(efl_super(obj, MY_CLASS), part);
2461 2471
2472 if (!efl_layout_group_part_exist_get(wd->resize_obj, part))
2473 goto no_part;
2474
2475 type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
2462 if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST) 2476 if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST)
2463 { 2477 {
2464 ERR("Invalid type found for part '%s' in group '%s'", part, elm_widget_theme_element_get(obj)); 2478 ERR("Invalid type found for part '%s' in group '%s'", part, elm_widget_theme_element_get(obj));
@@ -2476,11 +2490,14 @@ _efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED,
2476 case EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW: 2490 case EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW:
2477 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, part); 2491 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, part);
2478 case EFL_CANVAS_LAYOUT_PART_TYPE_NONE: 2492 case EFL_CANVAS_LAYOUT_PART_TYPE_NONE:
2479 WRN("No such part '%s' in group '%s'", part, elm_widget_theme_element_get(obj)); 2493 goto no_part;
2480 return NULL;
2481 default: 2494 default:
2482 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CLASS, obj, part); 2495 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CLASS, obj, part);
2483 } 2496 }
2497
2498no_part:
2499 WRN("No such part '%s' in group '%s'", part, elm_widget_theme_element_get(obj));
2500 return NULL;
2484} 2501}
2485 2502
2486static const char * 2503static const char *
diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c
index 6c41b66..4bd7e87 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -172,6 +172,7 @@ _icon_signal_emit(Evas_Object *obj)
172{ 172{
173 char buf[64]; 173 char buf[64];
174 174
175 if (!elm_widget_resize_object_get(obj)) return;
175 snprintf(buf, sizeof(buf), "elm,state,icon,%s", 176 snprintf(buf, sizeof(buf), "elm,state,icon,%s",
176 elm_layout_content_get(obj, "icon") ? "visible" : "hidden"); 177 elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
177 178
diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c
index 51d406c..1486cf8 100644
--- a/src/lib/elementary/efl_ui_radio.c
+++ b/src/lib/elementary/efl_ui_radio.c
@@ -137,14 +137,16 @@ _key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
137static void 137static void
138_icon_signal_emit(Evas_Object *obj) 138_icon_signal_emit(Evas_Object *obj)
139{ 139{
140 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
141 char buf[64]; 140 char buf[64];
141 Eo *edje;
142 142
143 edje = elm_widget_resize_object_get(obj);
144 if (!edje) return;
143 snprintf(buf, sizeof(buf), "elm,state,icon,%s", 145 snprintf(buf, sizeof(buf), "elm,state,icon,%s",
144 elm_layout_content_get(obj, "icon") ? "visible" : "hidden"); 146 elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
145 147
146 elm_layout_signal_emit(obj, buf, "elm"); 148 elm_layout_signal_emit(obj, buf, "elm");
147 edje_object_message_signal_process(wd->resize_obj); 149 edje_object_message_signal_process(edje);
148} 150}
149 151
150EOLIAN static Efl_Ui_Theme_Apply 152EOLIAN static Efl_Ui_Theme_Apply
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c
index 4767f9a..7d9a181 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -311,7 +311,7 @@ _focus_manager_eval(Eo *obj, Elm_Widget_Smart_Data *pd)
311 { 311 {
312 new = parent; 312 new = parent;
313 } 313 }
314 else 314 else if (parent)
315 { 315 {
316 new = efl_ui_focus_user_focus_manager_get(parent); 316 new = efl_ui_focus_user_focus_manager_get(parent);
317 provider = parent; 317 provider = parent;
@@ -2439,10 +2439,14 @@ _efl_ui_widget_disabled_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Bool disabl
2439} 2439}
2440 2440
2441EOLIAN static Eina_Bool 2441EOLIAN static Eina_Bool
2442_efl_ui_widget_disabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd) 2442_efl_ui_widget_disabled_get(Eo *obj, Elm_Widget_Smart_Data *sd)
2443{ 2443{
2444 Eo *parent;
2445
2444 if (sd->disabled) return EINA_TRUE; 2446 if (sd->disabled) return EINA_TRUE;
2445 return elm_widget_disabled_get(elm_widget_parent_get(obj)); 2447 if ((parent = elm_widget_parent_get(obj)) != NULL)
2448 return elm_widget_disabled_get(parent);
2449 return EINA_FALSE;
2446} 2450}
2447 2451
2448EOLIAN static void 2452EOLIAN static void
@@ -5480,7 +5484,7 @@ _efl_ui_widget_efl_object_provider_find(const Eo *obj, Elm_Widget_Smart_Data *pd
5480 if (pd->provider_lookup) return NULL; 5484 if (pd->provider_lookup) return NULL;
5481 pd->provider_lookup = EINA_TRUE; 5485 pd->provider_lookup = EINA_TRUE;
5482 5486
5483 lookup = efl_provider_find(pd->parent_obj, klass); 5487 if (pd->parent_obj) lookup = efl_provider_find(pd->parent_obj, klass);
5484 if (!lookup) lookup = efl_provider_find(efl_super(obj, MY_CLASS), klass); 5488 if (!lookup) lookup = efl_provider_find(efl_super(obj, MY_CLASS), klass);
5485 5489
5486 pd->provider_lookup = EINA_FALSE; 5490 pd->provider_lookup = EINA_FALSE;
diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c
index 1d65463..8bba0e1 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -82,7 +82,8 @@ _round(double value, int pos)
82static void 82static void
83_elm_pan_update(Elm_Pan_Smart_Data *psd) 83_elm_pan_update(Elm_Pan_Smart_Data *psd)
84{ 84{
85 evas_object_move(psd->content, psd->x - psd->px, psd->y - psd->py); 85 if (psd->content)
86 evas_object_move(psd->content, psd->x - psd->px, psd->y - psd->py);
86} 87}
87 88
88EOLIAN static void 89EOLIAN static void
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index a25cf23..4bdff24 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -830,6 +830,13 @@ EAPI extern Eina_Bool _elm_legacy_add;
830#define elm_legacy_add(k, p, ...) ({ _elm_legacy_add = 1; \ 830#define elm_legacy_add(k, p, ...) ({ _elm_legacy_add = 1; \
831 efl_add(k, p, efl_canvas_object_legacy_ctor(efl_added), ##__VA_ARGS__); }) 831 efl_add(k, p, efl_canvas_object_legacy_ctor(efl_added), ##__VA_ARGS__); })
832 832
833static inline Eo *
834elm_widget_resize_object_get(const Eo *obj)
835{
836 Elm_Widget_Smart_Data *wd = efl_data_scope_safe_get(obj, EFL_UI_WIDGET_CLASS);
837 return wd ? wd->resize_obj : NULL;
838}
839
833static inline Eina_Bool 840static inline Eina_Bool
834elm_widget_is_legacy(const Eo *obj) 841elm_widget_is_legacy(const Eo *obj)
835{ 842{
diff --git a/src/lib/elementary/els_cursor.c b/src/lib/elementary/els_cursor.c
index 8d15df1..fbcde05 100644
--- a/src/lib/elementary/els_cursor.c
+++ b/src/lib/elementary/els_cursor.c
@@ -212,6 +212,8 @@ _elm_cursor_set_hot_spots(Elm_Cursor *cur)
212 Evas_Coord cx, cy, cw, ch, x, y, w, h; 212 Evas_Coord cx, cy, cw, ch, x, y, w, h;
213 int prev_hot_x, prev_hot_y; 213 int prev_hot_x, prev_hot_y;
214 214
215 if (!cur->visible) return;
216
215 prev_hot_x = cur->hot_x; 217 prev_hot_x = cur->hot_x;
216 prev_hot_y = cur->hot_y; 218 prev_hot_y = cur->hot_y;
217 219