From 7707f134609fcd688ff647c4916e6e01252987e4 Mon Sep 17 00:00:00 2001 From: Junseok Kim Date: Mon, 13 Nov 2023 16:42:10 +0900 Subject: [PATCH] e_desk: Set always use desk smart object Change-Id: Id715bb0f584ea6bc20991b21d53ad5f970a94a16 --- src/bin/e_desk.c | 264 +++++++++--------------- src/bin/e_hwc_planes.c | 2 +- src/bin/e_hwc_window.c | 2 +- src/bin/e_magnifier.c | 15 +- src/bin/e_policy.c | 23 --- src/bin/services/e_service_quickpanel.c | 26 +-- 6 files changed, 114 insertions(+), 218 deletions(-) diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 62bf82ddde..76d796b228 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -83,7 +83,6 @@ static void _e_desk_event_desk_after_show_free(void *data, void *ev); static void _e_desk_show_begin(E_Desk *desk, int dx, int dy); static void _e_desk_hide_begin(E_Desk *desk, int dx, int dy); static void _e_desk_event_desk_geometry_change_free(void *data, void *ev); -static Eina_Bool _e_desk_cb_zone_move_resize(void *data, int type EINA_UNUSED, void *event); static void _e_desk_smart_init(E_Desk *desk); static void _e_desk_smart_add(Evas_Object *obj); @@ -212,21 +211,8 @@ e_desk_new(E_Zone *zone, int x, int y) desk->y = y; desk->id = desk_id++; - if (!e_config->use_desk_smart_obj) - { - /* need to set geometry of desk even if disable the smart object, - * because 'E_Client' can be reconfigured base on desk.geom as a member - * of desk. the reason why this is necessary is all of 'E_Client' is not - * members of the smart object so far. - */ - EINA_RECTANGLE_SET(&desk->geom, zone->x, zone->y, zone->w, zone->h); - E_LIST_HANDLER_APPEND(desk->handlers, E_EVENT_ZONE_MOVE_RESIZE, _e_desk_cb_zone_move_resize, desk); - } - else - { - /* init smart object */ - _e_desk_smart_init(desk); - } + /* init smart object */ + _e_desk_smart_init(desk); /* Get current desktop's name */ EINA_LIST_FOREACH(e_config->desktop_names, l, cfname) @@ -785,9 +771,6 @@ e_desk_client_add(E_Desk *desk, E_Client *ec) wl_signal_emit_mutable(&PRI(desk)->events.client_add, desk); _e_desk_hook_call(E_DESK_HOOK_CLIENT_ADD, desk); - if (!e_config->use_desk_smart_obj) - return; - _e_desk_smart_client_add(desk->smart_obj, ec); } @@ -802,9 +785,6 @@ e_desk_client_del(E_Desk *desk, E_Client *ec) _e_desk_client_data_del(desk, ec); - if (!e_config->use_desk_smart_obj) - return; - _e_desk_smart_client_del(desk->smart_obj, ec); } @@ -819,12 +799,6 @@ e_desk_geometry_set(E_Desk *desk, int x, int y, int w, int h) int cx, cy, dx, dy; - if (!e_config->use_desk_smart_obj) - { - DBG("Do nothing, Desk Smart Object is disabled"); - return; - } - E_OBJECT_CHECK(desk); E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); @@ -987,62 +961,59 @@ e_desk_zoom_set(E_Desk *desk, double zoomx, double zoomy, int cx, int cy) } } - if (e_config->use_desk_smart_obj) - { - E_DESK_SMART_DATA_GET_OR_RETURN(desk->smart_obj, sd); + E_DESK_SMART_DATA_GET_OR_RETURN(desk->smart_obj, sd); - if ((sd->zoom.ratio_x != zoomx) || (sd->zoom.ratio_y != zoomy) || - (sd->zoom.cord_x != cx) || (sd->zoom.cord_y != cy)) - { - sd->zoom.prev_ratio_x = sd->zoom.ratio_x; - sd->zoom.prev_ratio_y = sd->zoom.ratio_y; - sd->zoom.prev_cord_x = sd->zoom.cord_x; - sd->zoom.prev_cord_y = sd->zoom.cord_y; + if ((sd->zoom.ratio_x != zoomx) || (sd->zoom.ratio_y != zoomy) || + (sd->zoom.cord_x != cx) || (sd->zoom.cord_y != cy)) + { + sd->zoom.prev_ratio_x = sd->zoom.ratio_x; + sd->zoom.prev_ratio_y = sd->zoom.ratio_y; + sd->zoom.prev_cord_x = sd->zoom.cord_x; + sd->zoom.prev_cord_y = sd->zoom.cord_y; - sd->zoom.ratio_x = zoomx; - sd->zoom.ratio_y = zoomy; - sd->zoom.cord_x = cx; - sd->zoom.cord_y = cy; + sd->zoom.ratio_x = zoomx; + sd->zoom.ratio_y = zoomy; + sd->zoom.cord_x = cx; + sd->zoom.cord_y = cy; - if (e_config->desk_zoom_effect.enable) + if (e_config->desk_zoom_effect.enable) + { + if (sd->zoom.animator) { - if (sd->zoom.animator) - { - ecore_animator_del(sd->zoom.animator); - sd->zoom.animator = NULL; - } - - sd->zoom.animating_type = E_DESK_ZOOM_ANIMATING_TYPE_ENABLE; - sd->zoom.animator = ecore_animator_timeline_add(e_config->desk_zoom_effect.duration, - _e_desk_zoom_animate_cb, desk); - _e_desk_object_zoom(desk->smart_obj, zoomx, zoomy, cx, cy); + ecore_animator_del(sd->zoom.animator); + sd->zoom.animator = NULL; } - else + + sd->zoom.animating_type = E_DESK_ZOOM_ANIMATING_TYPE_ENABLE; + sd->zoom.animator = ecore_animator_timeline_add(e_config->desk_zoom_effect.duration, + _e_desk_zoom_animate_cb, desk); + _e_desk_object_zoom(desk->smart_obj, zoomx, zoomy, cx, cy); + } + else + { + _e_desk_object_zoom(desk->smart_obj, zoomx, zoomy, cx, cy); + EINA_LIST_FOREACH(sd->clients, l, ec) { - _e_desk_object_zoom(desk->smart_obj, zoomx, zoomy, cx, cy); - EINA_LIST_FOREACH(sd->clients, l, ec) - { - _e_desk_client_zoom(ec, zoomx, zoomy, cx, cy); - } + _e_desk_client_zoom(ec, zoomx, zoomy, cx, cy); } } + } - if (!sd->zoom.enabled) - { - /* if desk_zoom_effect is enabled, - then sd->zoom.enabled will be set after finishing effect */ - if (!e_config->desk_zoom_effect.enable) - sd->zoom.enabled = EINA_TRUE; - - /* - * NOTE: evas_object_map_enable_set is called in _e_desk_client_zoom() - */ - /* - * evas_object_map_enable_set(desk->smart_obj, EINA_TRUE); - * EINA_LIST_FOREACH(sd->clients, l, ec) - * evas_object_map_enable_set(ec->frame, EINA_TRUE); - */ - } + if (!sd->zoom.enabled) + { + /* if desk_zoom_effect is enabled, + then sd->zoom.enabled will be set after finishing effect */ + if (!e_config->desk_zoom_effect.enable) + sd->zoom.enabled = EINA_TRUE; + + /* + * NOTE: evas_object_map_enable_set is called in _e_desk_client_zoom() + */ + /* + * evas_object_map_enable_set(desk->smart_obj, EINA_TRUE); + * EINA_LIST_FOREACH(sd->clients, l, ec) + * evas_object_map_enable_set(ec->frame, EINA_TRUE); + */ } end: @@ -1076,20 +1047,15 @@ e_desk_zoom_get(E_Desk *desk, double *zoomx, double *zoomy, int *cx, int *cy) } } - if (e_config->use_desk_smart_obj) - { - E_DESK_SMART_DATA_GET(desk->smart_obj, sd); - EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); - - if (zoomx) *zoomx = sd->zoom.ratio_x; - if (zoomy) *zoomy = sd->zoom.ratio_y; - if (cx) *cx = sd->zoom.cord_x; - if (cy) *cy = sd->zoom.cord_y; + E_DESK_SMART_DATA_GET(desk->smart_obj, sd); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); - res = EINA_TRUE; - } + if (zoomx) *zoomx = sd->zoom.ratio_x; + if (zoomy) *zoomy = sd->zoom.ratio_y; + if (cx) *cx = sd->zoom.cord_x; + if (cy) *cy = sd->zoom.cord_y; - return res; + return EINA_TRUE; } EINTERN Eina_Bool @@ -1170,61 +1136,58 @@ e_desk_zoom_unset(E_Desk *desk) } } - if (e_config->use_desk_smart_obj) - { - E_DESK_SMART_DATA_GET_OR_RETURN(desk->smart_obj, sd); + E_DESK_SMART_DATA_GET_OR_RETURN(desk->smart_obj, sd); - if (!sd->zoom.enabled) + if (!sd->zoom.enabled) + { + if (sd->zoom.animating_type != E_DESK_ZOOM_ANIMATING_TYPE_ENABLE) { - if (sd->zoom.animating_type != E_DESK_ZOOM_ANIMATING_TYPE_ENABLE) - { - goto end; - } + goto end; } + } - sd->zoom.prev_ratio_x = sd->zoom.ratio_x; - sd->zoom.prev_ratio_y = sd->zoom.ratio_y; - sd->zoom.prev_cord_x = sd->zoom.cord_x; - sd->zoom.prev_cord_y = sd->zoom.cord_y; + sd->zoom.prev_ratio_x = sd->zoom.ratio_x; + sd->zoom.prev_ratio_y = sd->zoom.ratio_y; + sd->zoom.prev_cord_x = sd->zoom.cord_x; + sd->zoom.prev_cord_y = sd->zoom.cord_y; - sd->zoom.ratio_x = 1.0; - sd->zoom.ratio_y = 1.0; - sd->zoom.cord_x = 0; - sd->zoom.cord_y = 0; - sd->zoom.enabled = EINA_FALSE; + sd->zoom.ratio_x = 1.0; + sd->zoom.ratio_y = 1.0; + sd->zoom.cord_x = 0; + sd->zoom.cord_y = 0; + sd->zoom.enabled = EINA_FALSE; - if (e_config->desk_zoom_effect.enable) + if (e_config->desk_zoom_effect.enable) + { + if (sd->zoom.animator) { - if (sd->zoom.animator) - { - ecore_animator_del(sd->zoom.animator); - sd->zoom.animator = NULL; - } - - sd->zoom.animating_type = E_DESK_ZOOM_ANIMATING_TYPE_DISABLE; - sd->zoom.animator = ecore_animator_timeline_add(e_config->desk_zoom_effect.duration, - _e_desk_zoom_animate_cb, desk); - _e_desk_object_zoom(desk->smart_obj, sd->zoom.ratio_x, sd->zoom.ratio_y, - sd->zoom.cord_x, sd->zoom.cord_y); + ecore_animator_del(sd->zoom.animator); + sd->zoom.animator = NULL; } - else + + sd->zoom.animating_type = E_DESK_ZOOM_ANIMATING_TYPE_DISABLE; + sd->zoom.animator = ecore_animator_timeline_add(e_config->desk_zoom_effect.duration, + _e_desk_zoom_animate_cb, desk); + _e_desk_object_zoom(desk->smart_obj, sd->zoom.ratio_x, sd->zoom.ratio_y, + sd->zoom.cord_x, sd->zoom.cord_y); + } + else + { + _e_desk_object_zoom(desk->smart_obj, sd->zoom.ratio_x, sd->zoom.ratio_y, + sd->zoom.cord_x, sd->zoom.cord_y); + /* + * NOTE: evas_object_map_enable_set is called in _e_desk_client_zoom() + */ + /* + * evas_object_map_enable_set(desk->smart_obj, EINA_FALSE); + */ + EINA_LIST_FOREACH(sd->clients, l, ec) { - _e_desk_object_zoom(desk->smart_obj, sd->zoom.ratio_x, sd->zoom.ratio_y, + /* NOTE Is it really necessary? + * Why isn't it enough to just call evas_object_map_enable_set(false)? */ + _e_desk_client_zoom(ec, sd->zoom.ratio_x, sd->zoom.ratio_y, sd->zoom.cord_x, sd->zoom.cord_y); - /* - * NOTE: evas_object_map_enable_set is called in _e_desk_client_zoom() - */ - /* - * evas_object_map_enable_set(desk->smart_obj, EINA_FALSE); - */ - EINA_LIST_FOREACH(sd->clients, l, ec) - { - /* NOTE Is it really necessary? - * Why isn't it enough to just call evas_object_map_enable_set(false)? */ - _e_desk_client_zoom(ec, sd->zoom.ratio_x, sd->zoom.ratio_y, - sd->zoom.cord_x, sd->zoom.cord_y); - //evas_object_map_enable_set(ec->frame, EINA_FALSE); - } + //evas_object_map_enable_set(ec->frame, EINA_FALSE); } } @@ -1235,9 +1198,6 @@ end: E_API void e_desk_smart_member_add(E_Desk *desk, Evas_Object *obj) { - if (!e_config->use_desk_smart_obj) - return; - E_OBJECT_CHECK(desk); E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); @@ -1247,9 +1207,6 @@ e_desk_smart_member_add(E_Desk *desk, Evas_Object *obj) E_API void e_desk_smart_member_del(Evas_Object *obj) { - if (!e_config->use_desk_smart_obj) - return; - evas_object_smart_member_del(obj); } @@ -1287,8 +1244,7 @@ e_desk_client_zoom_skip_unset(E_Desk *desk, E_Client *ec) if (!e_desk_has_ec(desk, ec)) return EINA_FALSE; - if (e_config->use_desk_smart_obj) - _e_desk_smart_client_add(desk->smart_obj, ec); + _e_desk_smart_client_add(desk->smart_obj, ec); return EINA_TRUE; } @@ -1296,9 +1252,6 @@ e_desk_client_zoom_skip_unset(E_Desk *desk, E_Client *ec) EINTERN void e_desk_client_zoom_apply(E_Desk *desk, E_Client *ec) { - if (!e_config->use_desk_smart_obj) - return; - E_OBJECT_CHECK(desk); E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); @@ -1320,8 +1273,6 @@ e_desk_client_zoom_apply(E_Desk *desk, E_Client *ec) EINTERN Eina_Bool e_desk_zoom_is_animating(E_Desk *desk) { - if (!e_config->use_desk_smart_obj) return EINA_FALSE; - E_DESK_SMART_DATA_GET(desk->smart_obj, sd); if (!sd) return EINA_FALSE; @@ -1491,26 +1442,6 @@ _e_desk_event_desk_geometry_change_free(void *data EINA_UNUSED, void *event) E_FREE(ev); } -static Eina_Bool -_e_desk_cb_zone_move_resize(void *data, int type EINA_UNUSED, void *event) -{ - E_Event_Zone_Move_Resize *ev; - E_Desk *desk; - - ev = event; - if (!ev) return ECORE_CALLBACK_PASS_ON; - - desk = data; - if (!desk) return ECORE_CALLBACK_PASS_ON; - - if (ev->zone != desk->zone) - return ECORE_CALLBACK_PASS_ON; - - EINA_RECTANGLE_SET(&desk->geom, ev->zone->x, ev->zone->y, ev->zone->w, ev->zone->h); - - return ECORE_CALLBACK_PASS_ON; -} - static Eina_Bool _e_desk_transition_setup(E_Client *ec, int dx, int dy, int state) { @@ -1628,9 +1559,6 @@ _e_desk_smart_init(E_Desk *desk) zone = desk->zone; - if (!e_config->use_desk_smart_obj) - return; - desk->smart_obj = evas_object_smart_add(e_comp->evas, _e_desk_smart_class_new()); e_desk_geometry_set(desk, zone->x, zone->y, zone->w, zone->h); diff --git a/src/bin/e_hwc_planes.c b/src/bin/e_hwc_planes.c index c00865598f..493e04c9e8 100644 --- a/src/bin/e_hwc_planes.c +++ b/src/bin/e_hwc_planes.c @@ -420,7 +420,7 @@ _e_hwc_planes_prepare(E_Hwc *hwc, E_Zone *zone) if (E_POLICY_QUICKPANEL_LAYER >= evas_object_layer_get(ec->frame)) { // check whether quickpanel is open than break - if (e_config->use_desk_smart_obj && e_qps_visible_get()) goto done; + if (e_qps_visible_get()) goto done; } // if ec->frame is not for client buffer (e.g. launchscreen) diff --git a/src/bin/e_hwc_window.c b/src/bin/e_hwc_window.c index ac0b25fd4b..9668a90cc0 100644 --- a/src/bin/e_hwc_window.c +++ b/src/bin/e_hwc_window.c @@ -2261,7 +2261,7 @@ e_hwc_window_device_state_available_update(E_Hwc_Window *hwc_window) if (E_POLICY_QUICKPANEL_LAYER >= evas_object_layer_get(ec->frame)) { // check whether quickpanel is open than break - if (e_config->use_desk_smart_obj && e_qps_visible_get()) + if (e_qps_visible_get()) { restriction = E_HWC_WINDOW_RESTRICTION_QUICKPANEL_OPEN; available = EINA_FALSE; diff --git a/src/bin/e_magnifier.c b/src/bin/e_magnifier.c index d94b62d044..784d436c43 100644 --- a/src/bin/e_magnifier.c +++ b/src/bin/e_magnifier.c @@ -827,16 +827,13 @@ e_magnifier_zoom_obj_geometry_set(E_Client *ec, int angle, int x, int y, int w, tw = zone->w; th = zone->h; - if (e_config->use_desk_smart_obj) + desk = e_desk_current_get(zone); + if (desk) { - desk = e_desk_current_get(zone); - if (desk) - { - tx = desk->geom.x; - ty = desk->geom.y; - tw = desk->geom.w; - th = desk->geom.h; - } + tx = desk->geom.x; + ty = desk->geom.y; + tw = desk->geom.w; + th = desk->geom.h; } _e_magnifier_zoom_obj_geometry_convert_set(angle, x, y, w, h, tx, ty, tw, th); diff --git a/src/bin/e_policy.c b/src/bin/e_policy.c index 49d859050e..34a0fdba92 100644 --- a/src/bin/e_policy.c +++ b/src/bin/e_policy.c @@ -944,26 +944,6 @@ _e_policy_cb_zone_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) return ECORE_CALLBACK_PASS_ON; } -static void -_e_policy_client_maximize_update(E_Zone *zone) -{ - E_Client *ec = NULL; - E_Policy_Client *pc = NULL; - - E_CLIENT_FOREACH(ec) - { - pc = eina_hash_find(hash_policy_clients, &ec); - if (!pc) continue; - if (pc->zone != zone) continue; - - if (pc && pc->max_policy_state) - { - _e_policy_client_maximize_policy_cancel(pc); - _e_policy_client_maximize_policy_apply(pc); - } - } -} - static Eina_Bool _e_policy_cb_zone_move_resize(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { @@ -979,9 +959,6 @@ _e_policy_cb_zone_move_resize(void *data EINA_UNUSED, int type EINA_UNUSED, void e_policy_softkey_update(softkey); } - if (!e_config->use_desk_smart_obj) - _e_policy_client_maximize_update(ev->zone); - return ECORE_CALLBACK_PASS_ON; } diff --git a/src/bin/services/e_service_quickpanel.c b/src/bin/services/e_service_quickpanel.c index 8c7f9c25a2..5d2c7c4837 100644 --- a/src/bin/services/e_service_quickpanel.c +++ b/src/bin/services/e_service_quickpanel.c @@ -484,14 +484,11 @@ _e_qp_srv_mover_new(E_Policy_Quickpanel *qp) tx = qp->zone->x; ty = qp->zone->y; - if (e_config->use_desk_smart_obj) + desk = e_desk_current_get(qp->zone); + if (desk) { - desk = e_desk_current_get(qp->zone); - if (desk) - { - tx = desk->geom.x; - ty = desk->geom.y; - } + tx = desk->geom.x; + ty = desk->geom.y; } evas_object_move(mover, tx, ty); @@ -1621,16 +1618,13 @@ _quickpanel_handler_region_set(E_Policy_Quickpanel *qp, E_Policy_Angle_Map ridx, tw = qp->zone->w; th = qp->zone->h; - if (e_config->use_desk_smart_obj) + desk = e_desk_current_get(qp->zone); + if (desk) { - desk = e_desk_current_get(qp->zone); - if (desk) - { - tx = desk->geom.x; - ty = desk->geom.y; - tw = desk->geom.w; - th = desk->geom.h; - } + tx = desk->geom.x; + ty = desk->geom.y; + tw = desk->geom.w; + th = desk->geom.h; } it = eina_tiler_iterator_new(tiler); -- 2.34.1