diff options
author | Mike Blumenkrantz <m.blumenkran@samsung.com> | 2013-07-18 11:36:08 +0100 |
---|---|---|
committer | Mike Blumenkrantz <m.blumenkran@samsung.com> | 2013-07-18 11:42:44 +0100 |
commit | bc5fa59a40204f9da359e4f35bf06ea3293d4c08 (patch) | |
tree | aa7713a47e9f3e23ea7958a7874052e53941d510 | |
parent | edc2b0d94f5bd7d07074f8d0933bf11a58387375 (diff) | |
download | enlightenment-bc5fa59a40204f9da359e4f35bf06ea3293d4c08.tar.gz |
move client stacking functions to smart object
-rw-r--r-- | src/bin/e_actions.c | 8 | ||||
-rw-r--r-- | src/bin/e_client.c | 205 | ||||
-rw-r--r-- | src/bin/e_client.h | 12 | ||||
-rw-r--r-- | src/bin/e_comp_object.c | 7 | ||||
-rw-r--r-- | src/bin/e_comp_x.c | 28 | ||||
-rw-r--r-- | src/bin/e_exec.c | 2 | ||||
-rw-r--r-- | src/bin/e_focus.c | 8 | ||||
-rw-r--r-- | src/bin/e_hints.c | 2 | ||||
-rw-r--r-- | src/bin/e_int_client_menu.c | 14 | ||||
-rw-r--r-- | src/bin/e_int_menus.c | 4 | ||||
-rw-r--r-- | src/bin/e_msgbus.c | 2 | ||||
-rw-r--r-- | src/bin/e_win.c | 12 |
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 |