Upstream merge
authorJiyoun Park <jy0703.park@samsung.com>
Wed, 20 Jun 2012 08:20:07 +0000 (17:20 +0900)
committerJiyoun Park <jy0703.park@samsung.com>
Wed, 20 Jun 2012 08:20:07 +0000 (17:20 +0900)
Merge remote-tracking branch 'remotes/origin/upstream'

Conflicts:
ChangeLog
NEWS
src/lib/ecore/ecore_thread.c
src/lib/ecore_evas/ecore_evas_wayland_shm.c
src/lib/ecore_x/Ecore_X.h
src/lib/ecore_x/Ecore_X_Atoms.h
src/lib/ecore_x/ecore_x_atoms_decl.h
src/lib/ecore_x/xcb/ecore_xcb_atoms.c
src/lib/ecore_x/xlib/ecore_x_atoms.c

Change-Id: I1061e8307ecaf505c897d7279ca0eac4daacd2e4

20 files changed:
1  2 
ChangeLog
NEWS
packaging/ecore.spec
po/cs.po
src/lib/ecore_evas/Ecore_Evas.h
src/lib/ecore_evas/ecore_evas.c
src/lib/ecore_evas/ecore_evas_directfb.c
src/lib/ecore_evas/ecore_evas_fb.c
src/lib/ecore_evas/ecore_evas_wayland_egl.c
src/lib/ecore_evas/ecore_evas_wayland_shm.c
src/lib/ecore_evas/ecore_evas_win32.c
src/lib/ecore_evas/ecore_evas_x.c
src/lib/ecore_imf/ecore_imf_context.c
src/lib/ecore_x/Ecore_X.h
src/lib/ecore_x/Ecore_X_Atoms.h
src/lib/ecore_x/ecore_x_atoms_decl.h
src/lib/ecore_x/xcb/ecore_xcb_atoms.c
src/lib/ecore_x/xcb/ecore_xcb_e.c
src/lib/ecore_x/xlib/ecore_x_atoms.c
src/lib/ecore_x/xlib/ecore_x_e.c

diff --combined ChangeLog
+++ b/ChangeLog
  
          * Improve callbacks in ecore_evas to use typedefs for readability.
  
 -2012-02-20  Cedric Bail
 -
 -      * Rewrite internal of Ecore_Thread to use Eina_Lock and ecore_main_loop_thread_safe_call_async.
 -
  2012-02-23  Cedric Bail
  
        * Move to Evas buffer engine for Ecore_Evas SDL software backend.
  
        * Add override_set() support in ecore_evas_win32.
  
+ 2012-04-26 Carsten Haitzler (The Rasterman)
+         1.2.0 release
+ 2012-05-08  Cedric Bail
+       * Don't over allocate Ecore_Pipe during ecore_init/ecore_shutdown.
+ 2012-05-10  Cedric Bail
+       * Reduce rounding error in ecore_animator_pos_map.
  2012-05-10  Jiyoun Park
  
        * Send mouse move event before mouse down event in ecore_extn
