summaryrefslogtreecommitdiff
path: root/src/bin/e_comp_x.h
blob: 13d828cddf61d4ea4a06b61edc65514674d7807f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#ifdef E_TYPEDEFS
# include <Ecore_X.h>
#  include "e_atoms.h"
#  include "e_hints.h"
#  include "e_randr.h"

#else
# ifndef E_COMP_X_H
#  define E_COMP_X_H
#  include <Ecore_X.h>
#  include "e_atoms.h"
#  include "e_hints.h"
#  include "e_randr.h"

struct _E_Comp_Client_Data
{
   Ecore_X_Window lock_win;

   Ecore_X_Damage       damage;  // damage region
   Ecore_X_Visual       vis;  // window visual
   Ecore_X_Colormap     cmap; // colormap of window
   int pw, ph; //XPRESENT!

#if 0 //NOT USED
   Ecore_X_Pixmap       cache_pixmap;  // the cached pixmap (1/nth the dimensions)
   int                  cache_w, cache_h;  // cached pixmap size
#endif

   Ecore_X_Image       *xim;  // x image - software fallback
   Ecore_X_Sync_Alarm   alarm;
   Ecore_X_Sync_Counter sync_counter;  // netwm sync counter

   unsigned char        misses; // number of sync misses

   Ecore_X_Window_Attributes initial_attributes;

   unsigned int move_counter; //reduce X calls when moving a window
   unsigned int internal_props_set; //don't need to refetch our own internal props

   struct
   {
      struct
      {
         struct
         {
            unsigned char conformant : 1;
         } fetch;
         unsigned char conformant : 1;
      } conformant;
      struct
      {
         struct
         {
            unsigned char state : 1;
            struct
            {
               unsigned int major : 1;
               unsigned int minor : 1;
            } priority;
            unsigned char quickpanel : 1;
            unsigned char zone : 1;
         } fetch;
         Ecore_X_Illume_Quickpanel_State state;
         struct
         {
            unsigned int major : 1;
            unsigned int minor : 1;
         } priority;
         unsigned char                   quickpanel : 1;
         int                             zone;
      } quickpanel;
      struct
      {
         struct
         {
            unsigned char drag : 1;
            unsigned char locked : 1;
         } fetch;
         unsigned char drag : 1;
         unsigned char locked : 1;
      } drag;
      struct
      {
         struct
         {
            unsigned char state : 1;
         } fetch;
         Ecore_X_Illume_Window_State state;
      } win_state;
   } illume;

   Eina_Bool moving : 1;
   Eina_Bool first_map : 1;
   Eina_Bool change_icon : 1;
   Eina_Bool need_reparent : 1;
   Eina_Bool reparented : 1;
   Eina_Bool deleted : 1;
   Eina_Bool button_grabbed : 1;
   Eina_Bool fetch_exe : 1;
   Eina_Bool set_win_type : 1;
   Eina_Bool frame_update : 1;
   Eina_Bool evas_init : 1;
};

EINTERN Eina_Bool e_comp_x_init(void);
EINTERN void e_comp_x_shutdown(void);

EAPI void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
# endif
#endif