}
static void
+_e_tizen_policy_cb_lower(struct wl_client *client,
+ struct wl_resource *policy,
+ struct wl_resource *surface_resource)
+{
+ E_Pixmap *ep;
+ E_Client *ec, *below = NULL;
+
+ ep = wl_resource_get_user_data(surface_resource);
+ EINA_SAFETY_ON_NULL_RETURN(ep);
+
+ ec = e_pixmap_client_get(ep);
+ EINA_SAFETY_ON_NULL_RETURN(ec);
+ EINA_SAFETY_ON_NULL_RETURN(ec->frame);
+
+ below = ec;
+ while ((below = e_client_below_get(below)))
+ {
+ if ((e_client_util_ignored_get(below)) ||
+ (below->iconic)) continue;
+
+ break;
+ }
+
+ evas_object_lower(ec->frame);
+
+ if ((!below) || (!ec->focused)) return;
+ evas_object_focus_set(below->frame, 1);
+}
+
+static void
_e_tizen_policy_cb_position_set(struct wl_client *client,
struct wl_resource *policy,
struct wl_resource *surface_resource,
{
_e_tizen_policy_cb_visibility_get,
_e_tizen_policy_cb_activate,
+ _e_tizen_policy_cb_lower,
_e_tizen_policy_cb_position_set,
_e_tizen_policy_cb_focus_skip_set,
_e_tizen_policy_cb_focus_skip_unset,
&wl_surface_interface,
&wl_surface_interface,
&wl_surface_interface,
+ &wl_surface_interface,
NULL,
NULL,
&wl_surface_interface,
static const struct wl_message tizen_policy_requests[] = {
{ "get_visibility", "no", types + 1 },
{ "activate", "o", types + 3 },
- { "position_set", "oii", types + 4 },
- { "focus_skip_set", "o", types + 7 },
- { "focus_skip_unset", "o", types + 8 },
+ { "lower", "o", types + 4 },
+ { "position_set", "oii", types + 5 },
+ { "focus_skip_set", "o", types + 8 },
+ { "focus_skip_unset", "o", types + 9 },
};
WL_EXPORT const struct wl_interface tizen_policy_interface = {
"tizen_policy", 1,
- 5, tizen_policy_requests,
+ 6, tizen_policy_requests,
0, NULL,
};
struct wl_resource *resource,
struct wl_resource *surface);
/**
+ * lower - (none)
+ * @surface: surface object
+ */
+ void (*lower)(struct wl_client *client,
+ struct wl_resource *resource,
+ struct wl_resource *surface);
+ /**
* position_set - (none)
* @surface: surface object
* @x: (none)