+ 2012-05-13  Carsten Haitzler (The Rasterman)
+         * Fix ecore-x randr issues with memory access when building
+         output arrays which are memory segv bugs waiting to crash.
+ 2012-05-17  Vincent Torri
+         * Add transparent support in ecore_evas on Windows (GDI engine only)
+ 2012-05-22  Cedric Bail
+       * Reduce race condition on Ecore_Thread shutdown.
+ 2012-05-22  Carsten Haitzler (The Rasterman)
+         * Add ecore_x_mouse_in_send() and ecore_x_mouse_out_send()
+         * Add ecore_x illume access control/action atoms+api's
+ 2012-05-24  Doyoun Kang
+         * Add Ecore_X_Error_Code enumeration in ecore_x
+ 2012-05-24  Carsten Haitzler (The Rasterman)
+         * Fix ecore-thread scheduling issue where re-scheduled threads
+         will hold a loop busy and not allow feedback workers to run,
+         so now have fairer scheduling.
+         * Allow 16 * cpu num for worker threads (default still cpu num)
+ 2012-05-25  Carsten Haitzler (The Rasterman)
+         * Fix ecore mainloop issue if you begin the mainloop, keep a
+         timer around, quit mainloop, then start it again expecting the timer
+         to keep ticking off. also happens to be an issue with
+         iterating the mainloop.
+ 2012-05-25  Rob Bradford
+         * Make ecore_{software_x11, software_x11_8, software_x11_16, wayland,
+         directfb}_window_get return 0 if the Ecore_Evas was not created with
+         the appropriate constructor.
+ 2012-05-29 Rob Bradford
+         * Initial cursor support for Wayland:
+         * Add api to the ecore_wl_input_ namespace to allow setting the buffer
+         to use for the pointer and for loading a named cursor from a cursor
+         theme. Under the Wayland protocol the cursor is associated with the
+         input device.
+         * Add helper functions to ecore_wl_window to set the cursor based on
+         the active pointer input device for the window.
+         * Load the cursor theme when the SHM interface is ready and provide an
+         API call to provide a wl_cursor for a given name.
+         * Add API to restore to the default cursor and then use that when the
+         pointer enters the surface to ensure compliance with the Wayland
+         protocol.
+ 2012-05-30  Cedric Bail
+       * Force cancel of all running Ecore_Thread on shutdown.
+       * Make Ecore_Thread work reliabily when main loop isn't running.
+ 2012-05-30  Mariusz Grzegorczyk
+       * Small fix to ecore-evas buffer engine on resize to make the
+         right kind of buffer cavas (ARGB32 vs RGB32).
+ 2012-05-30 Leif Middelschulte (T_UNIX)
+         * Add ECORE_X_RANDR_OUTPUT_POLICY_ASK
+ 2012-06-04 Mike Blumenkrantz
+         * ECORE_{CON,IPC}_NO_PROXY now available for disabling proxying on certain connections
+         * Added new resolver method: dns.c -- This is used by default now when ipv6 is enabled
+           and c-ares support is disabled.
+ 2012-06-06 Rob Bradford
+         * Ecore_Wayland: Enhance the keyboard input handling
+         * Associate the keymap with the input device rather than the display
+         since you could could have different keymaps associated with different
+         devices.
+         * Increase the size of character arrays used for the string
+         representations of the keyname, keysym and for the string
+         representing the key.
+         * Re-enable the code that converts the keysym to a printable definition
+         - this is required where the keysym is not the same as the printable
+         definition
+ 2012-06-06 Rob Bradford
+       * Ecore_Wayland: Update to protocol change - axis events are now fixed point numbers
+ 2012-06-11 Rob Bradford
+       * Ecore_Wayland: Add missing null pointer checks on input device
+       deletion (ticket #1031). Not all devices are keyboards.
+ 2012-06-11  Jihoon Kim (jihoon)
+         * ibus-immodule: Add immodule for supporting ibus.
+ 2012-06-12  Mike Blumenkrantz
+         * Fixed bug in ecore-file monitoring with inotify where watching a file
+           that was deleted broke the world.
+ 2012-06-15 Rob Bradford
+       * Ecore_Wayland: Port to latest Wayland protocol. The cursor for a
+       pointer is now a surface rather than a buffer.
+ 2012-06-15 Rob Bradford
+       * Ecore_Wayland: Drop unused timestamp from configure event. Rationale:
+       - timestamp isn't used by the handler for this event
+       - configure event we receive from the compositor doesn't have a timestamp
+       - ecore_wl_window_maximized_set and ecore_wl_window_fullscreen_set had
+         an implicit requirement that the window had keyboard focus to retrieve
+         a timestamp that wasn't used. This removes that requirement and fixes
+         ticket #1030.
diff --combined NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -1,12 -1,30 +1,30 @@@
  Ecore 1.3.0
  
  Changes since Ecore 1.2.0:
+ --------------------------
+ Additions:
+     * ecore_evas:
+      - Add transparency support on Windows (GDI engine only)
+       * ecore_x:
+      - Add Ecore_X_Error_Code enumeration
+     * ecore_x:
+      - ECORE_X_RANDR_OUTPUT_POLICY_ASK
+     * ecore_con:
+      - ECORE_{CON,IPC}_NO_PROXY now available for disabling proxying on certain connections
+      - New dns.c resolver backend for faster dns lookups
+     * immodule:
+      - Add immodule for supporing ibus
  
  Fixes:
      * ecore
       - Prevent running out of fd when cycling ecore_init/ecore_shutdown.
       - Reduce rounding error in ecore_animator_pos_map.
       - Send mouse move event before mouse down event in ecore_extn
+      - Reduce race condition on shutdown of Ecore_Thread.
+      - Force cancel of all running Ecore_Thread on shutdown.
+      - Make Ecore_Thread work reliably when called without a running main loop.
  
  Ecore 1.2.0
  
@@@ -38,6 -56,16 +56,16 @@@ Additions
       - ecore_x_randr_output_mode_del()
       - Add indicator controls
       - ecore_x_netwm_icons_set()
+      - ecore_x_illume_clipboard_state_set()
+      - ecore_x_illume_clipboard_state_get()
+      - ecore_x_illume_clipboard_geometry_set()
+      - ecore_x_illume_clipboard_geometry_get()
+      - Add indicator rotation and transparency controls
+     * ecore_evas:
+      - Add Shm and Egl engines for ecore_evas to draw in Wayland.
+      - Add Socket and Plug to draw other process area.
+      - Ability to set pointer for wayland support
+      - Add override_set support on Windows XP
       - ecore_evas_window_group_set()
       - ecore_evas_window_group_get()
       - ecore_evas_aspect_set()
       - ecore_evas_focus_skip_set()
       - ecore_evas_focus_skip_get()
       - ecore_evas_callback_state_change_set()
-      - ecore_x_illume_clipboard_state_set()
-      - ecore_x_illume_clipboard_state_get()
-      - ecore_x_illume_clipboard_geometry_set()
-      - ecore_x_illume_clipboard_geometry_get()
-      - Add indicator rotation and transparency controls
-     * ecore_evas:
-      - Add Shm and Egl engines for ecore_evas to draw in Wayland.
-      - Add Socket and Plug to draw other process area.
-      - Ability to set pointer for wayland support
-      - Add override_set support on Windows XP
      * ecore_wayland
       - Add Ecore_Wayland (backend to support Wayland).
      * ecore_imf
@@@ -126,6 -144,9 +144,6 @@@ Improvements
       - certificates can now be added for STARTTTLS
      * ecore_win32:
       - fix modifiers value on Windows XP
 -    * ecore_thread:
 -     - use eina_lock
 -     - use Ecore thread safe async call
      * ecore_evas:
       - use Evas buffer backend for SDL software engine
       - clean up ecore-evas-buffer code somewhat
diff --combined packaging/ecore.spec
index 3dcf661,0000000..c3917d2
mode 100644,000000..100644
--- /dev/null
@@@ -1,309 -1,0 +1,311 @@@
- Version:    1.2.0+svn.70444slp2+build05
- Release:    2
 +#sbs-git:slp/pkgs/e/ecore ecore 1.2.0+svn.70444slp2+build05 cfce17dc2fedf3e6b9acacd210857a110c3f1be1
 +Name:       ecore
 +Summary:    Enlightened Core X interface library
++Version:    1.2.0+svn.72378slp2+build01
++Release:    1
 +Group:      System/Libraries
 +License:    BSD
 +URL:        http://www.enlightenment.org
 +Source0:    %{name}-%{version}.tar.gz
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
++BuildRequires:  gettext
 +BuildRequires:  eina-devel
 +BuildRequires:  eet-devel
 +BuildRequires:  evas-devel
 +BuildRequires:  glib2-devel
 +BuildRequires:  libxcursor-devel
 +BuildRequires:  libxrender-devel
 +BuildRequires:  libxinerama-devel
 +BuildRequires:  libxrandr-devel
 +BuildRequires:  libxext-devel
 +BuildRequires:  libxi-devel
 +BuildRequires:  libxfixes-devel
 +BuildRequires:  libxcomposite-devel
 +BuildRequires:  libxdamage-devel
 +BuildRequires:  x11proto-xext
 +BuildRequires:  libxtst-devel
 +BuildRequires:  curl-devel
 +BuildRequires:  libjpeg-devel
 +
 +
 +%description
 +Core abstraction layer for enlightenment DR 0.17 This is the core event abstraction layer and X abstraction layer that makes
 + doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
 + handlers fast, optimized, and convenient. It's a separate library so anyone
 + can make use of the work put into Ecore to make this job easy for
 + applications.
 +
 +
 +
 +%package devel
 +Summary:    Enlightened Core X interface library (devel)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +
 +%description devel
 +Core abstraction layer for enlightenment (devel)
 +
 +%package tools
 +Summary:    Enlightened Core X interface library (bin)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Provides:   %{name}-bin
 +Obsoletes:  %{name}-bin
 +
 +%description tools
 +Core abstraction layer for enlightenment (tools)
 +
 +%package con
 +Summary:    Enlightened Core X interface library (con)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description con
 +Core abstraction layer for enlightenment (con)
 +
 +%package evas
 +Summary:    Enlightened Core X interface library (evas)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description evas
 +Core abstraction layer for enlightenment (evas)
 +
 +%package file
 +Summary:    Enlightened Core X interface library (file)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description file
 +Core abstraction layer for enlightenment (file)
 +
 +%package imf
 +Summary:    Enlightened Core X interface library (imf)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description imf
 +Core abstraction layer for enlightenment (imf)
 +
 +%package imf-evas
 +Summary:    Enlightened Core X interface library (imf-evas)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description imf-evas
 +Core abstraction layer for enlightenment (imf-evas)
 +
 +%package input
 +Summary:    Enlightened Core X interface library (input)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description input
 +Core abstraction layer for enlightenment (input)
 +
 +%package input-evas
 +Summary:    Enlightened Core X interface library (input-evas)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description input-evas
 +Core abstraction layer for enlightenment (input-evas)
 +
 +%package ipc
 +Summary:    Enlightened Core X interface library (ipc)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description ipc
 +Core abstraction layer for enlightenment (ipc)
 +
 +%package x
 +Summary:    Enlightened Core X interface library (x)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description x
 +Core abstraction layer for enlightenment (x)
 +
 +%package fb
 +Summary:    Enlightened Core X interface library (fb)
 +Group:      Development/Libraries
 +Requires:   %{name} = %{version}-%{release}
 +Requires(post): /sbin/ldconfig
 +Requires(postun): /sbin/ldconfig
 +
 +%description fb
 +Core abstraction layer for enlightenment (fb)
 +
 +
 +%prep
 +%setup -q
 +
 +
 +%build
 +export CFLAGS+=" -fvisibility=hidden -fPIC"
 +export LDFLAGS+=" -fvisibility=hidden -Wl,--hash-style=both -Wl,--as-needed"
 +
 +%autogen
 +%configure --disable-static \
 +      --enable-ecore-fb \
 +      --enable-dependency-tracking \
 +      --disable-ecore-directfb \
 +      --enable-ecore-evas-fb \
 +      --disable-rpath \
 +      --disable-openssl \
 +      --disable-gnutls \
 +      --disable-tslib \
 +      --enable-simple-x11 \
 +      --enable-ecore-evas-opengl-x11 \
 +      --disable-ecore-evas-xrender-x11 \
 +      --enable-curl \
 +      --enable-glib-integration-always \
 +      --enable-ecore-x-gesture \
 +      --disable-xim \
 +      --disable-ecore-imf-xim \
 +      --disable-ecore-imf-scim
 +
 +make %{?jobs:-j%jobs}
 +
 +%install
 +rm -rf %{buildroot}
 +%make_install
 +
 +
 +%post -p /sbin/ldconfig
 +
 +%postun -p /sbin/ldconfig
 +
 +%post con -p /sbin/ldconfig
 +
 +%postun con -p /sbin/ldconfig
 +
 +%post evas -p /sbin/ldconfig
 +
 +%postun evas -p /sbin/ldconfig
 +
 +
 +%post file -p /sbin/ldconfig
 +
 +%postun file -p /sbin/ldconfig
 +
 +
 +%post imf -p /sbin/ldconfig
 +
 +%postun imf -p /sbin/ldconfig
 +
 +
 +%post imf-evas -p /sbin/ldconfig
 +
 +%postun imf-evas -p /sbin/ldconfig
 +
 +
 +%post input -p /sbin/ldconfig
 +
 +%postun input -p /sbin/ldconfig
 +
 +
 +%post input-evas -p /sbin/ldconfig
 +
 +%postun input-evas -p /sbin/ldconfig
 +
 +
 +%post ipc -p /sbin/ldconfig
 +
 +%postun ipc -p /sbin/ldconfig
 +
 +
 +%post x -p /sbin/ldconfig
 +
 +%postun x -p /sbin/ldconfig
 +
 +
 +%post fb -p /sbin/ldconfig
 +
 +%postun fb -p /sbin/ldconfig
 +
 +%files 
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore.so.*
++/usr/share/locale/*
 +
 +%files devel
 +%defattr(-,root,root,-)
 +%{_includedir}/ecore-1/*.h
 +%{_libdir}/pkgconfig/ecore*.pc
 +%{_libdir}/libecore.so
 +%{_libdir}/libecore_con.so
 +%{_libdir}/libecore_evas.so
 +%{_libdir}/libecore_file.so
 +%{_libdir}/libecore_imf.so
 +%{_libdir}/libecore_imf_evas.so
 +%{_libdir}/libecore_input.so
 +%{_libdir}/libecore_input_evas.so
 +%{_libdir}/libecore_ipc.so
 +%{_libdir}/libecore_x.so
 +%{_libdir}/libecore_fb.so
 +
 +%files tools
 +%defattr(-,root,root,-)
 +#/usr/bin/ecore_test
 +
 +%files con
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_con.so.*
 +
 +%files evas
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_evas.so.*
 +
 +%files file
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_file.so.*
 +
 +%files imf
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_imf.so.*
 +
 +%files imf-evas
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_imf_evas.so.*
 +
 +%files input
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_input.so.*
 +
 +%files input-evas
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_input_evas.so.*
 +
 +%files ipc
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_ipc.so.*
 +
 +%files x
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_x.so.*
 +
 +%files fb
 +%defattr(-,root,root,-)
 +%{_libdir}/libecore_fb.so.*
 +
diff --combined po/cs.po
+++ b/po/cs.po
@@@ -1,10 -1,11 +1,10 @@@
  # ecore czech translation
  # quaker66@gmail.com
 -# Vít Pelčák <vit@pelcak.org>, 2011.
  msgid ""
  msgstr ""
  "Project-Id-Version: ecore\n"
  "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
- "POT-Creation-Date: 2012-04-20 22:25+0900\n"
+ "POT-Creation-Date: 2012-04-26 13:55+0900\n"
  "PO-Revision-Date: 2011-10-23 01:28+0100\n"
  "Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n"
  "Language-Team: Czech <kde-i18n-doc@kde.org>\n"
@@@ -12,6 -13,8 +12,6 @@@
  "MIME-Version: 1.0\n"
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
 -"X-Generator: Lokalize 1.2\n"
 -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
  
  #: src/lib/ecore/ecore_getopt.c:95
  msgid "Version:"
@@@ -50,122 -53,122 +50,122 @@@ msgstr "Možnosti: 
  msgid "Options:\n"
  msgstr "Volby:\n"
  
- #: src/lib/ecore/ecore_getopt.c:787
+ #: src/lib/ecore/ecore_getopt.c:788
  #, c-format
  msgid "ERROR: unknown option --%s.\n"
  msgstr "CHYBA: neznámá volba --%s.\n"
  
- #: src/lib/ecore/ecore_getopt.c:789
+ #: src/lib/ecore/ecore_getopt.c:790
  #, c-format
  msgid "ERROR: unknown option -%c.\n"
  msgstr "CHYBA: neznámá volba -%c.\n"
  
- #: src/lib/ecore/ecore_getopt.c:847
+ #: src/lib/ecore/ecore_getopt.c:848
  msgid "ERROR: "
  msgstr "CHYBA: "
  
- #: src/lib/ecore/ecore_getopt.c:930 src/lib/ecore/ecore_getopt.c:1067
- #: src/lib/ecore/ecore_getopt.c:1083 src/lib/ecore/ecore_getopt.c:1098
- #: src/lib/ecore/ecore_getopt.c:1115 src/lib/ecore/ecore_getopt.c:1162
- #: src/lib/ecore/ecore_getopt.c:1282 src/lib/ecore/ecore_getopt.c:1323
+ #: src/lib/ecore/ecore_getopt.c:931 src/lib/ecore/ecore_getopt.c:1068
+ #: src/lib/ecore/ecore_getopt.c:1084 src/lib/ecore/ecore_getopt.c:1099
+ #: src/lib/ecore/ecore_getopt.c:1116 src/lib/ecore/ecore_getopt.c:1163
+ #: src/lib/ecore/ecore_getopt.c:1283 src/lib/ecore/ecore_getopt.c:1324
  msgid "value has no pointer set.\n"
  msgstr "hodnota nemá nastaven pointer.\n"
  
- #: src/lib/ecore/ecore_getopt.c:962 src/lib/ecore/ecore_getopt.c:1182
+ #: src/lib/ecore/ecore_getopt.c:963 src/lib/ecore/ecore_getopt.c:1183
  #, c-format
  msgid "unknown boolean value %s.\n"
  msgstr "neznámá boolean hodnota %s.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1013 src/lib/ecore/ecore_getopt.c:1270
+ #: src/lib/ecore/ecore_getopt.c:1014 src/lib/ecore/ecore_getopt.c:1271
  #, c-format
  msgid "invalid number format %s\n"
  msgstr "neznámý číselný formát %s\n"
  
- #: src/lib/ecore/ecore_getopt.c:1128
+ #: src/lib/ecore/ecore_getopt.c:1129
  #, c-format
  msgid "invalid choice \"%s\". Valid values are: "
  msgstr "neznámá volba \"%s\". Možné hodnoty jsou: "
  
- #: src/lib/ecore/ecore_getopt.c:1156
+ #: src/lib/ecore/ecore_getopt.c:1157
  msgid "missing parameter to append.\n"
  msgstr "chybějící parametr k připojení.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1260
+ #: src/lib/ecore/ecore_getopt.c:1261
  msgid "could not parse value.\n"
  msgstr "nemůžu parsovat hodnotu.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1317
+ #: src/lib/ecore/ecore_getopt.c:1318
  msgid "missing parameter.\n"
  msgstr "chybějící parametr.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1330
+ #: src/lib/ecore/ecore_getopt.c:1331
  msgid "missing callback function!\n"
  msgstr "chybějící callback funkce!\n"
  
- #: src/lib/ecore/ecore_getopt.c:1359
+ #: src/lib/ecore/ecore_getopt.c:1360
  msgid "no version was defined.\n"
  msgstr "nebyla definována verze.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1376
+ #: src/lib/ecore/ecore_getopt.c:1377
  msgid "no copyright was defined.\n"
  msgstr "nebyl definován copyright.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1393
+ #: src/lib/ecore/ecore_getopt.c:1394
  msgid "no license was defined.\n"
  msgstr "nebyla definována licence.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1468
+ #: src/lib/ecore/ecore_getopt.c:1469
  #, c-format
  msgid "ERROR: unknown option --%s, ignored.\n"
  msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1501
+ #: src/lib/ecore/ecore_getopt.c:1502
  #, c-format
  msgid "ERROR: option --%s requires an argument!\n"
  msgstr "CHYBA: volba --%s vyžaduje argument!\n"
  
- #: src/lib/ecore/ecore_getopt.c:1543
+ #: src/lib/ecore/ecore_getopt.c:1544
  #, c-format
  msgid "ERROR: unknown option -%c, ignored.\n"
  msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1581
+ #: src/lib/ecore/ecore_getopt.c:1582
  #, c-format
  msgid "ERROR: option -%c requires an argument!\n"
  msgstr "CHYBA: volba -%c vyžaduje argument!\n"
  
- #: src/lib/ecore/ecore_getopt.c:1791
+ #: src/lib/ecore/ecore_getopt.c:1793
  msgid "ERROR: no parser provided.\n"
  msgstr "CHYBA: nebyl poskytnut parser.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1796
+ #: src/lib/ecore/ecore_getopt.c:1798
  msgid "ERROR: no values provided.\n"
  msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1805
+ #: src/lib/ecore/ecore_getopt.c:1807
  msgid "ERROR: no arguments provided.\n"
  msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1831
+ #: src/lib/ecore/ecore_getopt.c:1833
  msgid "ERROR: invalid options found."
  msgstr "CHYBA: nalezeny neplatné volby."
  
- #: src/lib/ecore/ecore_getopt.c:1837
+ #: src/lib/ecore/ecore_getopt.c:1839
  #, c-format
  msgid " See --%s.\n"
 -msgstr " Viz --%s.\n"
 +msgstr " viz. --%s.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1839
+ #: src/lib/ecore/ecore_getopt.c:1841
  #, c-format
  msgid " See -%c.\n"
 -msgstr " Viz -%c.\n"
 +msgstr " viz. -%c.\n"
  
- #: src/lib/ecore/ecore_getopt.c:1882
+ #: src/lib/ecore/ecore_getopt.c:1887
  #, c-format
  msgid "ERROR: incorrect geometry value '%s'\n"
  msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
  
- #: src/lib/ecore/ecore_getopt.c:1911
+ #: src/lib/ecore/ecore_getopt.c:1919
  #, c-format
  msgid "ERROR: incorrect size value '%s'\n"
  msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
@@@ -216,6 -216,8 +216,8 @@@ EAPI Eina_Bool   ecore_evas_app_comp_sy
  EAPI Eina_List  *ecore_evas_engines_get(void);
  /**
   * @brief Free list returned by ecore_evas_engines_get()
+  *
+  * @param engines list with engines names
   */
  EAPI void        ecore_evas_engines_free(Eina_List *engines);
  /**
@@@ -660,26 -662,6 +662,26 @@@ EAPI void        ecore_evas_maximized_s
   */
  EAPI Eina_Bool   ecore_evas_maximized_get(const Ecore_Evas *ee);
  /**
 + * @brief Set Ecore_Evas's window profile list.
 + *
 + * @param ee The Ecore_Evas
 + * @param profiles The profile name list
 + * @param num_profiles The number of profile names
 + *
 + * @warning Support for this depends on the underlying windowing system.
 + * @since 1.3.0
 + */
 +EAPI void        ecore_evas_profiles_set(Ecore_Evas *ee, const char **profiles, unsigned int num_profiles);
 +/**
 + * @brief Get Ecore_Evas's window profile name.
 + *
 + * @param ee The Ecore_Evas
 + * @return The profile name
 + *
 + * @since 1.3.0
 + */
 +EAPI const char *ecore_evas_profile_get(const Ecore_Evas *ee);
 +/**
   * @brief Move an Ecore_Evas.
   *
   * @param ee The Ecore_Evas to move
@@@ -1918,31 -1918,6 +1918,31 @@@ ecore_evas_maximized_get(const Ecore_Ev
  }
  
  EAPI void
 +ecore_evas_profiles_set(Ecore_Evas *ee, const char **profiles, unsigned int num_profiles)
 +{
 +   if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
 +     {
 +        ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
 +                         "ecore_evas_profiles_set");
 +        return;
 +     }
 +   IFC(ee, fn_profiles_set) (ee, profiles, num_profiles);
 +   IFE;
 +}
 +
 +EAPI const char *
 +ecore_evas_profile_get(const Ecore_Evas *ee)
 +{
 +   if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
 +     {
 +        ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
 +                         "ecore_evas_profile_get");
 +        return NULL;
 +     }
 +   return ee->prop.profile;
 +}
 +
 +EAPI void
  ecore_evas_fullscreen_set(Ecore_Evas *ee, Eina_Bool on)
  {
     if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
@@@ -2804,6 -2779,9 +2804,9 @@@ ecore_evas_wayland_type_set(Ecore_Evas 
  EAPI Ecore_Wl_Window *
  ecore_evas_wayland_window_get(const Ecore_Evas *ee)
  {
+    if (!(!strncmp(ee->driver, "wayland", 7)))
+      return NULL;
     return ee->engine.wl.win;
  }
  
@@@ -489,7 -489,6 +489,7 @@@ static Ecore_Evas_Engine_Func _ecore_di
       NULL,                              /* ignore events */
       NULL,                              /* alpha */
       NULL, //transparent
 +     NULL, // profiles_set
  
       NULL,
       NULL,
@@@ -593,6 -592,7 +593,7 @@@ ecore_evas_directfb_new(const char *dis
  EAPI Ecore_DirectFB_Window *
  ecore_evas_directfb_window_get(const Ecore_Evas *ee)
  {
+    if (!(!strcmp(ee->driver, "directfb"))) return 0;
     return (Ecore_DirectFB_Window *) _ecore_evas_directfb_window_get(ee);
  }
  #else
@@@ -551,7 -551,6 +551,7 @@@ static Ecore_Evas_Engine_Func _ecore_fb
       NULL,
       NULL,
       NULL, //transparent
 +     NULL, // profiles_set
  
       NULL,
       NULL,
@@@ -640,7 -639,7 +640,7 @@@ ecore_evas_fb_new(const char *disp_name
       }
  
     einfo = (Evas_Engine_Info_FB *)evas_engine_info_get(ee->evas);
-    if (einfo)
+    if (einfo && disp_name)
       {
          einfo->info.virtual_terminal = 0;
          einfo->info.device_number = strtol(disp_name, NULL, 10);
@@@ -2,7 -2,7 +2,7 @@@
  # include "config.h"
  #endif
  
//#define LOGFNS 1
+ #define LOGFNS 1
  
  #ifdef LOGFNS
  # include <stdio.h>
@@@ -143,7 -143,6 +143,7 @@@ static Ecore_Evas_Engine_Func _ecore_wl
     _ecore_evas_wl_ignore_events_set,
     _ecore_evas_wl_alpha_set,
     _ecore_evas_wl_transparent_set,
 +   NULL, // func profiles set
     NULL,
     NULL,
     NULL,
@@@ -241,8 -240,9 +241,9 @@@ ecore_evas_wayland_egl_new(const char *
     if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
       {
          einfo->info.display = ecore_wl_display_get();
-         einfo->info.destination_alpha = EINA_FALSE;
+         einfo->info.destination_alpha = ee->alpha;
          einfo->info.rotation = ee->rotation;
+         einfo->info.depth = 32;
          if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
            {
               ERR("Failed to set Evas Engine Info for '%s'", ee->driver);
          evas_object_move(ee->engine.wl.frame, 0, 0);
       }
  
-    ecore_evas_input_event_register(ee);
     _ecore_evas_register(ee);
+    ecore_evas_input_event_register(ee);
  
     ecore_event_window_register(ee->prop.window, ee, ee->evas, 
                                 (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process, 
                                 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, 
                                 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
  
-    evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
+    /* evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL); */
  
     return ee;
  }
@@@ -430,10 -430,14 +431,14 @@@ _ecore_evas_wl_move(Ecore_Evas *ee, in
     if (!ee) return;
     ee->req.x = x;
     ee->req.y = y;
-    ee->x = x;
-    ee->y = y;
-    if (ee->engine.wl.win) ecore_wl_window_move(ee->engine.wl.win, x, y);
-    if (ee->func.fn_move) ee->func.fn_move(ee);
+    if ((ee->x != x) || (ee->y != y))
+      {
+         ee->x = x;
+         ee->y = y;
+         if (ee->engine.wl.win) 
+           ecore_wl_window_update_location(ee->engine.wl.win, x, y);
+         if (ee->func.fn_move) ee->func.fn_move(ee);
+      }
  }
  
  static void 
@@@ -444,7 -448,6 +449,6 @@@ _ecore_evas_wl_resize(Ecore_Evas *ee, i
     if (!ee) return;
     if (w < 1) w = 1;
     if (h < 1) h = 1;
- //   if ((ee->w == w) && (ee->h == h)) return;
  
     if (ee->prop.min.w > w) w = ee->prop.min.w;
     else if (w > ee->prop.max.w) w = ee->prop.max.w;
  
  //   ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h);
  
-    ee->w = w;
-    ee->h = h;
+    if ((ee->w != w) || (ee->h != h))
+      {
+         ee->w = w;
+         ee->h = h;
  
-    /* change evas output & viewport sizes */
-    evas_output_size_set(ee->evas, ee->w, ee->h);
-    evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
-    evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
-    if (ee->engine.wl.frame)
-      evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
+         if ((ee->rotation == 90) || (ee->rotation == 270))
+           {
+              evas_output_size_set(ee->evas, h, w);
+              evas_output_viewport_set(ee->evas, 0, 0, h, w);
+           }
+         else 
+           {
+              evas_output_size_set(ee->evas, w, h);
+              evas_output_viewport_set(ee->evas, 0, 0, w, h);
+           }
  
-    /* set new engine destination */
-    /* evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); */
+         if (ee->prop.avoid_damage)
+           {
+              int pdam = 0;
  
-    /* ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h); */
-    ecore_wl_flush();
+              pdam = ecore_evas_avoid_damage_get(ee);
+              ecore_evas_avoid_damage_set(ee, 0);
+              ecore_evas_avoid_damage_set(ee, pdam);
+           }
  
-    ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
+         if (ee->engine.wl.frame)
+           evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
  
-    if (ee->func.fn_resize) ee->func.fn_resize(ee);
+         /* set new engine destination */
+         /* evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); */
+         /* ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h); */
+         // WAS ACTIVE
+         /* ecore_wl_flush(); */
+         if (ee->engine.wl.win)
+           ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
+         if (ee->func.fn_resize) ee->func.fn_resize(ee);
+      }
  }
  
  static void 
@@@ -489,25 -514,39 +515,39 @@@ _ecore_evas_wl_show(Ecore_Evas *ee
     if (ee->engine.wl.win)
       {
          ecore_wl_window_show(ee->engine.wl.win);
-         ecore_wl_flush();
+         ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
+         /* ecore_wl_sync(); */
+         if ((ee->prop.clas) && (ee->engine.wl.win->shell_surface))
+           wl_shell_surface_set_class(ee->engine.wl.win->shell_surface, 
+                                      ee->prop.clas);
+         if ((ee->prop.title) && (ee->engine.wl.win->shell_surface))
+           wl_shell_surface_set_title(ee->engine.wl.win->shell_surface, 
+                                      ee->prop.title);
       }
  
-    einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
-    if (!einfo)
-      {
-         ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
-         return;
-      }
-    einfo->info.surface = ecore_wl_window_surface_get(ee->engine.wl.win);
-    evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
     if (ee->engine.wl.frame)
       {
          evas_object_show(ee->engine.wl.frame);
          evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
       }
  
+    if (ee->engine.wl.win)
+      {
+         einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
+         if (!einfo)
+           {
+              ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
+              return;
+           }
+         einfo->info.surface = ecore_wl_window_surface_get(ee->engine.wl.win);
+         /* if (einfo->info.surface) */
+         evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+         /* else */
+         /*   printf("Failed to get a Surface from Ecore_Wl\n"); */
+      }
     /* ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0); */
  
     ee->visible = 1;
@@@ -523,12 -562,6 +563,6 @@@ _ecore_evas_wl_hide(Ecore_Evas *ee
  
     if ((!ee) || (!ee->visible)) return;
  
-    if (ee->engine.wl.win) 
-      {
-         ecore_wl_window_hide(ee->engine.wl.win);
-         ecore_wl_flush();
-      }
     einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
     if (einfo)
       {
          evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
       }
  
+    if (ee->engine.wl.win) 
+      ecore_wl_window_hide(ee->engine.wl.win);
     ee->visible = 0;
     ee->should_be_visible = 0;
  
@@@ -567,6 -603,10 +604,10 @@@ _ecore_evas_wl_title_set(Ecore_Evas *ee
          if (!(sd = evas_object_smart_data_get(ee->engine.wl.frame))) return;
          evas_object_text_text_set(sd->text, ee->prop.title);
       }
+    if ((ee->prop.title) && (ee->engine.wl.win->shell_surface))
+      wl_shell_surface_set_title(ee->engine.wl.win->shell_surface, 
+                                 ee->prop.title);
  }
  
  static void 
@@@ -581,7 -621,10 +622,10 @@@ _ecore_evas_wl_name_class_set(Ecore_Eva
     ee->prop.clas = NULL;
     if (n) ee->prop.name = strdup(n);
     if (c) ee->prop.clas = strdup(c);
-    /* FIXME: Forward these changes to Wayland somehow */
+    if ((ee->prop.clas) && (ee->engine.wl.win->shell_surface))
+      wl_shell_surface_set_class(ee->engine.wl.win->shell_surface, 
+                                 ee->prop.clas);
  }
  
  static void 
@@@ -54,6 -54,7 +54,7 @@@ static void _ecore_evas_wl_callback_mou
  static void _ecore_evas_wl_callback_mouse_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
  static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y);
  static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h);
+ static void _ecore_evas_wl_move_resize(Ecore_Evas *ee, int x, int y, int w, int h);
  static void _ecore_evas_wl_show(Ecore_Evas *ee);
  static void _ecore_evas_wl_hide(Ecore_Evas *ee);
  static void _ecore_evas_wl_raise(Ecore_Evas *ee);
@@@ -72,6 -73,7 +73,7 @@@ static void _ecore_evas_wl_alpha_set(Ec
  static void _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent);
  static int _ecore_evas_wl_render(Ecore_Evas *ee);
  static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h);
+ static void _ecore_evas_wl_ensure_pool_size(Ecore_Evas *ee, int w, int h);
  static struct wl_shm_pool *_ecore_evas_wl_shm_pool_create(int size, void **data);
  
  static void _ecore_evas_wl_buffer_new(Ecore_Evas *ee, struct wl_shm_pool *pool);
@@@ -118,7 -120,7 +120,7 @@@ static Ecore_Evas_Engine_Func _ecore_wl
     _ecore_evas_wl_move,
     NULL, // managed_move
     _ecore_evas_wl_resize,
-    NULL, // move_resize
+    _ecore_evas_wl_move_resize,
     NULL, // rotation_set
     NULL, // shaped_set
     _ecore_evas_wl_show,
     _ecore_evas_wl_ignore_events_set,
     _ecore_evas_wl_alpha_set,
     _ecore_evas_wl_transparent_set,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    _ecore_evas_wl_render, 
 +   NULL, // func profiles set
 -   _ecore_evas_wl_render, 
+    NULL, // window group set
+    NULL, // aspect set
+    NULL, // urgent set
+    NULL, // modal set
+    NULL, // demand attention set
+    NULL, // focus skip set
++   _ecore_evas_wl_render,
     _ecore_evas_wl_screen_geometry_get
  };
  
@@@ -219,6 -220,7 +221,7 @@@ ecore_evas_wayland_shm_new(const char *
     ee->prop.request_pos = 0;
     ee->prop.sticky = 0;
     ee->prop.draw_frame = frame;
+    ee->alpha = EINA_FALSE;
  
     ee->evas = evas_new();
     evas_data_attach_set(ee->evas, ee);
     if (ee->prop.draw_frame)
       evas_output_framespace_set(ee->evas, 4, 18, 8, 22);
  
-    if (parent)
-      p = ecore_wl_window_find(parent);
+    if (parent) p = ecore_wl_window_find(parent);
  
     /* FIXME: Get if parent is alpha, and set */
  
     if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
       {
          einfo->info.rotation = ee->rotation;
+         einfo->info.destination_alpha = ee->alpha;
+         einfo->info.rotation = ee->rotation;
          einfo->info.debug = EINA_FALSE;
          if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
            {
@@@ -339,21 -342,10 +343,10 @@@ _ecore_evas_wl_shutdown(void
  static void 
  _ecore_evas_wl_pre_free(Ecore_Evas *ee)
  {
-    /* Evas_Engine_Info_Wayland_Shm *einfo; */
     LOGFN(__FILE__, __LINE__, __FUNCTION__);
  
+    if (!ee) return;
     if (ee->engine.wl.frame) evas_object_del(ee->engine.wl.frame);
-    /* FIXME: remove the shm pool */
-    /* einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas); */
-    /* if ((einfo) && (einfo->info.dest)) */
-    /*   { */
-    /*      int ret = 0; */
-    /*      ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h)); */
-    /*      if (!ret) ERR("Failed to unmap engine destination: %m"); */
-    /*   } */
  }
  
  static void 
@@@ -459,12 -451,14 +452,14 @@@ _ecore_evas_wl_move(Ecore_Evas *ee, in
  static void 
  _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
  {
+    Evas_Engine_Info_Wayland_Shm *einfo;
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
     if (!ee) return;
     if (w < 1) w = 1;
     if (h < 1) h = 1;
  
-    LOGFN(__FILE__, __LINE__, __FUNCTION__);
     if (ee->prop.min.w > w) w = ee->prop.min.w;
     else if (w > ee->prop.max.w) w = ee->prop.max.w;
     if (ee->prop.min.h > h) h = ee->prop.min.h;
          if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
          ee->engine.wl.buffer = NULL;
  
-    Evas_Engine_Info_Wayland_Shm *einfo;
-    struct wl_shm_pool *pool = NULL;
-    int stride = 0;
-    size_t len = 0;
-    void *data;
-    stride = ee->w * sizeof(int);
-    len = stride * ee->h;
-    if ((ee->engine.wl.pool) && (len < ee->engine.wl.pool_size))
-      {
-         pool = ee->engine.wl.pool;
-         data = ee->engine.wl.pool_data;
-      }
-    else
-      {
-         int w = 0, size = 0;
-         ecore_wl_screen_size_get(&w, NULL);
-         if (w == 0) w = 1024;
-         size = (6 * w * w);
-         pool = 
-           _ecore_evas_wl_shm_pool_create(size, &data);
-         ee->engine.wl.pool_size = size;
-      }
-    if (data != ee->engine.wl.pool_data)
-      {
-         if (ee->engine.wl.pool)
-           wl_shm_pool_destroy(ee->engine.wl.pool);
-         ee->engine.wl.pool = pool;
-         ee->engine.wl.pool_data = data;
-      }
+         _ecore_evas_wl_ensure_pool_size(ee, w, h);
  
          if (ee->engine.wl.pool)
            _ecore_evas_wl_buffer_new(ee, ee->engine.wl.pool);
  
-    einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
-    if (!einfo)
-      {
-         ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
-         return;
-      }
+         einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
+         if (!einfo)
+           {
+             ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
+             return;
+           }
  
-    einfo->info.dest = data;
-    evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+         einfo->info.dest = ee->engine.wl.pool_data;
+         evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
  
          if (ee->engine.wl.win)
            {
  }
  
  static void 
- _ecore_evas_wl_show(Ecore_Evas *ee)
+ _ecore_evas_wl_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
  {
-    Evas_Engine_Info_Wayland_Shm *einfo;
-    struct wl_shm_pool *pool = NULL;
-    int stride = 0;
-    size_t len = 0;
-    void *data;
     LOGFN(__FILE__, __LINE__, __FUNCTION__);
  
-    if ((!ee) || (ee->visible)) return;
+    if (!ee) return;
+    if ((ee->x != x) || (ee->y != y))
+      _ecore_evas_wl_move(ee, x, y);
+    if ((ee->w != w) || (ee->h != h))
+      _ecore_evas_wl_resize(ee, w, h);
+ }
  
-    stride = ee->w * sizeof(int);
-    len = stride * ee->h;
+ static void
+ _ecore_evas_wl_ensure_pool_size(Ecore_Evas *ee, int w, int h)
+ {
+    int stride = 0;
+    size_t len = 0;
+    stride = w * sizeof(int);
+    len = stride * h;
  
     if ((ee->engine.wl.pool) && (len < ee->engine.wl.pool_size))
-      {
-         pool = ee->engine.wl.pool;
-         data = ee->engine.wl.pool_data;
-      }
+      return;
     else
       {
-         int w = 0, size = 0;
-         ecore_wl_screen_size_get(&w, NULL);
-         /* set a default width */
-         if (w == 0) w = 1024;
-         size = (6 * w * w);
-         pool = 
-           _ecore_evas_wl_shm_pool_create(size, &data);
-         ee->engine.wl.pool_size = size;
-      }
+         struct wl_shm_pool *pool = NULL;
+         void *data;
+         int size;
  
-    if (data != ee->engine.wl.pool_data)
-      {
          if (ee->engine.wl.pool)
            wl_shm_pool_destroy(ee->engine.wl.pool);
  
+         /*
+          * Make the pool 1.5 times the current requirement to allow growth
+          * without requiring a new pool allocation
+          */
+         size = 1.5 * len;
+         pool = _ecore_evas_wl_shm_pool_create(size, &data);
          ee->engine.wl.pool = pool;
+         ee->engine.wl.pool_size = size;
          ee->engine.wl.pool_data = data;
       }
+ }
+ static void
+ _ecore_evas_wl_show(Ecore_Evas *ee)
+ {
+    Evas_Engine_Info_Wayland_Shm *einfo;
  
-    _ecore_evas_wl_buffer_new(ee, pool);
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    if ((!ee) || (ee->visible)) return;
+    _ecore_evas_wl_ensure_pool_size(ee, ee->w, ee->h);
+    if (ee->engine.wl.pool)
+      _ecore_evas_wl_buffer_new(ee, ee->engine.wl.pool);
  
     einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
     if (!einfo)
          return;
       }
  
-    einfo->info.dest = data;
+    einfo->info.dest = ee->engine.wl.pool_data;
     evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
  
     /* ecore_wl_flush(); */
          ecore_wl_window_buffer_attach(ee->engine.wl.win, 
                                        ee->engine.wl.buffer, 0, 0);
          ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
+         if ((ee->prop.clas) && (ee->engine.wl.win->shell_surface))
+           wl_shell_surface_set_class(ee->engine.wl.win->shell_surface, 
+                                      ee->prop.clas);
+         if ((ee->prop.title) && (ee->engine.wl.win->shell_surface))
+           wl_shell_surface_set_title(ee->engine.wl.win->shell_surface, 
+                                      ee->prop.title);
       }
  
     if (ee->engine.wl.frame)
@@@ -697,6 -674,10 +675,10 @@@ _ecore_evas_wl_title_set(Ecore_Evas *ee
          if (!(sd = evas_object_smart_data_get(ee->engine.wl.frame))) return;
          evas_object_text_text_set(sd->text, ee->prop.title);
       }
+    if ((ee->prop.title) && (ee->engine.wl.win->shell_surface))
+      wl_shell_surface_set_title(ee->engine.wl.win->shell_surface, 
+                                 ee->prop.title);
  }
  
  static void 
@@@ -711,7 -692,10 +693,10 @@@ _ecore_evas_wl_name_class_set(Ecore_Eva
     ee->prop.clas = NULL;
     if (n) ee->prop.name = strdup(n);
     if (c) ee->prop.clas = strdup(c);
-    /* FIXME: Forward these changes to Wayland somehow */
+    if ((ee->prop.clas) && (ee->engine.wl.win->shell_surface))
+      wl_shell_surface_set_class(ee->engine.wl.win->shell_surface, 
+                                 ee->prop.clas);
  }
  
  static void 
@@@ -1022,7 -1006,7 +1007,7 @@@ _ecore_evas_wl_cb_mouse_in(void *data _
          if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
          ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
          evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
-         _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
//        _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
          ee->in = EINA_TRUE;
       }
     return ECORE_CALLBACK_PASS_ON;
@@@ -1043,7 -1027,7 +1028,7 @@@ _ecore_evas_wl_cb_mouse_out(void *data 
     if (ee->in)
       {
          ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
-         _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
//        _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
          evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
          if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
          if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
@@@ -945,6 -945,83 +945,83 @@@ _ecore_evas_win32_fullscreen_set(Ecore_
       }
  #endif /* BUILD_ECORE_EVAS_DIRECT3D */
  }
+ static void
+ _ecore_evas_win32_alpha_set(Ecore_Evas *ee, int alpha)
+ {
+    alpha = !!alpha;
+    if ((ee->alpha == alpha)) return;
+    if (!strcmp(ee->driver, "software_gdi"))
+      {
+ #ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI
+         Evas_Engine_Info_Software_Gdi *einfo;
+         einfo = (Evas_Engine_Info_Software_Gdi *)evas_engine_info_get(ee->evas);
+         if (!einfo) return;
+         ee->shaped = 0;
+         ee->alpha = alpha;
+         /* ecore_win32_window_free(ee->prop.window); */
+         /* ecore_event_window_unregister(ee->prop.window); */
+         /* if (ee->alpha) */
+         /*   { */
+         /*      if (ee->prop.override) */
+         /*        ee->prop.window = ecore_x_window_override_argb_new(ee->engine.x.win_root, ee->req.x, ee->req.y, ee->req.w, ee->req.h); */
+         /*      else */
+         /*        ee->prop.window = ecore_x_window_argb_new(ee->engine.x.win_root, ee->req.x, ee->req.y, ee->req.w, ee->req.h); */
+         /*      if (!ee->engine.x.mask) */
+         /*        ee->engine.x.mask = ecore_x_pixmap_new(ee->prop.window, ee->req.w, ee->req.h, 1); */
+         /*   } */
+         /* else */
+         /*   { */
+         /*      if (ee->prop.override) */
+         /*        ee->prop.window = ecore_win32_window_override_new(ee->engine.win32.win_root, */
+         /*                                                          ee->req.x, */
+         /*                                                          ee->req.y, */
+         /*                                                          ee->req.w, */
+         /*                                                          ee->req.h); */
+         /*      else */
+         /*        ee->prop.window = ecore_win32_window_new(ee->engine.win32.win_root, */
+         /*                                                 ee->req.x, */
+         /*                                                 ee->req.y, */
+         /*                                                 ee->req.w, */
+         /*                                                 ee->req.h); */
+         /*      if (ee->engine.win32.mask) ecore_x_pixmap_free(ee->engine.x.mask); */
+         /*      ee->engine.win32.mask = 0; */
+         /*      ecore_win32_window_shape_input_mask_set(ee->prop.window, 0); */
+         /*   } */
+         /* einfo->info.destination_alpha = alpha; */
+         einfo->info.region = alpha;
+ //        if (ee->engine.x.mask) ecore_x_pixmap_free(ee->engine.x.mask);
+ //        ee->engine.x.mask = 0;
+         /* einfo->info.mask = ee->engine.win32.mask; */
+         /* einfo->info.drawable = ee->prop.window; */
+         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
+           {
+              ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
+           }
+         evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
+         /* ecore_win32_window_shape_mask_set(ee->prop.window, 0); */
+         /* ecore_event_window_register(ee->prop.window, ee, ee->evas, */
+         /*                             (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process, */
+         /*                             (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process, */
+         /*                             (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, */
+         /*                             (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); */
+         if (ee->prop.borderless)
+           ecore_win32_window_borderless_set((struct _Ecore_Win32_Window *)ee->prop.window, ee->prop.borderless);
+         if (ee->visible) ecore_win32_window_show((struct _Ecore_Win32_Window *)ee->prop.window);
+         if (ee->prop.focused) ecore_win32_window_focus((struct _Ecore_Win32_Window *)ee->prop.window);
+         if (ee->prop.title)
+           {
+              ecore_win32_window_title_set((struct _Ecore_Win32_Window *)ee->prop.window, ee->prop.title);
+              /* ecore_win32_name_set(ee->prop.window, ee->prop.title); */
+           }
+         ecore_win32_window_type_set((struct _Ecore_Win32_Window *)ee->prop.window, ECORE_WIN32_WINDOW_TYPE_NORMAL);
+ #endif /* BUILD_ECORE_EVAS_SOFTWARE_GDI */
+      }
+ }
  
  
  static Ecore_Evas_Engine_Func _ecore_win32_engine_func =
       NULL, /* _ecore_evas_x_withdrawn_set */
       NULL, /* _ecore_evas_x_sticky_set */
       NULL, /* _ecore_evas_x_ignore_events_set */
-      NULL,  /* _ecore_evas_x_alpha_set */
+      _ecore_evas_win32_alpha_set,
       NULL, //transparent
 +     NULL, // profiles_set
  
       NULL,
       NULL,
@@@ -102,8 -102,6 +102,8 @@@ _ecore_evas_x_protocols_set(Ecore_Evas 
  static void
  _ecore_evas_x_sync_set(Ecore_Evas *ee)
  {
 +   Ecore_X_Sync_Counter sync_counter = ee->engine.x.sync_counter;
 +
     if (((ee->should_be_visible) || (ee->visible)) &&
         ((ecore_x_e_comp_sync_supported_get(ee->engine.x.win_root)) &&
             (!ee->no_comp_sync) && (_ecore_evas_app_comp_sync)))
     else
       {
          if (ee->engine.x.sync_counter)
 -           ecore_x_sync_counter_free(ee->engine.x.sync_counter);
 +          {
 +             ecore_x_sync_counter_free(ee->engine.x.sync_counter);
 +             ee->engine.x.sync_val = 0;
 +          }
          ee->engine.x.sync_counter = 0;
       }
 -   ecore_x_e_comp_sync_counter_set(ee->prop.window, ee->engine.x.sync_counter);
 +   if (sync_counter != ee->engine.x.sync_counter)
 +      ecore_x_e_comp_sync_counter_set(ee->prop.window, ee->engine.x.sync_counter);
  }
  
  static void
@@@ -129,7 -123,6 +129,7 @@@ _ecore_evas_x_sync_clear(Ecore_Evas *ee
  {
     if (!ee->engine.x.sync_counter) return;
     ecore_x_sync_counter_free(ee->engine.x.sync_counter);
 +   ee->engine.x.sync_val = 0;
     ee->engine.x.sync_counter = 0;
  }
  
@@@ -730,34 -723,6 +730,34 @@@ _ecore_evas_x_event_property_change(voi
               break;
            }
       }
 +   else if (e->atom == ECORE_X_ATOM_E_PROFILE)
 +     {
 +        char *p = ecore_x_e_window_profile_get(e->win);
 +        if ((p) && (ee->prop.profile))
 +          {
 +             if (strcmp(p, ee->prop.profile) != 0)
 +               {
 +                  free(ee->prop.profile);
 +                  ee->prop.profile = strdup(p);
 +                  state_change = 1;
 +               }
 +          }
 +        else if ((!p) && (ee->prop.profile))
 +          {
 +             free(ee->prop.profile);
 +             ee->prop.profile = NULL;
 +             state_change = 1;
 +          }
 +        else if ((p) && (!ee->prop.profile))
 +          {
 +             ee->prop.profile = strdup(p);
 +             state_change = 1;
 +          }
 +
 +        if (p)
 +          free(p);
 +     }
 +
     if (state_change)
       {
          if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
@@@ -1164,17 -1129,6 +1164,17 @@@ _ecore_evas_x_event_window_show(void *d
     ee = ecore_event_window_match(e->win);
     if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
     if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
 +   /* some GL drivers are doing buffer copy in a separate thread.
 +    * we need to check whether GL driver sends SYNC_DRAW_DONE msg afger copying
 +    * that are required in order to exactly render. - added by gl77.lee
 +    */
 +   if (ee->gl_sync_draw_done < 0)
 +     {
 +        if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))
 +           ee->gl_sync_draw_done = atoi(getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"));
 +        else
 +           ee->gl_sync_draw_done = 0;
 +     }
     if (first_map_bug < 0)
       {
          char *bug = NULL;
@@@ -1731,41 -1685,14 +1731,41 @@@ _ecore_evas_x_rotation_set_internal(Eco
       }
  }
  
 +#define _USE_WIN_ROT_EFFECT 1
 +
 +#if _USE_WIN_ROT_EFFECT
 +static void _ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__);
 +
 +typedef struct _Ecore_Evas_X_Rotation_Effect Ecore_Evas_X_Rotation_Effect;
 +struct _Ecore_Evas_X_Rotation_Effect
 +{
 +   Eina_Bool    wait_for_comp_reply;
 +};
 +
 +static Ecore_Evas_X_Rotation_Effect _rot_effect =
 +{
 +   EINA_FALSE
 +};
 +
 +static void
 +_ecore_evas_x_rotation_effect_setup(void)
 +{
 +   _rot_effect.wait_for_comp_reply = EINA_TRUE;
 +}
 +#endif /* end of _USE_WIN_ROT_EFFECT */
 +
  static void
  _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
  {
 +   if (ee->rotation == rotation) return;
 +   if (!strcmp(ee->driver, "xrender_x11")) return;
 +
 +#if _USE_WIN_ROT_EFFECT
     int angles[2];
     angles[0] = rotation;
     angles[1] = ee->rotation;
 +#endif /* end of _USE_WIN_ROT_EFFECT */
  
 -   if (ee->rotation == rotation) return;
     if (!strcmp(ee->driver, "opengl_x11"))
       {
  #ifdef BUILD_ECORE_EVAS_OPENGL_X11
          einfo->info.rotation = rotation;
          _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
                                              (Evas_Engine_Info *)einfo);
 +# if _USE_WIN_ROT_EFFECT
          ecore_x_window_prop_property_set(ee->prop.window,
                                           ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
                                           ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
 +# else
 +        ecore_x_window_prop_property_set(ee->prop.window,
 +                                         ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
 +                                         ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
 +# endif
  #endif /* BUILD_ECORE_EVAS_OPENGL_X11 */
       }
     else if (!strcmp(ee->driver, "software_x11"))
          einfo->info.rotation = rotation;
          _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
                                              (Evas_Engine_Info *)einfo);
 +# if _USE_WIN_ROT_EFFECT
          ecore_x_window_prop_property_set(ee->prop.window,
                                           ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
                                           ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
 +# else
 +        ecore_x_window_prop_property_set(ee->prop.window,
 +                                         ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
 +                                         ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
 +# endif
  #endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
       }
     else if (!strcmp(ee->driver,  "software_16_x11"))
          einfo->info.rotation = rotation;
          _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
                                              (Evas_Engine_Info *)einfo);
 +# if _USE_WIN_ROT_EFFECT
          ecore_x_window_prop_property_set(ee->prop.window,
                                           ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
                                           ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
 +# else
 +        ecore_x_window_prop_property_set(ee->prop.window,
 +                                         ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
 +                                         ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
 +# endif
  #endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
       }
     else if (!strcmp(ee->driver,  "software_8_x11"))
          einfo->info.rotation = rotation;
          _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
                                              (Evas_Engine_Info *)einfo);
 +# if _USE_WIN_ROT_EFFECT
          ecore_x_window_prop_property_set(ee->prop.window,
                                           ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
                                           ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
 +# else
 +        ecore_x_window_prop_property_set(ee->prop.window,
 +                                         ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
 +                                         ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
 +# endif
  #endif /* BUILD_ECORE_EVAS_SOFTWARE_8_X11 */
       }
 +
 +#if _USE_WIN_ROT_EFFECT
 +   if ((ee->visible) &&
 +       ((ecore_x_e_comp_sync_supported_get(ee->engine.x.win_root)) &&
 +        (!ee->no_comp_sync) && (_ecore_evas_app_comp_sync)) &&
 +        (ee->engine.x.sync_counter) &&
 +        (ee->engine.x.sync_val > 0))
 +     {
 +        _ecore_evas_x_rotation_effect_setup();
 +        _ecore_evas_x_flush_pre(ee, NULL, NULL);
 +     }
 +#endif /* end of _USE_WIN_ROT_EFFECT */
  }
  
  static void
@@@ -2074,11 -1965,15 +2074,15 @@@ _ecore_evas_x_alpha_set(Ecore_Evas *ee
               ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
               ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
            }
+         if (ee->prop.name)
+           ecore_x_icccm_name_class_set(ee->prop.window,
+                                        ee->prop.name, ee->prop.clas);
          _ecore_evas_x_hints_update(ee);
          _ecore_evas_x_group_leader_update(ee);
          ecore_x_window_defaults_set(ee->prop.window);
          _ecore_evas_x_protocols_set(ee);
          _ecore_evas_x_sync_set(ee);
+         _ecore_evas_x_size_pos_hints_update(ee);
  #endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
          if ((id = getenv("DESKTOP_STARTUP_ID")))
            {
               ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
               ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
            }
+         if (ee->prop.name)
+           ecore_x_icccm_name_class_set(ee->prop.window,
+                                        ee->prop.name, ee->prop.clas);
          _ecore_evas_x_hints_update(ee);
          _ecore_evas_x_group_leader_update(ee);
          ecore_x_window_defaults_set(ee->prop.window);
          _ecore_evas_x_protocols_set(ee);
          _ecore_evas_x_sync_set(ee);
+         _ecore_evas_x_size_pos_hints_update(ee);
  #endif /* BUILD_ECORE_EVAS_OPENGL_X11 */
          if ((id = getenv("DESKTOP_STARTUP_ID")))
            {
               ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
               ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
            }
+         if (ee->prop.name)
+           ecore_x_icccm_name_class_set(ee->prop.window,
+                                        ee->prop.name, ee->prop.clas);
          _ecore_evas_x_hints_update(ee);
          _ecore_evas_x_group_leader_update(ee);
          ecore_x_window_defaults_set(ee->prop.window);
          _ecore_evas_x_protocols_set(ee);
          _ecore_evas_x_sync_set(ee);
+         _ecore_evas_x_size_pos_hints_update(ee);
  #endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
          if ((id = getenv("DESKTOP_STARTUP_ID")))
            {
               ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
               ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
            }
+         if (ee->prop.name)
+           ecore_x_icccm_name_class_set(ee->prop.window,
+                                        ee->prop.name, ee->prop.clas);
          _ecore_evas_x_hints_update(ee);
          _ecore_evas_x_group_leader_update(ee);
          ecore_x_window_defaults_set(ee->prop.window);
          _ecore_evas_x_protocols_set(ee);
          _ecore_evas_x_sync_set(ee);
+         _ecore_evas_x_size_pos_hints_update(ee);
  
          if ((id = getenv("DESKTOP_STARTUP_ID")))
            {
@@@ -2771,13 -2678,6 +2787,13 @@@ _ecore_evas_x_fullscreen_set(Ecore_Eva
  }
  
  static void
 +_ecore_evas_x_profiles_set(Ecore_Evas *ee, const char **plist, int n)
 +{
 +   /* Ecore_Evas's profile will be updated when WM sets the E_PROFILE. */
 +   ecore_x_e_window_profile_list_set(ee->prop.window, plist, n);
 +}
 +
 +static void
  _ecore_evas_x_avoid_damage_set(Ecore_Evas *ee, int on)
  {
     if (ee->prop.avoid_damage == on) return;
@@@ -3024,7 -2924,6 +3040,7 @@@ static Ecore_Evas_Engine_Func _ecore_x_
       _ecore_evas_x_ignore_events_set,
       _ecore_evas_x_alpha_set,
       _ecore_evas_x_transparent_set,
 +     _ecore_evas_x_profiles_set,
     
       _ecore_evas_x_window_group_set,
       _ecore_evas_x_aspect_set,
@@@ -3071,8 -2970,7 +3087,8 @@@ _ecore_evas_x_flush_post(void *data, Ev
  {
     Ecore_Evas *ee = data;
  
 -   if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync))
 +   if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync) &&
 +       (!ee->gl_sync_draw_done)) // added by gl77.lee
       {
          if (ee->engine.x.sync_counter)
            {
@@@ -3307,7 -3205,9 +3323,9 @@@ ecore_evas_software_x11_new(const char 
  
  /**
   * @brief Get the window from Ecore_Evas using software x11.
-  * @note If ecore is not compiled with support to x11 then nothing is done and 0 is returned.
+  * @note If ecore is not compiled with support for x11 or if @p ee was not
+  * created with ecore_evas_software_x11_new() then nothing is done and
+  * 0 is returned.
   * @param ee The Ecore_Evas from which to get the window.
   * @return The window of type Ecore_X_Window.
   */
  EAPI Ecore_X_Window
  ecore_evas_software_x11_window_get(const Ecore_Evas *ee)
  {
+    if (!(!strcmp(ee->driver, "software_x11"))) return 0;
     return (Ecore_X_Window) ecore_evas_window_get(ee);
  }
  #else
@@@ -3449,20 -3350,14 +3468,20 @@@ ecore_evas_gl_x11_options_new(const cha
  
     ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
  
 +   ee->gl_sync_draw_done = -1; // added by gl77.lee
 +
     _ecore_evas_x_init();
  
     ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
  
     ee->driver = "opengl_x11";
 +#if 1
 +   ee->semi_sync = 0; // gl engine doesn't need to sync - its whole swaps
 +#else
     if (!getenv("ECORE_EVAS_COMP_NOSEMISYNC"))
        ee->semi_sync = 1; // gl engine doesn't need to sync - its whole swaps
  //   ee->no_comp_sync = 1; // gl engine doesn't need to sync - its whole swaps
 +#endif
     if (disp_name) ee->name = strdup(disp_name);
  
     if (w < 1) w = 1;
@@@ -3560,7 -3455,9 +3579,9 @@@ ecore_evas_gl_x11_options_new(const cha
  
  /**
   * @brief Get the window from Ecore_Evas using opengl x11.
-  * @note If ecore is not compiled with support to x11 then nothing is done and 0 is returned.
+  * @note If ecore is not compiled with support for x11 or if @p ee was not
+  * created with ecore_evas_gl_x11_new() then nothing is done and
+  * 0 is returned.
   * @param ee The Ecore_Evas from which to get the window.
   * @return The window of type Ecore_X_Window of Ecore_Evas.
   */
  EAPI Ecore_X_Window
  ecore_evas_gl_x11_window_get(const Ecore_Evas *ee)
  {
+    if (!(!strcmp(ee->driver, "opengl_x11"))) return 0;
     return (Ecore_X_Window) ecore_evas_window_get(ee);
  }
  #else
@@@ -3865,7 -3763,9 +3887,9 @@@ ecore_evas_software_x11_16_new(const ch
  
  /**
   * @brief Get the window from Ecore_Evas using software 16 x11.
-  * @note If ecore is not compiled with support to x11 then nothing is done and 0 is returned.
+  * @note If ecore is not compiled with support for x11 or if @p ee was not
+  * created with ecore_evas_software_x11_16_new() then nothing is done and
+  * 0 is returned.
   * @param ee The Ecore_Evas from which to get the window.
   * @return The window of type Ecore_X_Window of Ecore_Evas.
   */
  EAPI Ecore_X_Window
  ecore_evas_software_x11_16_window_get(const Ecore_Evas *ee)
  {
+    if (!(!strcmp(ee->driver, "software_16_x11"))) return 0;
     return (Ecore_X_Window) ecore_evas_window_get(ee);
  }
  #else
@@@ -4194,7 -4095,9 +4219,9 @@@ ecore_evas_software_x11_8_new(const cha
  
  /**
   * @brief Get window from Ecore_Evas using software 8 x11.
-  * @note If ecore is not compiled with support to x11 then nothing is done and 0 is returned.
+  * @note If ecore is not compiled with support for x11 or if @p ee was not
+  * created with ecore_evas_software_x11_8_new() then nothing is done and
+  * 0 is returned.
   * @param ee The Ecore_Evas from which to get the window.
   * @return The window of type Ecore_X_Window of Ecore_Evas.
   */
@@@ -4202,6 -4105,7 +4229,7 @@@ EAPI Ecore_X_Windo
  ecore_evas_software_x11_8_window_get(const Ecore_Evas *ee)
  {
  #if defined (BUILD_ECORE_EVAS_SOFTWARE_8_X11)
+    if (!(!strcmp(ee->driver, "software_8_x11"))) return 0;
     return (Ecore_X_Window) ecore_evas_window_get(ee);
  #else
     return 0;
  
  /**
   * @brief Get subwindow from Ecore_Evas using software 8 x11.
-  * @note If ecore is not compiled with support to x11 then nothing is done and 0 is returned.
+  * @note If ecore is not compiled with support for x11 or if @p ee was not
+  * created with ecore_evas_software_x11_8_new() then nothing is done and
+  * 0 is returned.
   * @param ee The Ecore_Evas from which to get the subwindow.
   * @return The window of type Ecore_X_Window of Ecore_Evas.
   */
@@@ -4219,6 -4125,7 +4249,7 @@@ EAPI Ecore_X_Windo
  ecore_evas_software_x11_8_subwindow_get(const Ecore_Evas *ee)
  {
  #if defined (BUILD_ECORE_EVAS_SOFTWARE_8_X11)
+    if (!(!strcmp(ee->driver, "software_8_x11"))) return 0;
     return (Ecore_X_Window) ecore_evas_window_get(ee);
  #else
     return 0;
   *
   * Immodule is plugin to connect your application and input method framework such as SCIM, ibus, and so on.@n
   * ecore_imf_init() should be called to initialize and load immodule.@n
-  * ecore_imf_shutdown() is used for shutdowning and unloading immodule. 
+  * ecore_imf_shutdown() is used for shutdowning and unloading immodule.
+  *
+  * An example of usage of these functions can be found at:
+  * @li @ref ecore_imf_example_c
   */
  
  /**
@@@ -1733,159 -1736,3 +1736,159 @@@ ecore_imf_context_input_panel_caps_lock
     return ctx->input_panel_caps_lock_mode;
  }
  
 +/**
 + * Get the position of the current active input panel.
 + *
 + * @param ctx An #Ecore_IMF_Context.
 + * @param x top-left x co-ordinate of the input panel
 + * @param y top-left y co-ordinate of the input panel
 + * @param w width of the input panel
 + * @param h height of the input panel
 + * @ingroup Ecore_IMF_Context_Group
 + * @since 1.2.0
 + */
 +EAPI void
 +ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
 +{
 +   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
 +     {
 +        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
 +                         "ecore_imf_context_input_panel_geometry_get");
 +        return;
 +     }
 +
 +   if (ctx->klass->input_panel_geometry_get)
 +     ctx->klass->input_panel_geometry_get(ctx, x, y, w, h);
 +}
 +
 +/**
 + * Get state of current active input panel.
 + *
 + * @param ctx An #Ecore_IMF_Context.
 + * @param The state of input panel.
 + * @ingroup Ecore_IMF_Context_Group
 + * @since 1.2.0
 + */
 +EAPI Ecore_IMF_Input_Panel_State
 +ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx)
 +{
 +   Ecore_IMF_Input_Panel_State state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
 +   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
 +     {
 +        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
 +                         "ecore_imf_context_input_panel_state_get");
 +        return ECORE_IMF_INPUT_PANEL_STATE_HIDE;
 +     }
 +
 +   if (ctx->klass->input_panel_state_get)
 +     state = ctx->klass->input_panel_state_get(ctx);
 +
 +   return state;
 +}
 +
 +/**
 + * Register a callback function which will be called if there is change in input panel state,language,mode etc.
 + * In order to deregister the callback function 
 + * Use @ref ecore_imf_context_input_panel_event_callback_del.
 + *
 + * @param ctx An #Ecore_IMF_Context
 + * @param type event type
 + * @param func the callback function
 + * @param data application-input panel specific data.
 + * @ingroup Ecore_IMF_Context_Group
 + * @since 1.2.0
 + */
 +EAPI void
 +ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx,
 +                                                 Ecore_IMF_Input_Panel_Event type,
 +                                                 void (*func) (void *data, Ecore_IMF_Context *ctx, int value),
 +                                                 const void *data)
 +{
 +   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
 +     {
 +        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
 +                         "ecore_imf_context_input_panel_event_callback_add");
 +        return;
 +     }
 +
 +   if (ctx->klass->input_panel_event_callback_add)
 +     ctx->klass->input_panel_event_callback_add(ctx, type, func, (void *)data);
 +}
 +
 +/**
 + * Unregister a callback function which will be called if there is change in input panel state, language, mode etc.
 + *
 + * @param ctx An #Ecore_IMF_Context.
 + * @param func the callback function
 + * @param data application-input panel specific data.
 + * @ingroup Ecore_IMF_Context_Group
 + * @since 1.2.0
 + */
 +EAPI void
 +ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx,
 +                                                 Ecore_IMF_Input_Panel_Event type,
 +                                                 void (*func) (void *data, Ecore_IMF_Context *ctx, int value))
 +{
 +   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
 +     {
 +        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
 +                         "ecore_imf_context_input_panel_event_callback_del");
 +        return;
 +     }
 +
 +   if (ctx->klass->input_panel_event_callback_del)
 +     ctx->klass->input_panel_event_callback_del(ctx, type, func);
 +}
 +
 +/**
 + * Get the current language locale of the input panel.
 + *
 + * ex) fr_FR
 + *
 + * @param ctx An #Ecore_IMF_Context.
 + * @param lang Location to store the retrieved language string. The
 + *             string retrieved must be freed with free().
 + * @ingroup Ecore_IMF_Context_Group
 + */
 +EAPI void
 +ecore_imf_context_input_panel_language_locale_get(Ecore_IMF_Context *ctx, char **lang)
 +{
 +   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
 +     {
 +        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
 +                         "ecore_imf_context_input_panel_language_locale_get");
 +        return;
 +     }
 +
 +   if (ctx->klass->input_panel_language_locale_get)
 +     ctx->klass->input_panel_language_locale_get(ctx, lang);
 +   else
 +     {
 +        if (lang) *lang = strdup("");
 +     }
 +}
 +
 +/**
 + * Get the geometry information of the candidate panel.
 + *
 + * @param ctx An #Ecore_IMF_Context.
 + * @param x top-left x co-ordinate of the candidate panel
 + * @param y top-left y co-ordinate of the candidate panel
 + * @param w width of the candidate panel
 + * @param h height of the candidate panel
 + * @ingroup Ecore_IMF_Context_Group
 + */
 +EAPI void
 +ecore_imf_context_candidate_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
 +{
 +   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
 +     {
 +        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
 +                         "ecore_imf_context_candidate_panel_geometry_get");
 +        return;
 +     }
 +
 +   if (ctx->klass->candidate_panel_geometry_get)
 +     ctx->klass->candidate_panel_geometry_get(ctx, x, y, w, h);
 +}
 +
@@@ -126,35 -126,22 +126,22 @@@ typedef enum _Ecore_X_Composite_Update_
  typedef enum _Ecore_X_Window_State
  {
     /* Unknown state */
-     ECORE_X_WINDOW_STATE_UNKNOWN = 0,
-     /** The window is iconified. */
-     ECORE_X_WINDOW_STATE_ICONIFIED,
-     /** The window is a modal dialog box. */
-     ECORE_X_WINDOW_STATE_MODAL,
-     /** The window manager should keep the window's position fixed
-      * even if the virtual desktop scrolls. */
-     ECORE_X_WINDOW_STATE_STICKY,
-     /** The window has the maximum vertical size. */
-     ECORE_X_WINDOW_STATE_MAXIMIZED_VERT,
-     /** The window has the maximum horizontal size. */
-     ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ,
-     /** The window is shaded. */
-     ECORE_X_WINDOW_STATE_SHADED,
-     /** The window should not be included in the taskbar. */
-     ECORE_X_WINDOW_STATE_SKIP_TASKBAR,
-     /** The window should not be included in the pager. */
-     ECORE_X_WINDOW_STATE_SKIP_PAGER,
-     /** The window is invisible (i.e. minimized/iconified) */
-     ECORE_X_WINDOW_STATE_HIDDEN,
-     /** The window should fill the entire screen and have no
-      * window border/decorations */
-     ECORE_X_WINDOW_STATE_FULLSCREEN,
-     /* The following are not documented because they are not
-      * intended for use in applications. */
-     ECORE_X_WINDOW_STATE_ABOVE,
-     ECORE_X_WINDOW_STATE_BELOW,
-     /* FIXME: Documentation */
-     ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION
+    ECORE_X_WINDOW_STATE_UNKNOWN = 0,  /** The window is iconified. */
+    ECORE_X_WINDOW_STATE_ICONIFIED,  /** The window is a modal dialog box. */
+    ECORE_X_WINDOW_STATE_MODAL,  /** The window manager should keep the window's position fixed
+                                  * even if the virtual desktop scrolls. */
+    ECORE_X_WINDOW_STATE_STICKY,  /** The window has the maximum vertical size. */
+    ECORE_X_WINDOW_STATE_MAXIMIZED_VERT,  /** The window has the maximum horizontal size. */
+    ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ,  /** The window is shaded. */
+    ECORE_X_WINDOW_STATE_SHADED,  /** The window should not be included in the taskbar. */
+    ECORE_X_WINDOW_STATE_SKIP_TASKBAR,  /** The window should not be included in the pager. */
+    ECORE_X_WINDOW_STATE_SKIP_PAGER,  /** The window is invisible (i.e. minimized/iconified) */
+    ECORE_X_WINDOW_STATE_HIDDEN,  /** The window should fill the entire screen and have no
+                                   * window border/decorations */
+    ECORE_X_WINDOW_STATE_FULLSCREEN,  /* The following are not documented because they are not
+                                       * intended for use in applications. */
+    ECORE_X_WINDOW_STATE_ABOVE, ECORE_X_WINDOW_STATE_BELOW,  /* FIXME: Documentation */
+    ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION
  } Ecore_X_Window_State;
  
  typedef enum _Ecore_X_Window_State_Action
@@@ -197,7 -184,8 +184,8 @@@ typedef enum _Ecore_X_Randr_Output_Poli
     ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3,
     ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4,
     ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5,
-    ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6
+    ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6,
+    ECORE_X_RANDR_OUTPUT_POLICY_ASK = 7
  } Ecore_X_Randr_Output_Policy;
  
  typedef enum _Ecore_X_Randr_Relative_Alignment
@@@ -349,20 -337,36 +337,50 @@@ typedef enum _Ecore_X_Randr_Property_Ch
     ECORE_X_RANDR_PROPERTY_CHANGE_DEL
  } Ecore_X_Randr_Property_Change;
  
 +typedef enum _Ecore_X_Netwm_Direction
 +{
 +   ECORE_X_NETWM_DIRECTION_SIZE_TL = 0,
 +   ECORE_X_NETWM_DIRECTION_SIZE_T = 1,
 +   ECORE_X_NETWM_DIRECTION_SIZE_TR = 2,
 +   ECORE_X_NETWM_DIRECTION_SIZE_R = 3,
 +   ECORE_X_NETWM_DIRECTION_SIZE_BR = 4,
 +   ECORE_X_NETWM_DIRECTION_SIZE_B = 5,
 +   ECORE_X_NETWM_DIRECTION_SIZE_BL = 6,
 +   ECORE_X_NETWM_DIRECTION_SIZE_L = 7,
 +   ECORE_X_NETWM_DIRECTION_MOVE = 8,
 +   ECORE_X_NETWM_DIRECTION_CANCEL = 11,
 +} Ecore_X_Netwm_Direction;
 +
+ /**
+  * @typedef _Ecore_X_Error_Code
+  * Defines the error codes of Ecore_X which wraps the X Window Systems
+  * protocol's errors.
+  *
+  * @since 1.3.0
+  */
+ typedef enum _Ecore_X_Error_Code
+ {
+    /** Everything is okay. */
+    ECORE_X_ERROR_CODE_SUCCESS = 0, /** Bad request code */
+    ECORE_X_ERROR_CODE_BAD_REQUEST = 1, /** Int parameter out of range */
+    ECORE_X_ERROR_CODE_BAD_VALUE = 2, /** Parameter not a Window */
+    ECORE_X_ERROR_CODE_BAD_WINDOW = 3, /** Parameter not a Pixmap */
+    ECORE_X_ERROR_CODE_BAD_PIXMAP = 4, /** Parameter not an Atom */
+    ECORE_X_ERROR_CODE_BAD_ATOM = 5, /** Parameter not a Cursor */
+    ECORE_X_ERROR_CODE_BAD_CURSOR = 6, /** Parameter not a Font */
+    ECORE_X_ERROR_CODE_BAD_FONT = 7, /** Parameter mismatch */
+    ECORE_X_ERROR_CODE_BAD_MATCH = 8, /** Parameter not a Pixmap or Window */
+    ECORE_X_ERROR_CODE_BAD_DRAWABLE = 9, /** Bad access */
+    ECORE_X_ERROR_CODE_BAD_ACCESS = 10, /** Insufficient resources */
+    ECORE_X_ERROR_CODE_BAD_ALLOC = 11, /** No such colormap */
+    ECORE_X_ERROR_CODE_BAD_COLOR = 12, /** Parameter not a GC */
+    ECORE_X_ERROR_CODE_BAD_GC = 13, /** Choice not in range or already used */
+    ECORE_X_ERROR_CODE_BAD_ID_CHOICE = 14, /** Font or color name doesn't exist */
+    ECORE_X_ERROR_CODE_BAD_NAME = 15, /** Request length incorrect */
+    ECORE_X_ERROR_CODE_BAD_LENGTH = 16, /** Server is defective */
+    ECORE_X_ERROR_CODE_BAD_IMPLEMENTATION = 17,
+ } Ecore_X_Error_Code;
  typedef struct _Ecore_X_Event_Mouse_In                     Ecore_X_Event_Mouse_In;
  typedef struct _Ecore_X_Event_Mouse_Out                    Ecore_X_Event_Mouse_Out;
  typedef struct _Ecore_X_Event_Window_Focus_In              Ecore_X_Event_Window_Focus_In;
@@@ -862,63 -866,6 +880,63 @@@ struct _Ecore_X_Event_Window_Delete_Req
     Ecore_X_Time   time;
  };
  
 +struct _Ecore_X_Event_Window_Prop_Title_Change
 +{
 +   Ecore_X_Window win;
 +   char          *title;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Visible_Title_Change
 +{
 +   Ecore_X_Window win;
 +   char          *title;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Icon_Name_Change
 +{
 +   Ecore_X_Window win;
 +   char          *name;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change
 +{
 +   Ecore_X_Window win;
 +   char          *name;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Client_Machine_Change
 +{
 +   Ecore_X_Window win;
 +   char          *name;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Name_Class_Change
 +{
 +   Ecore_X_Window win;
 +   char          *name;
 +   char          *clas;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Pid_Change
 +{
 +   Ecore_X_Window win;
 +   pid_t          pid;
 +   Ecore_X_Time   time;
 +};
 +
 +struct _Ecore_X_Event_Window_Prop_Desktop_Change
 +{
 +   Ecore_X_Window win;
 +   long           desktop;
 +   Ecore_X_Time   time;
 +};
 +
  struct _Ecore_X_Event_Startup_Sequence
  {
     Ecore_X_Window win;
@@@ -969,8 -916,7 +987,7 @@@ struct _Ecore_X_Event_Generi
  };
  
  EAPI extern int ECORE_X_EVENT_ANY; /**< low level event dependent on
-                                         backend in use, if Xlib will be XEvent,
-                                         if XCB will be xcb_generic_event_t.
+                                         backend in use, if Xlib will be XEvent, if XCB will be xcb_generic_event_t.
                                          @warning avoid using it.
                                      */
  EAPI extern int ECORE_X_EVENT_MOUSE_IN;
@@@ -1046,41 -992,41 +1063,41 @@@ EAPI extern int ECORE_X_LOCK_SHIFT
  
  typedef enum _Ecore_X_WM_Protocol
  {
-    /* If enabled the window manager will be asked to send a
+    /** If enabled the window manager will be asked to send a
      * delete message instead of just closing (destroying) the window. */
-      ECORE_X_WM_PROTOCOL_DELETE_REQUEST,
+    ECORE_X_WM_PROTOCOL_DELETE_REQUEST,
  
-      /* If enabled the window manager will be told that the window
-       * explicitly sets input focus. */
-      ECORE_X_WM_PROTOCOL_TAKE_FOCUS,
+    /** If enabled the window manager will be told that the window
+     * explicitly sets input focus. */
+    ECORE_X_WM_PROTOCOL_TAKE_FOCUS,
  
-      /* If enabled the window manager can ping the window to check
-       * if it is alive. */
-      ECORE_X_NET_WM_PROTOCOL_PING,
+    /** If enabled the window manager can ping the window to check
+     * if it is alive. */
+    ECORE_X_NET_WM_PROTOCOL_PING,
  
-      /* If enabled the window manager can sync updating with the
-       * window (?) */
-      ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST,
+    /** If enabled the window manager can sync updating with the
+     * window (?) */
+    ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST,
  
-      /* Number of defined items */
-      ECORE_X_WM_PROTOCOL_NUM
+    /** Number of defined items */
+    ECORE_X_WM_PROTOCOL_NUM
  } Ecore_X_WM_Protocol;
  
  typedef enum _Ecore_X_Window_Input_Mode
  {
-    /* The window can never be focused */
-     ECORE_X_WINDOW_INPUT_MODE_NONE,
+    /** The window can never be focused */
+    ECORE_X_WINDOW_INPUT_MODE_NONE,
  
-     /* The window can be focused by the WM but doesn't focus itself */
-     ECORE_X_WINDOW_INPUT_MODE_PASSIVE,
+    /** The window can be focused by the WM but doesn't focus itself */
+    ECORE_X_WINDOW_INPUT_MODE_PASSIVE,
  
-     /* The window sets the focus itself if one of its sub-windows
-      * already is focused */
-     ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL,
+    /** The window sets the focus itself if one of its sub-windows
+     * already is focused */
+    ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL,
  
-     /* The window sets the focus itself even if another window
-      * is currently focused */
-     ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL
+    /** The window sets the focus itself even if another window
+     * is currently focused */
+    ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL
  } Ecore_X_Window_Input_Mode;
  
  /**
  typedef enum _Ecore_X_Window_State_Hint
  {
     /** Do not provide any state hint to the window manager */
-     ECORE_X_WINDOW_STATE_HINT_NONE = -1,
+    ECORE_X_WINDOW_STATE_HINT_NONE = -1,
  
-     /** The window wants to remain hidden and NOT iconified */
-     ECORE_X_WINDOW_STATE_HINT_WITHDRAWN,
+    /** The window wants to remain hidden and NOT iconified */
+    ECORE_X_WINDOW_STATE_HINT_WITHDRAWN,
  
-     /** The window wants to be mapped normally */
-     ECORE_X_WINDOW_STATE_HINT_NORMAL,
+    /** The window wants to be mapped normally */
+    ECORE_X_WINDOW_STATE_HINT_NORMAL,
  
-     /** The window wants to start in an iconified state */
-     ECORE_X_WINDOW_STATE_HINT_ICONIC
+    /** The window wants to start in an iconified state */
+    ECORE_X_WINDOW_STATE_HINT_ICONIC
  } Ecore_X_Window_State_Hint;
  
  typedef enum _Ecore_X_Window_Type
@@@ -1205,12 -1151,6 +1222,12 @@@ typedef enum _Ecore_X_Illume_Indicator_
     ECORE_X_ILLUME_INDICATOR_TRANSPARENT
  } Ecore_X_Illume_Indicator_Opacity_Mode;
  
 +typedef enum _Ecore_X_Illume_Window_State
 +{
 +   ECORE_X_ILLUME_WINDOW_STATE_NORMAL = 0,
 +   ECORE_X_ILLUME_WINDOW_STATE_FLOATING
 +} Ecore_X_Illume_Window_State;
 +
  /* Window layer constants */
  #define ECORE_X_WINDOW_LAYER_BELOW  2
  #define ECORE_X_WINDOW_LAYER_NORMAL 4
  #define ECORE_X_PROP_LIST_ADD       1
  #define ECORE_X_PROP_LIST_TOGGLE    2
  
- EAPI int
-  ecore_x_init(const char *name);
- EAPI int
-  ecore_x_shutdown(void);
- EAPI int
-  ecore_x_disconnect(void);
- EAPI Ecore_X_Display *
-  ecore_x_display_get(void);
- EAPI Ecore_X_Connection *
-  ecore_x_connection_get(void);
- EAPI int
-  ecore_x_fd_get(void);
- EAPI Ecore_X_Screen *
-  ecore_x_default_screen_get(void);
- EAPI void
-  ecore_x_screen_size_get(const Ecore_X_Screen *screen,
-                         int *w,
-                         int *h);
- EAPI int
-  ecore_x_screen_count_get(void);
- EAPI int
-  ecore_x_screen_index_get(const Ecore_X_Screen *screen);
- EAPI Ecore_X_Screen *
-  ecore_x_screen_get(int index);
- EAPI void
-  ecore_x_double_click_time_set(double t);
- EAPI double
-  ecore_x_double_click_time_get(void);
- EAPI void
-  ecore_x_flush(void);
- EAPI void
-  ecore_x_sync(void);
- EAPI void
-  ecore_x_killall(Ecore_X_Window root);
- EAPI void
-  ecore_x_kill(Ecore_X_Window win);
- EAPI int
-  ecore_x_dpi_get(void);
- EAPI Eina_Bool
-  ecore_x_bell(int percent);
- EAPI unsigned int
-  ecore_x_visual_id_get(Ecore_X_Visual visual);
- EAPI Ecore_X_Visual
- ecore_x_default_visual_get(Ecore_X_Display *disp,
-                            Ecore_X_Screen *screen);
- EAPI Ecore_X_Colormap
- ecore_x_default_colormap_get(Ecore_X_Display *disp,
-                              Ecore_X_Screen *screen);
- EAPI int
- ecore_x_default_depth_get(Ecore_X_Display *disp,
-                           Ecore_X_Screen *screen);
- EAPI Ecore_X_Time
- ecore_x_current_time_get(void);
- EAPI void
- ecore_x_error_handler_set(void (*func)(void *data),
-                           const void *data);
- EAPI void
- ecore_x_io_error_handler_set(void (*func)(void *data),
-                              const void *data);
- EAPI int
-  ecore_x_error_request_get(void);
- EAPI int
-  ecore_x_error_code_get(void);
- EAPI Ecore_X_ID
- ecore_x_error_resource_id_get(void);
- EAPI void
- ecore_x_event_mask_set(Ecore_X_Window w,
-                        Ecore_X_Event_Mask mask);
- EAPI void
- ecore_x_event_mask_unset(Ecore_X_Window w,
-                          Ecore_X_Event_Mask mask);
- EAPI Eina_Bool
- ecore_x_selection_notify_send(Ecore_X_Window requestor,
-                               Ecore_X_Atom selection,
-                               Ecore_X_Atom target,
-                               Ecore_X_Atom property,
-                               Ecore_X_Time time);
- EAPI Eina_Bool
- ecore_x_selection_primary_set(Ecore_X_Window w,
-                               const void *data,
-                               int size);
- EAPI Eina_Bool
-  ecore_x_selection_primary_clear(void);
- EAPI Eina_Bool
-  ecore_x_selection_secondary_set(Ecore_X_Window w,
-                                 const void *data,
-                                 int size);
- EAPI Eina_Bool
-  ecore_x_selection_secondary_clear(void);
- EAPI Eina_Bool
-  ecore_x_selection_xdnd_set(Ecore_X_Window w,
-                            const void *data,
-                            int size);
- EAPI Eina_Bool
-  ecore_x_selection_xdnd_clear(void);
- EAPI Eina_Bool
-  ecore_x_selection_clipboard_set(Ecore_X_Window w,
-                                 const void *data,
-                                 int size);
- EAPI Eina_Bool
-  ecore_x_selection_clipboard_clear(void);
- EAPI void
-  ecore_x_selection_primary_request(Ecore_X_Window w,
-                                   const char *target);
- EAPI void
- ecore_x_selection_secondary_request(Ecore_X_Window w,
-                                     const char *target);
- EAPI void
- ecore_x_selection_xdnd_request(Ecore_X_Window w,
-                                const char *target);
- EAPI void
- ecore_x_selection_clipboard_request(Ecore_X_Window w,
-                                     const char *target);
- EAPI Eina_Bool
- ecore_x_selection_convert(Ecore_X_Atom selection,
-                           Ecore_X_Atom target,
-                           void **data_ret,
-                           int *len,
-                           Ecore_X_Atom *targprop,
-                           int *targsize);
- EAPI void
- ecore_x_selection_converter_add(char *target,
-                                 Eina_Bool (*func)(char *target,
-                                                   void *data,
-                                                   int size,
-                                                   void **data_ret,
-                                                   int *size_ret,
-                                                   Ecore_X_Atom *,
-                                                   int *));
- EAPI void
- ecore_x_selection_converter_atom_add(Ecore_X_Atom target,
-                                      Eina_Bool (*func)(char *target,
-                                                        void *data,
-                                                        int size,
-                                                        void **data_ret,
-                                                        int *size_ret,
-                                                        Ecore_X_Atom *tprop,
-                                                        int *tsize));
- EAPI void
-  ecore_x_selection_converter_del(char *target);
- EAPI void
-  ecore_x_selection_converter_atom_del(Ecore_X_Atom target);
- EAPI void
-  ecore_x_selection_parser_add(const char *target,
-                              void *(*func)(const char *target, void *data, int size, int format));
- EAPI void
-  ecore_x_selection_parser_del(const char *target);
- EAPI void
-  ecore_x_selection_owner_set(Ecore_X_Window win,
-                             Ecore_X_Atom atom,
-                             Ecore_X_Time tm);
- EAPI Ecore_X_Window
- ecore_x_selection_owner_get(Ecore_X_Atom atom);
- EAPI void
- ecore_x_dnd_aware_set(Ecore_X_Window win,
-                       Eina_Bool on);
- EAPI int
-  ecore_x_dnd_version_get(Ecore_X_Window win);
- EAPI Eina_Bool
-  ecore_x_dnd_type_isset(Ecore_X_Window win,
-                        const char *type);
- EAPI void
- ecore_x_dnd_type_set(Ecore_X_Window win,
-                      const char *type,
-                      Eina_Bool on);
- EAPI void
- ecore_x_dnd_types_set(Ecore_X_Window win,
-                       const char **types,
-                       unsigned int num_types);
- EAPI void
- ecore_x_dnd_actions_set(Ecore_X_Window win,
-                         Ecore_X_Atom *actions,
-                         unsigned int num_actions);
- EAPI Eina_Bool
- ecore_x_dnd_begin(Ecore_X_Window source,
-                   unsigned char *data,
-                   int size);
- EAPI Eina_Bool
-  ecore_x_dnd_drop(void);
- EAPI void
-  ecore_x_dnd_send_status(Eina_Bool will_accept,
-                         Eina_Bool suppress,
-                         Ecore_X_Rectangle rectangle,
-                         Ecore_X_Atom action);
- EAPI void
-  ecore_x_dnd_send_finished(void);
- EAPI void
-  ecore_x_dnd_source_action_set(Ecore_X_Atom action);
- EAPI Ecore_X_Atom
-  ecore_x_dnd_source_action_get(void);
- EAPI void
-  ecore_x_dnd_callback_pos_update_set(void (*cb)(void *,
-                                                Ecore_X_Xdnd_Position *data),
-                                     const void *data);
- EAPI Ecore_X_Window
- ecore_x_window_new(Ecore_X_Window parent,
-                    int x,
-                    int y,
-                    int w,
-                    int h);
- EAPI Ecore_X_Window
- ecore_x_window_override_new(Ecore_X_Window parent,
-                             int x,
-                             int y,
-                             int w,
-                             int h);
- EAPI int
-  ecore_x_window_argb_get(Ecore_X_Window win);
- EAPI Ecore_X_Window
-  ecore_x_window_manager_argb_new(Ecore_X_Window parent,
-                                 int x,
-                                 int y,
-                                 int w,
-                                 int h);
- EAPI Ecore_X_Window
- ecore_x_window_argb_new(Ecore_X_Window parent,
-                         int x,
-                         int y,
-                         int w,
-                         int h);
- EAPI Ecore_X_Window
- ecore_x_window_override_argb_new(Ecore_X_Window parent,
-                                  int x,
-                                  int y,
-                                  int w,
-                                  int h);
- EAPI Ecore_X_Window
- ecore_x_window_input_new(Ecore_X_Window parent,
-                          int x,
-                          int y,
-                          int w,
-                          int h);
- EAPI void
- ecore_x_window_configure(Ecore_X_Window win,
-                          Ecore_X_Window_Configure_Mask mask,
-                          int x,
-                          int y,
-                          int w,
-                          int h,
-                          int border_width,
-                          Ecore_X_Window sibling,
-                          int stack_mode);
- EAPI void
- ecore_x_window_cursor_set(Ecore_X_Window win,
-                           Ecore_X_Cursor c);
- EAPI void
-  ecore_x_window_free(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_ignore_set(Ecore_X_Window win,
-                           int ignore);
- EAPI Ecore_X_Window *
- ecore_x_window_ignore_list(int *num);
- EAPI void
-  ecore_x_window_delete_request_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_show(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_hide(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_move(Ecore_X_Window win,
-                     int x,
-                     int y);
- EAPI void
- ecore_x_window_resize(Ecore_X_Window win,
-                       int w,
-                       int h);
- EAPI void
- ecore_x_window_move_resize(Ecore_X_Window win,
-                            int x,
-                            int y,
-                            int w,
-                            int h);
- EAPI void
-  ecore_x_window_focus(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_focus_at_time(Ecore_X_Window win,
-                              Ecore_X_Time t);
- EAPI Ecore_X_Window
-  ecore_x_window_focus_get(void);
- EAPI void
-  ecore_x_window_raise(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_lower(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_reparent(Ecore_X_Window win,
-                         Ecore_X_Window new_parent,
-                         int x,
-                         int y);
- EAPI void
- ecore_x_window_size_get(Ecore_X_Window win,
-                         int *w,
-                         int *h);
- EAPI void
- ecore_x_window_geometry_get(Ecore_X_Window win,
-                             int *x,
-                             int *y,
-                             int *w,
-                             int *h);
- EAPI int
-  ecore_x_window_border_width_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_border_width_set(Ecore_X_Window win,
-                                 int width);
- EAPI int
-  ecore_x_window_depth_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_cursor_show(Ecore_X_Window win,
-                            Eina_Bool show);
- EAPI void
-  ecore_x_window_defaults_set(Ecore_X_Window win);
- EAPI int
-  ecore_x_window_visible_get(Ecore_X_Window win);
- EAPI Ecore_X_Window
-  ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base,
-                                                int x,
-                                                int y,
-                                                Ecore_X_Window *skip,
-                                                int skip_num);
- EAPI Ecore_X_Window
- ecore_x_window_shadow_parent_get(Ecore_X_Window root,
-                                  Ecore_X_Window win);
- EAPI void
-  ecore_x_window_shadow_tree_flush(void);
- EAPI Ecore_X_Window
-  ecore_x_window_root_get(Ecore_X_Window win);
- EAPI Ecore_X_Window
-  ecore_x_window_at_xy_get(int x,
-                          int y);
- EAPI Ecore_X_Window
- ecore_x_window_at_xy_with_skip_get(int x,
-                                    int y,
-                                    Ecore_X_Window *skip,
-                                    int skip_num);
- EAPI Ecore_X_Window
- ecore_x_window_at_xy_begin_get(Ecore_X_Window begin,
-                                int x,
-                                int y);
- EAPI Ecore_X_Window
- ecore_x_window_parent_get(Ecore_X_Window win);
- EAPI void
- ecore_x_window_background_color_set(Ecore_X_Window win,
-                                     unsigned short r,
-                                     unsigned short g,
-                                     unsigned short b);
- EAPI void
- ecore_x_window_gravity_set(Ecore_X_Window win,
-                            Ecore_X_Gravity grav);
- EAPI void
- ecore_x_window_pixel_gravity_set(Ecore_X_Window win,
-                                  Ecore_X_Gravity grav);
- EAPI void
- ecore_x_window_pixmap_set(Ecore_X_Window win,
-                           Ecore_X_Pixmap pmap);
- EAPI void
- ecore_x_window_area_clear(Ecore_X_Window win,
-                           int x,
-                           int y,
-                           int w,
-                           int h);
- EAPI void
- ecore_x_window_area_expose(Ecore_X_Window win,
-                            int x,
-                            int y,
-                            int w,
-                            int h);
- EAPI void
- ecore_x_window_override_set(Ecore_X_Window win,
-                             Eina_Bool override);
- EAPI void
- ecore_x_window_prop_card32_set(Ecore_X_Window win,
-                                Ecore_X_Atom atom,
-                                unsigned int *val,
-                                unsigned int num);
- EAPI int
- ecore_x_window_prop_card32_get(Ecore_X_Window win,
-                                Ecore_X_Atom atom,
-                                unsigned int *val,
-                                unsigned int len);
- EAPI int
- ecore_x_window_prop_card32_list_get(Ecore_X_Window win,
-                                     Ecore_X_Atom atom,
-                                     unsigned int **plst);
- EAPI void
- ecore_x_window_prop_xid_set(Ecore_X_Window win,
-                             Ecore_X_Atom atom,
-                             Ecore_X_Atom type,
-                             Ecore_X_ID *lst,
-                             unsigned int num);
- EAPI int
- ecore_x_window_prop_xid_get(Ecore_X_Window win,
-                             Ecore_X_Atom atom,
-                             Ecore_X_Atom type,
-                             Ecore_X_ID *lst,
-                             unsigned int len);
- EAPI int
- ecore_x_window_prop_xid_list_get(Ecore_X_Window win,
-                                  Ecore_X_Atom atom,
-                                  Ecore_X_Atom type,
-                                  Ecore_X_ID **plst);
- EAPI void
- ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
-                                     Ecore_X_Atom atom,
-                                     Ecore_X_Atom type,
-                                     Ecore_X_ID item,
-                                     int op);
- EAPI void
- ecore_x_window_prop_atom_set(Ecore_X_Window win,
-                              Ecore_X_Atom atom,
-                              Ecore_X_Atom *val,
-                              unsigned int num);
- EAPI int
- ecore_x_window_prop_atom_get(Ecore_X_Window win,
-                              Ecore_X_Atom atom,
-                              Ecore_X_Atom *val,
-                              unsigned int len);
- EAPI int
- ecore_x_window_prop_atom_list_get(Ecore_X_Window win,
-                                   Ecore_X_Atom atom,
-                                   Ecore_X_Atom **plst);
- EAPI void
- ecore_x_window_prop_atom_list_change(Ecore_X_Window win,
-                                      Ecore_X_Atom atom,
-                                      Ecore_X_Atom item,
-                                      int op);
- EAPI void
- ecore_x_window_prop_window_set(Ecore_X_Window win,
-                                Ecore_X_Atom atom,
-                                Ecore_X_Window *val,
-                                unsigned int num);
- EAPI int
- ecore_x_window_prop_window_get(Ecore_X_Window win,
-                                Ecore_X_Atom atom,
-                                Ecore_X_Window *val,
-                                unsigned int len);
- EAPI int
- ecore_x_window_prop_window_list_get(Ecore_X_Window win,
-                                     Ecore_X_Atom atom,
-                                     Ecore_X_Window **plst);
- EAPI Ecore_X_Atom
-  ecore_x_window_prop_any_type(void);
- EAPI void
-  ecore_x_window_prop_property_set(Ecore_X_Window win,
-                                  Ecore_X_Atom type,
-                                  Ecore_X_Atom format,
-                                  int size,
-                                  void *data,
-                                  int number);
- EAPI int
- ecore_x_window_prop_property_get(Ecore_X_Window win,
-                                  Ecore_X_Atom property,
-                                  Ecore_X_Atom type,
-                                  int size,
-                                  unsigned char **data,
-                                  int *num);
- EAPI void
- ecore_x_window_prop_property_del(Ecore_X_Window win,
-                                  Ecore_X_Atom property);
- EAPI Ecore_X_Atom *
- ecore_x_window_prop_list(Ecore_X_Window win,
-                          int *num_ret);
- EAPI void
- ecore_x_window_prop_string_set(Ecore_X_Window win,
-                                Ecore_X_Atom type,
-                                const char *str);
- EAPI char *
- ecore_x_window_prop_string_get(Ecore_X_Window win,
-                                Ecore_X_Atom type);
- EAPI Eina_Bool
- ecore_x_window_prop_protocol_isset(Ecore_X_Window win,
-                                    Ecore_X_WM_Protocol protocol);
- EAPI Ecore_X_WM_Protocol *
- ecore_x_window_prop_protocol_list_get(Ecore_X_Window win,
-                                       int *num_ret);
- EAPI void
- ecore_x_window_shape_mask_set(Ecore_X_Window win,
-                               Ecore_X_Pixmap mask);
- EAPI void
- ecore_x_window_shape_window_set(Ecore_X_Window win,
-                                 Ecore_X_Window shape_win);
- EAPI void
- ecore_x_window_shape_window_set_xy(Ecore_X_Window win,
-                                    Ecore_X_Window shape_win,
-                                    int x,
-                                    int y);
- EAPI void
- ecore_x_window_shape_rectangle_set(Ecore_X_Window win,
-                                    int x,
-                                    int y,
-                                    int w,
-                                    int h);
- EAPI void
- ecore_x_window_shape_rectangles_set(Ecore_X_Window win,
-                                     Ecore_X_Rectangle *rects,
-                                     int num);
- EAPI void
- ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win,
-                                          int x,
-                                          int y,
-                                          int w,
-                                          int h);
- EAPI void
- ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win,
-                                           Ecore_X_Rectangle *rects,
-                                           int num);
- EAPI void
- ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win,
-                                          int x,
-                                          int y,
-                                          int w,
-                                          int h);
- EAPI void
- ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win,
-                                         int x,
-                                         int y,
-                                         int w,
-                                         int h);
- EAPI void
- ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win,
-                                               int x,
-                                               int y,
-                                               int w,
-                                               int h);
- EAPI void
- ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win,
-                                          Ecore_X_Window shape_win,
-                                          int x,
-                                          int y);
- EAPI void
- ecore_x_window_shape_input_window_set(Ecore_X_Window win,
-                                       Ecore_X_Window shape_win);
- EAPI void
- ecore_x_window_shape_window_add(Ecore_X_Window win,
-                                 Ecore_X_Window shape_win);
- EAPI void
- ecore_x_window_shape_window_add_xy(Ecore_X_Window win,
-                                    Ecore_X_Window shape_win,
-                                    int x,
-                                    int y);
- EAPI void
- ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win,
-                                          Ecore_X_Window shape_win,
-                                          int x,
-                                          int y);
- EAPI void
- ecore_x_window_shape_rectangle_add(Ecore_X_Window win,
-                                    int x,
-                                    int y,
-                                    int w,
-                                    int h);
- EAPI void
- ecore_x_window_shape_rectangle_clip(Ecore_X_Window win,
-                                     int x,
-                                     int y,
-                                     int w,
-                                     int h);
- EAPI void
- ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win,
-                                           int x,
-                                           int y,
-                                           int w,
-                                           int h);
- EAPI void
- ecore_x_window_shape_rectangles_add(Ecore_X_Window win,
-                                     Ecore_X_Rectangle *rects,
-                                     int num);
- EAPI void
- ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win,
-                                           Ecore_X_Rectangle *rects,
-                                           int num);
- EAPI Ecore_X_Rectangle *
- ecore_x_window_shape_rectangles_get(Ecore_X_Window win,
-                                     int *num_ret);
- EAPI Ecore_X_Rectangle *
- ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win,
-                                           int *num_ret);
- EAPI void
- ecore_x_window_shape_events_select(Ecore_X_Window win,
-                                    Eina_Bool on);
- EAPI void
- ecore_x_window_shape_input_mask_set(Ecore_X_Window win,
-                                     Ecore_X_Pixmap mask);
- EAPI Ecore_X_Pixmap
- ecore_x_pixmap_new(Ecore_X_Window win,
-                    int w,
-                    int h,
-                    int dep);
- EAPI void
-  ecore_x_pixmap_free(Ecore_X_Pixmap pmap);
- EAPI void
-  ecore_x_pixmap_paste(Ecore_X_Pixmap pmap,
-                      Ecore_X_Drawable dest,
-                      Ecore_X_GC gc,
-                      int sx,
-                      int sy,
-                      int w,
-                      int h,
-                      int dx,
-                      int dy);
- EAPI void
- ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap,
-                             int *x,
-                             int *y,
-                             int *w,
-                             int *h);
- EAPI int
- ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap);
- EAPI Ecore_X_GC
- ecore_x_gc_new(Ecore_X_Drawable draw,
-                Ecore_X_GC_Value_Mask value_mask,
-                const unsigned int *value_list);
- EAPI void
-  ecore_x_gc_free(Ecore_X_GC gc);
- EAPI void
-  ecore_x_gc_foreground_set(Ecore_X_GC gc,
-                           unsigned long foreground);
- EAPI void
- ecore_x_gc_background_set(Ecore_X_GC gc,
-                           unsigned long background);
- EAPI Eina_Bool
- ecore_x_client_message32_send(Ecore_X_Window win,
-                               Ecore_X_Atom type,
-                               Ecore_X_Event_Mask mask,
-                               long d0,
-                               long d1,
-                               long d2,
-                               long d3,
-                               long d4);
- EAPI Eina_Bool
- ecore_x_client_message8_send(Ecore_X_Window win,
-                              Ecore_X_Atom type,
-                              const void *data,
-                              int len);
- EAPI Eina_Bool
- ecore_x_mouse_move_send(Ecore_X_Window win,
-                         int x,
-                         int y);
- EAPI Eina_Bool
- ecore_x_mouse_down_send(Ecore_X_Window win,
-                         int x,
-                         int y,
-                         int b);
- EAPI Eina_Bool
- ecore_x_mouse_up_send(Ecore_X_Window win,
-                       int x,
-                       int y,
-                       int b);
- EAPI void
- ecore_x_drawable_geometry_get(Ecore_X_Drawable d,
-                               int *x,
-                               int *y,
-                               int *w,
-                               int *h);
- EAPI int
-  ecore_x_drawable_border_width_get(Ecore_X_Drawable d);
- EAPI int
-  ecore_x_drawable_depth_get(Ecore_X_Drawable d);
- EAPI void
-  ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d,
-                                 Ecore_X_GC gc,
-                                 int x,
-                                 int y,
-                                 int width,
-                                 int height);
- EAPI Eina_Bool
-  ecore_x_cursor_color_supported_get(void);
- EAPI Ecore_X_Cursor
-  ecore_x_cursor_new(Ecore_X_Window win,
-                    int *pixels,
-                    int w,
-                    int h,
-                    int hot_x,
-                    int hot_y);
- EAPI void
-  ecore_x_cursor_free(Ecore_X_Cursor c);
- EAPI Ecore_X_Cursor
-  ecore_x_cursor_shape_get(int shape);
- EAPI void
-  ecore_x_cursor_size_set(int size);
- EAPI int
-  ecore_x_cursor_size_get(void);
+ EAPI int                       ecore_x_init(const char *name);
+ EAPI int                       ecore_x_shutdown(void);
+ EAPI int                       ecore_x_disconnect(void);
+ EAPI Ecore_X_Display          *ecore_x_display_get(void);
+ EAPI Ecore_X_Connection       *ecore_x_connection_get(void);
+ EAPI int                       ecore_x_fd_get(void);
+ EAPI Ecore_X_Screen           *ecore_x_default_screen_get(void);
+ EAPI void                      ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h);
+ EAPI int                       ecore_x_screen_count_get(void);
+ EAPI int                       ecore_x_screen_index_get(const Ecore_X_Screen *screen);
+ EAPI Ecore_X_Screen           *ecore_x_screen_get(int index);
+ EAPI void                      ecore_x_double_click_time_set(double t);
+ EAPI double                    ecore_x_double_click_time_get(void);
+ EAPI void                      ecore_x_flush(void);
+ EAPI void                      ecore_x_sync(void);
+ EAPI void                      ecore_x_killall(Ecore_X_Window root);
+ EAPI void                      ecore_x_kill(Ecore_X_Window win);
+ EAPI int                       ecore_x_dpi_get(void);
+ EAPI Eina_Bool                 ecore_x_bell(int percent);
+ EAPI unsigned int              ecore_x_visual_id_get(Ecore_X_Visual visual);
+ EAPI Ecore_X_Visual            ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
+ EAPI Ecore_X_Colormap          ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
+ EAPI int                       ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
+ EAPI Ecore_X_Time              ecore_x_current_time_get(void);
+ EAPI void                      ecore_x_error_handler_set(void (*func)(void *data), const void *data);
+ EAPI void                      ecore_x_io_error_handler_set(void (*func)(void *data), const void *data);
+ EAPI int                       ecore_x_error_request_get(void);
+ EAPI int                       ecore_x_error_code_get(void);
+ EAPI Ecore_X_ID                ecore_x_error_resource_id_get(void);
+ EAPI void                      ecore_x_event_mask_set(Ecore_X_Window w, Ecore_X_Event_Mask mask);
+ EAPI void                      ecore_x_event_mask_unset(Ecore_X_Window w, Ecore_X_Event_Mask mask);
+ EAPI Eina_Bool                 ecore_x_selection_notify_send(Ecore_X_Window requestor, Ecore_X_Atom selection, Ecore_X_Atom target, Ecore_X_Atom property, Ecore_X_Time time);
+ EAPI Eina_Bool                 ecore_x_selection_primary_set(Ecore_X_Window w, const void *data, int size);
+ EAPI Eina_Bool                 ecore_x_selection_primary_clear(void);
+ EAPI Eina_Bool                 ecore_x_selection_secondary_set(Ecore_X_Window w, const void *data, int size);
+ EAPI Eina_Bool                 ecore_x_selection_secondary_clear(void);
+ EAPI Eina_Bool                 ecore_x_selection_xdnd_set(Ecore_X_Window w, const void *data, int size);
+ EAPI Eina_Bool                 ecore_x_selection_xdnd_clear(void);
+ EAPI Eina_Bool                 ecore_x_selection_clipboard_set(Ecore_X_Window w, const void *data, int size);
+ EAPI Eina_Bool                 ecore_x_selection_clipboard_clear(void);
+ EAPI void                      ecore_x_selection_primary_request(Ecore_X_Window w, const char *target);
+ EAPI void                      ecore_x_selection_secondary_request(Ecore_X_Window w, const char *target);
+ EAPI void                      ecore_x_selection_xdnd_request(Ecore_X_Window w, const char *target);
+ EAPI void                      ecore_x_selection_clipboard_request(Ecore_X_Window w, const char *target);
+ EAPI Eina_Bool                 ecore_x_selection_convert(Ecore_X_Atom selection, Ecore_X_Atom target, void **data_ret, int *len, Ecore_X_Atom *targprop, int *targsize);
+ EAPI void                      ecore_x_selection_converter_add(char *target, Eina_Bool (*func)(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *, int *));
+ EAPI void                      ecore_x_selection_converter_atom_add(Ecore_X_Atom target, Eina_Bool (*func)(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *tprop, int *tsize));
+ EAPI void                      ecore_x_selection_converter_del(char *target);
+ EAPI void                      ecore_x_selection_converter_atom_del(Ecore_X_Atom target);
+ EAPI void                      ecore_x_selection_parser_add(const char *target, void *(*func)(const char *target, void *data, int size, int format));
+ EAPI void                      ecore_x_selection_parser_del(const char *target);
+ EAPI void                      ecore_x_selection_owner_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Time tm);
+ EAPI Ecore_X_Window            ecore_x_selection_owner_get(Ecore_X_Atom atom);
+ EAPI void                      ecore_x_dnd_aware_set(Ecore_X_Window win, Eina_Bool on);
+ EAPI int                       ecore_x_dnd_version_get(Ecore_X_Window win);
+ EAPI Eina_Bool                 ecore_x_dnd_type_isset(Ecore_X_Window win, const char *type);
+ EAPI void                      ecore_x_dnd_type_set(Ecore_X_Window win, const char *type, Eina_Bool on);
+ EAPI void                      ecore_x_dnd_types_set(Ecore_X_Window win, const char **types, unsigned int num_types);
+ EAPI void                      ecore_x_dnd_actions_set(Ecore_X_Window win, Ecore_X_Atom *actions, unsigned int num_actions);
+ EAPI Eina_Bool                 ecore_x_dnd_begin(Ecore_X_Window source, unsigned char *data, int size);
+ EAPI Eina_Bool                 ecore_x_dnd_drop(void);
+ EAPI void                      ecore_x_dnd_send_status(Eina_Bool will_accept, Eina_Bool suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action);
+ EAPI void                      ecore_x_dnd_send_finished(void);
+ EAPI void                      ecore_x_dnd_source_action_set(Ecore_X_Atom action);
+ EAPI Ecore_X_Atom              ecore_x_dnd_source_action_get(void);
+ EAPI void                      ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data), const void *data);
+ EAPI Ecore_X_Window            ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h);
+ EAPI Ecore_X_Window            ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h);
+ EAPI int                       ecore_x_window_argb_get(Ecore_X_Window win);
+ EAPI Ecore_X_Window            ecore_x_window_manager_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
+ EAPI Ecore_X_Window            ecore_x_window_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
+ EAPI Ecore_X_Window            ecore_x_window_override_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
+ EAPI Ecore_X_Window            ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_configure(Ecore_X_Window win, Ecore_X_Window_Configure_Mask mask, int x, int y, int w, int h, int border_width, Ecore_X_Window sibling, int stack_mode);
+ EAPI void                      ecore_x_window_cursor_set(Ecore_X_Window win, Ecore_X_Cursor c);
+ EAPI void                      ecore_x_window_free(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_ignore_set(Ecore_X_Window win, int ignore);
+ EAPI Ecore_X_Window           *ecore_x_window_ignore_list(int *num);
+ EAPI void                      ecore_x_window_delete_request_send(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_show(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_hide(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_move(Ecore_X_Window win, int x, int y);
+ EAPI void                      ecore_x_window_resize(Ecore_X_Window win, int w, int h);
+ EAPI void                      ecore_x_window_move_resize(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_focus(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_focus_at_time(Ecore_X_Window win, Ecore_X_Time t);
+ EAPI Ecore_X_Window            ecore_x_window_focus_get(void);
+ EAPI void                      ecore_x_window_raise(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_lower(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y);
+ EAPI void                      ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h);
+ EAPI void                      ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+ EAPI int                       ecore_x_window_border_width_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_border_width_set(Ecore_X_Window win, int width);
+ EAPI int                       ecore_x_window_depth_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_cursor_show(Ecore_X_Window win, Eina_Bool show);
+ EAPI void                      ecore_x_window_defaults_set(Ecore_X_Window win);
+ EAPI int                       ecore_x_window_visible_get(Ecore_X_Window win);
+ EAPI Ecore_X_Window            ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base, int x, int y, Ecore_X_Window *skip, int skip_num);
+ EAPI Ecore_X_Window            ecore_x_window_shadow_parent_get(Ecore_X_Window root, Ecore_X_Window win);
+ EAPI void                      ecore_x_window_shadow_tree_flush(void);
+ EAPI Ecore_X_Window            ecore_x_window_root_get(Ecore_X_Window win);
+ EAPI Ecore_X_Window            ecore_x_window_at_xy_get(int x, int y);
+ EAPI Ecore_X_Window            ecore_x_window_at_xy_with_skip_get(int x, int y, Ecore_X_Window *skip, int skip_num);
+ EAPI Ecore_X_Window            ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, int x, int y);
+ EAPI Ecore_X_Window            ecore_x_window_parent_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_background_color_set(Ecore_X_Window win, unsigned short r, unsigned short g, unsigned short b);
+ EAPI void                      ecore_x_window_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
+ EAPI void                      ecore_x_window_pixel_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
+ EAPI void                      ecore_x_window_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pmap);
+ EAPI void                      ecore_x_window_area_clear(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_area_expose(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_override_set(Ecore_X_Window win, Eina_Bool override);
+ EAPI void                      ecore_x_window_prop_card32_set(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int num);
+ EAPI int                       ecore_x_window_prop_card32_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int len);
+ EAPI int                       ecore_x_window_prop_card32_list_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int **plst);
+ EAPI void                      ecore_x_window_prop_xid_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID *lst, unsigned int num);
+ EAPI int                       ecore_x_window_prop_xid_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID *lst, unsigned int len);
+ EAPI int                       ecore_x_window_prop_xid_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID **plst);
+ EAPI void                      ecore_x_window_prop_xid_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID item, int op);
+ EAPI void                      ecore_x_window_prop_atom_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int num);
+ EAPI int                       ecore_x_window_prop_atom_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int len);
+ EAPI int                       ecore_x_window_prop_atom_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom **plst);
+ EAPI void                      ecore_x_window_prop_atom_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom item, int op);
+ EAPI void                      ecore_x_window_prop_window_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int num);
+ EAPI int                       ecore_x_window_prop_window_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int len);
+ EAPI int                       ecore_x_window_prop_window_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window **plst);
+ EAPI Ecore_X_Atom              ecore_x_window_prop_any_type(void);
+ EAPI void                      ecore_x_window_prop_property_set(Ecore_X_Window win, Ecore_X_Atom type, Ecore_X_Atom format, int size, void *data, int number);
+ EAPI int                       ecore_x_window_prop_property_get(Ecore_X_Window win, Ecore_X_Atom property, Ecore_X_Atom type, int size, unsigned char **data, int *num);
+ EAPI void                      ecore_x_window_prop_property_del(Ecore_X_Window win, Ecore_X_Atom property);
+ EAPI Ecore_X_Atom             *ecore_x_window_prop_list(Ecore_X_Window win, int *num_ret);
+ EAPI void                      ecore_x_window_prop_string_set(Ecore_X_Window win, Ecore_X_Atom type, const char *str);
+ EAPI char                     *ecore_x_window_prop_string_get(Ecore_X_Window win, Ecore_X_Atom type);
+ EAPI Eina_Bool                 ecore_x_window_prop_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
+ EAPI Ecore_X_WM_Protocol      *ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, int *num_ret);
+ EAPI void                      ecore_x_window_shape_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
+ EAPI void                      ecore_x_window_shape_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
+ EAPI void                      ecore_x_window_shape_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+ EAPI void                      ecore_x_window_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+ EAPI void                      ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+ EAPI void                      ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+ EAPI void                      ecore_x_window_shape_input_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
+ EAPI void                      ecore_x_window_shape_window_add(Ecore_X_Window win, Ecore_X_Window shape_win);
+ EAPI void                      ecore_x_window_shape_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+ EAPI void                      ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+ EAPI void                      ecore_x_window_shape_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_window_shape_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+ EAPI void                      ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+ EAPI Ecore_X_Rectangle        *ecore_x_window_shape_rectangles_get(Ecore_X_Window win, int *num_ret);
+ EAPI Ecore_X_Rectangle        *ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, int *num_ret);
+ EAPI void                      ecore_x_window_shape_events_select(Ecore_X_Window win, Eina_Bool on);
+ EAPI void                      ecore_x_window_shape_input_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
+ EAPI Ecore_X_Pixmap            ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep);
+ EAPI void                      ecore_x_pixmap_free(Ecore_X_Pixmap pmap);
+ EAPI void                      ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, Ecore_X_Drawable dest, Ecore_X_GC gc, int sx, int sy, int w, int h, int dx, int dy);
+ EAPI void                      ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h);
+ EAPI int                       ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap);
+ EAPI Ecore_X_GC                ecore_x_gc_new(Ecore_X_Drawable draw, Ecore_X_GC_Value_Mask value_mask, const unsigned int *value_list);
+ EAPI void                      ecore_x_gc_free(Ecore_X_GC gc);
+ EAPI void                      ecore_x_gc_foreground_set(Ecore_X_GC gc, unsigned long foreground);
+ EAPI void                      ecore_x_gc_background_set(Ecore_X_GC gc, unsigned long background);
+ EAPI Eina_Bool                 ecore_x_client_message32_send(Ecore_X_Window win, Ecore_X_Atom type, Ecore_X_Event_Mask mask, long d0, long d1, long d2, long d3, long d4);
+ EAPI Eina_Bool                 ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, const void *data, int len);
+ EAPI Eina_Bool                 ecore_x_mouse_move_send(Ecore_X_Window win, int x, int y);
+ EAPI Eina_Bool                 ecore_x_mouse_down_send(Ecore_X_Window win, int x, int y, int b);
+ EAPI Eina_Bool                 ecore_x_mouse_up_send(Ecore_X_Window win, int x, int y, int b);
+ EAPI Eina_Bool                 ecore_x_mouse_in_send(Ecore_X_Window win, int x, int y);
+ EAPI Eina_Bool                 ecore_x_mouse_out_send(Ecore_X_Window win, int x, int y);
+ EAPI void                      ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h);
+ EAPI int                       ecore_x_drawable_border_width_get(Ecore_X_Drawable d);
+ EAPI int                       ecore_x_drawable_depth_get(Ecore_X_Drawable d);
+ EAPI void                      ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, Ecore_X_GC gc, int x, int y, int width, int height);
+ EAPI Eina_Bool                 ecore_x_cursor_color_supported_get(void);
+ EAPI Ecore_X_Cursor            ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y);
+ EAPI void                      ecore_x_cursor_free(Ecore_X_Cursor c);
+ EAPI Ecore_X_Cursor            ecore_x_cursor_shape_get(int shape);
+ EAPI void                      ecore_x_cursor_size_set(int size);
+ EAPI int                       ecore_x_cursor_size_get(void);
  
  /* FIXME: these funcs need categorising */
