evas_object_raise(view->eo);
}
-static void
-_view_eo_lower(E_View *view)
-{
- assert(view->parent);
-
- if (!view->reorderable)
- return;
-
- if (view->eo)
- evas_object_lower(view->eo);
-}
-
E_API void
e_view_reparent(E_View *view, E_View_Tree *new_parent)
{
wl_signal_emit_mutable(&view->events.restack, view);
}
-EINTERN void
-e_view_reparent_bottom(E_View *view, E_View_Tree *new_parent)
-{
- E_View_Tree *ancestor;
-
- assert(new_parent != NULL);
-
- if (!view->reorderable)
- return;
-
- if (view->parent == new_parent)
- return;
-
- /* Ensure that a view cannot become its own ancestor */
- for (ancestor = new_parent; ancestor != NULL; ancestor = ancestor->view.parent)
- assert(&ancestor->view != view);
-
- if (view->parent)
- e_view_tree_child_remove(view->parent, view);
-
- view->parent = new_parent;
- e_view_tree_child_add_prepend(new_parent, view);
-
- /* WORKAROUND: doing object stack lower instead of stack update
- * In some case, there're stack order mismatch between evas_object and e_view by unknown issue.
- * in that situation, _view_eo_stack_update could makes some object place to middle of layer
- * even if the object request layer change.
- * To ensure the object place top of the layer, call evas_object_lower instad of stack update.
- */
- //_view_eo_stack_update(view);
- _view_eo_lower(view);
- _view_eo_position_update(view);
-
- wl_signal_emit_mutable(&view->events.restack, view);
-}
-
E_API void
e_view_pass_events_set(E_View *view, bool set)
{
};
void e_view_init(E_View *view, E_View_Type type, E_View_Impl *impl, Evas_Object *eo, E_View_Tree *parent);
-void e_view_reparent_bottom(E_View *view, E_View_Tree *new_parent);
void e_view_reorderable_set(E_View *view, bool reorderable);
E_View_Tree *e_view_tree_from_view(E_View *view);
void e_view_tree_init(E_View_Tree *tree, const E_View_Tree_Impl *impl, E_View_Tree *parent);
void e_view_tree_child_add(E_View_Tree *tree, E_View *view);
-void e_view_tree_child_add_prepend(E_View_Tree *tree, E_View *view);
void e_view_tree_child_remove(E_View_Tree *tree, E_View *view);
E_View *e_view_tree_top_get(E_View_Tree *tree);
E_View *e_view_tree_bottom_get(E_View_Tree *tree);
tree->impl->child_add(tree, view);
}
-EINTERN void
-e_view_tree_child_add_prepend(E_View_Tree *tree, E_View *view)
-{
- wl_list_insert(&tree->children, &view->link);
-
- if (tree->impl && tree->impl->child_add)
- tree->impl->child_add(tree, view);
-}
-
EINTERN void
e_view_tree_child_remove(E_View_Tree *tree, E_View *view)
{
e_view_reparent(itc_view, &e_comp_input->layer_tree[layer_data->layer]);
break;
case E_COMP_INPUT_INLIST_PREPEND:
- e_view_reparent_bottom(itc_view, &e_comp_input->layer_tree[layer_data->layer]);
+ e_view_reparent(itc_view, &e_comp_input->layer_tree[layer_data->layer]);
break;
case E_COMP_INPUT_INLIST_APPEND_RELATIVE:
if (!relative_itc_view)
{
// prepend means bottom
E_View *layer_obj = e_policy_desk_area_layer_obj_get(pdal);
- if (layer_obj) e_view_place_above(view, layer_obj);
- else
- {
- E_View_Tree *view_tree = e_policy_desk_area_layer_view_tree_get(pdal);
- e_view_reparent_bottom(view, view_tree);
- e_view_lower_to_bottom(view);
- }
+ e_view_place_above(view, layer_obj);
_e_comp_object_layers_update(cw->layer, E_COMP_INPUT_INLIST_PREPEND, cw->ec, NULL);
}
else
{
E_View_Tree *view_tree = e_policy_desk_area_layer_view_tree_get(pdal);
e_view_reparent(view, view_tree);
- e_view_raise_to_top(view);
_e_comp_object_layers_update(cw->layer, E_COMP_INPUT_INLIST_APPEND, cw->ec, NULL);
}
}