}
else
{
- e_zone_desk_useful_geometry_get(zone, ec->desk, &zx, &zy, &zw, &zh);
+ e_zone_desk_useful_geometry_get(zone, ec->desk, &zx, &zy, &zw, &zh, EINA_TRUE);
}
}
else
return EINA_TRUE;
}
+E_API Eina_Bool
+e_client_base_output_resolution_desk_useful_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h, Eina_Bool consider_obstacle_area)
+{
+ int zx, zy, zw, zh;
+ E_Zone *zone;
+
+ E_OBJECT_CHECK_RETURN(ec, EINA_FALSE);
+
+ zone = e_comp_zone_find_by_ec(ec);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(zone, EINA_FALSE);
+
+ e_zone_desk_useful_geometry_get(zone, ec->desk, &zx, &zy, &zw, &zh, consider_obstacle_area);
+
+ if (x) *x = zx;
+ if (y) *y = zy;
+ if (w) *w = zw;
+ if (h) *h = zh;
+
+ if (ec->base_output_resolution.use)
+ {
+ // TODO: Consider obstacle area
+ if (w) *w = ec->base_output_resolution.w;
+ if (h) *h = ec->base_output_resolution.h;
+ }
+
+ return EINA_TRUE;
+}
+
/* change the base_output_resolution of the bind_ec by checking the base_output_resolution of provider_ec's appinfo */
EINTERN Eina_Bool
e_client_base_output_resolution_rsm_update(E_Client *bind_ec, E_Client *provider_ec)
{
API_ENTRY_VAL(NULL);
return wl_signal_get(&priv->events.destroy, notify);
-}
\ No newline at end of file
+}
E_API void e_client_base_output_resolution_transform_adjust(E_Client *ec);
E_API Eina_Bool e_client_base_output_resolution_update(E_Client *ec);
E_API Eina_Bool e_client_base_output_resolution_useful_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
+E_API Eina_Bool e_client_base_output_resolution_desk_useful_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h, Eina_Bool consider_obstacle_area);
+
EINTERN Eina_Bool e_client_base_output_resolution_rsm_update(E_Client *bind_ec, E_Client *provider_ec);
E_API void e_client_focus_skip_set(E_Client *ec, Eina_Bool skip, Eina_Bool by_client);
}
else
{
- e_zone_desk_useful_geometry_get(zone, desk, &zx, &zy, &zw, &zh);
+ e_zone_desk_useful_geometry_get(zone, desk, &zx, &zy, &zw, &zh, EINA_TRUE);
}
}
else
}
EINTERN void
-e_zone_desk_useful_geometry_get(E_Zone *zone, E_Desk *desk, int *x, int *y, int *w, int *h)
+e_zone_desk_useful_geometry_get(E_Zone *zone, E_Desk *desk, int *x, int *y, int *w, int *h, Eina_Bool consider_obstacle_area)
{
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
return;
}
- _e_zone_useful_geometry_calc(zone, desk, x, y, w, h);
+ if (consider_obstacle_area)
+ _e_zone_useful_geometry_calc(zone, desk, x, y, w, h);
+ else
+ e_zone_useful_geometry_get(zone, x, y, w, h);
}
/**
EINTERN void e_zone_useful_geometry_dirty(E_Zone *zone);
E_API void e_zone_useful_geometry_get(E_Zone *zone, int *x, int *y, int *w, int *h);
-EINTERN void e_zone_desk_useful_geometry_get(E_Zone *zone, E_Desk *desk, int *x, int *y, int *w, int *h);
+EINTERN void e_zone_desk_useful_geometry_get(E_Zone *zone, E_Desk *desk, int *x, int *y, int *w, int *h, Eina_Bool consider_obstacle_area);
E_API void e_zone_display_state_set(E_Zone *zone, E_Zone_Display_State state);
EINTERN E_Zone_Display_State e_zone_display_state_get(E_Zone *zone);