- EAPI Ecore_X_Window *
-  ecore_x_window_root_list(int *num_ret);
- EAPI Ecore_X_Window
-  ecore_x_window_root_first_get(void);
- EAPI Eina_Bool
-  ecore_x_window_manage(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_container_manage(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_client_manage(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_sniff(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_client_sniff(Ecore_X_Window win);
- EAPI Ecore_X_Atom
-  ecore_x_atom_get(const char *name);
- EAPI void
-  ecore_x_atoms_get(const char **names,
-                   int num,
-                   Ecore_X_Atom *atoms);
- EAPI char *
- ecore_x_atom_name_get(Ecore_X_Atom atom);
- EAPI void
-  ecore_x_icccm_init(void);
- EAPI void
-  ecore_x_icccm_state_set(Ecore_X_Window win,
-                         Ecore_X_Window_State_Hint state);
- EAPI Ecore_X_Window_State_Hint
-  ecore_x_icccm_state_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_delete_window_send(Ecore_X_Window win,
-                                  Ecore_X_Time t);
- EAPI void
- ecore_x_icccm_take_focus_send(Ecore_X_Window win,
-                               Ecore_X_Time t);
- EAPI void
- ecore_x_icccm_save_yourself_send(Ecore_X_Window win,
-                                  Ecore_X_Time t);
- EAPI void
- ecore_x_icccm_move_resize_send(Ecore_X_Window win,
-                                int x,
-                                int y,
-                                int w,
-                                int h);
- EAPI void
- ecore_x_icccm_hints_set(Ecore_X_Window win,
-                         Eina_Bool accepts_focus,
-                         Ecore_X_Window_State_Hint initial_state,
-                         Ecore_X_Pixmap icon_pixmap,
-                         Ecore_X_Pixmap icon_mask,
-                         Ecore_X_Window icon_window,
-                         Ecore_X_Window window_group,
-                         Eina_Bool is_urgent);
- EAPI Eina_Bool
- ecore_x_icccm_hints_get(Ecore_X_Window win,
-                         Eina_Bool *accepts_focus,
-                         Ecore_X_Window_State_Hint *initial_state,
-                         Ecore_X_Pixmap *icon_pixmap,
-                         Ecore_X_Pixmap *icon_mask,
-                         Ecore_X_Window *icon_window,
-                         Ecore_X_Window *window_group,
-                         Eina_Bool *is_urgent);
- EAPI void
- ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win,
-                                  Eina_Bool request_pos,
-                                  Ecore_X_Gravity gravity,
-                                  int min_w,
-                                  int min_h,
-                                  int max_w,
-                                  int max_h,
-                                  int base_w,
-                                  int base_h,
-                                  int step_x,
-                                  int step_y,
-                                  double min_aspect,
-                                  double max_aspect);
- EAPI Eina_Bool
- ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win,
-                                  Eina_Bool *request_pos,
-                                  Ecore_X_Gravity *gravity,
-                                  int *min_w,
-                                  int *min_h,
-                                  int *max_w,
-                                  int *max_h,
-                                  int *base_w,
-                                  int *base_h,
-                                  int *step_x,
-                                  int *step_y,
-                                  double *min_aspect,
-                                  double *max_aspect);
- EAPI void
- ecore_x_icccm_title_set(Ecore_X_Window win,
-                         const char *t);
- EAPI char *
-  ecore_x_icccm_title_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win,
-                                  Ecore_X_Atom *protos,
-                                  int num);
- EAPI void
- ecore_x_icccm_protocol_set(Ecore_X_Window win,
-                            Ecore_X_WM_Protocol protocol,
-                            Eina_Bool on);
- EAPI Eina_Bool
- ecore_x_icccm_protocol_isset(Ecore_X_Window win,
-                              Ecore_X_WM_Protocol protocol);
- EAPI void
- ecore_x_icccm_name_class_set(Ecore_X_Window win,
-                              const char *n,
-                              const char *c);
- EAPI void
- ecore_x_icccm_name_class_get(Ecore_X_Window win,
-                              char **n,
-                              char **c);
- EAPI char *
-  ecore_x_icccm_client_machine_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_command_set(Ecore_X_Window win,
-                           int argc,
-                           char **argv);
- EAPI void
- ecore_x_icccm_command_get(Ecore_X_Window win,
-                           int *argc,
-                           char ***argv);
- EAPI char *
-  ecore_x_icccm_icon_name_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_icon_name_set(Ecore_X_Window win,
-                             const char *t);
- EAPI void
- ecore_x_icccm_colormap_window_set(Ecore_X_Window win,
-                                   Ecore_X_Window subwin);
- EAPI void
- ecore_x_icccm_colormap_window_unset(Ecore_X_Window win,
-                                     Ecore_X_Window subwin);
- EAPI void
- ecore_x_icccm_transient_for_set(Ecore_X_Window win,
-                                 Ecore_X_Window forwin);
- EAPI void
-  ecore_x_icccm_transient_for_unset(Ecore_X_Window win);
- EAPI Ecore_X_Window
-  ecore_x_icccm_transient_for_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_window_role_set(Ecore_X_Window win,
-                               const char *role);
- EAPI char *
-  ecore_x_icccm_window_role_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_client_leader_set(Ecore_X_Window win,
-                                 Ecore_X_Window l);
- EAPI Ecore_X_Window
-  ecore_x_icccm_client_leader_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_icccm_iconic_request_send(Ecore_X_Window win,
-                                   Ecore_X_Window root);
+ EAPI Ecore_X_Window           *ecore_x_window_root_list(int *num_ret);
+ EAPI Ecore_X_Window            ecore_x_window_root_first_get(void);
+ EAPI Eina_Bool                 ecore_x_window_manage(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_container_manage(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_client_manage(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_sniff(Ecore_X_Window win);
+ EAPI void                      ecore_x_window_client_sniff(Ecore_X_Window win);
+ EAPI Ecore_X_Atom              ecore_x_atom_get(const char *name);
+ EAPI void                      ecore_x_atoms_get(const char **names, int num, Ecore_X_Atom *atoms);
+ EAPI char                     *ecore_x_atom_name_get(Ecore_X_Atom atom);
+ EAPI void                      ecore_x_icccm_init(void);
+ EAPI void                      ecore_x_icccm_state_set(Ecore_X_Window win, Ecore_X_Window_State_Hint state);
+ EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_delete_window_send(Ecore_X_Window win, Ecore_X_Time t);
+ EAPI void                      ecore_x_icccm_take_focus_send(Ecore_X_Window win, Ecore_X_Time t);
+ EAPI void                      ecore_x_icccm_save_yourself_send(Ecore_X_Window win, Ecore_X_Time t);
+ EAPI void                      ecore_x_icccm_move_resize_send(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI void                      ecore_x_icccm_hints_set(Ecore_X_Window win, Eina_Bool accepts_focus, Ecore_X_Window_State_Hint initial_state, Ecore_X_Pixmap icon_pixmap, Ecore_X_Pixmap icon_mask, Ecore_X_Window icon_window, Ecore_X_Window window_group, Eina_Bool is_urgent);
+ EAPI Eina_Bool                 ecore_x_icccm_hints_get(Ecore_X_Window win, Eina_Bool *accepts_focus, Ecore_X_Window_State_Hint *initial_state, Ecore_X_Pixmap *icon_pixmap, Ecore_X_Pixmap *icon_mask, Ecore_X_Window *icon_window, Ecore_X_Window *window_group, Eina_Bool *is_urgent);
+ EAPI void                      ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win, Eina_Bool request_pos, Ecore_X_Gravity gravity, int min_w, int min_h, int max_w, int max_h, int base_w, int base_h, int step_x, int step_y, double min_aspect, double max_aspect);
+ EAPI Eina_Bool                 ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win, Eina_Bool *request_pos, Ecore_X_Gravity *gravity, int *min_w, int *min_h, int *max_w, int *max_h, int *base_w, int *base_h, int *step_x, int *step_y, double *min_aspect, double *max_aspect);
+ EAPI void                      ecore_x_icccm_title_set(Ecore_X_Window win, const char *t);
+ EAPI char                     *ecore_x_icccm_title_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, Ecore_X_Atom *protos, int num);
+ EAPI void                      ecore_x_icccm_protocol_set(Ecore_X_Window win, Ecore_X_WM_Protocol protocol, Eina_Bool on);
+ EAPI Eina_Bool                 ecore_x_icccm_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
+ EAPI void                      ecore_x_icccm_name_class_set(Ecore_X_Window win, const char *n, const char *c);
+ EAPI void                      ecore_x_icccm_name_class_get(Ecore_X_Window win, char **n, char **c);
+ EAPI char                     *ecore_x_icccm_client_machine_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_command_set(Ecore_X_Window win, int argc, char **argv);
+ EAPI void                      ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv);
+ EAPI char                     *ecore_x_icccm_icon_name_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_icon_name_set(Ecore_X_Window win, const char *t);
+ EAPI void                      ecore_x_icccm_colormap_window_set(Ecore_X_Window win, Ecore_X_Window subwin);
+ EAPI void                      ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, Ecore_X_Window subwin);
+ EAPI void                      ecore_x_icccm_transient_for_set(Ecore_X_Window win, Ecore_X_Window forwin);
+ EAPI void                      ecore_x_icccm_transient_for_unset(Ecore_X_Window win);
+ EAPI Ecore_X_Window            ecore_x_icccm_transient_for_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_window_role_set(Ecore_X_Window win, const char *role);
+ EAPI char                     *ecore_x_icccm_window_role_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_client_leader_set(Ecore_X_Window win, Ecore_X_Window l);
+ EAPI Ecore_X_Window            ecore_x_icccm_client_leader_get(Ecore_X_Window win);
+ EAPI void                      ecore_x_icccm_iconic_request_send(Ecore_X_Window win, Ecore_X_Window root);
  
  typedef enum _Ecore_X_MWM_Hint_Func
  {
@@@ -2109,603 -1443,180 +1520,180 @@@ typedef enum _Ecore_X_MWM_Hint_Inpu
     ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3
  } Ecore_X_MWM_Hint_Input;
  
