7 #endif /* ifdef HAVE_CONFIG_H */
19 #include "ecore_x_private.h"
21 #include "Ecore_X_Atoms.h"
29 ecore_x_e_frame_size_set(Ecore_X_Window win,
35 unsigned int frames[4];
37 LOGFN(__FILE__, __LINE__, __FUNCTION__);
42 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
46 ecore_x_e_virtual_keyboard_set(Ecore_X_Window win,
47 unsigned int is_keyboard)
49 LOGFN(__FILE__, __LINE__, __FUNCTION__);
50 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
55 ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
60 LOGFN(__FILE__, __LINE__, __FUNCTION__);
61 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
63 if ((ret == 0) || (ret == -1))
66 return val ? EINA_TRUE : EINA_FALSE;
69 static Ecore_X_Virtual_Keyboard_State
70 _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom)
72 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON)
73 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
75 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF)
76 return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
78 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA)
79 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
81 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC)
82 return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
84 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN)
85 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
87 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER)
88 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
90 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX)
91 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
93 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL)
94 return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
96 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD)
97 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
99 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP)
100 return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP;
102 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST)
103 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST;
105 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE)
106 return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE;
108 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL)
109 return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL;
111 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD)
112 return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD;
114 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME)
115 return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
117 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
121 _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
125 case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF:
126 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
128 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON:
129 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
131 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA:
132 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
134 case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC:
135 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
137 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN:
138 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
140 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER:
141 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
143 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX:
144 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
146 case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL:
147 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
149 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD:
150 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
152 case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP:
153 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP;
155 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST:
156 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST;
158 case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE:
159 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE;
161 case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL:
162 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL;
164 case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD:
165 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD;
167 case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME:
168 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
176 ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win,
177 Ecore_X_Virtual_Keyboard_State state)
179 Ecore_X_Atom atom = 0;
181 LOGFN(__FILE__, __LINE__, __FUNCTION__);
182 atom = _ecore_x_e_vkbd_atom_get(state);
183 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
187 EAPI Ecore_X_Virtual_Keyboard_State
188 ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
190 Ecore_X_Atom atom = 0;
192 LOGFN(__FILE__, __LINE__, __FUNCTION__);
193 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
195 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
197 return _ecore_x_e_vkbd_state_get(atom);
201 ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win,
202 Ecore_X_Virtual_Keyboard_State state)
204 LOGFN(__FILE__, __LINE__, __FUNCTION__);
205 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
206 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
207 _ecore_x_e_vkbd_atom_get(state),
212 _ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode)
216 case ECORE_X_ILLUME_MODE_SINGLE:
217 return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE;
219 case ECORE_X_ILLUME_MODE_DUAL_TOP:
220 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP;
222 case ECORE_X_ILLUME_MODE_DUAL_LEFT:
223 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT;
228 return ECORE_X_ILLUME_MODE_UNKNOWN;
231 static Ecore_X_Illume_Mode
232 _ecore_x_e_illume_mode_get(Ecore_X_Atom atom)
234 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE)
235 return ECORE_X_ILLUME_MODE_SINGLE;
237 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP)
238 return ECORE_X_ILLUME_MODE_DUAL_TOP;
240 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT)
241 return ECORE_X_ILLUME_MODE_DUAL_LEFT;
243 return ECORE_X_ILLUME_MODE_UNKNOWN;
247 ecore_x_e_illume_zone_set(Ecore_X_Window win,
250 LOGFN(__FILE__, __LINE__, __FUNCTION__);
251 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE,
256 ecore_x_e_illume_zone_get(Ecore_X_Window win)
258 Ecore_X_Window zone = 0;
261 LOGFN(__FILE__, __LINE__, __FUNCTION__);
262 ret = ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE,
264 if ((ret == 0) || (ret == -1))
271 ecore_x_e_illume_zone_list_set(Ecore_X_Window win,
272 Ecore_X_Window *zones,
273 unsigned int n_zones)
275 LOGFN(__FILE__, __LINE__, __FUNCTION__);
276 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
281 ecore_x_e_illume_conformant_set(Ecore_X_Window win,
282 unsigned int is_conformant)
284 LOGFN(__FILE__, __LINE__, __FUNCTION__);
285 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
290 ecore_x_e_illume_conformant_get(Ecore_X_Window win)
292 unsigned int val = 0;
295 LOGFN(__FILE__, __LINE__, __FUNCTION__);
296 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
298 if ((ret == 0) || (ret == -1))
301 return val ? EINA_TRUE : EINA_FALSE;
305 ecore_x_e_illume_mode_set(Ecore_X_Window win,
306 Ecore_X_Illume_Mode mode)
308 Ecore_X_Atom atom = 0;
310 LOGFN(__FILE__, __LINE__, __FUNCTION__);
311 atom = _ecore_x_e_illume_atom_get(mode);
312 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE,
316 EAPI Ecore_X_Illume_Mode
317 ecore_x_e_illume_mode_get(Ecore_X_Window win)
319 Ecore_X_Atom atom = 0;
321 LOGFN(__FILE__, __LINE__, __FUNCTION__);
322 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1))
323 return ECORE_X_ILLUME_MODE_UNKNOWN;
325 return _ecore_x_e_illume_mode_get(atom);
329 ecore_x_e_illume_mode_send(Ecore_X_Window win,
330 Ecore_X_Illume_Mode mode)
332 LOGFN(__FILE__, __LINE__, __FUNCTION__);
333 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_MODE,
334 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
335 _ecore_x_e_illume_atom_get(mode),
340 ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
342 LOGFN(__FILE__, __LINE__, __FUNCTION__);
343 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK,
344 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
349 ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
351 LOGFN(__FILE__, __LINE__, __FUNCTION__);
352 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD,
353 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
358 ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
360 LOGFN(__FILE__, __LINE__, __FUNCTION__);
361 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME,
362 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
367 ecore_x_e_illume_close_send(Ecore_X_Window win)
369 LOGFN(__FILE__, __LINE__, __FUNCTION__);
370 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE,
371 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
376 ecore_x_e_illume_home_new_send(Ecore_X_Window win)
378 LOGFN(__FILE__, __LINE__, __FUNCTION__);
379 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW,
380 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
385 ecore_x_e_illume_home_del_send(Ecore_X_Window win)
387 LOGFN(__FILE__, __LINE__, __FUNCTION__);
388 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL,
389 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
394 ecore_x_e_illume_access_action_next_send(Ecore_X_Window win)
396 LOGFN(__FILE__, __LINE__, __FUNCTION__);
397 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
398 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
400 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT,
405 ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win)
407 LOGFN(__FILE__, __LINE__, __FUNCTION__);
408 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
409 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
411 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV,
416 ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win)
418 LOGFN(__FILE__, __LINE__, __FUNCTION__);
419 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
420 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
422 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE,
427 ecore_x_e_illume_access_action_over_send(Ecore_X_Window win)
429 LOGFN(__FILE__, __LINE__, __FUNCTION__);
430 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
431 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
433 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_OVER,
438 ecore_x_e_illume_access_action_read_send(Ecore_X_Window win)
440 LOGFN(__FILE__, __LINE__, __FUNCTION__);
441 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
442 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
444 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ,
449 ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win)
451 LOGFN(__FILE__, __LINE__, __FUNCTION__);
452 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
453 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
455 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT,
460 ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win)
462 LOGFN(__FILE__, __LINE__, __FUNCTION__);
463 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
464 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
466 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV,
471 ecore_x_e_illume_access_action_up_send(Ecore_X_Window win)
473 LOGFN(__FILE__, __LINE__, __FUNCTION__);
474 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
475 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
477 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_UP,
482 ecore_x_e_illume_access_action_down_send(Ecore_X_Window win)
484 LOGFN(__FILE__, __LINE__, __FUNCTION__);
485 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
486 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
488 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_DOWN,
493 ecore_x_e_illume_drag_set(Ecore_X_Window win,
496 LOGFN(__FILE__, __LINE__, __FUNCTION__);
497 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1);
501 ecore_x_e_illume_drag_get(Ecore_X_Window win)
503 unsigned int val = 0;
506 LOGFN(__FILE__, __LINE__, __FUNCTION__);
507 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG,
509 if ((ret == 0) || (ret == -1))
512 return val ? EINA_TRUE : EINA_FALSE;
516 ecore_x_e_illume_drag_locked_set(Ecore_X_Window win,
517 unsigned int is_locked)
519 LOGFN(__FILE__, __LINE__, __FUNCTION__);
520 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
525 ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
527 unsigned int val = 0;
530 LOGFN(__FILE__, __LINE__, __FUNCTION__);
531 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
533 if ((ret == 0) || (ret == -1))
536 return val ? EINA_TRUE : EINA_FALSE;
540 ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
542 LOGFN(__FILE__, __LINE__, __FUNCTION__);
543 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START,
544 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
549 ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
551 LOGFN(__FILE__, __LINE__, __FUNCTION__);
552 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END,
553 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
558 ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win,
564 unsigned int geom[4];
566 LOGFN(__FILE__, __LINE__, __FUNCTION__);
571 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
576 ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
583 unsigned int geom[4];
585 LOGFN(__FILE__, __LINE__, __FUNCTION__);
587 ecore_x_window_prop_card32_get(win,
588 ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
609 ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win,
615 unsigned int geom[4];
617 LOGFN(__FILE__, __LINE__, __FUNCTION__);
622 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
627 ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
634 unsigned int geom[4];
636 LOGFN(__FILE__, __LINE__, __FUNCTION__);
638 ecore_x_window_prop_card32_get(win,
639 ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
660 ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win,
666 unsigned int geom[4];
668 LOGFN(__FILE__, __LINE__, __FUNCTION__);
673 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
678 ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
685 unsigned int geom[4];
687 LOGFN(__FILE__, __LINE__, __FUNCTION__);
689 ecore_x_window_prop_card32_get(win,
690 ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
711 _ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
715 case ECORE_X_ILLUME_QUICKPANEL_STATE_ON:
716 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON;
718 case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF:
719 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF;
727 static Ecore_X_Illume_Quickpanel_State
728 _ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom)
730 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
731 return ECORE_X_ILLUME_QUICKPANEL_STATE_ON;
733 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF)
734 return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF;
736 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
740 ecore_x_e_illume_quickpanel_set(Ecore_X_Window win,
741 unsigned int is_quickpanel)
743 LOGFN(__FILE__, __LINE__, __FUNCTION__);
744 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
749 ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
751 unsigned int val = 0;
754 LOGFN(__FILE__, __LINE__, __FUNCTION__);
755 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
757 if ((ret == 0) || (ret == -1))
760 return val ? EINA_TRUE : EINA_FALSE;
764 ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win,
765 Ecore_X_Illume_Quickpanel_State state)
767 Ecore_X_Atom atom = 0;
769 LOGFN(__FILE__, __LINE__, __FUNCTION__);
770 atom = _ecore_x_e_quickpanel_atom_get(state);
771 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
775 EAPI Ecore_X_Illume_Quickpanel_State
776 ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
778 Ecore_X_Atom atom = 0;
780 LOGFN(__FILE__, __LINE__, __FUNCTION__);
781 if (!ecore_x_window_prop_atom_get(win,
782 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
784 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
786 return _ecore_x_e_quickpanel_state_get(atom);
790 ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win,
791 Ecore_X_Illume_Quickpanel_State state)
793 LOGFN(__FILE__, __LINE__, __FUNCTION__);
794 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
795 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
796 _ecore_x_e_quickpanel_atom_get(state),
801 ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
803 LOGFN(__FILE__, __LINE__, __FUNCTION__);
804 ecore_x_client_message32_send(win,
805 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE,
806 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
811 ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win,
812 unsigned int priority)
814 LOGFN(__FILE__, __LINE__, __FUNCTION__);
815 ecore_x_window_prop_card32_set(win,
816 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
821 ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
823 unsigned int val = 0;
826 LOGFN(__FILE__, __LINE__, __FUNCTION__);
827 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
829 if ((ret == 0) || (ret == -1))
836 ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win,
837 unsigned int priority)
839 LOGFN(__FILE__, __LINE__, __FUNCTION__);
840 ecore_x_window_prop_card32_set(win,
841 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
846 ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
848 unsigned int val = 0;
851 LOGFN(__FILE__, __LINE__, __FUNCTION__);
852 ret = ecore_x_window_prop_card32_get(win,
853 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
855 if ((ret == 0) || (ret == -1))
862 ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win,
865 LOGFN(__FILE__, __LINE__, __FUNCTION__);
866 ecore_x_window_prop_card32_set(win,
867 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
872 ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
874 unsigned int val = 0;
877 LOGFN(__FILE__, __LINE__, __FUNCTION__);
878 ret = ecore_x_window_prop_card32_get(win,
879 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
881 if ((ret == 0) || (ret == -1))
888 ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
890 LOGFN(__FILE__, __LINE__, __FUNCTION__);
891 ecore_x_client_message32_send(win,
892 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE,
893 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
898 _ecore_x_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
902 case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
903 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
904 case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
905 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
912 static Ecore_X_Illume_Clipboard_State
913 _ecore_x_e_clipboard_state_get(Ecore_X_Atom atom)
915 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
916 return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
918 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
919 return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
921 return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
925 ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
926 Ecore_X_Illume_Clipboard_State state)
928 Ecore_X_Atom atom = 0;
930 LOGFN(__FILE__, __LINE__, __FUNCTION__);
931 atom = _ecore_x_e_clipboard_atom_get(state);
933 ecore_x_window_prop_atom_set(win,
934 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
938 EAPI Ecore_X_Illume_Clipboard_State
939 ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
941 Ecore_X_Atom atom = 0;
943 LOGFN(__FILE__, __LINE__, __FUNCTION__);
945 if (!ecore_x_window_prop_atom_get(win,
946 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
948 return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
949 return _ecore_x_e_clipboard_state_get(atom);
953 ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
954 int x, int y, int w, int h)
956 unsigned int geom[4];
958 LOGFN(__FILE__, __LINE__, __FUNCTION__);
963 ecore_x_window_prop_card32_set(win,
964 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
969 ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
970 int *x, int *y, int *w, int *h)
973 unsigned int geom[4];
975 LOGFN(__FILE__, __LINE__, __FUNCTION__);
977 ecore_x_window_prop_card32_get(win,
978 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
980 if (ret != 4) return EINA_FALSE;
990 /* for sliding window */
992 ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
993 unsigned int is_visible)
995 LOGFN(__FILE__, __LINE__, __FUNCTION__);
996 ecore_x_window_prop_card32_set(win,
997 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
999 } /* ecore_x_e_illume_sliding_win_state_set */
1002 ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win)
1004 unsigned int is_visible = 0;
1007 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1008 ret = ecore_x_window_prop_card32_get(win,
1009 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
1011 if ((ret == 0) || (ret == -1))
1018 ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
1024 unsigned int geom[4];
1026 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1031 ecore_x_window_prop_card32_set(win,
1032 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
1034 } /* ecore_x_e_illume_sliding_win_geometry_set */
1037 ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
1044 unsigned int geom[4];
1046 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1048 ecore_x_window_prop_card32_get(win,
1049 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
1067 }/* ecore_x_e_illume_sliding_win_geometry_get */
1070 ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
1071 Ecore_X_Sync_Counter counter)
1073 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1075 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
1076 ECORE_X_ATOM_CARDINAL, &counter, 1);
1078 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER);
1081 EAPI Ecore_X_Sync_Counter
1082 ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
1085 Ecore_X_Sync_Counter counter = 0;
1087 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1089 ecore_x_window_prop_xid_get(win,
1090 ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
1091 ECORE_X_ATOM_CARDINAL,
1100 ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
1105 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1107 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1110 root = DefaultRootWindow(_ecore_x_disp);
1112 xev.xclient.type = ClientMessage;
1113 xev.xclient.display = _ecore_x_disp;
1114 xev.xclient.window = win;
1115 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
1116 xev.xclient.format = 32;
1117 xev.xclient.data.l[0] = win;
1118 xev.xclient.data.l[1] = 0; // version
1119 xev.xclient.data.l[2] = 0; // later
1120 xev.xclient.data.l[3] = 0; // later
1121 xev.xclient.data.l[4] = 0; // later
1123 XSendEvent(_ecore_x_disp, root, False,
1124 SubstructureRedirectMask | SubstructureNotifyMask,
1126 if (_ecore_xlib_sync) ecore_x_sync();
1130 ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
1137 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1139 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1142 root = DefaultRootWindow(_ecore_x_disp);
1144 xev.xclient.type = ClientMessage;
1145 xev.xclient.display = _ecore_x_disp;
1146 xev.xclient.window = win;
1147 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
1148 xev.xclient.format = 32;
1149 xev.xclient.data.l[0] = win;
1150 xev.xclient.data.l[1] = 1; // version
1151 xev.xclient.data.l[2] = w; // win width at draw time
1152 xev.xclient.data.l[3] = h; // win height at draw time
1153 xev.xclient.data.l[4] = 0; // later
1155 XSendEvent(_ecore_x_disp, root, False,
1156 SubstructureRedirectMask | SubstructureNotifyMask,
1158 if (_ecore_xlib_sync) ecore_x_sync();
1163 * @deprecated use ecore_x_e_window_available_profiles_set
1166 ecore_x_e_window_profile_list_set(Ecore_X_Window win,
1167 const char **profiles,
1168 unsigned int num_profiles)
1170 Ecore_X_Atom *atoms;
1172 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1176 if ((!profiles) || (num_profiles <= 0))
1177 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST);
1180 atoms = alloca(num_profiles * sizeof(Ecore_X_Atom));
1181 ecore_x_atoms_get(profiles, num_profiles, atoms);
1182 ecore_x_window_prop_property_set(win,
1183 ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
1184 XA_ATOM, 32, (void *)atoms,
1191 * @deprecated use ecore_x_e_window_available_profiles_get
1194 ecore_x_e_window_profile_list_get(Ecore_X_Window win,
1195 const char ***profiles,
1198 unsigned char *data;
1199 Ecore_X_Atom *atoms;
1202 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1213 if (!ecore_x_window_prop_property_get(win,
1214 ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
1215 XA_ATOM, 32, &data, &num))
1217 if (data) free(data);
1226 (*profiles) = calloc(num, sizeof(char *));
1238 atoms = (Ecore_X_Atom *)data;
1239 for (i = 0; i < num; i++)
1240 (*profiles)[i] = ecore_x_atom_name_get(atoms[i]);
1243 if (data) free(data);
1252 ecore_x_e_window_profile_set(Ecore_X_Window win,
1253 const char *profile)
1257 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1262 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_WINDOW_PROFILE);
1265 atom = ecore_x_atom_get(profile);
1266 ecore_x_window_prop_property_set(win, ECORE_X_ATOM_E_WINDOW_PROFILE,
1267 XA_ATOM, 32, (void *)&atom, 1);
1275 ecore_x_e_window_profile_get(Ecore_X_Window win)
1277 Ecore_X_Atom *atom = NULL;
1278 unsigned char *data;
1279 char *profile = NULL;
1282 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1283 if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_E_WINDOW_PROFILE,
1284 XA_ATOM, 32, &data, &num))
1286 if (data) free(data);
1291 atom = (Ecore_X_Atom *)data;
1294 profile = ecore_x_atom_name_get(atom[0]);
1296 if (data) free(data);
1302 ecore_x_e_window_profile_supported_set(Ecore_X_Window root,
1307 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1309 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1312 root = DefaultRootWindow(_ecore_x_disp);
1316 win = ecore_x_window_new(root, 1, 2, 3, 4);
1317 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
1318 ECORE_X_ATOM_WINDOW, &win, 1);
1319 ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
1320 ECORE_X_ATOM_WINDOW, &win, 1);
1327 ecore_x_window_prop_xid_get(root,
1328 ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
1329 ECORE_X_ATOM_WINDOW,
1331 if ((ret == 1) && (win))
1333 ecore_x_window_prop_property_del(
1335 ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED);
1336 ecore_x_window_free(win);
1342 ecore_x_e_window_profile_supported_get(Ecore_X_Window root)
1344 Ecore_X_Window win, win2;
1347 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1349 EINA_SAFETY_ON_NULL_RETURN_VAL(_ecore_x_disp, EINA_FALSE);
1352 root = DefaultRootWindow(_ecore_x_disp);
1355 ecore_x_window_prop_xid_get(root,
1356 ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
1357 ECORE_X_ATOM_WINDOW,
1359 if ((ret == 1) && (win))
1362 ecore_x_window_prop_xid_get(win,
1363 ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
1364 ECORE_X_ATOM_WINDOW,
1366 if ((ret == 1) && (win2 == win))
1374 ecore_x_e_window_available_profiles_set(Ecore_X_Window win,
1375 const char **profiles,
1378 Ecore_X_Atom *atoms;
1380 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1385 if ((!profiles) || (count <= 0))
1386 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST);
1389 atoms = alloca(count * sizeof(Ecore_X_Atom));
1390 ecore_x_atoms_get(profiles, count, atoms);
1391 ecore_x_window_prop_property_set(win,
1392 ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
1393 XA_ATOM, 32, (void *)atoms,
1399 ecore_x_e_window_available_profiles_get(Ecore_X_Window win,
1400 const char ***profiles,
1403 unsigned char *data;
1404 Ecore_X_Atom *atoms;
1407 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1418 if (!ecore_x_window_prop_property_get(win,
1419 ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
1420 XA_ATOM, 32, &data, &num))
1432 (*profiles) = calloc(num, sizeof(char *));
1444 atoms = (Ecore_X_Atom *)data;
1445 for (i = 0; i < num; i++)
1446 (*profiles)[i] = ecore_x_atom_name_get(atoms[i]);
1456 ecore_x_e_window_profile_change_send(Ecore_X_Window root,
1458 const char *profile)
1463 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1465 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1468 root = DefaultRootWindow(_ecore_x_disp);
1473 atom = ecore_x_atom_get(profile);
1475 xev.xclient.type = ClientMessage;
1476 xev.xclient.display = _ecore_x_disp;
1477 xev.xclient.window = win;
1478 xev.xclient.message_type = ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE;
1479 xev.xclient.format = 32;
1480 xev.xclient.data.l[0] = win;
1481 xev.xclient.data.l[1] = atom;
1482 xev.xclient.data.l[2] = 0; // later
1483 xev.xclient.data.l[3] = 0; // later
1484 xev.xclient.data.l[4] = 0; // later
1486 XSendEvent(_ecore_x_disp, root, False,
1487 SubstructureRedirectMask | SubstructureNotifyMask,
1489 if (_ecore_xlib_sync) ecore_x_sync();
1493 ecore_x_e_window_profile_change_request_send(Ecore_X_Window win,
1494 const char *profile)
1499 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1501 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1506 atom = ecore_x_atom_get(profile);
1508 xev.xclient.type = ClientMessage;
1509 xev.xclient.display = _ecore_x_disp;
1510 xev.xclient.window = win;
1511 xev.xclient.message_type = ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_REQUEST;
1512 xev.xclient.format = 32;
1513 xev.xclient.data.l[0] = win;
1514 xev.xclient.data.l[1] = atom;
1515 xev.xclient.data.l[2] = 0; // later
1516 xev.xclient.data.l[3] = 0; // later
1517 xev.xclient.data.l[4] = 0; // later
1519 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev);
1520 if (_ecore_xlib_sync) ecore_x_sync();
1525 ecore_x_e_window_profile_change_done_send(Ecore_X_Window root,
1527 const char *profile)
1532 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1534 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1537 root = DefaultRootWindow(_ecore_x_disp);
1539 atom = ecore_x_atom_get(profile);
1541 xev.xclient.type = ClientMessage;
1542 xev.xclient.display = _ecore_x_disp;
1543 xev.xclient.window = win;
1544 xev.xclient.message_type = ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_DONE;
1545 xev.xclient.format = 32;
1546 xev.xclient.data.l[0] = win;
1547 xev.xclient.data.l[1] = atom;
1548 xev.xclient.data.l[2] = 0; // later
1549 xev.xclient.data.l[3] = 0; // later
1550 xev.xclient.data.l[4] = 0; // later
1552 XSendEvent(_ecore_x_disp, root, False,
1553 SubstructureRedirectMask | SubstructureNotifyMask,
1555 if (_ecore_xlib_sync) ecore_x_sync();
1559 ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
1564 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1567 root = DefaultRootWindow(_ecore_x_disp);
1569 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1572 win = ecore_x_window_new(root, 1, 2, 3, 4);
1573 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1574 ECORE_X_ATOM_WINDOW, &win, 1);
1575 ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1576 ECORE_X_ATOM_WINDOW, &win, 1);
1583 ecore_x_window_prop_xid_get(root,
1584 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1585 ECORE_X_ATOM_WINDOW,
1587 if ((ret == 1) && (win))
1589 ecore_x_window_prop_property_del(
1591 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED);
1592 ecore_x_window_free(win);
1598 ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
1600 Ecore_X_Window win, win2;
1603 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1605 EINA_SAFETY_ON_NULL_RETURN_VAL(_ecore_x_disp, EINA_FALSE);
1608 root = DefaultRootWindow(_ecore_x_disp);
1611 ecore_x_window_prop_xid_get(root,
1612 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1613 ECORE_X_ATOM_WINDOW,
1615 if ((ret == 1) && (win))
1618 ecore_x_window_prop_xid_get(win,
1619 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1620 ECORE_X_ATOM_WINDOW,
1622 if ((ret == 1) && (win2 == win))
1630 ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
1634 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1636 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1638 xev.xclient.type = ClientMessage;
1639 xev.xclient.display = _ecore_x_disp;
1640 xev.xclient.window = win;
1641 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN;
1642 xev.xclient.format = 32;
1643 xev.xclient.data.l[0] = win;
1644 xev.xclient.data.l[1] = 0; // later
1645 xev.xclient.data.l[2] = 0; // later
1646 xev.xclient.data.l[3] = 0; // later
1647 xev.xclient.data.l[4] = 0; // later
1649 XSendEvent(_ecore_x_disp, win, False,
1650 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1652 if (_ecore_xlib_sync) ecore_x_sync();
1656 ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
1660 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1662 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1664 xev.xclient.type = ClientMessage;
1665 xev.xclient.display = _ecore_x_disp;
1666 xev.xclient.window = win;
1667 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_END;
1668 xev.xclient.format = 32;
1669 xev.xclient.data.l[0] = win;
1670 xev.xclient.data.l[1] = 0; // later
1671 xev.xclient.data.l[2] = 0; // later
1672 xev.xclient.data.l[3] = 0; // later
1673 xev.xclient.data.l[4] = 0; // later
1675 XSendEvent(_ecore_x_disp, win, False,
1676 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1678 if (_ecore_xlib_sync) ecore_x_sync();
1682 ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
1686 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1688 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1690 xev.xclient.type = ClientMessage;
1691 xev.xclient.display = _ecore_x_disp;
1692 xev.xclient.window = win;
1693 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL;
1694 xev.xclient.format = 32;
1695 xev.xclient.data.l[0] = win;
1696 xev.xclient.data.l[1] = 0; // later
1697 xev.xclient.data.l[2] = 0; // later
1698 xev.xclient.data.l[3] = 0; // later
1699 xev.xclient.data.l[4] = 0; // later
1701 XSendEvent(_ecore_x_disp, win, False,
1702 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1704 if (_ecore_xlib_sync) ecore_x_sync();
1708 ecore_x_e_comp_flush_send(Ecore_X_Window win)
1712 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1714 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1716 xev.xclient.type = ClientMessage;
1717 xev.xclient.display = _ecore_x_disp;
1718 xev.xclient.window = win;
1719 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_FLUSH;
1720 xev.xclient.format = 32;
1721 xev.xclient.data.l[0] = win;
1722 xev.xclient.data.l[1] = 0; // later
1723 xev.xclient.data.l[2] = 0; // later
1724 xev.xclient.data.l[3] = 0; // later
1725 xev.xclient.data.l[4] = 0; // later
1727 XSendEvent(_ecore_x_disp, win, False,
1728 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1730 if (_ecore_xlib_sync) ecore_x_sync();
1734 ecore_x_e_comp_dump_send(Ecore_X_Window win)
1738 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1740 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
1742 xev.xclient.type = ClientMessage;
1743 xev.xclient.display = _ecore_x_disp;
1744 xev.xclient.window = win;
1745 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_DUMP;
1746 xev.xclient.format = 32;
1747 xev.xclient.data.l[0] = win;
1748 xev.xclient.data.l[1] = 0; // later
1749 xev.xclient.data.l[2] = 0; // later
1750 xev.xclient.data.l[3] = 0; // later
1751 xev.xclient.data.l[4] = 0; // later
1753 XSendEvent(_ecore_x_disp, win, False,
1754 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1756 if (_ecore_xlib_sync) ecore_x_sync();
1760 ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
1761 Ecore_X_Pixmap pixmap)
1763 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1765 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_PIXMAP,
1766 ECORE_X_ATOM_PIXMAP, &pixmap, 1);
1768 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_PIXMAP);
1772 ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
1775 Ecore_X_Pixmap pixmap = 0;
1777 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1779 ecore_x_window_prop_xid_get(win,
1780 ECORE_X_ATOM_E_COMP_PIXMAP,
1781 ECORE_X_ATOM_PIXMAP,
1790 _ecore_x_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state)
1794 case ECORE_X_ILLUME_INDICATOR_STATE_ON:
1795 return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
1797 case ECORE_X_ILLUME_INDICATOR_STATE_OFF:
1798 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
1806 static Ecore_X_Illume_Indicator_State
1807 _ecore_x_e_indicator_state_get(Ecore_X_Atom atom)
1809 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON)
1810 return ECORE_X_ILLUME_INDICATOR_STATE_ON;
1812 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF)
1813 return ECORE_X_ILLUME_INDICATOR_STATE_OFF;
1815 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1819 ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
1820 Ecore_X_Illume_Indicator_State state)
1822 Ecore_X_Atom atom = 0;
1824 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1825 atom = _ecore_x_e_indicator_atom_get(state);
1826 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1830 EAPI Ecore_X_Illume_Indicator_State
1831 ecore_x_e_illume_indicator_state_get(Ecore_X_Window win)
1833 Ecore_X_Atom atom = 0;
1835 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1836 if (!ecore_x_window_prop_atom_get(win,
1837 ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1839 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1841 return _ecore_x_e_indicator_state_get(atom);
1845 ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
1846 Ecore_X_Illume_Indicator_State state)
1848 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1849 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1850 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1851 _ecore_x_e_indicator_atom_get(state),
1856 _ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode)
1860 case ECORE_X_ILLUME_INDICATOR_OPAQUE:
1861 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
1863 case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
1864 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
1866 case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
1867 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
1875 static Ecore_X_Illume_Indicator_Opacity_Mode
1876 _ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom)
1878 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE)
1879 return ECORE_X_ILLUME_INDICATOR_OPAQUE;
1881 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT)
1882 return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT;
1884 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT)
1885 return ECORE_X_ILLUME_INDICATOR_TRANSPARENT;
1887 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1891 ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
1892 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1894 Ecore_X_Atom atom = 0;
1896 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1897 atom = _ecore_x_e_indicator_opacity_atom_get(mode);
1898 ecore_x_window_prop_atom_set(win,
1899 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1903 EAPI Ecore_X_Illume_Indicator_Opacity_Mode
1904 ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win)
1906 Ecore_X_Atom atom = 0;
1908 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1909 if (!ecore_x_window_prop_atom_get(win,
1910 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1912 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1914 return _ecore_x_e_indicator_opacity_get(atom);
1918 ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
1919 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1921 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1922 ecore_x_client_message32_send(win,
1923 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1924 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1925 _ecore_x_e_indicator_opacity_atom_get(mode),
1930 _ecore_x_e_indicator_type_atom_get(Ecore_X_Illume_Indicator_Type_Mode mode)
1934 case ECORE_X_ILLUME_INDICATOR_TYPE_1:
1935 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1;
1937 case ECORE_X_ILLUME_INDICATOR_TYPE_2:
1938 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2;
1940 case ECORE_X_ILLUME_INDICATOR_TYPE_3:
1941 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_3;
1949 static Ecore_X_Illume_Indicator_Type_Mode
1950 _ecore_x_e_indicator_type_get(Ecore_X_Atom atom)
1952 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1)
1953 return ECORE_X_ILLUME_INDICATOR_TYPE_1;
1955 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2)
1956 return ECORE_X_ILLUME_INDICATOR_TYPE_2;
1958 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_3)
1959 return ECORE_X_ILLUME_INDICATOR_TYPE_3;
1961 return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
1965 ecore_x_e_illume_indicator_type_set(Ecore_X_Window win,
1966 Ecore_X_Illume_Indicator_Type_Mode mode)
1968 Ecore_X_Atom atom = 0;
1970 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1971 atom = _ecore_x_e_indicator_type_atom_get(mode);
1972 ecore_x_window_prop_atom_set(win,
1973 ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
1977 EAPI Ecore_X_Illume_Indicator_Type_Mode
1978 ecore_x_e_illume_indicator_type_get(Ecore_X_Window win)
1980 Ecore_X_Atom atom = 0;
1982 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1983 if (!ecore_x_window_prop_atom_get(win,
1984 ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
1986 return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
1988 return _ecore_x_e_indicator_type_get(atom);
1992 ecore_x_e_illume_indicator_type_send(Ecore_X_Window win,
1993 Ecore_X_Illume_Indicator_Type_Mode mode)
1995 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1996 ecore_x_client_message32_send(win,
1997 ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
1998 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1999 _ecore_x_e_indicator_type_atom_get(mode),
2004 _ecore_x_e_illume_window_state_atom_get(Ecore_X_Illume_Window_State state)
2008 case ECORE_X_ILLUME_WINDOW_STATE_NORMAL:
2009 return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL;
2011 case ECORE_X_ILLUME_WINDOW_STATE_FLOATING:
2012 return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING;
2020 static Ecore_X_Illume_Window_State
2021 _ecore_x_e_illume_window_state_get(Ecore_X_Atom atom)
2023 if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL)
2024 return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
2026 if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING)
2027 return ECORE_X_ILLUME_WINDOW_STATE_FLOATING;
2029 return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
2033 ecore_x_e_illume_window_state_set(Ecore_X_Window win,
2034 Ecore_X_Illume_Window_State state)
2036 Ecore_X_Atom atom = 0;
2038 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2039 atom = _ecore_x_e_illume_window_state_atom_get(state);
2040 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
2044 EAPI Ecore_X_Illume_Window_State
2045 ecore_x_e_illume_window_state_get(Ecore_X_Window win)
2049 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2050 if (!ecore_x_window_prop_atom_get(win,
2051 ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
2053 return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
2055 return _ecore_x_e_illume_window_state_get(atom);
2059 ecore_x_e_illume_window_state_send(Ecore_X_Window win,
2060 Ecore_X_Illume_Window_State state)
2062 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2063 ecore_x_client_message32_send(win,
2064 ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
2065 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
2066 _ecore_x_e_illume_window_state_atom_get(state),
2071 ecore_x_e_window_rotation_supported_set(Ecore_X_Window root,
2076 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2078 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
2081 root = DefaultRootWindow(_ecore_x_disp);
2085 win = ecore_x_window_new(root, 1, 2, 3, 4);
2086 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
2087 ECORE_X_ATOM_WINDOW, &win, 1);
2088 ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
2089 ECORE_X_ATOM_WINDOW, &win, 1);
2096 ecore_x_window_prop_xid_get(root,
2097 ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
2098 ECORE_X_ATOM_WINDOW,
2100 if ((ret == 1) && (win))
2102 ecore_x_window_prop_property_del(
2104 ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED);
2105 ecore_x_window_free(win);
2111 ecore_x_e_window_rotation_supported_get(Ecore_X_Window root)
2113 Ecore_X_Window win, win2;
2116 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2118 EINA_SAFETY_ON_NULL_RETURN_VAL(_ecore_x_disp, EINA_FALSE);
2121 root = DefaultRootWindow(_ecore_x_disp);
2124 ecore_x_window_prop_xid_get(root,
2125 ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
2126 ECORE_X_ATOM_WINDOW,
2128 if ((ret == 1) && (win))
2131 ecore_x_window_prop_xid_get(win,
2132 ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
2133 ECORE_X_ATOM_WINDOW,
2135 if ((ret == 1) && (win2 == win))
2143 ecore_x_e_window_rotation_app_set(Ecore_X_Window win,
2146 unsigned int val = 0;
2148 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2152 ecore_x_window_prop_card32_set(win,
2153 ECORE_X_ATOM_E_WINDOW_ROTATION_APP_SUPPORTED,
2158 ecore_x_e_window_rotation_app_get(Ecore_X_Window win)
2160 unsigned int val = 0;
2162 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2163 if (!ecore_x_window_prop_card32_get(win,
2164 ECORE_X_ATOM_E_WINDOW_ROTATION_APP_SUPPORTED,
2168 return val ? EINA_TRUE : EINA_FALSE;
2172 ecore_x_e_window_rotation_preferred_rotation_set(Ecore_X_Window win,
2175 unsigned int val = 0;
2177 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2181 val = (unsigned int)rot;
2182 ecore_x_window_prop_card32_set(win,
2183 ECORE_X_ATOM_E_WINDOW_ROTATION_PREFERRED_ROTATION,
2188 ecore_x_window_prop_property_del(win,
2189 ECORE_X_ATOM_E_WINDOW_ROTATION_PREFERRED_ROTATION);
2194 ecore_x_e_window_rotation_preferred_rotation_get(Ecore_X_Window win,
2197 unsigned int val = 0;
2200 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2202 ret = ecore_x_window_prop_card32_get(win,
2203 ECORE_X_ATOM_E_WINDOW_ROTATION_PREFERRED_ROTATION,
2207 if (rot) *rot = (int)val;
2214 ecore_x_e_window_rotation_available_rotations_set(Ecore_X_Window win,
2218 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2222 if ((rots) && (count > 0))
2223 ecore_x_window_prop_card32_set(win,
2224 ECORE_X_ATOM_E_WINDOW_ROTATION_AVAILABLE_LIST,
2225 (unsigned int *)rots, count);
2227 ecore_x_window_prop_property_del(win,
2228 ECORE_X_ATOM_E_WINDOW_ROTATION_AVAILABLE_LIST);
2232 ecore_x_e_window_rotation_available_rotations_get(Ecore_X_Window win,
2234 unsigned int *count)
2236 unsigned char *data = NULL;
2240 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2242 if ((!win) || (!rots) || (!count))
2248 if (!ecore_x_window_prop_property_get(win,
2249 ECORE_X_ATOM_E_WINDOW_ROTATION_AVAILABLE_LIST,
2250 XA_CARDINAL, 32, &data, &num))
2255 if ((num >= 1) && (data))
2257 val = calloc(num, sizeof(int));
2260 if (data) XFree(data);
2263 for (i = 0; i < num; i++)
2264 val[i] = ((int *)data)[i];
2265 if (data) XFree(data);
2269 if (data) XFree(data);
2274 ecore_x_e_window_rotation_change_prepare_send(Ecore_X_Window win,
2280 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2281 ecore_x_client_message32_send
2282 (win, ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_PREPARE,
2283 ECORE_X_EVENT_MASK_NONE,
2284 win, rot, resize, w, h);
2288 ecore_x_e_window_rotation_change_prepare_done_send(Ecore_X_Window root,
2294 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2296 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
2299 root = DefaultRootWindow(_ecore_x_disp);
2301 xev.xclient.type = ClientMessage;
2302 xev.xclient.display = _ecore_x_disp;
2303 xev.xclient.window = win;
2304 xev.xclient.message_type = ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_PREPARE_DONE;
2305 xev.xclient.format = 32;
2306 xev.xclient.data.l[0] = win;
2307 xev.xclient.data.l[1] = rot;
2308 xev.xclient.data.l[2] = 0;
2309 xev.xclient.data.l[3] = 0;
2310 xev.xclient.data.l[4] = 0;
2312 XSendEvent(_ecore_x_disp, root, False,
2313 SubstructureRedirectMask | SubstructureNotifyMask,
2318 ecore_x_e_window_rotation_change_request_send(Ecore_X_Window win,
2321 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2322 ecore_x_client_message32_send
2323 (win, ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_REQUEST,
2324 ECORE_X_EVENT_MASK_NONE,
2329 ecore_x_e_window_rotation_change_done_send(Ecore_X_Window root,
2337 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2339 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
2342 root = DefaultRootWindow(_ecore_x_disp);
2344 xev.xclient.type = ClientMessage;
2345 xev.xclient.display = _ecore_x_disp;
2346 xev.xclient.window = win;
2347 xev.xclient.message_type = ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_DONE;
2348 xev.xclient.format = 32;
2349 xev.xclient.data.l[0] = win;
2350 xev.xclient.data.l[1] = rot;
2351 xev.xclient.data.l[2] = w;
2352 xev.xclient.data.l[3] = h;
2353 xev.xclient.data.l[4] = 0;
2355 XSendEvent(_ecore_x_disp, root, False,
2356 SubstructureRedirectMask | SubstructureNotifyMask,
2361 * Does keyrouter exist?
2364 ecore_x_e_keyrouter_set(Ecore_X_Window win EINA_UNUSED,
2367 //key router call this api when it start running
2369 Ecore_X_Window root;
2371 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2373 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
2375 root = DefaultRootWindow(_ecore_x_disp);
2378 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_E_KEYROUTER_SUPPORTED,
2383 ecore_x_e_keyrouter_get(Ecore_X_Window win EINA_UNUSED)
2385 //check the existance of keyrouter
2388 Ecore_X_Window root;
2390 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2392 EINA_SAFETY_ON_NULL_RETURN_VAL(_ecore_x_disp, EINA_FALSE);
2394 root = DefaultRootWindow(_ecore_x_disp);
2396 ret = ecore_x_window_prop_card32_get(root, ECORE_X_ATOM_E_KEYROUTER_SUPPORTED,
2398 if (ret != 1) return EINA_FALSE;
2400 return val == 1 ? EINA_TRUE : EINA_FALSE;