e_policy listens the e_client_parent_set calling from server directory.
Change-Id: I8c774d6dc7b011772400bd6852714d917fa80093
ELOGF("SHELL", "Parent Set. parent_resource:%p, parent_ec:%p, prev_parent_ec:%p",
ec, parent_resource, parent, ec->parent);
- e_policy_stack_parent_set(ec, parent);
+ e_client_parent_set(ec, parent);
}
EINTERN Eina_Bool
#include "e_input_thread_client_intern.h"
#include "e_view_intern.h"
#include "e_view_client_intern.h"
-#include "e_policy_stack_intern.h"
#include "e_compositor_intern.h"
#include "e_canvas_intern.h"
#include "e_tizen_launch_effect_intern.h"
#include "e_server_intern.h"
#include "e_tizen_display_policy_intern.h"
#include "e_tizen_ws_shell_manager_intern.h"
+#include "e_policy_stack_intern.h"
#include <wayland-server.h>
#include <tizen-extension-server-protocol.h>
EINA_SAFETY_ON_NULL_RETURN(ec);
parent_ec = e_client_from_surface_resource(parent);
- e_policy_stack_parent_set(ec, parent_ec);
+ e_client_parent_set(ec, parent_ec);
}
static void
static void
_e_policy_client_del(E_Policy_Client *pc)
{
+ wl_list_remove(&pc->client_parent_set.link);
+
wl_list_remove(&pc->pixmap_buffer_clear.link);
wl_list_remove(&pc->pixmap_destroy.link);
wl_list_init(&pc->pixmap_destroy.link);
}
+static void
+_e_policy_client_cb_client_parent_set(struct wl_listener *listener, void *data)
+{
+ E_Policy_Client *policy_client;
+ E_Client *parent_ec = (E_Client *)data;
+
+ policy_client = wl_container_of(listener, policy_client, client_parent_set);
+
+ e_policy_stack_parent_set(policy_client->ec, parent_ec);
+}
+
EINTERN E_Policy_Client *
e_policy_client_add(E_Client *ec)
{
pc->pixmap_buffer_clear.notify = _e_policy_client_cb_pixmap_buffer_clear;
e_pixmap_buffer_clear_listener_add(ec->pixmap, &pc->pixmap_buffer_clear);
+ // e_client listener add
+ pc->client_parent_set.notify = _e_policy_client_cb_client_parent_set;
+ e_client_parent_set_listener_add(ec, &pc->client_parent_set);
+
return pc;
}
struct wl_listener pixmap_destroy;
struct wl_listener pixmap_buffer_clear;
+
+ struct wl_listener client_parent_set;
};
struct _E_Policy_System_Info