- EAPI Eina_Bool
- ecore_x_mwm_hints_get(Ecore_X_Window win,
-                       Ecore_X_MWM_Hint_Func *fhint,
-                       Ecore_X_MWM_Hint_Decor *dhint,
-                       Ecore_X_MWM_Hint_Input *ihint);
- EAPI void
- ecore_x_mwm_borderless_set(Ecore_X_Window win,
-                            Eina_Bool borderless);
+ EAPI Eina_Bool                       ecore_x_mwm_hints_get(Ecore_X_Window win, Ecore_X_MWM_Hint_Func *fhint, Ecore_X_MWM_Hint_Decor *dhint, Ecore_X_MWM_Hint_Input *ihint);
+ EAPI void                            ecore_x_mwm_borderless_set(Ecore_X_Window win, Eina_Bool borderless);
  
  /* netwm */
- EAPI void
-  ecore_x_netwm_init(void);
- EAPI void
-  ecore_x_netwm_shutdown(void);
- EAPI void
-  ecore_x_netwm_wm_identify(Ecore_X_Window root,
-                           Ecore_X_Window check,
-                           const char *wm_name);
- EAPI void
- ecore_x_netwm_supported_set(Ecore_X_Window root,
-                             Ecore_X_Atom *supported,
-                             int num);
- EAPI Eina_Bool
- ecore_x_netwm_supported_get(Ecore_X_Window root,
-                             Ecore_X_Atom **supported,
-                             int *num);
- EAPI void
- ecore_x_netwm_desk_count_set(Ecore_X_Window root,
-                              unsigned int n_desks);
- EAPI void
- ecore_x_netwm_desk_roots_set(Ecore_X_Window root,
-                              Ecore_X_Window *vroots,
-                              unsigned int n_desks);
- EAPI void
- ecore_x_netwm_desk_names_set(Ecore_X_Window root,
-                              const char **names,
-                              unsigned int n_desks);
- EAPI void
- ecore_x_netwm_desk_size_set(Ecore_X_Window root,
-                             unsigned int width,
-                             unsigned int height);
- EAPI void
- ecore_x_netwm_desk_workareas_set(Ecore_X_Window root,
-                                  unsigned int *areas,
-                                  unsigned int n_desks);
- EAPI unsigned int *
- ecore_x_netwm_desk_workareas_get(Ecore_X_Window root,
-                                  unsigned int *n_desks);
- EAPI void
- ecore_x_netwm_desk_current_set(Ecore_X_Window root,
-                                unsigned int desk);
- EAPI void
- ecore_x_netwm_desk_viewports_set(Ecore_X_Window root,
-                                  unsigned int *origins,
-                                  unsigned int n_desks);
- EAPI void
- ecore_x_netwm_desk_layout_set(Ecore_X_Window root,
-                               int orientation,
-                               int columns,
-                               int rows,
-                               int starting_corner);
- EAPI void
- ecore_x_netwm_showing_desktop_set(Ecore_X_Window root,
-                                   Eina_Bool on);
- EAPI void
- ecore_x_netwm_client_list_set(Ecore_X_Window root,
-                               Ecore_X_Window *p_clients,
-                               unsigned int n_clients);
- EAPI void
- ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root,
-                                        Ecore_X_Window *p_clients,
-                                        unsigned int n_clients);
- EAPI void
- ecore_x_netwm_client_active_set(Ecore_X_Window root,
-                                 Ecore_X_Window win);
- EAPI void
- ecore_x_netwm_client_active_request(Ecore_X_Window root,
-                                     Ecore_X_Window win,
-                                     int type,
-                                     Ecore_X_Window current_win);
- EAPI void
- ecore_x_netwm_name_set(Ecore_X_Window win,
-                        const char *name);
- EAPI int
- ecore_x_netwm_name_get(Ecore_X_Window win,
-                        char **name);
- EAPI void
- ecore_x_netwm_startup_id_set(Ecore_X_Window win,
-                              const char *id);
- EAPI int
- ecore_x_netwm_startup_id_get(Ecore_X_Window win,
-                              char **id);
- EAPI void
- ecore_x_netwm_visible_name_set(Ecore_X_Window win,
-                                const char *name);
- EAPI int
- ecore_x_netwm_visible_name_get(Ecore_X_Window win,
-                                char **name);
- EAPI void
- ecore_x_netwm_icon_name_set(Ecore_X_Window win,
-                             const char *name);
- EAPI int
- ecore_x_netwm_icon_name_get(Ecore_X_Window win,
-                             char **name);
- EAPI void
- ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win,
-                                     const char *name);
- EAPI int
- ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win,
-                                     char **name);
- EAPI void
- ecore_x_netwm_desktop_set(Ecore_X_Window win,
-                           unsigned int desk);
- EAPI Eina_Bool
- ecore_x_netwm_desktop_get(Ecore_X_Window win,
-                           unsigned int *desk);
- EAPI void
- ecore_x_netwm_strut_set(Ecore_X_Window win,
-                         int left,
-                         int right,
-                         int top,
-                         int bottom);
- EAPI Eina_Bool
- ecore_x_netwm_strut_get(Ecore_X_Window win,
-                         int *left,
-                         int *right,
-                         int *top,
-                         int *bottom);
- EAPI void
- ecore_x_netwm_strut_partial_set(Ecore_X_Window win,
-                                 int left,
-                                 int right,
-                                 int top,
-                                 int bottom,
-                                 int left_start_y,
-                                 int left_end_y,
-                                 int right_start_y,
-                                 int right_end_y,
-                                 int top_start_x,
-                                 int top_end_x,
-                                 int bottom_start_x,
-                                 int bottom_end_x);
- EAPI Eina_Bool
- ecore_x_netwm_strut_partial_get(Ecore_X_Window win,
-                                 int *left,
-                                 int *right,
-                                 int *top,
-                                 int *bottom,
-                                 int *left_start_y,
-                                 int *left_end_y,
-                                 int *right_start_y,
-                                 int *right_end_y,
-                                 int *top_start_x,
-                                 int *top_end_x,
-                                 int *bottom_start_x,
-                                 int *bottom_end_x);
- EAPI void
- ecore_x_netwm_icons_set(Ecore_X_Window win,
-                         Ecore_X_Icon *icon,
-                         int num);
-        
- EAPI Eina_Bool
- ecore_x_netwm_icons_get(Ecore_X_Window win,
-                         Ecore_X_Icon **icon,
-                         int *num);
- EAPI void
- ecore_x_netwm_icon_geometry_set(Ecore_X_Window win,
-                                 int x,
-                                 int y,
-                                 int width,
-                                 int height);
- EAPI Eina_Bool
- ecore_x_netwm_icon_geometry_get(Ecore_X_Window win,
-                                 int *x,
-                                 int *y,
-                                 int *width,
-                                 int *height);
- EAPI void
- ecore_x_netwm_pid_set(Ecore_X_Window win,
-                       int pid);
- EAPI Eina_Bool
- ecore_x_netwm_pid_get(Ecore_X_Window win,
-                       int *pid);
- EAPI void
-  ecore_x_netwm_handled_icons_set(Ecore_X_Window win);
- EAPI Eina_Bool
-  ecore_x_netwm_handled_icons_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_netwm_user_time_set(Ecore_X_Window win,
-                             unsigned int time);
- EAPI Eina_Bool
- ecore_x_netwm_user_time_get(Ecore_X_Window win,
-                             unsigned int *time);
- EAPI void
- ecore_x_netwm_window_state_set(Ecore_X_Window win,
-                                Ecore_X_Window_State *state,
-                                unsigned int num);
- EAPI Eina_Bool
- ecore_x_netwm_window_state_get(Ecore_X_Window win,
-                                Ecore_X_Window_State **state,
-                                unsigned int *num);
- EAPI void
- ecore_x_netwm_window_type_set(Ecore_X_Window win,
-                               Ecore_X_Window_Type type);
- EAPI Eina_Bool
- ecore_x_netwm_window_type_get(Ecore_X_Window win,
-                               Ecore_X_Window_Type *type);
- EAPI int
- ecore_x_netwm_window_types_get(Ecore_X_Window win,
-                                Ecore_X_Window_Type **types);
- EAPI Eina_Bool
- ecore_x_netwm_allowed_action_isset(Ecore_X_Window win,
-                                    Ecore_X_Action action);
- EAPI void
- ecore_x_netwm_allowed_action_set(Ecore_X_Window win,
-                                  Ecore_X_Action *action,
-                                  unsigned int num);
- EAPI Eina_Bool
- ecore_x_netwm_allowed_action_get(Ecore_X_Window win,
-                                  Ecore_X_Action **action,
-                                  unsigned int *num);
- EAPI void
- ecore_x_netwm_opacity_set(Ecore_X_Window win,
-                           unsigned int opacity);
- EAPI Eina_Bool
- ecore_x_netwm_opacity_get(Ecore_X_Window win,
-                           unsigned int *opacity);
- EAPI void
- ecore_x_netwm_frame_size_set(Ecore_X_Window win,
-                              int fl,
-                              int fr,
-                              int ft,
-                              int fb);
- EAPI Eina_Bool
- ecore_x_netwm_frame_size_get(Ecore_X_Window win,
-                              int *fl,
-                              int *fr,
-                              int *ft,
-                              int *fb);
- EAPI Eina_Bool
- ecore_x_netwm_sync_counter_get(Ecore_X_Window win,
-                                Ecore_X_Sync_Counter *counter);
- EAPI void
-  ecore_x_netwm_ping_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_netwm_sync_request_send(Ecore_X_Window win,
-                                 unsigned int serial);
- EAPI void
- ecore_x_netwm_state_request_send(Ecore_X_Window win,
-                                  Ecore_X_Window root,
-                                  Ecore_X_Window_State s1,
-                                  Ecore_X_Window_State s2,
-                                  Eina_Bool set);
- EAPI void
- ecore_x_netwm_desktop_request_send(Ecore_X_Window win,
-                                    Ecore_X_Window root,
-                                    unsigned int desktop);
- EAPI void
- ecore_x_netwm_moveresize_request_send(Ecore_X_Window win,
-                                       int x,
-                                       int y,
-                                       Ecore_X_Netwm_Direction direction,
-                                       unsigned int button);
- EAPI void
-  ecore_x_e_init(void);
- EAPI void
-  ecore_x_e_frame_size_set(Ecore_X_Window win,
-                          int fl,
-                          int fr,
-                          int ft,
-                          int fb);
- EAPI void
- ecore_x_e_virtual_keyboard_set(Ecore_X_Window win,
-                                unsigned int is_keyboard);
- EAPI Eina_Bool
-  ecore_x_e_virtual_keyboard_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win,
-                                      Ecore_X_Virtual_Keyboard_State state);
- EAPI Ecore_X_Virtual_Keyboard_State
-  ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win,
-                                       Ecore_X_Virtual_Keyboard_State state);
+ EAPI void                            ecore_x_netwm_init(void);
+ EAPI void                            ecore_x_netwm_shutdown(void);
+ EAPI void                            ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name);
+ EAPI void                            ecore_x_netwm_supported_set(Ecore_X_Window root, Ecore_X_Atom *supported, int num);
+ EAPI Eina_Bool                       ecore_x_netwm_supported_get(Ecore_X_Window root, Ecore_X_Atom **supported, int *num);
+ EAPI void                            ecore_x_netwm_desk_count_set(Ecore_X_Window root, unsigned int n_desks);
+ EAPI void                            ecore_x_netwm_desk_roots_set(Ecore_X_Window root, Ecore_X_Window *vroots, unsigned int n_desks);
+ EAPI void                            ecore_x_netwm_desk_names_set(Ecore_X_Window root, const char **names, unsigned int n_desks);
+ EAPI void                            ecore_x_netwm_desk_size_set(Ecore_X_Window root, unsigned int width, unsigned int height);
+ EAPI void                            ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, unsigned int *areas, unsigned int n_desks);
+ EAPI unsigned int                   *ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks);
+ EAPI void                            ecore_x_netwm_desk_current_set(Ecore_X_Window root, unsigned int desk);
+ EAPI void                            ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, unsigned int *origins, unsigned int n_desks);
+ EAPI void                            ecore_x_netwm_desk_layout_set(Ecore_X_Window root, int orientation, int columns, int rows, int starting_corner);
+ EAPI void                            ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, Eina_Bool on);
+ EAPI void                            ecore_x_netwm_client_list_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
+ EAPI void                            ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
+ EAPI void                            ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win);
+ EAPI void                            ecore_x_netwm_client_active_request(Ecore_X_Window root, Ecore_X_Window win, int type, Ecore_X_Window current_win);
+ EAPI void                            ecore_x_netwm_name_set(Ecore_X_Window win, const char *name);
+ EAPI int                             ecore_x_netwm_name_get(Ecore_X_Window win, char **name);
+ EAPI void                            ecore_x_netwm_startup_id_set(Ecore_X_Window win, const char *id);
+ EAPI int                             ecore_x_netwm_startup_id_get(Ecore_X_Window win, char **id);
+ EAPI void                            ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name);
+ EAPI int                             ecore_x_netwm_visible_name_get(Ecore_X_Window win, char **name);
+ EAPI void                            ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name);
+ EAPI int                             ecore_x_netwm_icon_name_get(Ecore_X_Window win, char **name);
+ EAPI void                            ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name);
+ EAPI int                             ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, char **name);
+ EAPI void                            ecore_x_netwm_desktop_set(Ecore_X_Window win, unsigned int desk);
+ EAPI Eina_Bool                       ecore_x_netwm_desktop_get(Ecore_X_Window win, unsigned int *desk);
+ EAPI void                            ecore_x_netwm_strut_set(Ecore_X_Window win, int left, int right, int top, int bottom);
+ EAPI Eina_Bool                       ecore_x_netwm_strut_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom);
+ EAPI void                            ecore_x_netwm_strut_partial_set(Ecore_X_Window win, int left, int right, int top, int bottom, int left_start_y, int left_end_y, int right_start_y, int right_end_y, int top_start_x, int top_end_x, int bottom_start_x, int bottom_end_x);
+ EAPI Eina_Bool                       ecore_x_netwm_strut_partial_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom, int *left_start_y, int *left_end_y, int *right_start_y, int *right_end_y, int *top_start_x, int *top_end_x, int *bottom_start_x, int *bottom_end_x);
+ EAPI void                            ecore_x_netwm_icons_set(Ecore_X_Window win, Ecore_X_Icon *icon, int num);
+ EAPI Eina_Bool                       ecore_x_netwm_icons_get(Ecore_X_Window win, Ecore_X_Icon **icon, int *num);
+ EAPI void                            ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, int x, int y, int width, int height);
+ EAPI Eina_Bool                       ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, int *x, int *y, int *width, int *height);
+ EAPI void                            ecore_x_netwm_pid_set(Ecore_X_Window win, int pid);
+ EAPI Eina_Bool                       ecore_x_netwm_pid_get(Ecore_X_Window win, int *pid);
+ EAPI void                            ecore_x_netwm_handled_icons_set(Ecore_X_Window win);
+ EAPI Eina_Bool                       ecore_x_netwm_handled_icons_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_netwm_user_time_set(Ecore_X_Window win, unsigned int time);
+ EAPI Eina_Bool                       ecore_x_netwm_user_time_get(Ecore_X_Window win, unsigned int *time);
+ EAPI void                            ecore_x_netwm_window_state_set(Ecore_X_Window win, Ecore_X_Window_State *state, unsigned int num);
+ EAPI Eina_Bool                       ecore_x_netwm_window_state_get(Ecore_X_Window win, Ecore_X_Window_State **state, unsigned int *num);
+ EAPI void                            ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type);
+ EAPI Eina_Bool                       ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type);
+ EAPI int                             ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types);
+ EAPI Eina_Bool                       ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action);
+ EAPI void                            ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action *action, unsigned int num);
+ EAPI Eina_Bool                       ecore_x_netwm_allowed_action_get(Ecore_X_Window win, Ecore_X_Action **action, unsigned int *num);
+ EAPI void                            ecore_x_netwm_opacity_set(Ecore_X_Window win, unsigned int opacity);
+ EAPI Eina_Bool                       ecore_x_netwm_opacity_get(Ecore_X_Window win, unsigned int *opacity);
+ EAPI void                            ecore_x_netwm_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
+ EAPI Eina_Bool                       ecore_x_netwm_frame_size_get(Ecore_X_Window win, int *fl, int *fr, int *ft, int *fb);
+ EAPI Eina_Bool                       ecore_x_netwm_sync_counter_get(Ecore_X_Window win, Ecore_X_Sync_Counter *counter);
+ EAPI void                            ecore_x_netwm_ping_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_netwm_sync_request_send(Ecore_X_Window win, unsigned int serial);
+ EAPI void                            ecore_x_netwm_state_request_send(Ecore_X_Window win, Ecore_X_Window root, Ecore_X_Window_State s1, Ecore_X_Window_State s2, Eina_Bool set);
+ EAPI void                            ecore_x_netwm_desktop_request_send(Ecore_X_Window win, Ecore_X_Window root, unsigned int desktop);
+ EAPI void                            ecore_x_e_init(void);
+ EAPI void                            ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
+ EAPI void                            ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard);
+ EAPI Eina_Bool                       ecore_x_e_virtual_keyboard_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
+ EAPI Ecore_X_Virtual_Keyboard_State  ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
  
  /* Illume functions */
