e_client: Added E_CLIENT_HOOK_FULLSCREEN_PRE hook 07/40307/1
authorMinJeong Kim <minjjj.kim@samsung.com>
Tue, 2 Jun 2015 06:43:15 +0000 (15:43 +0900)
committerMinJeong Kim <minjjj.kim@samsung.com>
Tue, 2 Jun 2015 06:53:27 +0000 (15:53 +0900)
Change-Id: I383c164dbc922a19ffe7d24ab0c8244cf40173da
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_client.c
src/bin/e_client.h

index 8eb7929fade9a2df5c97ab555758c1168ac95709..c599e78534603d2025f9facc0dc97d8a983164f2 100644 (file)
@@ -85,6 +85,7 @@ static Eina_Inlist *_e_client_hooks[] =
    [E_CLIENT_HOOK_RESIZE_BEGIN] = NULL,
    [E_CLIENT_HOOK_RESIZE_UPDATE] = NULL,
    [E_CLIENT_HOOK_RESIZE_END] = NULL,
+   [E_CLIENT_HOOK_FULLSCREEN_PRE] = NULL,
    [E_CLIENT_HOOK_DEL] = NULL,
    [E_CLIENT_HOOK_UNREDIRECT] = NULL,
    [E_CLIENT_HOOK_REDIRECT] = NULL,
@@ -4004,7 +4005,12 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy)
    E_OBJECT_CHECK(ec);
    E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
 
-   if ((ec->shaded) || (ec->shading) || ec->fullscreen) return;
+   if ((ec->shaded) || (ec->shading) || (ec->fullscreen)) return;
+
+   _e_client_hook_call(E_CLIENT_HOOK_FULLSCREEN_PRE, ec);
+
+   if (ec->skip_fullscreen) return;
+
    if (ec->new_client)
      {
         ec->need_fullscreen = 1;
index 98284d9ddd4b484d98bedf732148ab322622b714..02965b48d264ecd5847670b7d41243c31824dce9 100644 (file)
@@ -192,6 +192,7 @@ typedef enum _E_Client_Hook_Point
    E_CLIENT_HOOK_RESIZE_BEGIN,
    E_CLIENT_HOOK_RESIZE_UPDATE,
    E_CLIENT_HOOK_RESIZE_END,
+   E_CLIENT_HOOK_FULLSCREEN_PRE,
    E_CLIENT_HOOK_DEL,
    E_CLIENT_HOOK_UNREDIRECT,
    E_CLIENT_HOOK_REDIRECT,
@@ -671,6 +672,7 @@ struct E_Client
    unsigned int       need_shape_export : 1;
    unsigned int       fullscreen : 1;
    unsigned int       need_fullscreen : 1;
+   unsigned int       skip_fullscreen : 1;
    unsigned int       already_unparented : 1;
    unsigned int       need_reparent : 1;
    unsigned int       button_grabbed : 1;