summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <m.blumenkran@samsung.com>2013-07-18 11:36:08 +0100
committerMike Blumenkrantz <m.blumenkran@samsung.com>2013-07-18 11:42:44 +0100
commitbc5fa59a40204f9da359e4f35bf06ea3293d4c08 (patch)
treeaa7713a47e9f3e23ea7958a7874052e53941d510
parentedc2b0d94f5bd7d07074f8d0933bf11a58387375 (diff)
downloadenlightenment-bc5fa59a40204f9da359e4f35bf06ea3293d4c08.tar.gz
move client stacking functions to smart object
-rw-r--r--src/bin/e_actions.c8
-rw-r--r--src/bin/e_client.c205
-rw-r--r--src/bin/e_client.h12
-rw-r--r--src/bin/e_comp_object.c7
-rw-r--r--src/bin/e_comp_x.c28
-rw-r--r--src/bin/e_exec.c2
-rw-r--r--src/bin/e_focus.c8
-rw-r--r--src/bin/e_hints.c2
-rw-r--r--src/bin/e_int_client_menu.c14
-rw-r--r--src/bin/e_int_menus.c4
-rw-r--r--src/bin/e_msgbus.c2
-rw-r--r--src/bin/e_win.c12
12 files changed, 85 insertions, 219 deletions
diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c
index 40984045f1..890d14659a 100644
--- a/src/bin/e_actions.c
+++ b/src/bin/e_actions.c
@@ -270,7 +270,7 @@ ACT_FN_GO(window_raise, __UNUSED__)
if (!obj) return;
}
if (!((E_Client *)obj)->lock_user_stacking)
- e_client_raise((E_Client *)obj);
+ evas_object_raise(((E_Client *)obj)->frame);
}
/***************************************************************************/
@@ -284,7 +284,7 @@ ACT_FN_GO(window_lower, __UNUSED__)
if (!obj) return;
}
if (!((E_Client *)obj)->lock_user_stacking)
- e_client_lower((E_Client *)obj);
+ evas_object_lower(((E_Client *)obj)->frame);
}
/***************************************************************************/
@@ -1152,7 +1152,7 @@ window_jump_to(const char *params)
/* Change the virtual desktop if the window isn't on the current virtual desktop */
e_desk_show(ec->desk);
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
if (ec->zone != current_zone)
e_util_pointer_center(ec);
e_client_focus_set(ec, 1, 1);
@@ -1270,7 +1270,7 @@ ACT_FN_GO(window_desk_move_by, )
/* switch desktop. Quite useful from the interface point of view. */
e_zone_desk_flip_by(ec->zone, to_x - dx, to_y - dy);
if (!ec->lock_user_stacking)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
}
}
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 7d9e06de79..b2b55f87b2 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -229,7 +229,7 @@ cleanup:
e_client_unshade(warp_client, warp_client->shade_dir);
}
if (!warp_client->lock_user_stacking)
- e_client_raise(warp_client);
+ evas_object_raise(warp_client->frame);
if (!warp_client->lock_focus_out)
{
@@ -314,28 +314,6 @@ _e_client_event_zone_set_free(void *d EINA_UNUSED, E_Event_Client_Zone_Set *ev)
free(ev);
}
-static void
-_e_client_event_stack_free(void *d EINA_UNUSED, E_Event_Client_Stack *ev)
-{
- e_object_unref(E_OBJECT(ev->ec));
- if (ev->stack) e_object_unref(E_OBJECT(ev->stack));
- free(ev);
-}
-
-static void
-_e_client_event_stack(E_Client *ec, E_Client *stack, E_Stacking type)
-{
- E_Event_Client_Stack *ev;
-
- ev = E_NEW(E_Event_Client_Stack, 1);
- ev->ec = ec;
- ev->stack = stack;
- ev->type = type;
- e_object_ref(E_OBJECT(ec));
- if (stack) e_object_ref(E_OBJECT(stack));
- ecore_event_add(E_EVENT_CLIENT_STACK, ev, (Ecore_End_Cb)_e_client_event_stack_free, NULL);
-}
-
////////////////////////////////////////////////
static int
@@ -664,7 +642,7 @@ _e_client_move_begin(E_Client *ec)
if (!ec->lock_user_stacking)
{
if (e_config->border_raise_on_mouse_action)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
if ((ec->fullscreen) || (ec->lock_user_location))
return 0;
@@ -1152,7 +1130,7 @@ _e_client_reset_lost_window(E_Client *ec)
if (ec->iconic) e_client_uniconify(ec);
if (!ec->moving) e_comp_object_util_center(ec->frame);
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
if (!ec->lock_focus_out)
e_client_focus_set(ec, 1, 1);
@@ -1470,6 +1448,34 @@ _e_client_cb_evas_show(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UN
_e_client_event_simple(data, E_EVENT_CLIENT_SHOW);
}
+static void
+_e_client_cb_evas_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ E_Client *ec = data;
+
+ if (e_config->transient.raise && ec->transients)
+ {
+ Eina_List *list = eina_list_clone(ec->transients);
+ E_Client *child, *below = NULL;
+
+ E_LIST_REVERSE_FREE(list, child)
+ {
+ /* Don't stack iconic transients. If the user wants these shown,
+ * thats another option.
+ */
+ if (child->iconic) continue;
+ if (below)
+ evas_object_stack_below(child->frame, below->frame);
+ else
+ evas_object_stack_above(child->frame, ec->frame);
+ below = child;
+ }
+ }
+
+ e_remember_update(ec);
+ _e_client_event_simple(ec, E_EVENT_CLIENT_STACK);
+}
+
////////////////////////////////////////////////
static void
@@ -1910,7 +1916,7 @@ _e_client_eval(E_Client *ec)
e_object_ref(E_OBJECT(ec->cur_mouse_action));
ec->cur_mouse_action->func.go(E_OBJECT(ec), NULL);
if (e_config->border_raise_on_mouse_action)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
e_client_focus_set(ec, 1, 1);
}
ec->changes.visible = 0;
@@ -2364,6 +2370,7 @@ e_client_new(E_Comp *c, E_Pixmap *cp, int first_map, int internal)
evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_HIDE, _e_client_cb_evas_hide, ec);
evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_MOVE, _e_client_cb_evas_move, ec);
evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESIZE, _e_client_cb_evas_resize, ec);
+ evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESTACK, _e_client_cb_evas_restack, ec);
evas_object_smart_callback_add(ec->frame, "shade_done", _e_client_cb_evas_shade_done, ec);
e_client_layer_set(ec, E_LAYER_CLIENT_NORMAL);
}
@@ -2890,142 +2897,6 @@ e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h)
}
EAPI void
-e_client_raise_above(E_Client *ec, E_Client *ec2)
-{
- E_Client *above = ec2, *below = NULL;
-
- E_OBJECT_CHECK(ec);
- E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
- if (ec2)
- {
- E_OBJECT_CHECK(ec2);
- E_OBJECT_TYPE_CHECK(ec2, E_CLIENT_TYPE);
- }
- if (e_client_below_get(ec) == ec2) return;
-
- if (e_config->transient.raise && ec->transients)
- {
- Eina_List *list = eina_list_clone(ec->transients);
- E_Client *child;
-
- E_LIST_REVERSE_FREE(list, child)
- {
- /* Don't stack iconic transients. If the user wants these shown,
- * thats another option.
- */
- if (child->iconic) continue;
- if (below)
- e_client_lower_below(child, below);
- else if (above)
- evas_object_stack_above(child->frame, above->frame);
- else
- evas_object_raise(child->frame);
- below = child;
- }
- }
-
- if (below)
- {
- evas_object_stack_below(ec->frame, below->frame);
- }
- else
- {
- /* If we don't have any children, raise this border */
- if (above)
- evas_object_stack_above(ec->frame, above->frame);
- else
- {
- evas_object_raise(ec->frame);
- above = e_client_below_get(ec);
- }
- e_client_raise_latest_set(ec);
- }
-
- e_remember_update(ec);
- if (below)
- _e_client_event_stack(ec, below, E_STACKING_BELOW);
- else
- _e_client_event_stack(ec, above, E_STACKING_ABOVE);
-}
-
-EAPI void
-e_client_raise(E_Client *ec)
-{
- E_OBJECT_CHECK(ec);
- E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
- if (ec == e_client_top_get(ec->comp)) return;
- e_client_raise_above(ec, NULL);
-}
-
-EAPI void
-e_client_lower_below(E_Client *ec, E_Client *ec2)
-{
- E_Client *below = NULL;
-
- E_OBJECT_CHECK(ec);
- E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
- if (ec2)
- {
- E_OBJECT_CHECK(ec2);
- E_OBJECT_TYPE_CHECK(ec2, E_CLIENT_TYPE);
- }
-
- if (e_client_above_get(ec) == ec2) return;
-
- if (e_config->transient.lower && ec->transients)
- {
- Eina_List *list = eina_list_clone(ec->transients);
- E_Client *child;
-
- E_LIST_REVERSE_FREE(list, child)
- {
- /* Don't stack iconic transients. If the user wants these shown,
- * thats another option.
- */
- if (child->iconic) continue;
- if (below)
- e_client_lower_below(child, below);
- else if (ec2)
- e_client_lower_below(child, ec2);
- else
- evas_object_lower(child);
- below = child;
- }
- }
-
- if (below)
- {
- evas_object_stack_below(ec->frame, below->frame);
- }
- else
- {
- if (ec2)
- {
- evas_object_stack_below(ec->frame, ec2->frame);
- below = ec2;
- }
- else
- {
- evas_object_lower(ec->frame);
- below = e_client_above_get(ec);
- }
- }
-
- e_remember_update(ec);
- e_comp_render_queue(ec->comp);
- _e_client_event_stack(ec, below, E_STACKING_BELOW);
-}
-
-EAPI void
-e_client_lower(E_Client *ec)
-{
- E_OBJECT_CHECK(ec);
- E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
- if (ec == e_client_bottom_get(ec->comp)) return;
- e_client_lower_below(ec, NULL);
-}
-
-EAPI void
e_client_layer_set(E_Client *ec, E_Layer layer)
{
int oldraise;
@@ -3648,7 +3519,7 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
if ((!ec->iconic) && (!ec->sticky))
e_desk_show(ec->desk);
if (!ec->lock_user_stacking)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
if (!ec->lock_focus_out)
{
/* XXX ooffice does send this request for
@@ -3657,7 +3528,7 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
if ((e_config->focus_policy != E_FOCUS_CLICK) && (!ec->new_client) &&
(!e_config->disable_all_pointer_warps) &&
(!e_util_strcmp(ec->icccm.name, "VCLSalFrame")))
- ecore_x_pointer_warp(ec->comp->win,
+ ecore_evas_pointer_warp(ec->comp->ee,
ec->x + (ec->w / 2), ec->y + (ec->h / 2));
e_client_focus_set(ec, 1, 1);
}
@@ -3809,7 +3680,7 @@ e_client_maximize(E_Client *ec, E_Maximize max)
ec->saved.zone = ec->zone->num;
e_hints_window_size_set(ec);
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
_e_client_maximize(ec, max);
@@ -4114,7 +3985,7 @@ e_client_uniconify(E_Client *ec)
if (ec->shading || (!ec->iconic)) return;
desk = e_desk_current_get(ec->desk->zone);
e_client_desk_set(ec, desk);
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
evas_object_show(ec->frame);
ec->iconic = 0;
@@ -4585,7 +4456,7 @@ e_client_resize_begin(E_Client *ec)
if (!ec->lock_user_stacking)
{
if (e_config->border_raise_on_mouse_action)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
if ((ec->shaded) || (ec->shading) ||
(ec->fullscreen) || (ec->lock_user_size))
diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index f9073ec2ba..2330d79508 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -141,18 +141,10 @@ struct E_Event_Client
E_Client *ec;
};
-struct E_Event_Client_Stack
-{
- E_Client *ec;
- E_Client *stack;
- E_Stacking type;
-};
-
struct E_Event_Client_Desk_Set
{
E_Client *ec;
E_Desk *desk;
- E_Stacking type;
};
struct E_Event_Client_Zone_Set
@@ -768,10 +760,6 @@ EAPI void e_client_res_change_geometry_save(E_Client *bd);
EAPI void e_client_res_change_geometry_restore(E_Client *ec);
EAPI void e_client_zone_set(E_Client *ec, E_Zone *zone);
EAPI void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
-EAPI void e_client_raise_above(E_Client *ec, E_Client *ec2);
-EAPI void e_client_raise(E_Client *ec);
-EAPI void e_client_lower_below(E_Client *ec, E_Client *ec2);
-EAPI void e_client_lower(E_Client *ec);
EAPI void e_client_layer_set(E_Client *ec, E_Layer layer);
EAPI E_Client *e_client_above_get(const E_Client *ec);
EAPI E_Client *e_client_below_get(const E_Client *ec);
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index dc34d079da..f5f6ccda6e 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -953,6 +953,7 @@ _e_comp_intercept_lower(void *data, Evas_Object *obj)
E_Comp_Object *cw = data;
Evas_Object *o;
+ if (e_client_bottom_get(cw->comp) == cw->ec) return;
o = evas_object_below_get(obj);
_e_comp_object_layers_remove(cw);
_e_comp_object_layers_add(cw, NULL, NULL, 1);
@@ -968,6 +969,7 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
E_Comp_Object *cw = data;
Evas_Object *o;
+ if (e_client_top_get(cw->comp) == cw->ec) return;
o = evas_object_above_get(obj);
_e_comp_object_layers_remove(cw);
_e_comp_object_layers_add(cw, NULL, NULL, 0);
@@ -975,7 +977,10 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
if (obj == cw->comp->layers[cw->layer].obj) //never raise a non-layer marker!
evas_object_raise(obj);
else
- evas_object_stack_below(obj, cw->comp->layers[cw->layer].obj);
+ {
+ evas_object_stack_below(obj, cw->comp->layers[cw->layer].obj);
+ e_client_raise_latest_set(cw->ec);
+ }
}
static void
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 9c89cb2bf6..8554127a7e 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -962,7 +962,7 @@ _e_comp_x_evas_stack_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void
e_hints_client_stacking_set();
EINA_LIST_FOREACH(ec->e.state.video_child, l, ec2)
- e_client_lower_below(ec2, ec);
+ evas_object_stack_below(ec2->frame, ec->frame);
}
static Eina_Bool
@@ -1085,7 +1085,7 @@ _e_comp_x_show_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Eve
/* FIXME: make client "urgent" for a bit - it wants attention */
/* e_client_show(ec); */
if (!ec->lock_client_stacking)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
return ECORE_CALLBACK_RENEW;
}
@@ -1185,13 +1185,13 @@ _e_comp_x_configure(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_
if (ev->abovewin == 0)
{
if (e_client_below_get(ec))
- e_client_lower(ec);
+ evas_object_lower(ec->frame);
}
else
{
E_Client *ec2 = _e_comp_x_client_find_by_window(ev->abovewin);
- if (ec2) e_client_raise_above(ec, ec2);
+ if (ec2) evas_object_stack_above(ec->frame, ec2->frame);
}
if (ec->input_only) return ECORE_CALLBACK_RENEW;
@@ -1357,7 +1357,7 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore
oec = _e_comp_x_client_find_by_window(ev->abovewin);
if (oec)
{
- e_client_raise_above(ec, oec);
+ evas_object_stack_above(ec->frame, oec->frame);
}
else
{
@@ -1374,7 +1374,7 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore
oec = _e_comp_x_client_find_by_window(ev->abovewin);
if (oec)
{
- e_client_lower_below(ec, oec);
+ evas_object_stack_below(ec->frame, oec->frame);
}
else
{
@@ -1403,11 +1403,11 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore
{
if (ev->detail == ECORE_X_WINDOW_STACK_ABOVE)
{
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
else if (ev->detail == ECORE_X_WINDOW_STACK_BELOW)
{
- e_client_lower(ec);
+ evas_object_lower(ec->frame);
}
else if (ev->detail == ECORE_X_WINDOW_STACK_TOP_IF)
{
@@ -1436,9 +1436,9 @@ _e_comp_x_stack_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Ev
ec = _e_comp_x_client_find_by_window(ev->win);
if (ev->detail == ECORE_X_WINDOW_STACK_ABOVE)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
else if (ev->detail == ECORE_X_WINDOW_STACK_BELOW)
- e_client_lower(ec);
+ evas_object_lower(ec->frame);
return ECORE_CALLBACK_PASS_ON;
}
@@ -1447,8 +1447,8 @@ _e_comp_x_stack(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Wind
{
E_Client *ec = _e_comp_x_client_find_by_window(ev->win);
if (!ec) return ECORE_CALLBACK_PASS_ON;
- if (ev->detail == ECORE_X_WINDOW_STACK_ABOVE) e_client_raise(ec);
- else e_client_lower(ec);
+ if (ev->detail == ECORE_X_WINDOW_STACK_ABOVE) evas_object_raise(ec->frame);
+ else evas_object_lower(ec->frame);
return ECORE_CALLBACK_PASS_ON;
}
@@ -1713,7 +1713,7 @@ _e_comp_x_message(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Cl
default:
if (!ec->focused) e_client_activate(ec, EINA_TRUE);
- else e_client_raise(ec);
+ else evas_object_raise(ec->frame);
}
}
else if (ev->message_type == ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_DONE)
@@ -2149,7 +2149,7 @@ _e_comp_x_move_resize_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecor
ec->moveinfo.down.my = ev->y;
if (!ec->lock_user_stacking)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
if (ev->direction == E_POINTER_MOVE)
{
diff --git a/src/bin/e_exec.c b/src/bin/e_exec.c
index 51f01a7973..20854706c3 100644
--- a/src/bin/e_exec.c
+++ b/src/bin/e_exec.c
@@ -173,7 +173,7 @@ e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec,
if (!ec->focused)
e_client_activate(ec, EINA_TRUE);
else
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
return NULL;
}
}
diff --git a/src/bin/e_focus.c b/src/bin/e_focus.c
index 7f7b0665fe..ce8de8126d 100644
--- a/src/bin/e_focus.c
+++ b/src/bin/e_focus.c
@@ -22,7 +22,7 @@ e_focus_event_mouse_in(E_Client *ec)
if (!ec->lock_user_stacking)
{
if (e_config->border_raise_on_focus)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
}
else
@@ -54,7 +54,7 @@ e_focus_event_mouse_down(E_Client *ec)
if (!ec->lock_user_stacking)
{
if (e_config->border_raise_on_focus)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
}
else if (e_config->always_click_to_raise)
@@ -62,7 +62,7 @@ e_focus_event_mouse_down(E_Client *ec)
if (!ec->lock_user_stacking)
{
if (e_config->border_raise_on_focus)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
}
else if (e_config->always_click_to_focus)
@@ -125,7 +125,7 @@ _e_focus_raise_timer(void *data)
{
E_Client *ec = data;
- if (!ec->lock_user_stacking) e_client_raise(ec);
+ if (!ec->lock_user_stacking) evas_object_raise(ec->frame);
ec->raise_timer = NULL;
return ECORE_CALLBACK_CANCEL;
}
diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c
index 94d5cac3f0..3c8200256c 100644
--- a/src/bin/e_hints.c
+++ b/src/bin/e_hints.c
@@ -377,7 +377,7 @@ e_hints_window_init(E_Client *ec)
e_client_layer_set(ec, E_LAYER_CLIENT_NORMAL);
}
else
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
if ((ec->parent) && (e_config->transient.layer))
diff --git a/src/bin/e_int_client_menu.c b/src/bin/e_int_client_menu.c
index 4e405928d0..ba588f55d4 100644
--- a/src/bin/e_int_client_menu.c
+++ b/src/bin/e_int_client_menu.c
@@ -1137,26 +1137,24 @@ _e_client_menu_cb_stacking_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi
static void
_e_client_menu_cb_raise(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
{
- E_Client *ec;
+ E_Client *ec = data;
- ec = data;
if ((!ec->lock_user_stacking) && (!ec->internal) &&
- ((ec->layer == 50) || (ec->layer == 100) || (ec->layer == 150)))
+ ((ec->layer >= E_LAYER_CLIENT_DESKTOP) && (ec->layer <= E_LAYER_CLIENT_NORMAL)))
{
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
}
static void
_e_client_menu_cb_lower(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
{
- E_Client *ec;
+ E_Client *ec = data;
- ec = data;
if ((!ec->lock_user_stacking) && (!ec->internal) &&
- ((ec->layer == 50) || (ec->layer == 100) || (ec->layer == 150)))
+ ((ec->layer >= E_LAYER_CLIENT_DESKTOP) && (ec->layer <= E_LAYER_CLIENT_NORMAL)))
{
- e_client_lower(ec);
+ evas_object_lower(ec->frame);
}
}
diff --git a/src/bin/e_int_menus.c b/src/bin/e_int_menus.c
index fb2202dea2..78b8cf6912 100644
--- a/src/bin/e_int_menus.c
+++ b/src/bin/e_int_menus.c
@@ -1551,7 +1551,7 @@ _e_int_menus_clients_item_cb(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi _
}
if (!ec->iconic) e_desk_show(ec->desk);
- if (!ec->lock_user_stacking) e_client_raise(ec);
+ if (!ec->lock_user_stacking) evas_object_raise(ec->frame);
if (!ec->lock_focus_out)
{
e_util_pointer_center(ec);
@@ -1644,7 +1644,7 @@ _e_int_menus_lost_clients_item_cb(void *data, E_Menu *m __UNUSED__, E_Menu_Item
if (ec->iconic) e_client_uniconify(ec);
if (ec->desk) e_desk_show(ec->desk);
e_comp_object_util_center(ec->frame);
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
if (!ec->lock_focus_out)
e_client_focus_set(ec, 1, 1);
}
diff --git a/src/bin/e_msgbus.c b/src/bin/e_msgbus.c
index 591805abeb..6e57185e8e 100644
--- a/src/bin/e_msgbus.c
+++ b/src/bin/e_msgbus.c
@@ -474,7 +474,7 @@ _e_msgbus_window_list_cb(const Eldbus_Service_Interface *iface __UNUSED__,
if (!ec->lock_user_stacking)
{
if (e_config->border_raise_on_focus)
- e_client_raise(ec);
+ evas_object_raise(ec->frame);
}
E_MSGBUS_WIN_ACTION_CB_END
diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index 8711ba0b42..ad982ac31f 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -151,7 +151,7 @@ _elm_win_trap_raise(void *data, Evas_Object *o __UNUSED__)
Elm_Win_Trap_Ctx *ctx = data;
EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_TRUE);
if (!ctx->client) return EINA_TRUE;
- e_client_raise(ctx->client);
+ evas_object_raise(ctx->client->frame);
return EINA_FALSE;
}
@@ -162,7 +162,11 @@ _elm_win_trap_activate(void *data, Evas_Object *o __UNUSED__)
EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_TRUE);
if (!ctx->client) return EINA_TRUE;
e_client_focus_set(ctx->client, 1, 1);
- e_client_raise(ctx->client);
+ if (!ec->lock_user_stacking)
+ {
+ if (e_config->border_raise_on_focus)
+ e_client_raise(ctx->client);
+ }
return EINA_FALSE;
}
@@ -398,7 +402,7 @@ e_win_raise(E_Win *win)
E_OBJECT_CHECK(win);
E_OBJECT_TYPE_CHECK(win, E_WIN_TYPE);
if (win->client)
- e_client_raise(win->client);
+ evas_object_raise(win->client->frame);
}
EAPI void
@@ -407,7 +411,7 @@ e_win_lower(E_Win *win)
E_OBJECT_CHECK(win);
E_OBJECT_TYPE_CHECK(win, E_WIN_TYPE);
if (win->client)
- e_client_lower(win->client);
+ evas_object_lower(win->client->frame);
}
EAPI void