- EAPI void
- ecore_x_e_illume_zone_set(Ecore_X_Window win,
-                           Ecore_X_Window zone);
- EAPI Ecore_X_Window
-  ecore_x_e_illume_zone_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_zone_list_set(Ecore_X_Window win,
-                                Ecore_X_Window *zones,
-                                unsigned int n_zones);
- EAPI void
- ecore_x_e_illume_conformant_set(Ecore_X_Window win,
-                                 unsigned int is_conformant);
- EAPI Eina_Bool
-  ecore_x_e_illume_conformant_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_mode_set(Ecore_X_Window win,
-                           Ecore_X_Illume_Mode mode);
- EAPI Ecore_X_Illume_Mode
-  ecore_x_e_illume_mode_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_mode_send(Ecore_X_Window win,
-                            Ecore_X_Illume_Mode mode);
- EAPI void
-  ecore_x_e_illume_focus_back_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_focus_forward_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_focus_home_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_close_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_home_new_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_home_del_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_drag_set(Ecore_X_Window win,
-                           unsigned int drag);
- EAPI Eina_Bool
-  ecore_x_e_illume_drag_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_drag_locked_set(Ecore_X_Window win,
-                                  unsigned int is_locked);
- EAPI Eina_Bool
-  ecore_x_e_illume_drag_locked_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_drag_start_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_drag_end_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win,
-                                         int x,
-                                         int y,
-                                         int w,
-                                         int h);
- EAPI Eina_Bool
- ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
-                                         int *x,
-                                         int *y,
-                                         int *w,
-                                         int *h);
- EAPI void
- ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win,
-                                       int x,
-                                       int y,
-                                       int w,
-                                       int h);
- EAPI Eina_Bool
- ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
-                                       int *x,
-                                       int *y,
-                                       int *w,
-                                       int *h);
- EAPI void
- ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win,
-                                        int x,
-                                        int y,
-                                        int w,
-                                        int h);
- EAPI Eina_Bool
- ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
-                                        int *x,
-                                        int *y,
-                                        int *w,
-                                        int *h);
- EAPI void
- ecore_x_e_illume_quickpanel_set(Ecore_X_Window win,
-                                 unsigned int is_quickpanel);
- EAPI Eina_Bool
-  ecore_x_e_illume_quickpanel_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win,
-                                       Ecore_X_Illume_Quickpanel_State state);
- EAPI Ecore_X_Illume_Quickpanel_State
-  ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win,
-                                        Ecore_X_Illume_Quickpanel_State state);
- EAPI void
-  ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win,
-                                                unsigned int priority);
- EAPI int
-  ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win,
-                                                unsigned int priority);
- EAPI int
-  ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win,
-                                      unsigned int zone);
- EAPI int
-  ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
- /* for sliding window */
- EAPI void
-  ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
-                                        unsigned int is_visible);
- EAPI int
-  ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
-                                           int x,
-                                           int y,
-                                           int w,
-                                           int h);
- EAPI int
-  ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
-                                           int *x,
-                                           int *y,
-                                           int *w,
-                                           int *h);
- EAPI void
- ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
-                                      Ecore_X_Illume_Clipboard_State state);
- EAPI Ecore_X_Illume_Clipboard_State
- ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
- EAPI void
- ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
-                                         int x,
-                                         int y,
-                                         int w,
-                                         int h);
- EAPI Eina_Bool
- ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
-                                         int *x,
-                                         int *y,
-                                         int *w,
-                                         int *h);
- EAPI void
- ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
-                                 Ecore_X_Sync_Counter counter);
- EAPI Ecore_X_Sync_Counter
-  ecore_x_e_comp_sync_counter_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
-                                    Ecore_X_Window win);
- EAPI void
- ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
-                                         Ecore_X_Window win,
-                                         int w,
-                                         int h);
- EAPI void
- ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
-                                   Eina_Bool enabled);
- EAPI Eina_Bool
-  ecore_x_e_comp_sync_supported_get(Ecore_X_Window root);
- EAPI void
-  ecore_x_e_comp_sync_begin_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_comp_sync_end_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_comp_flush_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_comp_dump_send(Ecore_X_Window win);
- EAPI void
-  ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
-                           Ecore_X_Pixmap pixmap);
- EAPI Ecore_X_Pixmap
- ecore_x_e_comp_pixmap_get(Ecore_X_Window win);
- /**
-  * @brief Set the window profile list.
-  *
-  * @param win The window
-  * @param profiles The profile name list 
-  * @param num_profiles The number of profile names
-  *
-  * @since 1.3.0
-  */
- EAPI void
- ecore_x_e_window_profile_list_set(Ecore_X_Window  win,
-                                   const char    **profiles,
-                                   unsigned int    num_profiles);
- /**
-  * @brief Get the window profile list.
-  *
-  * @param win The window
-  * @param[out] profiles Returns the profile name list
-  * @param[out] ret_num Returns the number of profile names
-  *
-  * @since 1.3.0
-  */
- EAPI Eina_Bool
- ecore_x_e_window_profile_list_get(Ecore_X_Window   win,
-                                   const char    ***profiles,
-                                   int             *ret_num);
- /**
-  * @brief Set the window profile.
-  *
-  * @param win The window
-  * @param profile The profile name
-  *
-  * @since 1.3.0
-  */
- EAPI void
- ecore_x_e_window_profile_set(Ecore_X_Window win,
-                              const char    *profile);
- /**
-  * @brief Get the window profile.
-  *
-  * @param win The window
-  * @return The profile name
-  *
-  * @since 1.3.0
-  */
- EAPI char *
- ecore_x_e_window_profile_get(Ecore_X_Window win);
- EAPI Ecore_X_Sync_Alarm
-  ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter);
- EAPI Eina_Bool
-  ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm);
- EAPI Eina_Bool
-  ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter,
-                            unsigned int *val);
- EAPI Ecore_X_Sync_Counter
-  ecore_x_sync_counter_new(int val);
- EAPI void
-  ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter);
- EAPI void
-  ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter,
-                          int by);
- EAPI void
- ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter,
-                               int val);
- EAPI void
- ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter,
-                          int val);
- EAPI void
- ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter,
-                            int val_hi,
-                            unsigned int val_lo);
- EAPI Eina_Bool
- ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter,
-                              int *val_hi,
-                              unsigned int *val_lo);
- EAPI int
-  ecore_x_xinerama_screen_count_get(void);
- EAPI Eina_Bool
-  ecore_x_xinerama_screen_geometry_get(int screen,
-                                      int *x,
-                                      int *y,
-                                      int *w,
-                                      int *h);
- EAPI Eina_Bool
-  ecore_x_screensaver_event_available_get(void);
- EAPI int
-  ecore_x_screensaver_idle_time_get(void);
- EAPI void
-  ecore_x_screensaver_set(int timeout,
-                         int interval,
-                         int prefer_blanking,
-                         int allow_exposures);
- EAPI void
-  ecore_x_screensaver_timeout_set(int timeout);
- EAPI int
-  ecore_x_screensaver_timeout_get(void);
- EAPI void
-  ecore_x_screensaver_blank_set(int timeout);
- EAPI int
-  ecore_x_screensaver_blank_get(void);
- EAPI void
-  ecore_x_screensaver_expose_set(int timeout);
- EAPI int
-  ecore_x_screensaver_expose_get(void);
- EAPI void
-  ecore_x_screensaver_interval_set(int timeout);
- EAPI int
-  ecore_x_screensaver_interval_get(void);
- EAPI void
-  ecore_x_screensaver_event_listen_set(Eina_Bool on);
+ EAPI void                            ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone);
+ EAPI Ecore_X_Window                  ecore_x_e_illume_zone_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones);
+ EAPI void                            ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant);
+ EAPI Eina_Bool                       ecore_x_e_illume_conformant_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
+ EAPI Ecore_X_Illume_Mode             ecore_x_e_illume_mode_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
+ EAPI void                            ecore_x_e_illume_focus_back_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_focus_forward_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_focus_home_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_close_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_home_new_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_home_del_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_access_action_next_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_access_action_read_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag);
+ EAPI Eina_Bool                       ecore_x_e_illume_drag_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked);
+ EAPI Eina_Bool                       ecore_x_e_illume_drag_locked_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_drag_start_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_drag_end_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI Eina_Bool                       ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+ EAPI void                            ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI Eina_Bool                       ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+ EAPI void                            ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI Eina_Bool                       ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+ EAPI void                            ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel);
+ EAPI Eina_Bool                       ecore_x_e_illume_quickpanel_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
+ EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
+ EAPI void                            ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority);
+ EAPI int                             ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority);
+ EAPI int                             ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone);
+ EAPI int                             ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win, Ecore_X_Illume_Clipboard_State state);
+ EAPI Ecore_X_Illume_Clipboard_State  ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+ EAPI Eina_Bool                       ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+ EAPI void                            ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter);
+ EAPI Ecore_X_Sync_Counter            ecore_x_e_comp_sync_counter_get(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h);
+ EAPI void                            ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled);
+ EAPI Eina_Bool                       ecore_x_e_comp_sync_supported_get(Ecore_X_Window root);
+ EAPI void                            ecore_x_e_comp_sync_begin_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_sync_end_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_flush_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_dump_send(Ecore_X_Window win);
+ EAPI void                            ecore_x_e_comp_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pixmap);
+ EAPI Ecore_X_Pixmap                  ecore_x_e_comp_pixmap_get(Ecore_X_Window win);
+ EAPI Ecore_X_Sync_Alarm              ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter);
+ EAPI Eina_Bool                       ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm);
+ EAPI Eina_Bool                       ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val);
+ EAPI Ecore_X_Sync_Counter            ecore_x_sync_counter_new(int val);
+ EAPI void                            ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter);
+ EAPI void                            ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, int by);
+ EAPI void                            ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, int val);
+ EAPI void                            ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, int val);
+ EAPI void                            ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, int val_hi, unsigned int val_lo);
+ EAPI Eina_Bool                       ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, int *val_hi, unsigned int *val_lo);
+ EAPI int                             ecore_x_xinerama_screen_count_get(void);
+ EAPI Eina_Bool                       ecore_x_xinerama_screen_geometry_get(int screen, int *x, int *y, int *w, int *h);
+ EAPI Eina_Bool                       ecore_x_screensaver_event_available_get(void);
+ EAPI int                             ecore_x_screensaver_idle_time_get(void);
+ EAPI void                            ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures);
+ EAPI void                            ecore_x_screensaver_timeout_set(int timeout);
+ EAPI int                             ecore_x_screensaver_timeout_get(void);
+ EAPI void                            ecore_x_screensaver_blank_set(int timeout);
+ EAPI int                             ecore_x_screensaver_blank_get(void);
+ EAPI void                            ecore_x_screensaver_expose_set(int timeout);
+ EAPI int                             ecore_x_screensaver_expose_get(void);
+ EAPI void                            ecore_x_screensaver_interval_set(int timeout);
+ EAPI int                             ecore_x_screensaver_interval_get(void);
+ EAPI void                            ecore_x_screensaver_event_listen_set(Eina_Bool on);
  
  /* FIXME: these funcs need categorising */
  
@@@ -2736,128 -1647,47 +1724,47 @@@ typedef struct _Ecore_X_Window_Attribut
      */
  } Ecore_X_Window_Attributes;
  
- EAPI Eina_Bool
- ecore_x_window_attributes_get(Ecore_X_Window win,
-                               Ecore_X_Window_Attributes *att_ret);
- EAPI void
-  ecore_x_window_save_set_add(Ecore_X_Window win);
- EAPI void
-  ecore_x_window_save_set_del(Ecore_X_Window win);
- EAPI Ecore_X_Window *
-  ecore_x_window_children_get(Ecore_X_Window win,
-                             int *num);
- EAPI Eina_Bool
- ecore_x_pointer_control_set(int accel_num,
-                             int accel_denom,
-                             int threshold);
- EAPI Eina_Bool
- ecore_x_pointer_control_get(int *accel_num,
-                             int *accel_denom,
-                             int *threshold);
- EAPI Eina_Bool
- ecore_x_pointer_mapping_set(unsigned char *map,
-                             int nmap);
- EAPI Eina_Bool
- ecore_x_pointer_mapping_get(unsigned char *map,
-                             int nmap);
- EAPI Eina_Bool
-  ecore_x_pointer_grab(Ecore_X_Window win);
- EAPI Eina_Bool
-  ecore_x_pointer_confine_grab(Ecore_X_Window win);
- EAPI void
-  ecore_x_pointer_ungrab(void);
- EAPI Eina_Bool
-  ecore_x_pointer_warp(Ecore_X_Window win,
-                      int x,
-                      int y);
- EAPI Eina_Bool
-  ecore_x_keyboard_grab(Ecore_X_Window win);
- EAPI void
-  ecore_x_keyboard_ungrab(void);
- EAPI void
-  ecore_x_grab(void);
- EAPI void
-  ecore_x_ungrab(void);
- EAPI void
-  ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data,
-                                                        int event_type,
-                                                        void *event),
-                                      void *data);
- EAPI void
- ecore_x_window_button_grab(Ecore_X_Window win,
-                            int button,
-                            Ecore_X_Event_Mask event_mask,
-                            int mod,
-                            int any_mod);
- EAPI void
- ecore_x_window_button_ungrab(Ecore_X_Window win,
-                              int button,
-                              int mod,
-                              int any_mod);
- EAPI void
- ecore_x_window_key_grab(Ecore_X_Window win,
-                         const char *key,
-                         int mod,
-                         int any_mod);
- EAPI void
- ecore_x_window_key_ungrab(Ecore_X_Window win,
-                           const char *key,
-                           int mod,
-                           int any_mod);
- EAPI void
-  ecore_x_focus_reset(void);
- EAPI void
-  ecore_x_events_allow_all(void);
- EAPI void
-  ecore_x_pointer_last_xy_get(int *x,
-                             int *y);
- EAPI void
- ecore_x_pointer_xy_get(Ecore_X_Window win,
-                        int *x,
-                        int *y);
+ EAPI Eina_Bool        ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret);
+ EAPI void             ecore_x_window_save_set_add(Ecore_X_Window win);
+ EAPI void             ecore_x_window_save_set_del(Ecore_X_Window win);
+ EAPI Ecore_X_Window  *ecore_x_window_children_get(Ecore_X_Window win, int *num);
+ EAPI Eina_Bool        ecore_x_pointer_control_set(int accel_num, int accel_denom, int threshold);
+ EAPI Eina_Bool        ecore_x_pointer_control_get(int *accel_num, int *accel_denom, int *threshold);
+ EAPI Eina_Bool        ecore_x_pointer_mapping_set(unsigned char *map, int nmap);
+ EAPI Eina_Bool        ecore_x_pointer_mapping_get(unsigned char *map, int nmap);
+ EAPI Eina_Bool        ecore_x_pointer_grab(Ecore_X_Window win);
+ EAPI Eina_Bool        ecore_x_pointer_confine_grab(Ecore_X_Window win);
+ EAPI void             ecore_x_pointer_ungrab(void);
+ EAPI Eina_Bool        ecore_x_pointer_warp(Ecore_X_Window win, int x, int y);
+ EAPI Eina_Bool        ecore_x_keyboard_grab(Ecore_X_Window win);
+ EAPI void             ecore_x_keyboard_ungrab(void);
+ EAPI void             ecore_x_grab(void);
+ EAPI void             ecore_x_ungrab(void);
+ EAPI void             ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, int event_type, void *event), void *data);
+ EAPI void             ecore_x_window_button_grab(Ecore_X_Window win, int button, Ecore_X_Event_Mask event_mask, int mod, int any_mod);
+ EAPI void             ecore_x_window_button_ungrab(Ecore_X_Window win, int button, int mod, int any_mod);
+ EAPI void             ecore_x_window_key_grab(Ecore_X_Window win, const char *key, int mod, int any_mod);
+ EAPI void             ecore_x_window_key_ungrab(Ecore_X_Window win, const char *key, int mod, int any_mod);
+ EAPI void             ecore_x_focus_reset(void);
+ EAPI void             ecore_x_events_allow_all(void);
+ EAPI void             ecore_x_pointer_last_xy_get(int *x, int *y);
+ EAPI void             ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y);
  
  /* ecore_x_region.c */
