2 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
14 #include "ecore_x_private.h"
16 #include "Ecore_X_Atoms.h"
24 ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb)
26 unsigned int frames[4];
28 LOGFN(__FILE__, __LINE__, __FUNCTION__);
33 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
37 ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard)
39 LOGFN(__FILE__, __LINE__, __FUNCTION__);
40 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
45 ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
49 LOGFN(__FILE__, __LINE__, __FUNCTION__);
50 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, &val, 1))
55 static Ecore_X_Virtual_Keyboard_State
56 _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom)
58 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON)
59 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
60 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF)
61 return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
62 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA)
63 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
64 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC)
65 return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
66 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN)
67 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
68 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER)
69 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
70 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX)
71 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
72 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL)
73 return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
74 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD)
75 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
76 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP)
77 return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP;
78 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST)
79 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST;
80 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE)
81 return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE;
82 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL)
83 return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL;
84 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD)
85 return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD;
86 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME)
87 return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
88 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
92 _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
96 case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF:
97 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
98 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON:
99 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
100 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA:
101 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
102 case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC:
103 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
104 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN:
105 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
106 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER:
107 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
108 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX:
109 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
110 case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL:
111 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
112 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD:
113 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
114 case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP:
115 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP;
116 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST:
117 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST;
118 case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE:
119 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE;
120 case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL:
121 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL;
122 case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD:
123 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD;
124 case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME:
125 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
132 ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state)
134 Ecore_X_Atom atom = 0;
136 LOGFN(__FILE__, __LINE__, __FUNCTION__);
137 atom = _ecore_x_e_vkbd_atom_get(state);
138 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
142 EAPI Ecore_X_Virtual_Keyboard_State
143 ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
147 LOGFN(__FILE__, __LINE__, __FUNCTION__);
148 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
150 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
151 return _ecore_x_e_vkbd_state_get(atom);
155 ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state)
157 LOGFN(__FILE__, __LINE__, __FUNCTION__);
158 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
159 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
160 _ecore_x_e_vkbd_atom_get(state),
165 _ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode)
169 case ECORE_X_ILLUME_MODE_SINGLE:
170 return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE;
171 case ECORE_X_ILLUME_MODE_DUAL_TOP:
172 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP;
173 case ECORE_X_ILLUME_MODE_DUAL_LEFT:
174 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT;
176 return ECORE_X_ILLUME_MODE_UNKNOWN;;
178 return ECORE_X_ILLUME_MODE_UNKNOWN;
181 static Ecore_X_Illume_Mode
182 _ecore_x_e_illume_mode_get(Ecore_X_Atom atom)
184 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE)
185 return ECORE_X_ILLUME_MODE_SINGLE;
186 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP)
187 return ECORE_X_ILLUME_MODE_DUAL_TOP;
188 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT)
189 return ECORE_X_ILLUME_MODE_DUAL_LEFT;
190 return ECORE_X_ILLUME_MODE_UNKNOWN;
194 ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone)
196 LOGFN(__FILE__, __LINE__, __FUNCTION__);
197 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE,
202 ecore_x_e_illume_zone_get(Ecore_X_Window win)
206 LOGFN(__FILE__, __LINE__, __FUNCTION__);
207 if (!ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE,
213 ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones)
215 LOGFN(__FILE__, __LINE__, __FUNCTION__);
216 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
221 ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant)
223 LOGFN(__FILE__, __LINE__, __FUNCTION__);
224 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
229 ecore_x_e_illume_conformant_get(Ecore_X_Window win)
231 unsigned int val = 0;
233 LOGFN(__FILE__, __LINE__, __FUNCTION__);
234 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
241 ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode)
243 Ecore_X_Atom atom = 0;
245 LOGFN(__FILE__, __LINE__, __FUNCTION__);
246 atom = _ecore_x_e_illume_atom_get(mode);
247 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE,
251 EAPI Ecore_X_Illume_Mode
252 ecore_x_e_illume_mode_get(Ecore_X_Window win)
254 Ecore_X_Atom atom = 0;
256 LOGFN(__FILE__, __LINE__, __FUNCTION__);
257 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1))
258 return ECORE_X_ILLUME_MODE_UNKNOWN;
259 return _ecore_x_e_illume_mode_get(atom);
263 ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode)
265 LOGFN(__FILE__, __LINE__, __FUNCTION__);
266 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_MODE,
267 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
268 _ecore_x_e_illume_atom_get(mode),
273 ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
275 LOGFN(__FILE__, __LINE__, __FUNCTION__);
276 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK,
277 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
282 ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
284 LOGFN(__FILE__, __LINE__, __FUNCTION__);
285 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD,
286 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
291 ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
293 LOGFN(__FILE__, __LINE__, __FUNCTION__);
294 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME,
295 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
300 ecore_x_e_illume_close_send(Ecore_X_Window win)
302 LOGFN(__FILE__, __LINE__, __FUNCTION__);
303 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE,
304 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
309 ecore_x_e_illume_home_new_send(Ecore_X_Window win)
311 LOGFN(__FILE__, __LINE__, __FUNCTION__);
312 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW,
313 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
318 ecore_x_e_illume_home_del_send(Ecore_X_Window win)
320 LOGFN(__FILE__, __LINE__, __FUNCTION__);
321 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL,
322 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
327 ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag)
329 LOGFN(__FILE__, __LINE__, __FUNCTION__);
330 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1);
334 ecore_x_e_illume_drag_get(Ecore_X_Window win)
336 unsigned int val = 0;
338 LOGFN(__FILE__, __LINE__, __FUNCTION__);
339 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG, &val, 1))
345 ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked)
347 LOGFN(__FILE__, __LINE__, __FUNCTION__);
348 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
353 ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
355 unsigned int val = 0;
357 LOGFN(__FILE__, __LINE__, __FUNCTION__);
358 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
365 ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
367 LOGFN(__FILE__, __LINE__, __FUNCTION__);
368 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START,
369 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
374 ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
376 LOGFN(__FILE__, __LINE__, __FUNCTION__);
377 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END,
378 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
383 ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h)
385 unsigned int geom[4];
387 LOGFN(__FILE__, __LINE__, __FUNCTION__);
392 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
397 ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h)
400 unsigned int geom[4];
402 LOGFN(__FILE__, __LINE__, __FUNCTION__);
404 ecore_x_window_prop_card32_get(win,
405 ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
407 if (ret != 4) return 0;
416 ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h)
418 unsigned int geom[4];
420 LOGFN(__FILE__, __LINE__, __FUNCTION__);
425 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
430 ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h)
433 unsigned int geom[4];
435 LOGFN(__FILE__, __LINE__, __FUNCTION__);
437 ecore_x_window_prop_card32_get(win,
438 ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
440 if (ret != 4) return 0;
449 ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h)
451 unsigned int geom[4];
453 LOGFN(__FILE__, __LINE__, __FUNCTION__);
458 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
463 ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h)
466 unsigned int geom[4];
468 LOGFN(__FILE__, __LINE__, __FUNCTION__);
470 ecore_x_window_prop_card32_get(win,
471 ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
473 if (ret != 4) return 0;
482 _ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
486 case ECORE_X_ILLUME_QUICKPANEL_STATE_ON:
487 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON;
488 case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF:
489 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF;
496 static Ecore_X_Illume_Quickpanel_State
497 _ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom)
499 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
500 return ECORE_X_ILLUME_QUICKPANEL_STATE_ON;
501 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF)
502 return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF;
503 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
507 ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel)
509 LOGFN(__FILE__, __LINE__, __FUNCTION__);
510 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
515 ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
517 unsigned int val = 0;
519 LOGFN(__FILE__, __LINE__, __FUNCTION__);
520 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
527 ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state)
529 Ecore_X_Atom atom = 0;
531 LOGFN(__FILE__, __LINE__, __FUNCTION__);
532 atom = _ecore_x_e_quickpanel_atom_get(state);
533 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
537 EAPI Ecore_X_Illume_Quickpanel_State
538 ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
542 LOGFN(__FILE__, __LINE__, __FUNCTION__);
543 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
545 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
546 return _ecore_x_e_quickpanel_state_get(atom);
550 ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state)
552 LOGFN(__FILE__, __LINE__, __FUNCTION__);
553 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
554 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
555 _ecore_x_e_quickpanel_atom_get(state),
560 ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
562 LOGFN(__FILE__, __LINE__, __FUNCTION__);
563 ecore_x_client_message32_send(win,
564 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE,
565 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
570 ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority)
572 LOGFN(__FILE__, __LINE__, __FUNCTION__);
573 ecore_x_window_prop_card32_set(win,
574 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
579 ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
581 unsigned int val = 0;
583 LOGFN(__FILE__, __LINE__, __FUNCTION__);
584 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
591 ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority)
593 LOGFN(__FILE__, __LINE__, __FUNCTION__);
594 ecore_x_window_prop_card32_set(win,
595 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
600 ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
602 unsigned int val = 0;
604 LOGFN(__FILE__, __LINE__, __FUNCTION__);
605 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
612 ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone)
614 LOGFN(__FILE__, __LINE__, __FUNCTION__);
615 ecore_x_window_prop_card32_set(win,
616 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
621 ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
623 unsigned int val = 0;
625 LOGFN(__FILE__, __LINE__, __FUNCTION__);
626 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
633 ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
635 LOGFN(__FILE__, __LINE__, __FUNCTION__);
636 ecore_x_client_message32_send(win,
637 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE,
638 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
643 ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter)
645 LOGFN(__FILE__, __LINE__, __FUNCTION__);
647 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
648 ECORE_X_ATOM_CARDINAL, &counter, 1);
650 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER);
653 EAPI Ecore_X_Sync_Counter
654 ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
657 Ecore_X_Sync_Counter counter = 0;
659 LOGFN(__FILE__, __LINE__, __FUNCTION__);
661 ecore_x_window_prop_xid_get(win,
662 ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
663 ECORE_X_ATOM_CARDINAL,
665 if (ret != 1) return 0;
670 ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win)
674 LOGFN(__FILE__, __LINE__, __FUNCTION__);
675 if (!root) root = DefaultRootWindow(_ecore_x_disp);
676 xev.xclient.type = ClientMessage;
677 xev.xclient.display = _ecore_x_disp;
678 xev.xclient.window = win;
679 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
680 xev.xclient.format = 32;
681 xev.xclient.data.l[0] = win;
682 xev.xclient.data.l[1] = 0; // later
683 xev.xclient.data.l[2] = 0; // later
684 xev.xclient.data.l[3] = 0; // later
685 xev.xclient.data.l[4] = 0; // later
687 XSendEvent(_ecore_x_disp, root, False,
688 SubstructureRedirectMask | SubstructureNotifyMask,
693 ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled)
697 if (!root) root = DefaultRootWindow(_ecore_x_disp);
698 LOGFN(__FILE__, __LINE__, __FUNCTION__);
701 win = ecore_x_window_new(root, 1, 2, 3, 4);
702 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
703 ECORE_X_ATOM_WINDOW, &win, 1);
704 ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
705 ECORE_X_ATOM_WINDOW, &win, 1);
712 ecore_x_window_prop_xid_get(root,
713 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
716 if ((ret == 1) && (win))
718 ecore_x_window_prop_property_del(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED);
719 ecore_x_window_free(win);
725 ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
727 Ecore_X_Window win, win2;
730 LOGFN(__FILE__, __LINE__, __FUNCTION__);
731 if (!root) root = DefaultRootWindow(_ecore_x_disp);
733 ecore_x_window_prop_xid_get(root,
734 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
737 if ((ret == 1) && (win))
740 ecore_x_window_prop_xid_get(win,
741 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
744 if ((ret == 1) && (win2 == win))
753 ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
757 LOGFN(__FILE__, __LINE__, __FUNCTION__);
758 xev.xclient.type = ClientMessage;
759 xev.xclient.display = _ecore_x_disp;
760 xev.xclient.window = win;
761 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN;
762 xev.xclient.format = 32;
763 xev.xclient.data.l[0] = win;
764 xev.xclient.data.l[1] = 0; // later
765 xev.xclient.data.l[2] = 0; // later
766 xev.xclient.data.l[3] = 0; // later
767 xev.xclient.data.l[4] = 0; // later
769 XSendEvent(_ecore_x_disp, win, False,
770 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
775 ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
779 LOGFN(__FILE__, __LINE__, __FUNCTION__);
780 xev.xclient.type = ClientMessage;
781 xev.xclient.display = _ecore_x_disp;
782 xev.xclient.window = win;
783 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_END;
784 xev.xclient.format = 32;
785 xev.xclient.data.l[0] = win;
786 xev.xclient.data.l[1] = 0; // later
787 xev.xclient.data.l[2] = 0; // later
788 xev.xclient.data.l[3] = 0; // later
789 xev.xclient.data.l[4] = 0; // later
791 XSendEvent(_ecore_x_disp, win, False,
792 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
797 ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
801 LOGFN(__FILE__, __LINE__, __FUNCTION__);
802 xev.xclient.type = ClientMessage;
803 xev.xclient.display = _ecore_x_disp;
804 xev.xclient.window = win;
805 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL;
806 xev.xclient.format = 32;
807 xev.xclient.data.l[0] = win;
808 xev.xclient.data.l[1] = 0; // later
809 xev.xclient.data.l[2] = 0; // later
810 xev.xclient.data.l[3] = 0; // later
811 xev.xclient.data.l[4] = 0; // later
813 XSendEvent(_ecore_x_disp, win, False,
814 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
819 ecore_x_e_comp_flush_send(Ecore_X_Window win)
823 LOGFN(__FILE__, __LINE__, __FUNCTION__);
824 xev.xclient.type = ClientMessage;
825 xev.xclient.display = _ecore_x_disp;
826 xev.xclient.window = win;
827 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_FLUSH;
828 xev.xclient.format = 32;
829 xev.xclient.data.l[0] = win;
830 xev.xclient.data.l[1] = 0; // later
831 xev.xclient.data.l[2] = 0; // later
832 xev.xclient.data.l[3] = 0; // later
833 xev.xclient.data.l[4] = 0; // later
835 XSendEvent(_ecore_x_disp, win, False,
836 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
841 ecore_x_e_comp_dump_send(Ecore_X_Window win)
845 LOGFN(__FILE__, __LINE__, __FUNCTION__);
846 xev.xclient.type = ClientMessage;
847 xev.xclient.display = _ecore_x_disp;
848 xev.xclient.window = win;
849 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_DUMP;
850 xev.xclient.format = 32;
851 xev.xclient.data.l[0] = win;
852 xev.xclient.data.l[1] = 0; // later
853 xev.xclient.data.l[2] = 0; // later
854 xev.xclient.data.l[3] = 0; // later
855 xev.xclient.data.l[4] = 0; // later
857 XSendEvent(_ecore_x_disp, win, False,
858 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,