elm - dont get top widget for non-ui objects

This commit is contained in:
Carsten Haitzler 2018-02-13 15:21:49 +09:00
parent 93e833d8cd
commit 5db6b05187
2 changed files with 12 additions and 8 deletions

View File

@ -115,15 +115,18 @@ _wl_default_seat_id_get(Evas_Object *obj)
if (obj)
{
Eo *top = elm_widget_top_get(obj);
if (efl_isa(top, EFL_UI_WIN_INLINED_CLASS))
if (efl_isa(obj, EFL_UI_WIDGET_CLASS))
{
parent2 = efl_ui_win_inlined_parent_get(top);
if (parent2) obj = elm_widget_top_get(parent2) ?: parent2;
Eo *top = elm_widget_top_get(obj);
if (efl_isa(top, EFL_UI_WIN_INLINED_CLASS))
{
parent2 = efl_ui_win_inlined_parent_get(top);
if (parent2) obj = elm_widget_top_get(parent2) ?: parent2;
}
/* fake win means canvas seat id will not match protocol seat id */
ewin = elm_win_get(obj);
if (elm_win_type_get(ewin) == ELM_WIN_FAKE) obj = NULL;
}
/* fake win means canvas seat id will not match protocol seat id */
ewin = elm_win_get(obj);
if (elm_win_type_get(ewin) == ELM_WIN_FAKE) obj = NULL;
}
if (!obj)

View File

@ -21,9 +21,10 @@ struct _Efl_Ui_Dnd_Container_Data
extern int _wl_default_seat_id_get(Evas_Object *obj);
static inline Eo*
static inline Eo *
_selection_manager_get(Eo *obj)
{
if (!efl_isa(obj, EFL_UI_WIDGET_CLASS)) return NULL;
Eo *top = elm_widget_top_get(obj);
if (!top)
{