- EAPI Ecore_X_XRegion *
-  ecore_x_xregion_new(void);
- EAPI void
-  ecore_x_xregion_free(Ecore_X_XRegion *region);
- EAPI Eina_Bool
-  ecore_x_xregion_set(Ecore_X_XRegion *region,
-                     Ecore_X_GC gc);
- EAPI void
- ecore_x_xregion_translate(Ecore_X_XRegion *region,
-                           int x,
-                           int y);
- EAPI Eina_Bool
- ecore_x_xregion_intersect(Ecore_X_XRegion *dst,
-                           Ecore_X_XRegion *r1,
-                           Ecore_X_XRegion *r2);
- EAPI Eina_Bool
- ecore_x_xregion_union(Ecore_X_XRegion *dst,
-                       Ecore_X_XRegion *r1,
-                       Ecore_X_XRegion *r2);
- EAPI Eina_Bool
- ecore_x_xregion_union_rect(Ecore_X_XRegion *dst,
-                            Ecore_X_XRegion *src,
-                            Ecore_X_Rectangle *rect);
- EAPI Eina_Bool
- ecore_x_xregion_subtract(Ecore_X_XRegion *dst,
-                          Ecore_X_XRegion *r1,
-                          Ecore_X_XRegion *r2);
- EAPI Eina_Bool
-  ecore_x_xregion_is_empty(Ecore_X_XRegion *region);
- EAPI Eina_Bool
-  ecore_x_xregion_is_equal(Ecore_X_XRegion *r1,
-                          Ecore_X_XRegion *r2);
- EAPI Eina_Bool
- ecore_x_xregion_point_contain(Ecore_X_XRegion *region,
-                               int x,
-                               int y);
- EAPI Eina_Bool
- ecore_x_xregion_rect_contain(Ecore_X_XRegion *region,
-                              Ecore_X_Rectangle *rect);
+ EAPI Ecore_X_XRegion *ecore_x_xregion_new(void);
+ EAPI void             ecore_x_xregion_free(Ecore_X_XRegion *region);
+ EAPI Eina_Bool        ecore_x_xregion_set(Ecore_X_XRegion *region, Ecore_X_GC gc);
+ EAPI void             ecore_x_xregion_translate(Ecore_X_XRegion *region, int x, int y);
+ EAPI Eina_Bool        ecore_x_xregion_intersect(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+ EAPI Eina_Bool        ecore_x_xregion_union(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+ EAPI Eina_Bool        ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, Ecore_X_XRegion *src, Ecore_X_Rectangle *rect);
+ EAPI Eina_Bool        ecore_x_xregion_subtract(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+ EAPI Eina_Bool        ecore_x_xregion_is_empty(Ecore_X_XRegion *region);
+ EAPI Eina_Bool        ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+ EAPI Eina_Bool        ecore_x_xregion_point_contain(Ecore_X_XRegion *region, int x, int y);
+ EAPI Eina_Bool        ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, Ecore_X_Rectangle *rect);
  
  /* ecore_x_randr.c */
  
@@@ -2891,258 -1721,101 +1798,101 @@@ typedef struct _Ecore_X_Randr_Mode_Inf
     unsigned long modeFlags;
  } Ecore_X_Randr_Mode_Info;
  
- EAPI int
-  ecore_x_randr_version_get(void);
- EAPI Eina_Bool
-  ecore_x_randr_query(void);
+ EAPI int                                       ecore_x_randr_version_get(void);
+ EAPI Eina_Bool                                 ecore_x_randr_query(void);
  
  /* ecore_x_randr_11.c */
- EAPI Ecore_X_Randr_Orientation
-  ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root);
- EAPI Ecore_X_Randr_Orientation
-  ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root);
- EAPI Eina_Bool
-  ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root,
-                                                     Ecore_X_Randr_Orientation orientation);
- EAPI Ecore_X_Randr_Screen_Size_MM *
- ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root,
-                                               int *num);
- EAPI void
- ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root,
-                                                      int *w,
-                                                      int *h,
-                                                      int *w_mm,
-                                                      int *h_mm,
-                                                      int *size_index);
- EAPI Eina_Bool
- ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root,
-                                              int size_index);
- EAPI Ecore_X_Randr_Refresh_Rate
-  ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root);
- EAPI Ecore_X_Randr_Refresh_Rate *
-  ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root,
-                                                       int size_index,
-                                                       int *num);
- EAPI Eina_Bool
- ecore_x_randr_screen_primary_output_refresh_rate_set(Ecore_X_Window root,
-                                                      int size_index,
-                                                      Ecore_X_Randr_Refresh_Rate rate);
+ EAPI Ecore_X_Randr_Orientation                 ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root);
+ EAPI Ecore_X_Randr_Orientation                 ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root);
+ EAPI Eina_Bool                                 ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Orientation orientation);
+ EAPI Ecore_X_Randr_Screen_Size_MM             *ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, int *num);
  
- /* ecore_x_randr_12.c */
- EAPI void
- ecore_x_randr_events_select(Ecore_X_Window win,
-                             Eina_Bool on);
+ /**
+  * @brief get the current set size of a given screen's primary output
+  * @param root window which's primary output will be queried
+  * @param w the current size's width
+  * @param h the current size's height
+  * @param w_mm the current size's width in mm
+  * @param h_mm the current size's height in mm
+  * @param size_index of current set size to be used with ecore_x_randr_primary_output_size_set()
+  */
+ EAPI void                                      ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm, int *size_index);
+ EAPI Eina_Bool                                 ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, int size_index);
+ EAPI Ecore_X_Randr_Refresh_Rate                ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root);
+ EAPI Ecore_X_Randr_Refresh_Rate               *ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, int size_index, int *num);
+ EAPI Eina_Bool                                 ecore_x_randr_screen_primary_output_refresh_rate_set(Ecore_X_Window root, int size_index, Ecore_X_Randr_Refresh_Rate rate);
  
- EAPI void
- ecore_x_randr_screen_current_size_get(Ecore_X_Window root,
-                                       int *w,
-                                       int *h,
-                                       int *w_mm,
-                                       int *h_mm);
- EAPI void
- ecore_x_randr_screen_size_range_get(Ecore_X_Window root,
-                                     int *wmin,
-                                     int *hmin,
-                                     int *wmax,
-                                     int *hmax);
- EAPI void
-  ecore_x_randr_screen_reset(Ecore_X_Window root);
- EAPI Eina_Bool
-  ecore_x_randr_screen_current_size_set(Ecore_X_Window root,
-                                       int w,
-                                       int h,
-                                       int w_mm,
-                                       int h_mm);
- EAPI Ecore_X_Randr_Mode_Info **
- ecore_x_randr_modes_info_get(Ecore_X_Window root,
-                              int *num);
- EAPI Ecore_X_Randr_Mode
- ecore_x_randr_mode_info_add(Ecore_X_Window root,
-                             Ecore_X_Randr_Mode_Info *mode_info);
- EAPI void
- ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode);
- EAPI Ecore_X_Randr_Mode_Info *
- ecore_x_randr_mode_info_get(Ecore_X_Window root,
-                             Ecore_X_Randr_Mode mode);
- EAPI void
-                            ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info);
- EAPI Ecore_X_Randr_Crtc *
-                            ecore_x_randr_crtcs_get(Ecore_X_Window root,
-                         int *num);
- EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root,
-                                                       int *num);
- EAPI Ecore_X_Randr_Output *
- ecore_x_randr_window_outputs_get(Ecore_X_Window window,
-                                  int *num);
- EAPI Ecore_X_Randr_Output *
- ecore_x_randr_current_output_get(Ecore_X_Window window,
-                                  int *num);
- EAPI Ecore_X_Randr_Crtc *
- ecore_x_randr_window_crtcs_get(Ecore_X_Window window,
-                                int *num);
- EAPI Ecore_X_Randr_Crtc *
- ecore_x_randr_current_crtc_get(Ecore_X_Window window,
-                                int *num);
- EAPI Ecore_X_Randr_Output *
- ecore_x_randr_crtc_outputs_get(Ecore_X_Window root,
-                                Ecore_X_Randr_Crtc crtc,
-                                int *num);
- EAPI Ecore_X_Randr_Output *
- ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root,
-                                         Ecore_X_Randr_Crtc crtc,
-                                         int *num);
- EAPI void
- ecore_x_randr_crtc_geometry_get(Ecore_X_Window root,
-                                 Ecore_X_Randr_Crtc crtc,
-                                 int *x,
-                                 int *y,
-                                 int *w,
-                                 int *h);
- EAPI void
- ecore_x_randr_crtc_pos_get(Ecore_X_Window root,
-                            Ecore_X_Randr_Crtc crtc,
-                            int *x,
-                            int *y);
- EAPI Eina_Bool
- ecore_x_randr_crtc_pos_set(Ecore_X_Window root,
-                            Ecore_X_Randr_Crtc crtc,
-                            int x,
-                            int y);
- EAPI Ecore_X_Randr_Mode
- ecore_x_randr_crtc_mode_get(Ecore_X_Window root,
-                             Ecore_X_Randr_Crtc crtc);
- EAPI Eina_Bool
- ecore_x_randr_crtc_mode_set(Ecore_X_Window root,
-                             Ecore_X_Randr_Crtc crtc,
-                             Ecore_X_Randr_Output *outputs,
-                             int noutputs,
-                             Ecore_X_Randr_Mode mode);
- EAPI void
- ecore_x_randr_crtc_size_get(Ecore_X_Window root,
-                             Ecore_X_Randr_Crtc crtc,
-                             int *w,
-                             int *h);
- EAPI Ecore_X_Randr_Refresh_Rate
- ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root,
-                                     Ecore_X_Randr_Crtc crtc,
-                                     Ecore_X_Randr_Mode mode);
- EAPI Ecore_X_Randr_Orientation
- ecore_x_randr_crtc_orientations_get(Ecore_X_Window root,
-                                     Ecore_X_Randr_Crtc crtc);
- EAPI Ecore_X_Randr_Orientation
- ecore_x_randr_crtc_orientation_get(Ecore_X_Window root,
-                                    Ecore_X_Randr_Crtc crtc);
- EAPI Eina_Bool
- ecore_x_randr_crtc_orientation_set(Ecore_X_Window root,
-                                    Ecore_X_Randr_Crtc crtc,
-                                    const Ecore_X_Randr_Orientation orientation);
- EAPI Eina_Bool
- ecore_x_randr_crtc_clone_set(Ecore_X_Window root,
-                              Ecore_X_Randr_Crtc original,
-                              Ecore_X_Randr_Crtc clone);
- EAPI Eina_Bool
- ecore_x_randr_crtc_settings_set(Ecore_X_Window root,
-                                 Ecore_X_Randr_Crtc crtc,
-                                 Ecore_X_Randr_Output *outputs,
-                                 int noutputs,
-                                 int x,
-                                 int y,
-                                 Ecore_X_Randr_Mode mode,
-                                 Ecore_X_Randr_Orientation orientation);
- EAPI Eina_Bool
- ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root,
-                                     Ecore_X_Randr_Crtc crtc_r1,
-                                     Ecore_X_Randr_Crtc crtc_r2,
-                                     Ecore_X_Randr_Output_Policy policy,
-                                     Ecore_X_Randr_Relative_Alignment alignment);
- EAPI Eina_Bool
- ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output,
-                               Ecore_X_Randr_Mode mode);
- EAPI void
- ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output,
-                               Ecore_X_Randr_Mode mode);
- EAPI Ecore_X_Randr_Mode *
- ecore_x_randr_output_modes_get(Ecore_X_Window root,
-                                Ecore_X_Randr_Output output,
-                                int *num,
-                                int *npreferred);
- EAPI Ecore_X_Randr_Output *ecore_x_randr_output_clones_get(Ecore_X_Window root,
-                                                            Ecore_X_Randr_Output output,
-                                                            int *num);
- EAPI Ecore_X_Randr_Crtc *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root,
-                                                                  Ecore_X_Randr_Output output,
-                                                                  int *num);
- EAPI Ecore_X_Randr_Crtc
- ecore_x_randr_output_crtc_get(Ecore_X_Window root,
-                               Ecore_X_Randr_Output output);
- EAPI char *
- ecore_x_randr_output_name_get(Ecore_X_Window root,
-                               Ecore_X_Randr_Output output,
-                               int *len);
- EAPI int
-  ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc);
- EAPI Ecore_X_Randr_Crtc_Gamma **
-  ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc);
- EAPI Eina_Bool
-  ecore_x_randr_crtc_gamma_ramps_set(Ecore_X_Randr_Crtc crtc,
-                                    const Ecore_X_Randr_Crtc_Gamma *red,
-                                    const Ecore_X_Randr_Crtc_Gamma *green,
-                                    const Ecore_X_Randr_Crtc_Gamma *blue);
- EAPI Eina_Bool
- ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root,
-                                  const Ecore_X_Randr_Crtc *not_moved,
-                                  int nnot_moved,
-                                  int dx,
-                                  int dy);
- EAPI Eina_Bool
- ecore_x_randr_move_crtcs(Ecore_X_Window root,
-                          const Ecore_X_Randr_Crtc *crtcs,
-                          int ncrtc,
-                          int dx,
-                          int dy);
- EAPI void
- ecore_x_randr_mode_size_get(Ecore_X_Window root,
-                             Ecore_X_Randr_Mode mode,
-                             int *w,
-                             int *h);
- EAPI Ecore_X_Randr_Connection_Status
- ecore_x_randr_output_connection_status_get(Ecore_X_Window root,
-                                            Ecore_X_Randr_Output output);
- EAPI void
- ecore_x_randr_output_size_mm_get(Ecore_X_Window root,
-                                  Ecore_X_Randr_Output output,
-                                  int *w,
-                                  int *h);
- EAPI Eina_Bool
- ecore_x_randr_output_crtc_set(Ecore_X_Window root,
-                               Ecore_X_Randr_Output output,
-                               const Ecore_X_Randr_Crtc crtc);
+ /* ecore_x_randr_12.c */
+ EAPI void                                      ecore_x_randr_events_select(Ecore_X_Window win, Eina_Bool on);
+ EAPI void                                      ecore_x_randr_screen_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm);
+ EAPI void                                      ecore_x_randr_screen_size_range_get(Ecore_X_Window root, int *wmin, int *hmin, int *wmax, int *hmax);
+ EAPI void                                      ecore_x_randr_screen_reset(Ecore_X_Window root);
+ EAPI Eina_Bool                                 ecore_x_randr_screen_current_size_set(Ecore_X_Window root, int w, int h, int w_mm, int h_mm);
+ EAPI Ecore_X_Randr_Mode_Info                 **ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num);
+ EAPI Ecore_X_Randr_Mode                        ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info);
+ EAPI void                                      ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode);
+ EAPI Ecore_X_Randr_Mode_Info                  *ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode);
+ EAPI void                                      ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info);
+ EAPI Ecore_X_Randr_Crtc                       *ecore_x_randr_crtcs_get(Ecore_X_Window root, int *num);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_outputs_get(Ecore_X_Window root, int *num);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_window_outputs_get(Ecore_X_Window window, int *num);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_current_output_get(Ecore_X_Window window, int *num);
+ EAPI Ecore_X_Randr_Crtc                       *ecore_x_randr_window_crtcs_get(Ecore_X_Window window, int *num);
+ EAPI Ecore_X_Randr_Crtc                       *ecore_x_randr_current_crtc_get(Ecore_X_Window window, int *num);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
+ EAPI void                                      ecore_x_randr_crtc_geometry_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
+ EAPI void                                      ecore_x_randr_crtc_pos_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_pos_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, int y);
+ EAPI Ecore_X_Randr_Mode                        ecore_x_randr_crtc_mode_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_mode_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, Ecore_X_Randr_Output *outputs, int noutputs, Ecore_X_Randr_Mode mode);
+ EAPI void                                      ecore_x_randr_crtc_size_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *w, int *h);
+ EAPI Ecore_X_Randr_Refresh_Rate                ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, Ecore_X_Randr_Mode mode);
+ EAPI Ecore_X_Randr_Orientation                 ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+ EAPI Ecore_X_Randr_Orientation                 ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Orientation orientation);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_clone_set(Ecore_X_Window root, Ecore_X_Randr_Crtc original, Ecore_X_Randr_Crtc clone);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_settings_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, Ecore_X_Randr_Output *outputs, int noutputs, int x, int y, Ecore_X_Randr_Mode mode, Ecore_X_Randr_Orientation orientation);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc_r1, Ecore_X_Randr_Crtc crtc_r2, Ecore_X_Randr_Output_Policy policy, Ecore_X_Randr_Relative_Alignment alignment);
+ EAPI Eina_Bool                                 ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
+ EAPI void                                      ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
+ EAPI Ecore_X_Randr_Mode                       *ecore_x_randr_output_modes_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num, int *npreferred);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_output_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+ EAPI Ecore_X_Randr_Crtc                       *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+ EAPI Ecore_X_Randr_Crtc                        ecore_x_randr_output_crtc_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI char                                     *ecore_x_randr_output_name_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *len);
+ EAPI int                                       ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc);
+ EAPI Ecore_X_Randr_Crtc_Gamma                **ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_gamma_ramps_set(Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Crtc_Gamma *red, const Ecore_X_Randr_Crtc_Gamma *green, const Ecore_X_Randr_Crtc_Gamma *blue);
+ EAPI Eina_Bool                                 ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root, const Ecore_X_Randr_Crtc *not_moved, int nnot_moved, int dx, int dy);
+ EAPI Eina_Bool                                 ecore_x_randr_move_crtcs(Ecore_X_Window root, const Ecore_X_Randr_Crtc *crtcs, int ncrtc, int dx, int dy);
+ EAPI void                                      ecore_x_randr_mode_size_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode, int *w, int *h);
+ EAPI Ecore_X_Randr_Connection_Status           ecore_x_randr_output_connection_status_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI void                                      ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w, int *h);
+ EAPI Eina_Bool                                 ecore_x_randr_output_crtc_set(Ecore_X_Window root, Ecore_X_Randr_Output output, const Ecore_X_Randr_Crtc crtc);
  
  /* ecore_x_randr_12_edid.c */
  
- /*
+ /**
   * @brief Validates the header from raw EDID data.
   *
   * @param edid The edid structure.
   * @param edid_length Length of the edid structure.
   * @return @c EINA_TRUE, if the header is valid, @c EINA_FALSE otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_has_valid_header(unsigned char *edid,
-                                     unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Checks whether a display's EDID has a valid checksum.
   *
   * @param edid The edid structure.
   * @param edid_length Length of the edid structure.
   * @return @c EINA_TRUE, if the checksum is valid, @c EINA_FALSE otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid,
-                                            unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the encoded version from raw EDID data.
   *
   * The return value has the minor version in the lowest 8 bits, and the major
   * @param edid_length length of the edid structure
   * @return The encoded major and minor version encasuplated an int.
   */
- EAPI int
- ecore_x_randr_edid_version_get(unsigned char *edid,
-                                unsigned long edid_length);
+ EAPI int                                       ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the encoded manufacturer from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The encoded manufacturer identifier.
   */
- EAPI char *
- ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid,
-                                          unsigned long edid_length);
+ EAPI char                                     *ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the encoded name from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The encoded manufacturer identifier.
   */
- EAPI char *
- ecore_x_randr_edid_display_name_get(unsigned char *edid,
-                                     unsigned long edid_length);
+ EAPI char                                     *ecore_x_randr_edid_display_name_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the encoded ASCII from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The encoded ASCII display identifier.
   */
- EAPI char *
- ecore_x_randr_edid_display_ascii_get(unsigned char *edid,
-                                      unsigned long edid_length);
+ EAPI char                                     *ecore_x_randr_edid_display_ascii_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the encoded serial identifier from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The encoded serial identifier.
   */
- EAPI char *
- ecore_x_randr_edid_display_serial_get(unsigned char *edid,
-                                       unsigned long edid_length);
+ EAPI char                                     *ecore_x_randr_edid_display_serial_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the encoded model number from raw EDID data.
   *
   * The manufacturer ID table is necessary for a useful description.
   * @param edid_length length of the edid structure
   * @return The encoded model number.
   */
- EAPI int
- ecore_x_randr_edid_model_get(unsigned char *edid,
-                              unsigned long edid_length);
+ EAPI int                                       ecore_x_randr_edid_model_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the manufacturer serial number from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The encoded serial manufacturer serial number.
   */
- EAPI int
- ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid,
-                                                   unsigned long edid_length);
+ EAPI int                                       ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the manufacturer model number from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The manufacturer's model number.
   */
- EAPI int
- ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid,
-                                           unsigned long edid_length);
+ EAPI int                                       ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Looks up the DPMS support from raw EDID data.
   *
   * @param edid The edid structure.
   * @return @c EINA_TRUE, if DPMS is supported in some way, @c EINA_FALSE
   * otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_dpms_available_get(unsigned char *edid,
-                                       unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_dpms_available_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Looks up the DPMS Standby support from raw EDID data.
   *
   * @param edid The edid structure.
   * @param edid_length Length of the edid structure.
   * @return @c EINA_TRUE, if DPMS Standby is supported, @c EINA_FALSE otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid,
-                                               unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Looks up the DPMS Suspend support from raw EDID data.
   *
   * @param edid The edid structure.
   * @param edid_length Length of the edid structure.
   * @return @c EINA_TRUE, if DPMS Suspend is supported, @c EINA_FALSE otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid,
-                                               unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Looks up the DPMS Off support from raw EDID data.
   *
   * @param edid The edid structure.
   * @param edid_length Length of the edid structure.
   * @return @c EINA_TRUE, if DPMS Off is supported, @c EINA_FALSE otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid,
-                                           unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the preferred aspect ratio from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The preferred aspect ratio.
   */
- EAPI Ecore_X_Randr_Edid_Aspect_Ratio
- ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid,
-                                                       unsigned long edid_length);
+ EAPI Ecore_X_Randr_Edid_Aspect_Ratio           ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the supported aspect ratios from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The supported aspect ratios.
   */
- EAPI Ecore_X_Randr_Edid_Aspect_Ratio
- ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid,
-                                              unsigned long edid_length);
+ EAPI Ecore_X_Randr_Edid_Aspect_Ratio           ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the supported colorschemes from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The supported colorschemes.
   */
- EAPI Ecore_X_Randr_Edid_Display_Colorscheme
- ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid,
-                                            unsigned long edid_length);
+ EAPI Ecore_X_Randr_Edid_Display_Colorscheme    ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the display type from raw EDID data.
   *
   * @param edid The edid structure.
   * @return @c EINA_TRUE, if the display is a digital one, @c EINA_FALSE
   * otherwise.
   */
- EAPI Eina_Bool
- ecore_x_randr_edid_display_type_digital_get(unsigned char *edid,
-                                             unsigned long edid_length);
+ EAPI Eina_Bool                                 ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, unsigned long edid_length);
  
- /*
+ /**
   * @brief Get the display interface type from raw EDID data.
   *
   * @param edid the edid structure
   * @param edid_length length of the edid structure
   * @return The interface type.
   */
- EAPI Ecore_X_Randr_Edid_Display_Interface_Type
- ecore_x_randr_edid_display_interface_type_get(unsigned char *edid,
-                                               unsigned long edid_length);
+ EAPI Ecore_X_Randr_Edid_Display_Interface_Type ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, unsigned long edid_length);
  
  /* ecore_x_randr_12.c */
  
- EAPI Eina_Bool
- ecore_x_randr_output_backlight_available(void);
- EAPI void
- ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
-                                          double level);
- EAPI double
- ecore_x_randr_output_backlight_level_get(Ecore_X_Window root,
-                                          Ecore_X_Randr_Output output);
- EAPI Eina_Bool
- ecore_x_randr_output_backlight_level_set(Ecore_X_Window root,
-                                          Ecore_X_Randr_Output output,
-                                          double level);
- EAPI Ecore_X_Randr_Output
-  ecore_x_randr_primary_output_get(Ecore_X_Window root);
- EAPI void
-  ecore_x_randr_primary_output_set(Ecore_X_Window root,
-                                  Ecore_X_Randr_Output output);
- EAPI Ecore_X_Render_Subpixel_Order
- ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root,
-                                         Ecore_X_Randr_Output output);
- EAPI unsigned char *
- ecore_x_randr_output_edid_get(Ecore_X_Window root,
-                               Ecore_X_Randr_Output output,
-                               unsigned long *length);
- EAPI Ecore_X_Randr_Output *
- ecore_x_randr_output_wired_clones_get(Ecore_X_Window root,
-                                       Ecore_X_Randr_Output output,
-                                       int *num);
- EAPI Ecore_X_Randr_Output **
- ecore_x_randr_output_compatibility_list_get(Ecore_X_Window root,
-                                             Ecore_X_Randr_Output output,
-                                             int *num);
- EAPI Ecore_X_Randr_Signal_Format *
- ecore_x_randr_output_signal_formats_get(Ecore_X_Window root,
-                                         Ecore_X_Randr_Output output,
-                                         int *num);
- EAPI Eina_Bool
- ecore_x_randr_output_signal_format_set(Ecore_X_Window root,
-                                        Ecore_X_Randr_Output output,
-                                        Ecore_X_Randr_Signal_Format *signal);
- EAPI Ecore_X_Randr_Signal_Property *
- ecore_x_randr_output_signal_properties_get(Ecore_X_Window root,
-                                            Ecore_X_Randr_Output output,
-                                            int *num);
- EAPI int
- ecore_x_randr_output_connector_number_get(Ecore_X_Window root,
-                                           Ecore_X_Randr_Output output);
- EAPI Ecore_X_Randr_Connector_Type
- ecore_x_randr_output_connector_type_get(Ecore_X_Window root,
-                                         Ecore_X_Randr_Output output);
- EAPI Eina_Rectangle *
- ecore_x_randr_crtc_panning_area_get(Ecore_X_Window root,
-                                     Ecore_X_Randr_Crtc crtc,
-                                     int *x,
-                                     int *y,
-                                     int *w,
-                                     int *h);
- EAPI Eina_Bool
- ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root,
-                                     Ecore_X_Randr_Crtc crtc,
-                                     int x,
-                                     const int y,
-                                     const int w,
-                                     const int h);
- EAPI Eina_Rectangle *
- ecore_x_randr_crtc_tracking_area_get(Ecore_X_Window root,
-                                      Ecore_X_Randr_Crtc crtc,
-                                      int *x,
-                                      int *y,
-                                      int *w,
-                                      int *h);
- EAPI Eina_Bool
- ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root,
-                                      Ecore_X_Randr_Crtc crtc,
-                                      int x,
-                                      const int y,
-                                      const int w,
-                                      const int h);
- EAPI Eina_Rectangle *
- ecore_x_randr_crtc_border_area_get(Ecore_X_Window root,
-                                    Ecore_X_Randr_Crtc crtc);
- EAPI Eina_Bool
- ecore_x_randr_crtc_border_area_set(Ecore_X_Window root,
-                                    Ecore_X_Randr_Crtc crtc,
-                                    int left,
-                                    const int top,
-                                    const int right,
-                                    const int bottom);
+ EAPI Eina_Bool                                 ecore_x_randr_output_backlight_available(void);
+ EAPI void                                      ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level);
+ EAPI double                                    ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI Eina_Bool                                 ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, Ecore_X_Randr_Output output, double level);
+ EAPI Ecore_X_Randr_Output                      ecore_x_randr_primary_output_get(Ecore_X_Window root);
+ EAPI void                                      ecore_x_randr_primary_output_set(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI Ecore_X_Render_Subpixel_Order             ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI unsigned char                            *ecore_x_randr_output_edid_get(Ecore_X_Window root, Ecore_X_Randr_Output output, unsigned long *length);
+ EAPI Ecore_X_Randr_Output                     *ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+ EAPI Ecore_X_Randr_Output                    **ecore_x_randr_output_compatibility_list_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+ EAPI Ecore_X_Randr_Signal_Format              *ecore_x_randr_output_signal_formats_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+ EAPI Eina_Bool                                 ecore_x_randr_output_signal_format_set(Ecore_X_Window root, Ecore_X_Randr_Output output, Ecore_X_Randr_Signal_Format *signal);
+ EAPI Ecore_X_Randr_Signal_Property            *ecore_x_randr_output_signal_properties_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+ EAPI int                                       ecore_x_randr_output_connector_number_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI Ecore_X_Randr_Connector_Type              ecore_x_randr_output_connector_type_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+ EAPI Eina_Rectangle                           *ecore_x_randr_crtc_panning_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, const int y, const int w, const int h);
+ EAPI Eina_Rectangle                           *ecore_x_randr_crtc_tracking_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, const int y, const int w, const int h);
+ EAPI Eina_Rectangle                           *ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+ EAPI Eina_Bool                                 ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int left, const int top, const int right, const int bottom);
  
  /* XRender Support (horrendously incomplete) */
  typedef Ecore_X_ID Ecore_X_Picture;
@@@ -3442,77 -2014,25 +2091,25 @@@ typedef enum _Ecore_X_Region_Typ
     ECORE_X_REGION_CLIP
  } Ecore_X_Region_Type;
  
- EAPI Ecore_X_Region
- ecore_x_region_new(Ecore_X_Rectangle *rects,
-                    int num);
- EAPI Ecore_X_Region
-  ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap);
- EAPI Ecore_X_Region
-  ecore_x_region_new_from_window(Ecore_X_Window win,
-                                Ecore_X_Region_Type type);
- EAPI Ecore_X_Region
-  ecore_x_region_new_from_gc(Ecore_X_GC gc);
- EAPI Ecore_X_Region
-  ecore_x_region_new_from_picture(Ecore_X_Picture picture);
- EAPI void
-  ecore_x_region_free(Ecore_X_Region region);
- EAPI void
-  ecore_x_region_set(Ecore_X_Region region,
-                    Ecore_X_Rectangle *rects,
-                    int num);
- EAPI void
- ecore_x_region_copy(Ecore_X_Region dest,
-                     Ecore_X_Region source);
- EAPI void
- ecore_x_region_combine(Ecore_X_Region dest,
-                        Ecore_X_Region source1,
-                        Ecore_X_Region source2);
- EAPI void
- ecore_x_region_intersect(Ecore_X_Region dest,
-                          Ecore_X_Region source1,
-                          Ecore_X_Region source2);
- EAPI void
- ecore_x_region_subtract(Ecore_X_Region dest,
-                         Ecore_X_Region source1,
-                         Ecore_X_Region source2);
- EAPI void
- ecore_x_region_invert(Ecore_X_Region dest,
-                       Ecore_X_Rectangle *bounds,
-                       Ecore_X_Region source);
- EAPI void
- ecore_x_region_translate(Ecore_X_Region region,
-                          int dx,
-                          int dy);
- EAPI void
- ecore_x_region_extents(Ecore_X_Region dest,
-                        Ecore_X_Region source);
- EAPI Ecore_X_Rectangle *
- ecore_x_region_fetch(Ecore_X_Region region,
-                      int *num,
-                      Ecore_X_Rectangle *bounds);
- EAPI void
- ecore_x_region_expand(Ecore_X_Region dest,
-                       Ecore_X_Region source,
-                       unsigned int left,
-                       unsigned int right,
-                       unsigned int top,
-                       unsigned int bottom);
- EAPI void
- ecore_x_region_gc_clip_set(Ecore_X_Region region,
-                            Ecore_X_GC gc,
-                            int x_origin,
-                            int y_origin);
- EAPI void
- ecore_x_region_window_shape_set(Ecore_X_Region region,
-                                 Ecore_X_Window win,
-                                 Ecore_X_Shape_Type type,
-                                 int x_offset,
-                                 int y_offset);
- EAPI void
- ecore_x_region_picture_clip_set(Ecore_X_Region region,
-                                 Ecore_X_Picture picture,
-                                 int x_origin,
-                                 int y_origin);
+ EAPI Ecore_X_Region     ecore_x_region_new(Ecore_X_Rectangle *rects, int num);
+ EAPI Ecore_X_Region     ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap);
+ EAPI Ecore_X_Region     ecore_x_region_new_from_window(Ecore_X_Window win, Ecore_X_Region_Type type);
+ EAPI Ecore_X_Region     ecore_x_region_new_from_gc(Ecore_X_GC gc);
+ EAPI Ecore_X_Region     ecore_x_region_new_from_picture(Ecore_X_Picture picture);
+ EAPI void               ecore_x_region_free(Ecore_X_Region region);
+ EAPI void               ecore_x_region_set(Ecore_X_Region region, Ecore_X_Rectangle *rects, int num);
+ EAPI void               ecore_x_region_copy(Ecore_X_Region dest, Ecore_X_Region source);
+ EAPI void               ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
+ EAPI void               ecore_x_region_intersect(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
+ EAPI void               ecore_x_region_subtract(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
+ EAPI void               ecore_x_region_invert(Ecore_X_Region dest, Ecore_X_Rectangle *bounds, Ecore_X_Region source);
+ EAPI void               ecore_x_region_translate(Ecore_X_Region region, int dx, int dy);
+ EAPI void               ecore_x_region_extents(Ecore_X_Region dest, Ecore_X_Region source);
+ EAPI Ecore_X_Rectangle *ecore_x_region_fetch(Ecore_X_Region region, int *num, Ecore_X_Rectangle *bounds);
+ EAPI void               ecore_x_region_expand(Ecore_X_Region dest, Ecore_X_Region source, unsigned int left, unsigned int right, unsigned int top, unsigned int bottom);
+ EAPI void               ecore_x_region_gc_clip_set(Ecore_X_Region region, Ecore_X_GC gc, int x_origin, int y_origin);
+ EAPI void               ecore_x_region_window_shape_set(Ecore_X_Region region, Ecore_X_Window win, Ecore_X_Shape_Type type, int x_offset, int y_offset);
+ EAPI void               ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin);
  
  /**
   * xfixes selection notification request.
   * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
   * @since 1.1.0
   */
- EAPI Eina_Bool
- ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection);
+ EAPI Eina_Bool          ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection);
  
  /* XComposite Extension Support */
