struct wl_signal desk_count;
struct wl_signal client_add;
struct wl_signal focused_client_get;
+ struct wl_signal focused_client_set;
struct wl_signal zone_client_top_get;
struct wl_signal zone_client_bottom_get;
struct wl_signal zone_client_above_get;
wl_signal_init(&priv->events.desk_count);
wl_signal_init(&priv->events.client_add);
wl_signal_init(&priv->events.focused_client_get);
+ wl_signal_init(&priv->events.focused_client_set);
wl_signal_init(&priv->events.zone_client_top_get);
wl_signal_init(&priv->events.zone_client_bottom_get);
wl_signal_init(&priv->events.zone_client_above_get);
return focused_ec;
}
+EINTERN void
+e_zone_focused_client_set(E_Zone *zone, E_Client *ec)
+{
+ EINA_SAFETY_ON_NULL_RETURN(zone);
+
+ wl_signal_emit(&PRI(zone)->events.focused_client_set, ec);
+
+ ELOGF("ZONE", "Focused client set: %p", ec, ec);
+ return;
+}
+
EINTERN void
e_zone_client_set_event_emit(E_Zone *zone, E_Client *ec)
{
wl_signal_add(&priv->events.focused_client_get, listener);
}
+EINTERN void
+e_zone_focused_client_set_listener_add(E_Zone *zone, struct wl_listener *listener)
+{
+ API_ENTRY;
+ wl_signal_add(&priv->events.focused_client_set, listener);
+}
+
EINTERN void
e_zone_client_top_get_listener_add(E_Zone *zone, struct wl_listener *listener)
{
EINTERN Eina_Bool e_zone_has_ec(E_Zone *zone, E_Client *ec);
EINTERN Eina_Bool e_zone_is_displaying(E_Zone *zone);
EINTERN E_Client *e_zone_focused_client_get(E_Zone *zone);
+EINTERN void e_zone_focused_client_set(E_Zone *zone, E_Client *ec);
EINTERN void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count);
EINTERN void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);
EINTERN void e_zone_bg_mouse_up_listener_add(E_Zone *zone, struct wl_listener *listener);
EINTERN void e_zone_client_add_listener_add(E_Zone *zone, struct wl_listener *listener);
EINTERN void e_zone_focused_client_get_listener_add(E_Zone *zone, struct wl_listener *listener);
+EINTERN void e_zone_focused_client_set_listener_add(E_Zone *zone, struct wl_listener *listener);
EINTERN void e_zone_client_top_get_listener_add(E_Zone *zone, struct wl_listener *listener);
EINTERN void e_zone_client_bottom_get_listener_add(E_Zone *zone, struct wl_listener *listener);
EINTERN void e_zone_client_above_get_listener_add(E_Zone *zone, struct wl_listener *listener);
struct wl_listener desk_prev;
struct wl_listener desk_count;
struct wl_listener focused_client_get;
+ struct wl_listener focused_client_set;
struct wl_listener zone_client_top_get; // from e_zone
struct wl_listener zone_client_bottom_get; // from e_zone
return;
}
+static void
+_e_policy_zone_cb_focused_client_set(struct wl_listener *listener, void *data)
+{
+ //E_Policy_Zone *policy_zone;
+ //E_Zone *zone;
+
+ //policy_zone = wl_container_of(listener, policy_zone, focused_client_set);
+ //zone = policy_zone->zone;
+
+ // TODO:: Need to impl
+
+ return;
+}
+
static void
_e_zone_policy_input_thread_focused_client_set(void *data)
{
e_zone_bg_mouse_up_listener_add(zone, &policy_zone->bg_mouse_up);
policy_zone->focused_client_get.notify = _e_policy_zone_cb_focused_client_get;
e_zone_focused_client_get_listener_add(zone, &policy_zone->focused_client_get);
+ policy_zone->focused_client_set.notify = _e_policy_zone_cb_focused_client_set;
+ e_zone_focused_client_set_listener_add(zone, &policy_zone->focused_client_set);
policy_zone->desk_row_add.notify = _e_policy_zone_cb_desk_row_add;
e_zone_desk_row_add_listener_add(zone, &policy_zone->desk_row_add);