unsigned int timestamp;
};
+struct _E_Client
+{
+ E_Object e_obj_inherit;
+ EINA_INLIST;
+
+ E_Pixmap *pixmap;
+
+ int x, y, w, h; //frame+client geom
+ struct {
+ int x, y, w, h; //frame+client geom before move or resize callback
+ } pre_cb;
+ Eina_Rectangle client; //client geom
+ Evas_Object *frame; //comp object
+ E_Zone *zone;
+ E_Desk *desk;
+
+ E_DEPRECATED Ecore_Poller *ping_poller;
+ Ecore_Timer *kill_timer;
+
+ E_Client *parent;
+ Eina_List *transients;
+
+ E_Layer layer;
+
+ Eina_Rectangle *shape_rects;
+ unsigned int shape_rects_num;
+
+ Eina_Rectangle *shape_input_rects;
+ unsigned int shape_input_rects_num;
+
+ E_Comp_Wl_Client_Data *comp_data;
+
+ E_Action *cur_mouse_action;
+
+ E_DEPRECATED int border_size; //size of client's border
+
+ struct
+ {
+ struct
+ {
+ int x, y, w, h;
+ int mx, my;
+ } current, last_down[3], last_up[3];
+ Eina_Bool in : 1;
+ } mouse;
+
+ struct
+ {
+ struct
+ {
+ int x, y, w, h;
+ int mx, my;
+ int button;
+ } down;
+ } moveinfo;
+
+ E_Pointer_Mode resize_mode;
+
+ struct
+ {
+ unsigned char changed : 1;
+ unsigned char user_selected : 1;
+ Eina_Stringshare *name;
+ } border;
+
+ struct
+ {
+ int x, y, w, h;
+ E_Layer layer;
+ int zone;
+ E_Maximize maximized;
+ } saved;
+
+ struct
+ {
+ unsigned char valid : 1;
+ int x, y, w, h;
+ struct
+ {
+ int x, y, w, h;
+ } saved;
+ } pre_res_change;
+
+ E_DEPRECATED unsigned char shaped : 1;
+ unsigned char argb : 1;
+
+ /* ICCCM */
+ struct
+ {
+ Eina_Stringshare *title;
+ Eina_Stringshare *name;
+#if defined(__cplusplus) || defined(c_plusplus)
+ Eina_Stringshare *cpp_class; /* for C++ TODO: change the implementation for this */
+#else
+ Eina_Stringshare *class;
+#endif
+ int min_w, min_h;
+ int max_w, max_h;
+ Ecore_Window transient_for;
+ Eina_Stringshare *window_role;
+ unsigned char take_focus : 1;
+ unsigned char accepts_focus : 1;
+ unsigned char delete_request : 1;
+ struct
+ {
+ unsigned char transient_for : 1;
+ } fetch;
+ } icccm;
+
+ /* NetWM */
+ struct
+ {
+ pid_t pid;
+ Eina_Stringshare *name;
+
+ unsigned char opacity;
+ Eina_Bool opacity_changed : 1; // prevent fetching opacity next prop change
+ E_DEPRECATED unsigned char ping : 1;
+
+ /* NetWM Window state */
+ struct
+ {
+ unsigned char modal : 1;
+ unsigned char skip_taskbar : 1;
+ unsigned char skip_pager : 1;
+ } state;
+
+ /* NetWM Window allowed actions */
+ E_Window_Type type;
+ } netwm;
+
+ /* Extra e stuff */
+ struct
+ {
+ struct
+ {
+ struct
+ {
+ E_Client_Rotation_Type type;
+ struct
+ {
+ E_Client_Rotation_Angle prev, curr, next, reserve;
+ } ang;
+ struct
+ {
+ int x, y, w, h;
+ } geom[4];
+ unsigned char support : 1;
+ unsigned char geom_hint: 1;
+ unsigned char pending_change_request : 1;
+ unsigned char pending_show : 1; // newly created window that has to be rotated will be show after rotating done.
+ // so, it will be used pending e_border_show called at main eval time.
+ unsigned char wait_for_done: 1;
+ unsigned char app_set : 1; // app wants to communicate with the window manager
+ int rot; // decided rotation by the window manager
+ E_Client_Rotation_Angle preferred_rot; // app specified rotation
+ E_Client_Rotation_Angle *available_rots; // app specified available rotations
+ unsigned int count; // number of elements of available rotations
+ unsigned int nopending_render : 1; // app wants to show rendering jobs before sending rotation_done
+ // it is set by 'wm.policy.win.rot.render.nopending' aux hint
+ } rot;
+ } state;
+
+ struct
+ {
+ struct
+ {
+ unsigned char support : 1;
+ unsigned char geom_hint : 1;
+ unsigned char app_set : 1; // app wants to communicate with the window manager
+ unsigned char preferred_rot : 1; // app specified rotation
+ unsigned char available_rots : 1; // app specified available rotations
+ unsigned char need_rotation : 1;
+ } rot;
+ } fetch;
+ } e;
+
+ struct
+ {
+ struct
+ {
+ unsigned char state : 1;
+ unsigned char vkbd : 1;
+ } fetch;
+ unsigned char have_property : 1;
+ unsigned char vkbd : 1;
+#ifdef _F_E_VIRTUAL_KEYBOARD_TYPE_
+ E_Virtual_Keyboard_Window_Type win_type;
+#endif
+ unsigned char floating : 1;
+ } vkbd;
+
+ struct
+ {
+ unsigned char visible : 1;
+ unsigned char pos : 1;
+ unsigned char size : 1;
+ unsigned char stack : 1;
+ unsigned char prop : 1;
+ unsigned char border : 1;
+ unsigned char reset_gravity : 1;
+ unsigned char shape : 1;
+ unsigned char shape_input : 1;
+ unsigned char icon : 1;
+ Eina_Bool internal_state : 1;
+ Eina_Bool need_maximize : 1;
+ Eina_Bool need_unmaximize : 1;
+ Eina_Bool rotation : 1;
+ Eina_Bool accepts_focus : 1;
+ Eina_Bool tz_position : 1; /* true when new position is set using tizen_position interface */
+ unsigned char title : 1;
+ E_DEPRECATED unsigned char buf_size : 1;
+ } changes;
+
+ struct
+ {
+ E_Alpha_Opaque opaque;
+ int obscured;
+ unsigned char changed : 1;
+ Eina_Bool skip : 1;
+ Eina_Bool force_obscured : 1;
+ int last_sent_type;
+ Eina_Bool ignore_geometry : 1;
+
+ //view listener
+ E_DEPRECATED struct wl_listener show_listener;
+ E_DEPRECATED struct wl_listener hide_listener;
+ E_DEPRECATED struct wl_listener move_listener;
+ E_DEPRECATED struct wl_listener resize_listener;
+ E_DEPRECATED struct wl_listener restack_listener;
+ } visibility;
+
+ struct
+ {
+ E_DEPRECATED double zoom;
+ E_DEPRECATED double angle;
+
+ E_DEPRECATED Evas_Point center;
+ E_DEPRECATED Evas_Point adjusted;
+
+ struct
+ {
+ E_DEPRECATED double x, y, z;
+ } E_DEPRECATED saved[4];
+ } E_DEPRECATED transform;
+
+ unsigned int visible : 1; // client is set to be visible by display server (never use this)
+ unsigned int hidden : 1; // set when window has been hidden by api and should not be shown
+ unsigned int moving : 1;
+ unsigned int focused : 1;
+ unsigned int new_client : 1;
+ unsigned int re_manage : 1; // client is persisting from before E restart
+ unsigned int placed : 1;
+ unsigned int iconic : 1;
+ unsigned int deskshow : 1;
+ unsigned int sticky : 1;
+ unsigned int fullscreen : 1;
+ unsigned int need_fullscreen : 1;
+ unsigned int skip_fullscreen : 1;
+ unsigned int need_reparent : 1;
+ unsigned int delete_requested : 1;
+ E_DEPRECATED unsigned int ping_ok : 1;
+ E_DEPRECATED unsigned int hung : 1;
+ unsigned int take_focus : 1;
+ unsigned int want_focus : 1;
+ unsigned int user_skip_winlist : 1;
+ E_Maximize maximized;
+ E_Fullscreen fullscreen_policy;
+ E_Layer fullscreen_layer;
+ E_Transient transient_policy;
+ unsigned int borderless : 1;
+ Eina_Stringshare *bordername;
+
+ unsigned int lock_user_location : 1; /*DONE*/
+ unsigned int lock_client_location : 1; /*DONE*/
+ unsigned int lock_user_size : 1; /*DONE*/
+ unsigned int lock_client_size : 1; /*DONE*/
+ unsigned int lock_user_stacking : 1; /*DONE*/
+ unsigned int lock_client_stacking : 1; /*DONE*/
+ unsigned int lock_user_iconify : 1; /*DONE*/
+ unsigned int lock_client_iconify : 1; /*DONE*/
+ unsigned int lock_user_desk : 1;
+ unsigned int lock_client_desk : 1;
+ unsigned int lock_user_sticky : 1; /*DONE*/
+ unsigned int lock_client_sticky : 1; /*DONE*/
+ unsigned int lock_user_maximize : 1; /*DONE*/
+ unsigned int lock_client_maximize : 1; /*DONE*/
+ unsigned int lock_user_fullscreen : 1; /*DONE*/
+ unsigned int lock_client_fullscreen : 1; /*DONE*/
+ unsigned int lock_border : 1; /*DONE*/
+ unsigned int lock_close : 1; /*DONE*/
+ unsigned int lock_focus_in : 1; /*DONE*/
+ unsigned int lock_focus_out : 1; /*DONE*/
+
+ unsigned int internal : 1;
+ E_DEPRECATED Eina_Bool dead : 1;
+
+ E_DEPRECATED double ping;
+
+ unsigned char changed : 1;
+
+ E_DEPRECATED E_Client_Move_Intercept_Cb move_intercept_cb;
+
+ unsigned char comp_hidden : 1;
+
+ E_Focus_Policy focus_policy_override;
+
+ Eina_Bool override : 1;
+ E_DEPRECATED Eina_Bool input_only : 1;
+ Eina_Bool dialog : 1;
+ Eina_Bool redirected : 1;
+ Eina_Bool layer_block : 1; // client is doing crazy stuff and should not be relayered in protocol
+ Eina_Bool layer_pending : 1; // change inlist stack but postpone evas stack
+ Eina_Bool ignored : 1; // client is comp-ignored
+ Eina_Bool maximize_override : 1; // client is doing crazy stuff and should "just do it" when moving/resizing
+ E_DEPRECATED Eina_Bool transformed : 1;
+ Eina_Bool keyboard_resizing : 1;
+ Eina_Bool gesture_disable : 1;
+ Eina_Bool floating : 1; //client is set as floating mode
+ Eina_Bool first_mapped : 1;
+ Eina_Bool post_raise : 1;
+ Eina_Bool post_lower : 1;
+ Eina_Bool animatable : 1; //client is animatable (can apply animation)
+
+ Eina_Bool on_post_updates : 1; // client is on the post update list
+ uuid_t uuid;
+
+ int client_type; //e_client_type
+
+ struct
+ {
+ unsigned char by_client : 1; // will be deprecated
+ unsigned char not_raise : 1;
+ unsigned char skip_iconify : 1;
+ unsigned char skip_by_remote : 1; // skip iconify by remote surface client
+ unsigned char deiconify_update : 1; // wait client render if deiconify_update is 1
+ unsigned char buffer_flush : 1; // 0: no flush, 1: flush buffer when iconify
+ unsigned char last_sent_iconic : 1; // 0: uniconify, 1: iconify
+ E_Iconified_Type type;
+ } exp_iconify;
+
+ struct
+ {
+ Eina_Bool set;
+ Eina_Bool saved;
+ E_Layer saved_layer; // original layer
+ } changable_layer[E_CHANGABLE_LAYER_TYPE_MAX];
+
+ struct
+ {
+ Eina_List *transform_list;
+ Eina_Bool background;
+ Eina_Bool changed;
+
+ struct
+ {
+ int client_x, client_y, client_w, client_h;
+ int frame_w, frame_h;
+ unsigned char argb : 1;
+ } backup;
+
+ struct
+ {
+ Eina_Bool enable;
+ E_Util_Transform_Matrix matrix;
+ E_Util_Transform_Matrix inv_matrix;
+ E_Util_Transform_Rect_Vertex vertices;
+ E_Util_Transform transform;
+
+ struct
+ {
+ E_Util_Transform_Rect_Vertex vertices;
+ int x, y, w, h;
+ } boundary;
+
+ } result;
+
+ struct
+ {
+ Eina_Bool enable;
+ E_Util_Transform_Matrix matrix;
+ E_Util_Transform_Zoom zoom;
+ } parent;
+
+ Eina_Bool direct_render;
+ Eina_Bool activate;
+ Eina_Bool update_lock;
+ } transform_core;
+
+ Ecore_Timer *map_timer;
+ Eina_Bool pointer_enter_sent;
+ Eina_Bool has_cursor_unset : 1; // The client has set cursor null to hide cursor image
+
+ Eina_Bool launching : 1;
+ Eina_Bool extra_animating : 1;
+ Eina_Bool bg_state : 1;
+
+ struct
+ {
+ E_Indicator_State state;
+ E_Indicator_Opacity_Mode opacity_mode;
+ E_Indicator_Visible_Type visible_type;
+ } indicator;
+
+ struct
+ {
+ Eina_Bool provider : 1;
+ Eina_Bool consumer : 1;
+ int bind_ref;
+ } remote_surface;
+
+ Eina_Bool is_cursor : 1; // The client is a cursor client
+
+ int effect_type;
+ Eina_Bool use_splash : 1;
+ Eina_Bool saved_img : 1; // indicates that window has been saved as the image file even once
+ E_DEPRECATED Eina_Bool skip_save_img: 1; // indicates that window doesn't want to save its image file
+
+ E_Hwc_Window *hwc_window; // hwc window for the tdm_hwc.
+ Eina_Bool explicit_sync;
+ int acquire_fence_fd;
+ int comp_override;
+
+ struct
+ {
+ Eina_Bool wait_commit : 1;
+ E_DEPRECATED unsigned int serial;
+ Eina_List *pending_geometry; // E_Client_Pending_Geometry
+ } surface_sync;
+
+ Eina_Bool on_render_list : 1; // client is on the render list
+
+ // flag to check event pairing
+ struct
+ {
+ Eina_Bool add : 1; // ADD / REMOVE
+ Eina_Bool show : 1; // SHOW / HIDE
+ } reg_ev;
+
+ E_View_Image *magnifier_proxy; // The proxy object used by magnifier
+ Eina_Bool is_magnifier : 1; // The client is a magnifier client
+
+ struct
+ {
+ Eina_Bool use : 1; // use the base output resolution
+ int w;
+ int h;
+ E_Util_Transform *transform;
+ E_Comp_Wl_Hook *hook_subsurf_create;
+ } base_output_resolution;
+
+ Eina_Bool hwc_visible_skip : 1;
+
+ struct
+ {
+ Eina_Bool enable;
+ E_Desk_Area *desk_area;
+ E_Util_Transform *transform;
+ } desk_area;
+
+ Eina_Bool transient_for_always_on_top;
+ Eina_Bool belong_to_parent;
+ struct
+ {
+ int count;
+ Eina_Bool running;
+ } show_pending;
+
+ E_Layer floating_saved_layer;
+
+ struct
+ {
+ int x, y, w, h;
+ Eina_Bool enable_aspect_ratio;
+ Evas_Object *resize_obj;
+ float aw, ah;
+ int header_h, footer_h;
+ unsigned int unit_size;
+ struct
+ {
+ int t, b, l, r;
+ } shadow;
+ } manage_resize;
+
+ Eina_Bool move_after_resize;
+
+ struct
+ {
+ int x, y, w, h;
+ } maximized_info;
+
+ struct
+ {
+ Eina_Bool enable;
+ E_Util_Transform *transform;
+ E_Comp_Wl_Hook *hook_subsurf_create;
+ } desk_zoom;
+
+ E_Maximize_Direction maximize_dir;
+ E_Maximize_Type maximize_type;
+
+ struct
+ {
+ Eina_Bool enabled;
+ double fps;
+ double old_fps;
+ double frametime;
+ double time;
+ double lapse;
+ int cframes;
+ int flapse;
+ } E_DEPRECATED fps;
+};
+
EINTERN Eina_Bool e_client_init(void);
EINTERN void e_client_shutdown(void);
E_DEPRECATED unsigned int serial;
};
-struct _E_Client
-{
- E_Object e_obj_inherit;
- EINA_INLIST;
-
- E_Pixmap *pixmap;
-
- int x, y, w, h; //frame+client geom
- struct {
- int x, y, w, h; //frame+client geom before move or resize callback
- } pre_cb;
- Eina_Rectangle client; //client geom
- Evas_Object *frame; //comp object
- E_Zone *zone;
- E_Desk *desk;
-
- E_DEPRECATED Ecore_Poller *ping_poller;
- Ecore_Timer *kill_timer;
-
- E_Client *parent;
- Eina_List *transients;
-
- E_Layer layer;
-
- Eina_Rectangle *shape_rects;
- unsigned int shape_rects_num;
-
- Eina_Rectangle *shape_input_rects;
- unsigned int shape_input_rects_num;
-
- E_Comp_Wl_Client_Data *comp_data;
-
- E_Action *cur_mouse_action;
-
- E_DEPRECATED int border_size; //size of client's border
-
- struct
- {
- struct
- {
- int x, y, w, h;
- int mx, my;
- } current, last_down[3], last_up[3];
- Eina_Bool in : 1;
- } mouse;
-
- struct
- {
- struct
- {
- int x, y, w, h;
- int mx, my;
- int button;
- } down;
- } moveinfo;
-
- E_Pointer_Mode resize_mode;
-
- struct
- {
- unsigned char changed : 1;
- unsigned char user_selected : 1;
- Eina_Stringshare *name;
- } border;
-
- struct
- {
- int x, y, w, h;
- E_Layer layer;
- int zone;
- E_Maximize maximized;
- } saved;
-
- struct
- {
- unsigned char valid : 1;
- int x, y, w, h;
- struct
- {
- int x, y, w, h;
- } saved;
- } pre_res_change;
-
- E_DEPRECATED unsigned char shaped : 1;
- unsigned char argb : 1;
-
- /* ICCCM */
- struct
- {
- Eina_Stringshare *title;
- Eina_Stringshare *name;
-#if defined(__cplusplus) || defined(c_plusplus)
- Eina_Stringshare *cpp_class; /* for C++ TODO: change the implementation for this */
-#else
- Eina_Stringshare *class;
-#endif
- int min_w, min_h;
- int max_w, max_h;
- Ecore_Window transient_for;
- Eina_Stringshare *window_role;
- unsigned char take_focus : 1;
- unsigned char accepts_focus : 1;
- unsigned char delete_request : 1;
- struct
- {
- unsigned char transient_for : 1;
- } fetch;
- } icccm;
-
- /* NetWM */
- struct
- {
- pid_t pid;
- Eina_Stringshare *name;
-
- unsigned char opacity;
- Eina_Bool opacity_changed : 1; // prevent fetching opacity next prop change
- E_DEPRECATED unsigned char ping : 1;
-
- /* NetWM Window state */
- struct
- {
- unsigned char modal : 1;
- unsigned char skip_taskbar : 1;
- unsigned char skip_pager : 1;
- } state;
-
- /* NetWM Window allowed actions */
- E_Window_Type type;
- } netwm;
-
- /* Extra e stuff */
- struct
- {
- struct
- {
- struct
- {
- E_Client_Rotation_Type type;
- struct
- {
- E_Client_Rotation_Angle prev, curr, next, reserve;
- } ang;
- struct
- {
- int x, y, w, h;
- } geom[4];
- unsigned char support : 1;
- unsigned char geom_hint: 1;
- unsigned char pending_change_request : 1;
- unsigned char pending_show : 1; // newly created window that has to be rotated will be show after rotating done.
- // so, it will be used pending e_border_show called at main eval time.
- unsigned char wait_for_done: 1;
- unsigned char app_set : 1; // app wants to communicate with the window manager
- int rot; // decided rotation by the window manager
- E_Client_Rotation_Angle preferred_rot; // app specified rotation
- E_Client_Rotation_Angle *available_rots; // app specified available rotations
- unsigned int count; // number of elements of available rotations
- unsigned int nopending_render : 1; // app wants to show rendering jobs before sending rotation_done
- // it is set by 'wm.policy.win.rot.render.nopending' aux hint
- } rot;
- } state;
-
- struct
- {
- struct
- {
- unsigned char support : 1;
- unsigned char geom_hint : 1;
- unsigned char app_set : 1; // app wants to communicate with the window manager
- unsigned char preferred_rot : 1; // app specified rotation
- unsigned char available_rots : 1; // app specified available rotations
- unsigned char need_rotation : 1;
- } rot;
- } fetch;
- } e;
-
- struct
- {
- struct
- {
- unsigned char state : 1;
- unsigned char vkbd : 1;
- } fetch;
- unsigned char have_property : 1;
- unsigned char vkbd : 1;
-#ifdef _F_E_VIRTUAL_KEYBOARD_TYPE_
- E_Virtual_Keyboard_Window_Type win_type;
-#endif
- unsigned char floating : 1;
- } vkbd;
-
- struct
- {
- unsigned char visible : 1;
- unsigned char pos : 1;
- unsigned char size : 1;
- unsigned char stack : 1;
- unsigned char prop : 1;
- unsigned char border : 1;
- unsigned char reset_gravity : 1;
- unsigned char shape : 1;
- unsigned char shape_input : 1;
- unsigned char icon : 1;
- Eina_Bool internal_state : 1;
- Eina_Bool need_maximize : 1;
- Eina_Bool need_unmaximize : 1;
- Eina_Bool rotation : 1;
- Eina_Bool accepts_focus : 1;
- Eina_Bool tz_position : 1; /* true when new position is set using tizen_position interface */
- unsigned char title : 1;
- E_DEPRECATED unsigned char buf_size : 1;
- } changes;
-
- struct
- {
- E_Alpha_Opaque opaque;
- int obscured;
- unsigned char changed : 1;
- Eina_Bool skip : 1;
- Eina_Bool force_obscured : 1;
- int last_sent_type;
- Eina_Bool ignore_geometry : 1;
-
- //view listener
- E_DEPRECATED struct wl_listener show_listener;
- E_DEPRECATED struct wl_listener hide_listener;
- E_DEPRECATED struct wl_listener move_listener;
- E_DEPRECATED struct wl_listener resize_listener;
- E_DEPRECATED struct wl_listener restack_listener;
- } visibility;
-
- struct
- {
- E_DEPRECATED double zoom;
- E_DEPRECATED double angle;
-
- E_DEPRECATED Evas_Point center;
- E_DEPRECATED Evas_Point adjusted;
-
- struct
- {
- E_DEPRECATED double x, y, z;
- } E_DEPRECATED saved[4];
- } E_DEPRECATED transform;
-
- unsigned int visible : 1; // client is set to be visible by display server (never use this)
- unsigned int hidden : 1; // set when window has been hidden by api and should not be shown
- unsigned int moving : 1;
- unsigned int focused : 1;
- unsigned int new_client : 1;
- unsigned int re_manage : 1; // client is persisting from before E restart
- unsigned int placed : 1;
- unsigned int iconic : 1;
- unsigned int deskshow : 1;
- unsigned int sticky : 1;
- unsigned int fullscreen : 1;
- unsigned int need_fullscreen : 1;
- unsigned int skip_fullscreen : 1;
- unsigned int need_reparent : 1;
- unsigned int delete_requested : 1;
- E_DEPRECATED unsigned int ping_ok : 1;
- E_DEPRECATED unsigned int hung : 1;
- unsigned int take_focus : 1;
- unsigned int want_focus : 1;
- unsigned int user_skip_winlist : 1;
- E_Maximize maximized;
- E_Fullscreen fullscreen_policy;
- E_Layer fullscreen_layer;
- E_Transient transient_policy;
- unsigned int borderless : 1;
- Eina_Stringshare *bordername;
-
- unsigned int lock_user_location : 1; /*DONE*/
- unsigned int lock_client_location : 1; /*DONE*/
- unsigned int lock_user_size : 1; /*DONE*/
- unsigned int lock_client_size : 1; /*DONE*/
- unsigned int lock_user_stacking : 1; /*DONE*/
- unsigned int lock_client_stacking : 1; /*DONE*/
- unsigned int lock_user_iconify : 1; /*DONE*/
- unsigned int lock_client_iconify : 1; /*DONE*/
- unsigned int lock_user_desk : 1;
- unsigned int lock_client_desk : 1;
- unsigned int lock_user_sticky : 1; /*DONE*/
- unsigned int lock_client_sticky : 1; /*DONE*/
- unsigned int lock_user_maximize : 1; /*DONE*/
- unsigned int lock_client_maximize : 1; /*DONE*/
- unsigned int lock_user_fullscreen : 1; /*DONE*/
- unsigned int lock_client_fullscreen : 1; /*DONE*/
- unsigned int lock_border : 1; /*DONE*/
- unsigned int lock_close : 1; /*DONE*/
- unsigned int lock_focus_in : 1; /*DONE*/
- unsigned int lock_focus_out : 1; /*DONE*/
-
- unsigned int internal : 1;
- E_DEPRECATED Eina_Bool dead : 1;
-
- E_DEPRECATED double ping;
-
- unsigned char changed : 1;
-
- E_DEPRECATED E_Client_Move_Intercept_Cb move_intercept_cb;
-
- unsigned char comp_hidden : 1;
-
- E_Focus_Policy focus_policy_override;
-
- Eina_Bool override : 1;
- E_DEPRECATED Eina_Bool input_only : 1;
- Eina_Bool dialog : 1;
- Eina_Bool redirected : 1;
- Eina_Bool layer_block : 1; // client is doing crazy stuff and should not be relayered in protocol
- Eina_Bool layer_pending : 1; // change inlist stack but postpone evas stack
- Eina_Bool ignored : 1; // client is comp-ignored
- Eina_Bool maximize_override : 1; // client is doing crazy stuff and should "just do it" when moving/resizing
- E_DEPRECATED Eina_Bool transformed : 1;
- Eina_Bool keyboard_resizing : 1;
- Eina_Bool gesture_disable : 1;
- Eina_Bool floating : 1; //client is set as floating mode
- Eina_Bool first_mapped : 1;
- Eina_Bool post_raise : 1;
- Eina_Bool post_lower : 1;
- Eina_Bool animatable : 1; //client is animatable (can apply animation)
-
- Eina_Bool on_post_updates : 1; // client is on the post update list
- uuid_t uuid;
-
- int client_type; //e_client_type
-
- struct
- {
- unsigned char by_client : 1; // will be deprecated
- unsigned char not_raise : 1;
- unsigned char skip_iconify : 1;
- unsigned char skip_by_remote : 1; // skip iconify by remote surface client
- unsigned char deiconify_update : 1; // wait client render if deiconify_update is 1
- unsigned char buffer_flush : 1; // 0: no flush, 1: flush buffer when iconify
- unsigned char last_sent_iconic : 1; // 0: uniconify, 1: iconify
- E_Iconified_Type type;
- } exp_iconify;
-
- struct
- {
- Eina_Bool set;
- Eina_Bool saved;
- E_Layer saved_layer; // original layer
- } changable_layer[E_CHANGABLE_LAYER_TYPE_MAX];
-
- struct
- {
- Eina_List *transform_list;
- Eina_Bool background;
- Eina_Bool changed;
-
- struct
- {
- int client_x, client_y, client_w, client_h;
- int frame_w, frame_h;
- unsigned char argb : 1;
- } backup;
-
- struct
- {
- Eina_Bool enable;
- E_Util_Transform_Matrix matrix;
- E_Util_Transform_Matrix inv_matrix;
- E_Util_Transform_Rect_Vertex vertices;
- E_Util_Transform transform;
-
- struct
- {
- E_Util_Transform_Rect_Vertex vertices;
- int x, y, w, h;
- } boundary;
-
- } result;
-
- struct
- {
- Eina_Bool enable;
- E_Util_Transform_Matrix matrix;
- E_Util_Transform_Zoom zoom;
- } parent;
-
- Eina_Bool direct_render;
- Eina_Bool activate;
- Eina_Bool update_lock;
- } transform_core;
-
- Ecore_Timer *map_timer;
- Eina_Bool pointer_enter_sent;
- Eina_Bool has_cursor_unset : 1; // The client has set cursor null to hide cursor image
-
- Eina_Bool launching : 1;
- Eina_Bool extra_animating : 1;
- Eina_Bool bg_state : 1;
-
- struct
- {
- E_Indicator_State state;
- E_Indicator_Opacity_Mode opacity_mode;
- E_Indicator_Visible_Type visible_type;
- } indicator;
-
- struct
- {
- Eina_Bool provider : 1;
- Eina_Bool consumer : 1;
- int bind_ref;
- } remote_surface;
-
- Eina_Bool is_cursor : 1; // The client is a cursor client
-
- int effect_type;
- Eina_Bool use_splash : 1;
- Eina_Bool saved_img : 1; // indicates that window has been saved as the image file even once
- E_DEPRECATED Eina_Bool skip_save_img: 1; // indicates that window doesn't want to save its image file
-
- E_Hwc_Window *hwc_window; // hwc window for the tdm_hwc.
- Eina_Bool explicit_sync;
- int acquire_fence_fd;
- int comp_override;
-
- struct
- {
- Eina_Bool wait_commit : 1;
- E_DEPRECATED unsigned int serial;
- Eina_List *pending_geometry; // E_Client_Pending_Geometry
- } surface_sync;
-
- Eina_Bool on_render_list : 1; // client is on the render list
-
- // flag to check event pairing
- struct
- {
- Eina_Bool add : 1; // ADD / REMOVE
- Eina_Bool show : 1; // SHOW / HIDE
- } reg_ev;
-
- E_View_Image *magnifier_proxy; // The proxy object used by magnifier
- Eina_Bool is_magnifier : 1; // The client is a magnifier client
-
- struct
- {
- Eina_Bool use : 1; // use the base output resolution
- int w;
- int h;
- E_Util_Transform *transform;
- E_Comp_Wl_Hook *hook_subsurf_create;
- } base_output_resolution;
-
- Eina_Bool hwc_visible_skip : 1;
-
- struct
- {
- Eina_Bool enable;
- E_Desk_Area *desk_area;
- E_Util_Transform *transform;
- } desk_area;
-
- Eina_Bool transient_for_always_on_top;
- Eina_Bool belong_to_parent;
- struct
- {
- int count;
- Eina_Bool running;
- } show_pending;
-
- E_Layer floating_saved_layer;
-
- struct
- {
- int x, y, w, h;
- Eina_Bool enable_aspect_ratio;
- Evas_Object *resize_obj;
- float aw, ah;
- int header_h, footer_h;
- unsigned int unit_size;
- struct
- {
- int t, b, l, r;
- } shadow;
- } manage_resize;
-
- Eina_Bool move_after_resize;
-
- struct
- {
- int x, y, w, h;
- } maximized_info;
-
- struct
- {
- Eina_Bool enable;
- E_Util_Transform *transform;
- E_Comp_Wl_Hook *hook_subsurf_create;
- } desk_zoom;
-
- E_Maximize_Direction maximize_dir;
- E_Maximize_Type maximize_type;
-
- struct
- {
- Eina_Bool enabled;
- double fps;
- double old_fps;
- double frametime;
- double time;
- double lapse;
- int cframes;
- int flapse;
- } E_DEPRECATED fps;
-};
-
#define EC_CHANGED(EC) e_client_changed_set(EC, EINA_TRUE)
#define E_CLIENT_FOREACH(EC) \