- EAPI Eina_Bool
-  ecore_x_composite_query(void);
- EAPI void
-  ecore_x_composite_redirect_window(Ecore_X_Window win,
-                                   Ecore_X_Composite_Update_Type type);
- EAPI void
- ecore_x_composite_redirect_subwindows(Ecore_X_Window win,
-                                       Ecore_X_Composite_Update_Type type);
- EAPI void
- ecore_x_composite_unredirect_window(Ecore_X_Window win,
-                                     Ecore_X_Composite_Update_Type type);
- EAPI void
- ecore_x_composite_unredirect_subwindows(Ecore_X_Window win,
-                                         Ecore_X_Composite_Update_Type type);
- EAPI Ecore_X_Pixmap
-  ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win);
- EAPI void
-  ecore_x_composite_window_events_disable(Ecore_X_Window win);
- EAPI void
-  ecore_x_composite_window_events_enable(Ecore_X_Window win);
- EAPI Ecore_X_Window
-  ecore_x_composite_render_window_enable(Ecore_X_Window root);
- EAPI void
-  ecore_x_composite_render_window_disable(Ecore_X_Window root);
+ EAPI Eina_Bool          ecore_x_composite_query(void);
+ EAPI void               ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+ EAPI void               ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+ EAPI void               ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+ EAPI void               ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+ EAPI Ecore_X_Pixmap     ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win);
+ EAPI void               ecore_x_composite_window_events_disable(Ecore_X_Window win);
+ EAPI void               ecore_x_composite_window_events_enable(Ecore_X_Window win);
+ EAPI Ecore_X_Window     ecore_x_composite_render_window_enable(Ecore_X_Window root);
+ EAPI void               ecore_x_composite_render_window_disable(Ecore_X_Window root);
  
  /* XDamage Extension Support */
  typedef Ecore_X_ID Ecore_X_Damage;
@@@ -3575,61 -2080,31 +2157,31 @@@ struct _Ecore_X_Event_Damag
  
  typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage;
  
- EAPI Eina_Bool
-  ecore_x_damage_query(void);
- EAPI Ecore_X_Damage
-  ecore_x_damage_new(Ecore_X_Drawable d,
-                    Ecore_X_Damage_Report_Level level);
- EAPI void
-  ecore_x_damage_free(Ecore_X_Damage damage);
- EAPI void
-  ecore_x_damage_subtract(Ecore_X_Damage damage,
-                         Ecore_X_Region repair,
-                         Ecore_X_Region parts);
- EAPI Eina_Bool
-  ecore_x_screen_is_composited(int screen);
- EAPI void
-  ecore_x_screen_is_composited_set(int screen,
-                                  Ecore_X_Window win);
- EAPI Eina_Bool
-  ecore_x_dpms_query(void);
- EAPI Eina_Bool
-  ecore_x_dpms_capable_get(void);
- EAPI Eina_Bool
-  ecore_x_dpms_enabled_get(void);
- EAPI void
-  ecore_x_dpms_enabled_set(int enabled);
- EAPI void
-  ecore_x_dpms_timeouts_get(unsigned int *standby,
-                           unsigned int *suspend,
-                           unsigned int *off);
- EAPI Eina_Bool
- ecore_x_dpms_timeouts_set(unsigned int standby,
-                           unsigned int suspend,
-                           unsigned int off);
- EAPI unsigned int
-  ecore_x_dpms_timeout_standby_get(void);
- EAPI unsigned int
-  ecore_x_dpms_timeout_suspend_get(void);
- EAPI unsigned int
-  ecore_x_dpms_timeout_off_get(void);
- EAPI void
-  ecore_x_dpms_timeout_standby_set(unsigned int new_timeout);
- EAPI void
-  ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout);
- EAPI void
-  ecore_x_dpms_timeout_off_set(unsigned int new_timeout);
- EAPI Eina_Bool
-  ecore_x_test_fake_key_down(const char *key);
- EAPI Eina_Bool
-  ecore_x_test_fake_key_up(const char *key);
- EAPI Eina_Bool
-  ecore_x_test_fake_key_press(const char *key);
- EAPI const char *
-  ecore_x_keysym_string_get(int keysym);
+ EAPI Eina_Bool      ecore_x_damage_query(void);
+ EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level);
+ EAPI void           ecore_x_damage_free(Ecore_X_Damage damage);
+ EAPI void           ecore_x_damage_subtract(Ecore_X_Damage damage, Ecore_X_Region repair, Ecore_X_Region parts);
+ EAPI Eina_Bool      ecore_x_screen_is_composited(int screen);
+ EAPI void           ecore_x_screen_is_composited_set(int screen, Ecore_X_Window win);
+ EAPI Eina_Bool      ecore_x_dpms_query(void);
+ EAPI Eina_Bool      ecore_x_dpms_capable_get(void);
+ EAPI Eina_Bool      ecore_x_dpms_enabled_get(void);
+ EAPI void           ecore_x_dpms_enabled_set(int enabled);
+ EAPI void           ecore_x_dpms_timeouts_get(unsigned int *standby, unsigned int *suspend, unsigned int *off);
+ EAPI Eina_Bool      ecore_x_dpms_timeouts_set(unsigned int standby, unsigned int suspend, unsigned int off);
+ EAPI unsigned int   ecore_x_dpms_timeout_standby_get(void);
+ EAPI unsigned int   ecore_x_dpms_timeout_suspend_get(void);
+ EAPI unsigned int   ecore_x_dpms_timeout_off_get(void);
+ EAPI void           ecore_x_dpms_timeout_standby_set(unsigned int new_timeout);
+ EAPI void           ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout);
+ EAPI void           ecore_x_dpms_timeout_off_set(unsigned int new_timeout);
+ EAPI Eina_Bool      ecore_x_test_fake_key_down(const char *key);
+ EAPI Eina_Bool      ecore_x_test_fake_key_up(const char *key);
+ EAPI Eina_Bool      ecore_x_test_fake_key_press(const char *key);
+ EAPI const char    *ecore_x_keysym_string_get(int keysym);
  
  /**
   * Given a keyname, return the keycode representing that key
   *
   * @since 1.2.0
   */
- EAPI int ecore_x_keysym_keycode_get(const char *keyname);
+ EAPI int            ecore_x_keysym_keycode_get(const char *keyname);
  
  typedef struct _Ecore_X_Image Ecore_X_Image;
  
- EAPI Ecore_X_Image *
- ecore_x_image_new(int w,
-                   int h,
-                   Ecore_X_Visual vis,
-                   int depth);
- EAPI void
-  ecore_x_image_free(Ecore_X_Image *im);
- EAPI Eina_Bool
-  ecore_x_image_get(Ecore_X_Image *im,
-                   Ecore_X_Drawable draw,
-                   int x,
-                   int y,
-                   int sx,
-                   int sy,
-                   int w,
-                   int h);
- EAPI void
- ecore_x_image_put(Ecore_X_Image *im,
-                   Ecore_X_Drawable draw,
-                   Ecore_X_GC gc,
-                   int x,
-                   int y,
-                   int sx,
-                   int sy,
-                   int w,
-                   int h);
- EAPI void *
- ecore_x_image_data_get(Ecore_X_Image *im,
-                        int *bpl,
-                        int *rows,
-                        int *bpp);
- EAPI Eina_Bool
- ecore_x_image_is_argb32_get(Ecore_X_Image *im);
- EAPI Eina_Bool
- ecore_x_image_to_argb_convert(void *src,
-                               int sbpp,
-                               int sbpl,
-                               Ecore_X_Colormap c,
-                               Ecore_X_Visual v,
-                               int x,
-                               int y,
-                               int w,
-                               int h,
-                               unsigned int *dst,
-                               int dbpl,
-                               int dx,
-                               int dy);
- EAPI Eina_Bool
- ecore_x_input_multi_select(Ecore_X_Window win);
- EAPI Eina_Bool
- ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win);
+ EAPI Ecore_X_Image *ecore_x_image_new(int w, int h, Ecore_X_Visual vis, int depth);
+ EAPI void           ecore_x_image_free(Ecore_X_Image *im);
+ EAPI Eina_Bool      ecore_x_image_get(Ecore_X_Image *im, Ecore_X_Drawable draw, int x, int y, int sx, int sy, int w, int h);
+ EAPI void           ecore_x_image_put(Ecore_X_Image *im, Ecore_X_Drawable draw, Ecore_X_GC gc, int x, int y, int sx, int sy, int w, int h);
+ EAPI void          *ecore_x_image_data_get(Ecore_X_Image *im, int *bpl, int *rows, int *bpp);
+ EAPI Eina_Bool      ecore_x_image_is_argb32_get(Ecore_X_Image *im);
+ EAPI Eina_Bool      ecore_x_image_to_argb_convert(void *src, int sbpp, int sbpl, Ecore_X_Colormap c, Ecore_X_Visual v, int x, int y, int w, int h, unsigned int *dst, int dbpl, int dx, int dy);
+ EAPI Eina_Bool      ecore_x_input_multi_select(Ecore_X_Window win);
+ EAPI Eina_Bool      ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win);
  
  typedef enum _Ecore_X_Gesture_Event_Mask
  {
@@@ -3749,133 -2182,106 +2259,113 @@@ typedef enum _Ecore_X_Gesture_Directio
  
  struct _Ecore_X_Event_Gesture_Notify_Flick
  {
-    Ecore_X_Window win;
-    Ecore_X_Time time;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
     Ecore_X_Gesture_Event_Subtype subtype;
-    int num_fingers;
-    int distance;
-    Ecore_X_Time duration;
-    Ecore_X_Gesture_Direction direction;
-    double angle;
+    int                           num_fingers;
+    int                           distance;
+    Ecore_X_Time                  duration;
+    Ecore_X_Gesture_Direction     direction;
+    double                        angle;
  };
-    
  struct _Ecore_X_Event_Gesture_Notify_Pan
  {
-    Ecore_X_Window win;
-    Ecore_X_Time time;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
     Ecore_X_Gesture_Event_Subtype subtype;
-    int num_fingers;
-    int dx;
-    int dy;
-    int distance;
-    Ecore_X_Time duration;
-    Ecore_X_Gesture_Direction direction;
+    int                           num_fingers;
+    int                           dx;
+    int                           dy;
+    int                           distance;
+    Ecore_X_Time                  duration;
+    Ecore_X_Gesture_Direction     direction;
  };
  
  struct _Ecore_X_Event_Gesture_Notify_PinchRotation
  {
-    Ecore_X_Window win;
-    Ecore_X_Time time;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
     Ecore_X_Gesture_Event_Subtype subtype;
-    int num_fingers;
-    int distance;
-    int cx;
-    int cy;
-    double zoom;
-    double angle;
+    int                           num_fingers;
+    int                           distance;
+    int                           cx;
+    int                           cy;
+    double                        zoom;
+    double                        angle;
  };
  
  struct _Ecore_X_Event_Gesture_Notify_Tap
  {
-   Ecore_X_Window win;
-   Ecore_X_Time time;
-   Ecore_X_Gesture_Event_Subtype subtype;
-   int num_fingers;
-   int cx;
-   int cy;
-   int tap_repeat;
-   Ecore_X_Time interval;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
+    Ecore_X_Gesture_Event_Subtype subtype;
+    int                           num_fingers;
+    int                           cx;
+    int                           cy;
+    int                           tap_repeat;
+    Ecore_X_Time                  interval;
  };
  
  struct _Ecore_X_Event_Gesture_Notify_TapNHold
  {
-   Ecore_X_Window win;
-   Ecore_X_Time time;
-   Ecore_X_Gesture_Event_Subtype subtype;
-   int num_fingers;
-   int cx;
-   int cy;
-   Ecore_X_Time interval;
-   Ecore_X_Time hold_time;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
+    Ecore_X_Gesture_Event_Subtype subtype;
+    int                           num_fingers;
+    int                           cx;
+    int                           cy;
+    Ecore_X_Time                  interval;
+    Ecore_X_Time                  hold_time;
  };
  
  struct _Ecore_X_Event_Gesture_Notify_Hold
  {
-   Ecore_X_Window win;
-   Ecore_X_Time time;
-   Ecore_X_Gesture_Event_Subtype subtype;
-   int num_fingers;
-   int cx;
-   int cy;
-   Ecore_X_Time hold_time;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
+    Ecore_X_Gesture_Event_Subtype subtype;
+    int                           num_fingers;
+    int                           cx;
+    int                           cy;
+    Ecore_X_Time                  hold_time;
  };
  
  struct _Ecore_X_Event_Gesture_Notify_Group
  {
-    Ecore_X_Window win;
-    Ecore_X_Time time;
+    Ecore_X_Window                win;
+    Ecore_X_Time                  time;
     Ecore_X_Gesture_Group_Subtype subtype;
-    int num_groups;
-    int group_id;
+    int                           num_groups;
+    int                           group_id;
  };
  
- EAPI Eina_Bool
- ecore_x_gesture_supported(void);
+ EAPI Eina_Bool                             ecore_x_gesture_supported(void);
  
- EAPI Eina_Bool
- ecore_x_gesture_events_select(Ecore_X_Window win,
-                               Ecore_X_Gesture_Event_Mask mask);
+ EAPI Eina_Bool                             ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask);
  
- EAPI Ecore_X_Gesture_Event_Mask
- ecore_x_gesture_events_selected_get(Ecore_X_Window win);
+ EAPI Ecore_X_Gesture_Event_Mask            ecore_x_gesture_events_selected_get(Ecore_X_Window win);
  
- EAPI Eina_Bool
- ecore_x_gesture_event_grab(Ecore_X_Window win,
-                            Ecore_X_Gesture_Event_Type type,
-                            int num_fingers);
+ EAPI Eina_Bool                             ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
  
- EAPI Eina_Bool
- ecore_x_gesture_event_ungrab(Ecore_X_Window win,
-                              Ecore_X_Gesture_Event_Type type,
-                              int num_fingers);
+ EAPI Eina_Bool                             ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
  
- EAPI void
- ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
-                                      Ecore_X_Illume_Indicator_State state);
- EAPI Ecore_X_Illume_Indicator_State
- ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);
- EAPI void
- ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
-                                       Ecore_X_Illume_Indicator_State state);
+ EAPI void                                  ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
+ EAPI Ecore_X_Illume_Indicator_State        ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);
+ EAPI void                                  ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
  
- EAPI void
- ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
-                                      Ecore_X_Illume_Indicator_Opacity_Mode mode);
+ EAPI void                                  ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
  
- EAPI Ecore_X_Illume_Indicator_Opacity_Mode
- ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
+ EAPI Ecore_X_Illume_Indicator_Opacity_Mode ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
  
- EAPI void
- ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
-                                       Ecore_X_Illume_Indicator_Opacity_Mode mode);
+ EAPI void                                  ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
  
 +EAPI void
 +ecore_x_e_illume_window_state_set(Ecore_X_Window win,
 +                                  Ecore_X_Illume_Window_State state);
 +
 +EAPI Ecore_X_Illume_Window_State
 +ecore_x_e_illume_window_state_get(Ecore_X_Window win);
 +
  #ifdef __cplusplus
  }
  #endif // ifdef __cplusplus
@@@ -252,9 -252,13 +252,16 @@@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY;
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE;
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL;
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT;
+ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV;
  
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER;
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
@@@ -269,15 -273,4 +276,15 @@@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_PARENT;
  EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_POSITION;
  
 +/* currently elementary and E specific extension */
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_PROFILE;
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_PROFILE_LIST;
 +
 +/* for sliding window */
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE;
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY;
 +
 +/* for SDB(Samsung Debug Bridge) */
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT;
 +EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT;
  #endif /* _ECORE_X_ATOMS_H */
@@@ -278,9 -278,13 +278,16 @@@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY = 0;
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON = 0;
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF = 0;
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE = 0;
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL = 0;
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT = 0;
+ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV = 0;
  
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER = 0;
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE = 0;
@@@ -297,14 -301,280 +304,292 @@@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_P
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_PARENT = 0;
  EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_POSITION = 0;
  
 +/* for sliding window */
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE = 0;
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY = 0;
 +
 +/* for SDB(Samsung Debug Bridge) */
 +EAPI Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT = 0;
 +EAPI Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT = 0;
 +
 +/* currently elementary and E specific extension */
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_PROFILE = 0;
 +EAPI Ecore_X_Atom ECORE_X_ATOM_E_PROFILE_LIST = 0;
++
+ typedef struct _Atom_Item Atom_Item;
+ struct _Atom_Item
+ {
+    const char   *name;
+    Ecore_X_Atom *atom;
+ };
+ const Atom_Item atom_items[] =
+ {
+    { "ATOM", &ECORE_X_ATOM_ATOM },
+    { "CARDINAL", &ECORE_X_ATOM_CARDINAL },
+    { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT },
+    { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME },
+    { "STRING", &ECORE_X_ATOM_STRING },
+    { "TEXT", &ECORE_X_ATOM_TEXT },
+    { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING },
+    { "WINDOW", &ECORE_X_ATOM_WINDOW },
+    { "PIXMAP", &ECORE_X_ATOM_PIXMAP },
+    { "VISUALID", &ECORE_X_ATOM_VISUALID },
+    { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND },
+    { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND },
+    { "XdndAware", &ECORE_X_ATOM_XDND_AWARE },
+    { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER },
+    { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST },
+    { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION },
+    { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY },
+    { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE },
+    { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE },
+    { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK },
+    { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST },
+    { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK },
+    { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION },
+    { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY },
+    { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS },
+    { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE },
+    { "XdndDrop", &ECORE_X_ATOM_XDND_DROP },
+    { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED },
+    { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY },
+    { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE },
+    { "XdndActionLink", &ECORE_X_DND_ACTION_LINK },
+    { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK },
+    { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE },
+    { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE },
+    { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER },
+    { "WM_NAME", &ECORE_X_ATOM_WM_NAME },
+    { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME },
+    { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS },
+    { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS },
+    { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS },
+    { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS },
+    { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR },
+    { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS },
+    { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS },
+    { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND },
+    { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE },
+    { "WM_STATE", &ECORE_X_ATOM_WM_STATE },
+    { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE },
+    { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE },
+    { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS },
+    { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF },
+    { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW },
+    { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY },
+    { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID },
+    { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER },
+    { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE },
+    { "_MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS },
+    { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED },
+    { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST },
+    { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING },
+    { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS },
+    { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY },
+    { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT },
+    { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP },
+    { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES },
+    { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW },
+    { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA },
+    { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK },
+    { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS },
+    { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT },
+    { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP },
+    { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW },
+    { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW },
+    { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE },
+    { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW },
+    { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS },
+    { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME },
+    { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME },
+    { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME },
+    { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME },
+    { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP },
+    { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE },
+    { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP },
+    { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK },
+    { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR },
+    { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU },
+    { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY },
+    { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH },
+    { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG },
+    { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL },
+    { "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU",
+      &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU },
+    { "_NET_WM_WINDOW_TYPE_POPUP_MENU",
+      &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU },
+    { "_NET_WM_WINDOW_TYPE_TOOLTIP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP },
+    { "_NET_WM_WINDOW_TYPE_NOTIFICATION",
+      &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION },
+    { "_NET_WM_WINDOW_TYPE_COMBO", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO },
+    { "_NET_WM_WINDOW_TYPE_DND", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND },
+    { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE },
+    { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL },
+    { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY },
+    { "_NET_WM_STATE_MAXIMIZED_VERT",
+      &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT },
+    { "_NET_WM_STATE_MAXIMIZED_HORZ",
+      &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ },
+    { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED },
+    { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR },
+    { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER },
+    { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN },
+    { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN },
+    { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE },
+    { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW },
+    { "_NET_WM_STATE_DEMANDS_ATTENTION",
+      &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION },
+    { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS },
+    { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE },
+    { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE },
+    { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE },
+    { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE },
+    { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK },
+    { "_NET_WM_ACTION_MAXIMIZE_HORZ",
+      &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ },
+    { "_NET_WM_ACTION_MAXIMIZE_VERT",
+      &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT },
+    { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN },
+    { "_NET_WM_ACTION_CHANGE_DESKTOP",
+      &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP },
+    { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE },
+    { "_NET_WM_ACTION_ABOVE", &ECORE_X_ATOM_NET_WM_ACTION_ABOVE },
+    { "_NET_WM_ACTION_BELOW", &ECORE_X_ATOM_NET_WM_ACTION_BELOW },
+    { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT },
+    { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL },
+    { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY },
+    { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON },
+    { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID },
+    { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS },
+    { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME },
+    { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID },
+    { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS },
+    { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING },
+    { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST },
+    { "_NET_WM_SYNC_REQUEST_COUNTER",
+      &ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER },
+    { "_NET_WM_WINDOW_OPACITY", &ECORE_X_ATOM_NET_WM_WINDOW_OPACITY },
+    { "_NET_WM_WINDOW_SHADOW", &ECORE_X_ATOM_NET_WM_WINDOW_SHADOW },
+    { "_NET_WM_WINDOW_SHADE", &ECORE_X_ATOM_NET_WM_WINDOW_SHADE },
+    { "TARGETS", &ECORE_X_ATOM_SELECTION_TARGETS },
+    { "CLIPBOARD", &ECORE_X_ATOM_SELECTION_CLIPBOARD },
+    { "PRIMARY", &ECORE_X_ATOM_SELECTION_PRIMARY },
+    { "SECONDARY", &ECORE_X_ATOM_SELECTION_SECONDARY },
+    { "_ECORE_SELECTION_PRIMARY", &ECORE_X_ATOM_SELECTION_PROP_PRIMARY },
+    { "_ECORE_SELECTION_SECONDARY", &ECORE_X_ATOM_SELECTION_PROP_SECONDARY },
+    { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD },
+    { "_E_VIRTUAL_KEYBOARD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD },
+    { "_E_VIRTUAL_KEYBOARD_STATE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE },
+    { "_E_VIRTUAL_KEYBOARD_ON", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON },
+    { "_E_VIRTUAL_KEYBOARD_OFF", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF },
+    { "_E_VIRTUAL_KEYBOARD_ALPHA", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA },
+    { "_E_VIRTUAL_KEYBOARD_NUMERIC", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC },
+    { "_E_VIRTUAL_KEYBOARD_PIN", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN },
+    { "_E_VIRTUAL_KEYBOARD_PHONE_NUMBER",
+      &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
+    { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
+    { "_E_VIRTUAL_KEYBOARD_TERMINAL",
+      &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
+    { "_E_VIRTUAL_KEYBOARD_PASSWORD",
+      &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD },
+    { "_E_VIRTUAL_KEYBOARD_IP", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP },
+    { "_E_VIRTUAL_KEYBOARD_HOST", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST },
+    { "_E_VIRTUAL_KEYBOARD_FILE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE },
+    { "_E_VIRTUAL_KEYBOARD_URL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL },
+    { "_E_VIRTUAL_KEYBOARD_KEYPAD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD },
+    { "_E_VIRTUAL_KEYBOARD_J2ME", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME },
+    { "_E_ILLUME_ZONE", &ECORE_X_ATOM_E_ILLUME_ZONE },
+    { "_E_ILLUME_ZONE_LIST", &ECORE_X_ATOM_E_ILLUME_ZONE_LIST },
+    { "_E_ILLUME_CONFORMANT", &ECORE_X_ATOM_E_ILLUME_CONFORMANT },
+    { "_E_ILLUME_MODE", &ECORE_X_ATOM_E_ILLUME_MODE },
+    { "_E_ILLUME_MODE_SINGLE", &ECORE_X_ATOM_E_ILLUME_MODE_SINGLE },
+    { "_E_ILLUME_MODE_DUAL_TOP", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP },
+    { "_E_ILLUME_MODE_DUAL_LEFT", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT },
+    { "_E_ILLUME_FOCUS_BACK", &ECORE_X_ATOM_E_ILLUME_FOCUS_BACK },
+    { "_E_ILLUME_FOCUS_FORWARD", &ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD },
+    { "_E_ILLUME_FOCUS_HOME", &ECORE_X_ATOM_E_ILLUME_FOCUS_HOME },
+    { "_E_ILLUME_CLOSE", &ECORE_X_ATOM_E_ILLUME_CLOSE },
+    { "_E_ILLUME_HOME_NEW", &ECORE_X_ATOM_E_ILLUME_HOME_NEW },
+    { "_E_ILLUME_HOME_DEL", &ECORE_X_ATOM_E_ILLUME_HOME_DEL },
+    { "_E_ILLUME_DRAG", &ECORE_X_ATOM_E_ILLUME_DRAG },
+    { "_E_ILLUME_DRAG_LOCKED", &ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED },
+    { "_E_ILLUME_DRAG_START", &ECORE_X_ATOM_E_ILLUME_DRAG_START },
+    { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END },
+    { "_E_ILLUME_INDICATOR_GEOMETRY",
+      &ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY },
+    { "_E_ILLUME_SOFTKEY_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY },
+    { "_E_ILLUME_KEYBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY },
+    { "_E_ILLUME_QUICKPANEL", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL },
+    { "_E_ILLUME_QUICKPANEL_STATE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE },
+    { "_E_ILLUME_QUICKPANEL_STATE_TOGGLE",
+      &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE },
+    { "_E_ILLUME_QUICKPANEL_ON", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON },
+    { "_E_ILLUME_QUICKPANEL_OFF", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF },
+    { "_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR",
+      &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR },
+    { "_E_ILLUME_QUICKPANEL_PRIORITY_MINOR",
+      &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR },
+    { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE },
+    { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE",
+      &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE },
+    { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
+    { "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
+    { "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
+    { "_E_ILLUME_INDICATOR_OPACITY_MODE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE },
+    { "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
+    { "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
+    { "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
+    { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
+    { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
+    { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
+    { "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
+    { "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
+    { "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
+    { "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
+    { "_E_ILLUME_ACCESS_CONTROL", &ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL },
+    { "_E_ILLUME_ACCESS_ACTION_NEXT", &ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT },
+    { "_E_ILLUME_ACCESS_ACTION_PREV", &ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV },
+    { "_E_ILLUME_ACCESS_ACTION_ACTIVATE", &ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE },
+    { "_E_ILLUME_ACCESS_ACTION_READ", &ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ },
+    { "_E_ILLUME_ACCESS_ACTION_READ_NEXT", &ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT },
+    { "_E_ILLUME_ACCESS_ACTION_READ_PREV", &ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV },
+    { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
+    { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
+    { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
+    { "_E_COMP_SYNC_BEGIN", &ECORE_X_ATOM_E_COMP_SYNC_BEGIN },
+    { "_E_COMP_SYNC_END", &ECORE_X_ATOM_E_COMP_SYNC_END },
+    { "_E_COMP_SYNC_CANCEL", &ECORE_X_ATOM_E_COMP_SYNC_CANCEL },
+    { "_E_COMP_FLUSH", &ECORE_X_ATOM_E_COMP_FLUSH },
+    { "_E_COMP_DUMP", &ECORE_X_ATOM_E_COMP_DUMP },
+    { "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP },
+    { "_E_VIDEO_PARENT", &ECORE_X_ATOM_E_VIDEO_PARENT },
+    { "_E_VIDEO_POSITION", &ECORE_X_ATOM_E_VIDEO_POSITION }
+ };
  /* NB: Increment if you add new atoms */
  #define ECORE_X_ATOMS_COUNT 199
  
- typedef struct _Xcb_Atom Xcb_Atom;
- struct _Xcb_Atom
- {
-    const char   *name;
-    Ecore_X_Atom *atom;
- };
  /* local function prototypes */
  
  /* local variables */
  static xcb_intern_atom_cookie_t cookies[ECORE_X_ATOMS_COUNT];
 +static Xcb_Atom atoms[] =
 +{
 +   { "ATOM", &ECORE_X_ATOM_ATOM },
 +   { "CARDINAL", &ECORE_X_ATOM_CARDINAL },
 +   { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT },
 +   { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME },
 +   { "STRING", &ECORE_X_ATOM_STRING },
 +   { "TEXT", &ECORE_X_ATOM_TEXT },
 +   { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING },
 +   { "WINDOW", &ECORE_X_ATOM_WINDOW },
 +   { "PIXMAP", &ECORE_X_ATOM_PIXMAP },
 +   { "VISUALID", &ECORE_X_ATOM_VISUALID },
 +
 +   { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND },
 +   { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND },
 +   { "XdndAware", &ECORE_X_ATOM_XDND_AWARE },
 +   { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER },
 +   { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST },
 +   { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION },
 +   { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY },
 +   { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE },
 +   { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE },
 +   { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK },
 +   { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST },
 +   { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK },
 +   { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION },
 +   { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY },
 +   { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS },
 +   { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE },
 +   { "XdndDrop", &ECORE_X_ATOM_XDND_DROP },
 +   { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED },
 +
 +   { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY },
 +   { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE },
 +   { "XdndActionLink", &ECORE_X_DND_ACTION_LINK },
 +   { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK },
 +   { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE },
 +
 +   { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE },
 +
 +   { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER },
 +
 +   { "WM_NAME", &ECORE_X_ATOM_WM_NAME },
 +   { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME },
 +   { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS },
 +   { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS },
 +   { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS },
 +   { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS },
 +   { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR },
 +   { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS },
 +   { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS },
 +   { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND },
 +   { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE },
 +
 +   { "WM_STATE", &ECORE_X_ATOM_WM_STATE },
 +   { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE },
 +
 +   { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE },
 +
 +   { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS },
 +   { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF },
 +   { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW },
 +
 +   { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY },
 +
 +   { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID },
 +   { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER },
 +   { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE },
 +
 +   { "_MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS },
 +
 +   { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED },
 +   { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST },
 +   { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING },
 +   { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS },
 +   { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY },
 +   { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT },
 +   { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP },
 +   { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES },
 +   { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW },
 +   { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA },
 +   { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK },
 +   { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS },
 +   { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT },
 +   { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP },
 +
 +   { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW },
 +   { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW },
 +   { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE },
 +   { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW },
 +
 +   { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS },
 +
 +   { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME },
 +   { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME },
 +   { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME },
 +   { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME },
 +   { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP },
 +
 +   { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE },
 +   { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP },
 +   { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK },
 +   { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR },
 +   { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU },
 +   { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY },
 +   { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH },
 +   { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG },
 +   { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL },
 +   { "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU",
 +     &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU },
 +   { "_NET_WM_WINDOW_TYPE_POPUP_MENU",
 +     &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU },
 +   { "_NET_WM_WINDOW_TYPE_TOOLTIP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP },
 +   { "_NET_WM_WINDOW_TYPE_NOTIFICATION",
 +     &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION },
 +   { "_NET_WM_WINDOW_TYPE_COMBO", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO },
 +   { "_NET_WM_WINDOW_TYPE_DND", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND },
 +
 +   { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE },
 +   { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL },
 +   { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY },
 +   { "_NET_WM_STATE_MAXIMIZED_VERT",
 +     &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT },
 +   { "_NET_WM_STATE_MAXIMIZED_HORZ",
 +     &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ },
 +   { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED },
 +   { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR },
 +   { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER },
 +   { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN },
 +   { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN },
 +   { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE },
 +   { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW },
 +   { "_NET_WM_STATE_DEMANDS_ATTENTION",
 +     &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION },
 +
 +   { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS },
 +   { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE },
 +   { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE },
 +   { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE },
 +   { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE },
 +   { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK },
 +   { "_NET_WM_ACTION_MAXIMIZE_HORZ",
 +     &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ },
 +   { "_NET_WM_ACTION_MAXIMIZE_VERT",
 +     &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT },
 +   { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN },
 +   { "_NET_WM_ACTION_CHANGE_DESKTOP",
 +     &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP },
 +   { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE },
 +   { "_NET_WM_ACTION_ABOVE", &ECORE_X_ATOM_NET_WM_ACTION_ABOVE },
 +   { "_NET_WM_ACTION_BELOW", &ECORE_X_ATOM_NET_WM_ACTION_BELOW },
 +
 +   { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT },
 +   { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL },
 +   { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY },
 +   { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON },
 +   { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID },
 +   { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS },
 +   { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME },
 +   { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID },
 +   { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS },
 +
 +   { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING },
 +   { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST },
 +   { "_NET_WM_SYNC_REQUEST_COUNTER",
 +     &ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER },
 +
 +   { "_NET_WM_WINDOW_OPACITY", &ECORE_X_ATOM_NET_WM_WINDOW_OPACITY },
 +   { "_NET_WM_WINDOW_SHADOW", &ECORE_X_ATOM_NET_WM_WINDOW_SHADOW },
 +   { "_NET_WM_WINDOW_SHADE", &ECORE_X_ATOM_NET_WM_WINDOW_SHADE },
 +
 +   { "TARGETS", &ECORE_X_ATOM_SELECTION_TARGETS },
 +   { "CLIPBOARD", &ECORE_X_ATOM_SELECTION_CLIPBOARD },
 +   { "PRIMARY", &ECORE_X_ATOM_SELECTION_PRIMARY },
 +   { "SECONDARY", &ECORE_X_ATOM_SELECTION_SECONDARY },
 +   { "_ECORE_SELECTION_PRIMARY", &ECORE_X_ATOM_SELECTION_PROP_PRIMARY },
 +   { "_ECORE_SELECTION_SECONDARY", &ECORE_X_ATOM_SELECTION_PROP_SECONDARY },
 +   { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD },
 +
 +   { "_E_VIRTUAL_KEYBOARD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD },
 +   { "_E_VIRTUAL_KEYBOARD_STATE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE },
 +   { "_E_VIRTUAL_KEYBOARD_ON", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON },
 +   { "_E_VIRTUAL_KEYBOARD_OFF", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF },
 +   { "_E_VIRTUAL_KEYBOARD_ALPHA", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA },
 +   { "_E_VIRTUAL_KEYBOARD_NUMERIC", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC },
 +   { "_E_VIRTUAL_KEYBOARD_PIN", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN },
 +   { "_E_VIRTUAL_KEYBOARD_PHONE_NUMBER",
 +     &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
 +   { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
 +   { "_E_VIRTUAL_KEYBOARD_TERMINAL",
 +     &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
 +   { "_E_VIRTUAL_KEYBOARD_PASSWORD",
 +     &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD },
 +   { "_E_VIRTUAL_KEYBOARD_IP", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP },
 +   { "_E_VIRTUAL_KEYBOARD_HOST", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST },
 +   { "_E_VIRTUAL_KEYBOARD_FILE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE },
 +   { "_E_VIRTUAL_KEYBOARD_URL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL },
 +   { "_E_VIRTUAL_KEYBOARD_KEYPAD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD },
 +   { "_E_VIRTUAL_KEYBOARD_J2ME", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME },
 +
 +   { "_E_ILLUME_ZONE", &ECORE_X_ATOM_E_ILLUME_ZONE },
 +   { "_E_ILLUME_ZONE_LIST", &ECORE_X_ATOM_E_ILLUME_ZONE_LIST },
 +   { "_E_ILLUME_CONFORMANT", &ECORE_X_ATOM_E_ILLUME_CONFORMANT },
 +   { "_E_ILLUME_MODE", &ECORE_X_ATOM_E_ILLUME_MODE },
 +   { "_E_ILLUME_MODE_SINGLE", &ECORE_X_ATOM_E_ILLUME_MODE_SINGLE },
 +   { "_E_ILLUME_MODE_DUAL_TOP", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP },
 +   { "_E_ILLUME_MODE_DUAL_LEFT", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT },
 +   { "_E_ILLUME_FOCUS_BACK", &ECORE_X_ATOM_E_ILLUME_FOCUS_BACK },
 +   { "_E_ILLUME_FOCUS_FORWARD", &ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD },
 +   { "_E_ILLUME_FOCUS_HOME", &ECORE_X_ATOM_E_ILLUME_FOCUS_HOME },
 +   { "_E_ILLUME_CLOSE", &ECORE_X_ATOM_E_ILLUME_CLOSE },
 +   { "_E_ILLUME_HOME_NEW", &ECORE_X_ATOM_E_ILLUME_HOME_NEW },
 +   { "_E_ILLUME_HOME_DEL", &ECORE_X_ATOM_E_ILLUME_HOME_DEL },
 +   { "_E_ILLUME_DRAG", &ECORE_X_ATOM_E_ILLUME_DRAG },
 +   { "_E_ILLUME_DRAG_LOCKED", &ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED },
 +   { "_E_ILLUME_DRAG_START", &ECORE_X_ATOM_E_ILLUME_DRAG_START },
 +   { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END },
 +   { "_E_ILLUME_INDICATOR_GEOMETRY",
 +     &ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY },
 +   { "_E_ILLUME_SOFTKEY_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY },
 +   { "_E_ILLUME_KEYBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY },
 +   { "_E_ILLUME_QUICKPANEL", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL },
 +   { "_E_ILLUME_QUICKPANEL_STATE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE },
 +   { "_E_ILLUME_QUICKPANEL_STATE_TOGGLE",
 +     &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE },
 +   { "_E_ILLUME_QUICKPANEL_ON", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON },
 +   { "_E_ILLUME_QUICKPANEL_OFF", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF },
 +   { "_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR",
 +     &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR },
 +   { "_E_ILLUME_QUICKPANEL_PRIORITY_MINOR",
 +     &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR },
 +   { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE },
 +   { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE",
 +     &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE },
 +   { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
 +   { "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
 +   { "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
 +   { "_E_ILLUME_INDICATOR_OPACITY_MODE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE },
 +   { "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
 +   { "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
 +   { "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
 +   { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
 +   { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
 +   { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
 +   { "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
 +   { "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
 +   { "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
 +   { "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
 +   { "_E_ILLUME_WINDOW_STATE", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE },
 +   { "_E_ILLUME_WINDOW_STATE_NORMAL", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL },
 +   { "_E_ILLUME_WINDOW_STATE_FLOATING", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING },
 +   { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
 +   { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
 +   { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
 +   { "_E_COMP_SYNC_BEGIN", &ECORE_X_ATOM_E_COMP_SYNC_BEGIN },
 +   { "_E_COMP_SYNC_END", &ECORE_X_ATOM_E_COMP_SYNC_END },
 +   { "_E_COMP_SYNC_CANCEL", &ECORE_X_ATOM_E_COMP_SYNC_CANCEL },
 +
 +   { "_E_COMP_FLUSH", &ECORE_X_ATOM_E_COMP_FLUSH },
 +   { "_E_COMP_DUMP", &ECORE_X_ATOM_E_COMP_DUMP },
 +   { "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP },
 +   { "_E_VIDEO_PARENT", &ECORE_X_ATOM_E_VIDEO_PARENT },
 +   { "_E_VIDEO_POSITION", &ECORE_X_ATOM_E_VIDEO_POSITION },
 +
 +   { "_E_PROFILE", &ECORE_X_ATOM_E_PROFILE },
 +   { "_E_PROFILE_LIST", &ECORE_X_ATOM_E_PROFILE_LIST }
 +};
  
  void
  _ecore_xcb_atoms_init(void)
     LOGFN(__FILE__, __LINE__, __FUNCTION__);
     CHECK_XCB_CONN;
  
-    num = (sizeof(atoms) / sizeof(Xcb_Atom));
+    num = (sizeof(atom_items) / sizeof(Atom_Item));
     for (i = 0; i < num; i++)
       {
          cookies[i] =
            xcb_intern_atom_unchecked(_ecore_xcb_conn, 0,
-                                     strlen(atoms[i].name), atoms[i].name);
+                                     strlen(atom_items[i].name), atom_items[i].name);
       }
  }
  
@@@ -308,14 -34,14 +301,14 @@@ _ecore_xcb_atoms_finalize(void
     LOGFN(__FILE__, __LINE__, __FUNCTION__);
     CHECK_XCB_CONN;
  
-    num = (sizeof(atoms) / sizeof(Xcb_Atom));
+    num = (sizeof(atom_items) / sizeof(Atom_Item));
     for (i = 0; i < num; i++)
       {
          xcb_intern_atom_reply_t *reply = NULL;
  
          if (!(reply = xcb_intern_atom_reply(_ecore_xcb_conn, cookies[i], 0)))
            continue;
-         *(atoms[i].atom) = reply->atom;
+         *(atom_items[i].atom) = reply->atom;
          free(reply);
       }
  }
@@@ -126,124 -126,6 +126,124 @@@ ecore_x_e_comp_sync_supported_get(Ecore
  }
  
  EAPI void
 +ecore_x_e_window_profile_list_set(Ecore_X_Window  win,
 +                                  const char    **profiles,
 +                                  unsigned int    num_profiles)
 +{
 +   Ecore_X_Atom *atoms;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!win)
 +     return;
 +
 +   if (!num_profiles)
 +     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_PROFILE_LIST);
 +   else
 +     {
 +        atoms = alloca(num_profiles * sizeof(Ecore_X_Atom));
 +        ecore_x_atoms_get(profiles, num_profiles, atoms);
 +        ecore_x_window_prop_property_set(win,
 +                                         ECORE_X_ATOM_E_PROFILE_LIST,
 +                                         XA_ATOM, 32, (void *)atoms,
 +                                         num_profiles);
 +     }
 +}
 +
 +EAPI Eina_Bool
 +ecore_x_e_window_profile_list_get(Ecore_X_Window   win,
 +                                  const char    ***profiles,
 +                                  int             *ret_num)
 +{
 +   unsigned char *data = NULL;
 +   Ecore_X_Atom *atoms;
 +   int num, i;
 +
 +   if (ret_num)
 +     *ret_num = 0;
 +
 +   if (profiles)
 +     *profiles = NULL;
 +
 +   if (!win)
 +     return EINA_FALSE;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_property_get(win,
 +                                         ECORE_X_ATOM_E_PROFILE_LIST,
 +                                         XA_ATOM, 32, &data, &num))
 +     return EINA_FALSE;
 +
 +   if (ret_num)
 +     *ret_num = num;
 +
 +   if (profiles)
 +     {
 +        (*profiles) = calloc(num, sizeof(char *));
 +        if (!(*profiles))
 +          {
 +             if (ret_num)
 +               *ret_num = 0;
 +
 +             if (data)
 +               free(data);
 +
 +             return EINA_FALSE;
 +          }
 +
 +        atoms = (Ecore_X_Atom *)data;
 +        for (i = 0; i < num; i++)
 +           (*profiles)[i] = ecore_x_atom_name_get(atoms[i]);
 +     }
 +
 +   if (data)
 +     free(data);
 +
 +   return EINA_TRUE;
 +}
 +
 +EAPI void
 +ecore_x_e_window_profile_set(Ecore_X_Window win,
 +                             const char    *profile)
 +{
 +   Ecore_X_Atom atom;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!win)
 +     return;
 +
 +   if (!profile)
 +     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_PROFILE);
 +   else
 +     {
 +        atom = ecore_x_atom_get(profile);
 +        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_E_PROFILE,
 +                                         XA_ATOM, 32, (void *)&atom, 1);
 +     }
 +}
 +
 +EAPI char *
 +ecore_x_e_window_profile_get(Ecore_X_Window win)
 +{
 +   Ecore_X_Atom *atom = NULL;
 +   unsigned char *data;
 +   char *profile = NULL;
 +   int num;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_E_PROFILE,
 +                                         XA_ATOM, 32, &data, &num))
 +     return NULL;
 +
 +   if (data)
 +     atom = (Ecore_X_Atom *)data;
 +
 +   if (atom)
 +     profile = ecore_x_atom_name_get(atom[0]);
 +
 +   return profile;
 +}
 +
 +EAPI void
  ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
                                    Eina_Bool      enabled)
  {
@@@ -1030,6 -912,78 +1030,78 @@@ ecore_x_e_illume_home_del_send(Ecore_X_
  }
  
  EAPI void
+ ecore_x_e_illume_access_action_next_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT,
+                                  0, 0, 0);
+ }
+    
+ EAPI void
+ ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_read_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV,
+                                  0, 0, 0);
+ }
+ EAPI void
  ecore_x_e_illume_drag_set(Ecore_X_Window win,
                            unsigned int   drag)
  {
@@@ -1423,58 -1377,3 +1495,58 @@@ ecore_x_e_illume_indicator_opacity_send
                                   0, 0, 0, 0);
  }
  
 +static Ecore_X_Atom
 +_ecore_x_e_illume_window_state_atom_get(Ecore_X_Illume_Window_State state)
 +{
 +   switch (state)
 +     {
 +      case ECORE_X_ILLUME_WINDOW_STATE_NORMAL:
 +        return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL;
 +
 +      case ECORE_X_ILLUME_WINDOW_STATE_FLOATING:
 +        return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING;
 +
 +      default:
 +        break;
 +     }
 +   return 0;
 +}
 +
 +static Ecore_X_Illume_Window_State
 +_ecore_x_e_illume_window_state_get(Ecore_X_Atom atom)
 +{
 +   if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL)
 +     return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
 +
 +   if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING)
 +     return ECORE_X_ILLUME_WINDOW_STATE_FLOATING;
 +
 +   return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
 +}
 +
 +EAPI void
 +ecore_x_e_illume_window_state_set(Ecore_X_Window win,
 +                                  Ecore_X_Illume_Window_State state)
 +{
 +   Ecore_X_Atom atom = 0;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   atom = _ecore_x_e_illume_window_state_atom_get(state);
 +   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
 +                                &atom, 1);
 +}
 +
 +EAPI Ecore_X_Illume_Window_State
 +ecore_x_e_illume_window_state_get(Ecore_X_Window win)
 +{
 +   Ecore_X_Atom atom;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_atom_get(win,
 +                                     ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
 +                                     &atom, 1))
 +     return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
 +
 +   return _ecore_x_e_illume_window_state_get(atom);
 +}
 +
@@@ -25,306 -25,23 +25,299 @@@ void *alloca(size_t)
  #include "ecore_x_private.h"
  #include "Ecore_X.h"
  #include "Ecore_X_Atoms.h"
  #include "ecore_x_atoms_decl.h"
  
- typedef struct
- {
-    const char   *name;
-    Ecore_X_Atom *atom;
- } Atom_Item;
  void
  _ecore_x_atoms_init(void)
  {
 +   const Atom_Item items[] =
 +   {
 +      { "ATOM", &ECORE_X_ATOM_ATOM },
 +      { "CARDINAL", &ECORE_X_ATOM_CARDINAL },
 +      { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT },
 +      { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME },
 +      { "STRING", &ECORE_X_ATOM_STRING },
 +      { "TEXT", &ECORE_X_ATOM_TEXT },
 +      { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING },
 +      { "WINDOW", &ECORE_X_ATOM_WINDOW },
 +      { "PIXMAP", &ECORE_X_ATOM_PIXMAP },
 +
 +      { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND },
 +      { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND },
 +      { "XdndAware", &ECORE_X_ATOM_XDND_AWARE },
 +      { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER },
 +      { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST },
 +      { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION },
 +      { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY },
 +      { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE },
 +      { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE },
 +      { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK },
 +      { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST },
 +      { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK },
 +      { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION },
 +      { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY },
 +      { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS },
 +      { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE },
 +      { "XdndDrop", &ECORE_X_ATOM_XDND_DROP },
 +      { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED },
 +
 +      { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY },
 +      { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE },
 +      { "XdndActionLink", &ECORE_X_DND_ACTION_LINK },
 +      { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK },
 +      { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE },
 +
 +      { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE },
 +
 +      { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER },
 +
 +      { "WM_NAME", &ECORE_X_ATOM_WM_NAME },
 +      { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME },
 +      { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS },
 +      { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS },
 +      { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS },
 +      { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS },
 +      { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR },
 +      { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS },
 +      { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS },
 +      { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND },
 +      { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE },
 +
 +      { "WM_STATE", &ECORE_X_ATOM_WM_STATE },
 +      { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE },
 +
 +      { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE },
 +
 +      { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS },
 +      { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF },
 +      { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW },
 +
 +      { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY },
 +
 +      { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID },
 +      { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER },
 +      { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE },
 +
 +      { "_MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS },
 +
 +      { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED },
 +      { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST },
 +      { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING },
 +      { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS },
 +      { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY },
 +      { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT },
 +      { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP },
 +      { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES },
 +      { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW },
 +      { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA },
 +      { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK },
 +      { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS },
 +      { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT },
 +      { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP },
 +
 +      { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW },
 +      { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW },
 +      { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE },
 +      { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW },
 +
 +      { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS },
 +
 +      { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME },
 +      { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME },
 +      { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME },
 +      { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME },
 +      { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP },
 +
 +      { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE },
 +      { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP },
 +      { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK },
 +      { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR },
 +      { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU },
 +      { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY },
 +      { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH },
 +      { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG },
 +      { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL },
 +      { "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU",
 +        &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU },
 +      { "_NET_WM_WINDOW_TYPE_POPUP_MENU",
 +        &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU },
 +      { "_NET_WM_WINDOW_TYPE_TOOLTIP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP },
 +      { "_NET_WM_WINDOW_TYPE_NOTIFICATION",
 +        &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION },
 +      { "_NET_WM_WINDOW_TYPE_COMBO", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO },
 +      { "_NET_WM_WINDOW_TYPE_DND", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND },
 +
 +      { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE },
 +      { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL },
 +      { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY },
 +      { "_NET_WM_STATE_MAXIMIZED_VERT",
 +        &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT },
 +      { "_NET_WM_STATE_MAXIMIZED_HORZ",
 +        &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ },
 +      { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED },
 +      { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR },
 +      { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER },
 +      { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN },
 +      { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN },
 +      { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE },
 +      { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW },
 +      { "_NET_WM_STATE_DEMANDS_ATTENTION",
 +        &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION },
 +
 +      { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS },
 +      { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE },
 +      { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE },
 +      { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE },
 +      { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE },
 +      { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK },
 +      { "_NET_WM_ACTION_MAXIMIZE_HORZ",
 +        &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ },
 +      { "_NET_WM_ACTION_MAXIMIZE_VERT",
 +        &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT },
 +      { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN },
 +      { "_NET_WM_ACTION_CHANGE_DESKTOP",
 +        &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP },
 +      { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE },
 +      { "_NET_WM_ACTION_ABOVE", &ECORE_X_ATOM_NET_WM_ACTION_ABOVE },
 +      { "_NET_WM_ACTION_BELOW", &ECORE_X_ATOM_NET_WM_ACTION_BELOW },
 +
 +      { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT },
 +      { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL },
 +      { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY },
 +      { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON },
 +      { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID },
 +      { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS },
 +      { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME },
 +      { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID },
 +      { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS },
 +
 +      { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING },
 +      { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST },
 +      { "_NET_WM_SYNC_REQUEST_COUNTER",
 +        &ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER },
 +
 +      { "_NET_WM_WINDOW_OPACITY", &ECORE_X_ATOM_NET_WM_WINDOW_OPACITY },
 +      { "_NET_WM_WINDOW_SHADOW", &ECORE_X_ATOM_NET_WM_WINDOW_SHADOW },
 +      { "_NET_WM_WINDOW_SHADE", &ECORE_X_ATOM_NET_WM_WINDOW_SHADE },
 +
 +      { "TARGETS", &ECORE_X_ATOM_SELECTION_TARGETS },
 +      { "CLIPBOARD", &ECORE_X_ATOM_SELECTION_CLIPBOARD },
 +      { "PRIMARY", &ECORE_X_ATOM_SELECTION_PRIMARY },
 +      { "SECONDARY", &ECORE_X_ATOM_SELECTION_SECONDARY },
 +      { "_ECORE_SELECTION_PRIMARY", &ECORE_X_ATOM_SELECTION_PROP_PRIMARY },
 +      { "_ECORE_SELECTION_SECONDARY", &ECORE_X_ATOM_SELECTION_PROP_SECONDARY },
 +      { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD },
 +
 +      { "_E_VIRTUAL_KEYBOARD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD },
 +      { "_E_VIRTUAL_KEYBOARD_STATE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE },
 +      { "_E_VIRTUAL_KEYBOARD_ON", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON },
 +      { "_E_VIRTUAL_KEYBOARD_OFF", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF },
 +      { "_E_VIRTUAL_KEYBOARD_ALPHA", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA },
 +      { "_E_VIRTUAL_KEYBOARD_NUMERIC", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC },
 +      { "_E_VIRTUAL_KEYBOARD_PIN", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN },
 +      { "_E_VIRTUAL_KEYBOARD_PHONE_NUMBER",
 +        &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
 +      { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
 +      { "_E_VIRTUAL_KEYBOARD_TERMINAL",
 +        &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
 +      { "_E_VIRTUAL_KEYBOARD_PASSWORD",
 +        &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD },
 +      { "_E_VIRTUAL_KEYBOARD_IP", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP },
 +      { "_E_VIRTUAL_KEYBOARD_HOST", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST },
 +      { "_E_VIRTUAL_KEYBOARD_FILE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE },
 +      { "_E_VIRTUAL_KEYBOARD_URL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL },
 +      { "_E_VIRTUAL_KEYBOARD_KEYPAD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD },
 +      { "_E_VIRTUAL_KEYBOARD_J2ME", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME },
 +
 +      { "_E_ILLUME_ZONE", &ECORE_X_ATOM_E_ILLUME_ZONE },
 +      { "_E_ILLUME_ZONE_LIST", &ECORE_X_ATOM_E_ILLUME_ZONE_LIST },
 +      { "_E_ILLUME_CONFORMANT", &ECORE_X_ATOM_E_ILLUME_CONFORMANT },
 +      { "_E_ILLUME_MODE", &ECORE_X_ATOM_E_ILLUME_MODE },
 +      { "_E_ILLUME_MODE_SINGLE", &ECORE_X_ATOM_E_ILLUME_MODE_SINGLE },
 +      { "_E_ILLUME_MODE_DUAL_TOP", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP },
 +      { "_E_ILLUME_MODE_DUAL_LEFT", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT },
 +      { "_E_ILLUME_FOCUS_BACK", &ECORE_X_ATOM_E_ILLUME_FOCUS_BACK },
 +      { "_E_ILLUME_FOCUS_FORWARD", &ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD },
 +      { "_E_ILLUME_FOCUS_HOME", &ECORE_X_ATOM_E_ILLUME_FOCUS_HOME },
 +      { "_E_ILLUME_CLOSE", &ECORE_X_ATOM_E_ILLUME_CLOSE },
 +      { "_E_ILLUME_HOME_NEW", &ECORE_X_ATOM_E_ILLUME_HOME_NEW },
 +      { "_E_ILLUME_HOME_DEL", &ECORE_X_ATOM_E_ILLUME_HOME_DEL },
 +      { "_E_ILLUME_DRAG", &ECORE_X_ATOM_E_ILLUME_DRAG },
 +      { "_E_ILLUME_DRAG_LOCKED", &ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED },
 +      { "_E_ILLUME_DRAG_START", &ECORE_X_ATOM_E_ILLUME_DRAG_START },
 +      { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END },
 +      { "_E_ILLUME_INDICATOR_GEOMETRY",
 +        &ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY },
 +      { "_E_ILLUME_SOFTKEY_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY },
 +      { "_E_ILLUME_KEYBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY },
 +      { "_E_ILLUME_QUICKPANEL", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL },
 +      { "_E_ILLUME_QUICKPANEL_STATE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE },
 +      { "_E_ILLUME_QUICKPANEL_STATE_TOGGLE",
 +        &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE },
 +      { "_E_ILLUME_QUICKPANEL_ON", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON },
 +      { "_E_ILLUME_QUICKPANEL_OFF", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF },
 +      { "_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR",
 +        &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR },
 +      { "_E_ILLUME_QUICKPANEL_PRIORITY_MINOR",
 +        &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR },
 +      { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE },
 +      { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE",
 +        &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE },
 +      { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
 +      { "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
 +      { "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
 +      { "_E_ILLUME_INDICATOR_OPACITY_MODE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE },
 +      { "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
 +      { "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
 +      { "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
 +      { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
 +      { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
 +      { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
 +      { "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
 +      { "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
 +      { "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
 +      { "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
 +      { "_E_ILLUME_WINDOW_STATE", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE },
 +      { "_E_ILLUME_WINDOW_STATE_NORMAL", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL },
 +      { "_E_ILLUME_WINDOW_STATE_FLOATING", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING },
 +      { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
 +      { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
 +      { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
 +      { "_E_COMP_SYNC_BEGIN", &ECORE_X_ATOM_E_COMP_SYNC_BEGIN },
 +      { "_E_COMP_SYNC_END", &ECORE_X_ATOM_E_COMP_SYNC_END },
 +      { "_E_COMP_SYNC_CANCEL", &ECORE_X_ATOM_E_COMP_SYNC_CANCEL },
 +
 +      { "_E_COMP_FLUSH", &ECORE_X_ATOM_E_COMP_FLUSH },
 +      { "_E_COMP_DUMP", &ECORE_X_ATOM_E_COMP_DUMP },
 +      { "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP },
 +      { "_E_VIDEO_PARENT", &ECORE_X_ATOM_E_VIDEO_PARENT },
 +      { "_E_VIDEO_POSITION", &ECORE_X_ATOM_E_VIDEO_POSITION },
 +
 +      { "_E_PROFILE", &ECORE_X_ATOM_E_PROFILE },
 +      { "_E_PROFILE_LIST", &ECORE_X_ATOM_E_PROFILE_LIST }
 +
 +      /* SLP additions after the comma */ ,
 +
 +      /* for sliding window */
 +      { "_E_ILLUME_SLIDING_WIN_STATE", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE },
 +      { "_E_ILLUME_SLIDING_WIN_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY },
 +
 +      /* for SDB(Samsung Debug Bridge) */
 +      { "_SDB_SERVER_CONNECT", &ECORE_X_ATOM_SDB_SERVER_CONNECT },
 +      { "_SDB_SERVER_DISCONNECT", &ECORE_X_ATOM_SDB_SERVER_DISCONNECT }
 +   };
     Atom *atoms;
     char **names;
     int i, num;
  
-    num = sizeof(items) / sizeof(Atom_Item);
+    num = sizeof(atom_items) / sizeof(Atom_Item);
     atoms = alloca(num * sizeof(Atom));
     names = alloca(num * sizeof(char *));
     for (i = 0; i < num; i++)
-      names[i] = (char *)items[i].name;
+      names[i] = (char *) atom_items[i].name;
     XInternAtoms(_ecore_x_disp, names, num, False, atoms);
     for (i = 0; i < num; i++)
-      *(items[i].atom) = atoms[i];
+      *(atom_items[i].atom) = atoms[i];
  }
  
  /**
@@@ -376,6 -376,72 +376,72 @@@ ecore_x_e_illume_home_del_send(Ecore_X_
  }
  
  EAPI void
+ ecore_x_e_illume_access_action_next_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT, 
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE, 
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_read_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT,
+                                  0, 0, 0);
+ }
+ EAPI void
+ ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win)
+ {
+    LOGFN(__FILE__, __LINE__, __FUNCTION__);
+    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
+                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                  win,
+                                  ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV,
+                                  0, 0, 0);
+ }
+ EAPI void
  ecore_x_e_illume_drag_set(Ecore_X_Window win,
                            unsigned int drag)
  {
@@@ -861,83 -927,6 +927,83 @@@ ecore_x_e_illume_clipboard_geometry_get
     return EINA_TRUE;
  }
  
 +/* for sliding window */
 +EAPI void 
 +ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
 +                                       unsigned int   is_visible)
 +{
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   ecore_x_window_prop_card32_set(win, 
 +                                  ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE, 
 +                                  &is_visible, 1);
 +} /* ecore_x_e_illume_sliding_win_state_set */
 +
 +EAPI int 
 +ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win)
 +{
 +   unsigned int is_visible = 0;
 +   
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_card32_get(win,
 +                                       ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE, 
 +                                       &is_visible, 1))
 +      return 0;
 +
 +   return is_visible;
 +}
 +
 +EAPI void
 +ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
 +                                          int            x,
 +                                          int            y,
 +                                          int            w,
 +                                          int            h)
 +{
 +   unsigned int geom[4];
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   geom[0] = x;
 +   geom[1] = y;
 +   geom[2] = w;
 +   geom[3] = h;
 +   ecore_x_window_prop_card32_set(win,
 +                                  ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY, 
 +                                  geom, 4);
 +} /* ecore_x_e_illume_sliding_win_geometry_set */
 +
 +EAPI int 
 +ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
 +                                          int           *x,
 +                                          int           *y,
 +                                          int           *w,
 +                                          int           *h)
 +{
 +   int ret = 0;
 +   unsigned int geom[4];
 +   
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   ret = 
 +     ecore_x_window_prop_card32_get(win, 
 +                                    ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY, 
 +                                    geom, 4);
 +   if (ret != 4)
 +      return 0;
 +   
 +   if (x)
 +      *x = geom[0];
 +   
 +   if (y)
 +      *y = geom[1];
 +   
 +   if (w)
 +      *w = geom[2];
 +   
 +   if (h)
 +      *h = geom[3];
 +   
 +   return 1;
 +}/* ecore_x_e_illume_sliding_win_geometry_get */
 +
  EAPI void
  ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
                                  Ecore_X_Sync_Counter counter)
@@@ -1023,124 -1012,6 +1089,124 @@@ ecore_x_e_comp_sync_draw_size_done_send
  }
  
  EAPI void
 +ecore_x_e_window_profile_list_set(Ecore_X_Window  win,
 +                                  const char    **profiles,
 +                                  unsigned int    num_profiles)
 +{
 +   Ecore_X_Atom *atoms;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!win)
 +     return;
 +
 +   if (!num_profiles)
 +     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_PROFILE_LIST);
 +   else
 +     {
 +        atoms = alloca(num_profiles * sizeof(Ecore_X_Atom));
 +        ecore_x_atoms_get(profiles, num_profiles, atoms);
 +        ecore_x_window_prop_property_set(win,
 +                                         ECORE_X_ATOM_E_PROFILE_LIST,
 +                                         XA_ATOM, 32, (void *)atoms,
 +                                         num_profiles);
 +     }
 +}
 +
 +EAPI Eina_Bool
 +ecore_x_e_window_profile_list_get(Ecore_X_Window   win,
 +                                  const char    ***profiles,
 +                                  int             *ret_num)
 +{
 +   unsigned char *data;
 +   Ecore_X_Atom *atoms;
 +   int num, i;
 +
 +   if (ret_num)
 +     *ret_num = 0;
 +
 +   if (profiles)
 +     *profiles = NULL;
 +
 +   if (!win)
 +     return EINA_FALSE;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_property_get(win,
 +                                         ECORE_X_ATOM_E_PROFILE_LIST,
 +                                         XA_ATOM, 32, &data, &num))
 +     return EINA_FALSE;
 +
 +   if (ret_num)
 +     *ret_num = num;
 +
 +   if (profiles)
 +     {
 +        (*profiles) = calloc(num, sizeof(char *));
 +        if (!(*profiles))
 +          {
 +             if (ret_num)
 +               *ret_num = 0;
 +
 +             if (data)
 +               free(data);
 +
 +             return EINA_FALSE;
 +          }
 +
 +        atoms = (Ecore_X_Atom *)data;
 +        for (i = 0; i < num; i++)
 +           (*profiles)[i] = ecore_x_atom_name_get(atoms[i]);
 +     }
 +
 +   if (data)
 +     XFree(data);
 +
 +   return EINA_TRUE;
 +}
 +
 +EAPI void
 +ecore_x_e_window_profile_set(Ecore_X_Window win,
 +                             const char    *profile)
 +{
 +   Ecore_X_Atom atom;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!win)
 +     return;
 +
 +   if (!profile)
 +     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_PROFILE);
 +   else
 +     {
 +        atom = ecore_x_atom_get(profile);
 +        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_E_PROFILE,
 +                                         XA_ATOM, 32, (void *)&atom, 1);
 +     }
 +}
 +
 +EAPI char *
 +ecore_x_e_window_profile_get(Ecore_X_Window win)
 +{
 +   Ecore_X_Atom *atom = NULL;
 +   unsigned char *data;
 +   char *profile = NULL;
 +   int num;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_E_PROFILE,
 +                                         XA_ATOM, 32, &data, &num))
 +     return NULL;
 +
 +   if (data)
 +     atom = (Ecore_X_Atom *)data;
 +
 +   if (atom)
 +     profile = ecore_x_atom_name_get(atom[0]);
 +
 +   return profile;
 +}
 +
 +EAPI void
  ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
                                    Eina_Bool enabled)
  {
@@@ -1486,58 -1357,3 +1552,58 @@@ ecore_x_e_illume_indicator_opacity_send
                                   0, 0, 0, 0);
  }
  
 +static Ecore_X_Atom
 +_ecore_x_e_illume_window_state_atom_get(Ecore_X_Illume_Window_State state)
 +{
 +   switch (state)
 +     {
 +      case ECORE_X_ILLUME_WINDOW_STATE_NORMAL:
 +        return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL;
 +
 +      case ECORE_X_ILLUME_WINDOW_STATE_FLOATING:
 +        return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING;
 +
 +      default:
 +        break;
 +     }
 +   return 0;
 +}
 +
 +static Ecore_X_Illume_Window_State
 +_ecore_x_e_illume_window_state_get(Ecore_X_Atom atom)
 +{
 +   if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL)
 +     return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
 +
 +   if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING)
 +     return ECORE_X_ILLUME_WINDOW_STATE_FLOATING;
 +
 +   return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
 +}
 +
 +EAPI void
 +ecore_x_e_illume_window_state_set(Ecore_X_Window win,
 +                                  Ecore_X_Illume_Window_State state)
 +{
 +   Ecore_X_Atom atom = 0;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   atom = _ecore_x_e_illume_window_state_atom_get(state);
 +   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
 +                                &atom, 1);
 +}
 +
 +EAPI Ecore_X_Illume_Window_State
 +ecore_x_e_illume_window_state_get(Ecore_X_Window win)
 +{
 +   Ecore_X_Atom atom;
 +
 +   LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +   if (!ecore_x_window_prop_atom_get(win,
 +                                     ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
 +                                     &atom, 1))
 +     return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
 +
 +   return _ecore_x_e_illume_window_state_get(atom);
 +}
 +