remove xcb support in ecore_x and evas engines as per mailing list
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Tue, 1 Nov 2016 14:04:47 +0000 (23:04 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 3 Nov 2016 13:22:54 +0000 (22:22 +0900)
as per mailing list discussion about dropping xcb support now. it
hasn't been complete for a long time, thus not recommented for being
turned on. as we are moving to a wayland world xcbmakes even less
sense. as agreed, time to clean up a bit and remove a distraction as
well as not well tested code. this also updates po's too.

@feature

127 files changed:
configure.ac
m4/evas_check_engine.m4
pc/evas-opengl-x11.pc.in
pc/evas-software-x11.pc.in
po/ca.po
po/cs.po
po/de.po
po/el.po
po/eo.po
po/es.po
po/fi.po
po/fr.po
po/gl.po
po/hu.po
po/it.po
po/ja.po
po/ko.po
po/lt.po
po/nl.po
po/pl.po
po/pt.po
po/ru.po
po/sl.po
po/sr.po
po/tr.po
po/vi.po
po/zh_CN.po
src/Makefile_Ecore_X.am
src/Makefile_Evas.am
src/lib/ecore_evas/Ecore_Evas.h
src/lib/ecore_evas/ecore_evas.c
src/lib/ecore_evas/ecore_evas_module.c
src/lib/ecore_x/Ecore_X.h
src/lib/ecore_x/ecore_x.c [moved from src/lib/ecore_x/xlib/ecore_x.c with 100% similarity]
src/lib/ecore_x/ecore_x_atoms.c [moved from src/lib/ecore_x/xlib/ecore_x_atoms.c with 100% similarity]
src/lib/ecore_x/ecore_x_composite.c [moved from src/lib/ecore_x/xlib/ecore_x_composite.c with 100% similarity]
src/lib/ecore_x/ecore_x_cursor.c [moved from src/lib/ecore_x/xlib/ecore_x_cursor.c with 100% similarity]
src/lib/ecore_x/ecore_x_damage.c [moved from src/lib/ecore_x/xlib/ecore_x_damage.c with 100% similarity]
src/lib/ecore_x/ecore_x_dnd.c [moved from src/lib/ecore_x/xlib/ecore_x_dnd.c with 100% similarity]
src/lib/ecore_x/ecore_x_dpms.c [moved from src/lib/ecore_x/xlib/ecore_x_dpms.c with 100% similarity]
src/lib/ecore_x/ecore_x_drawable.c [moved from src/lib/ecore_x/xlib/ecore_x_drawable.c with 100% similarity]
src/lib/ecore_x/ecore_x_e.c [moved from src/lib/ecore_x/xlib/ecore_x_e.c with 100% similarity]
src/lib/ecore_x/ecore_x_error.c [moved from src/lib/ecore_x/xlib/ecore_x_error.c with 100% similarity]
src/lib/ecore_x/ecore_x_events.c [moved from src/lib/ecore_x/xlib/ecore_x_events.c with 100% similarity]
src/lib/ecore_x/ecore_x_fixes.c [moved from src/lib/ecore_x/xlib/ecore_x_fixes.c with 100% similarity]
src/lib/ecore_x/ecore_x_gc.c [moved from src/lib/ecore_x/xlib/ecore_x_gc.c with 100% similarity]
src/lib/ecore_x/ecore_x_gesture.c [moved from src/lib/ecore_x/xlib/ecore_x_gesture.c with 100% similarity]
src/lib/ecore_x/ecore_x_icccm.c [moved from src/lib/ecore_x/xlib/ecore_x_icccm.c with 100% similarity]
src/lib/ecore_x/ecore_x_image.c [moved from src/lib/ecore_x/xlib/ecore_x_image.c with 100% similarity]
src/lib/ecore_x/ecore_x_keygrab.c [moved from src/lib/ecore_x/xlib/ecore_x_keygrab.c with 100% similarity]
src/lib/ecore_x/ecore_x_mwm.c [moved from src/lib/ecore_x/xlib/ecore_x_mwm.c with 100% similarity]
src/lib/ecore_x/ecore_x_netwm.c [moved from src/lib/ecore_x/xlib/ecore_x_netwm.c with 100% similarity]
src/lib/ecore_x/ecore_x_pixmap.c [moved from src/lib/ecore_x/xlib/ecore_x_pixmap.c with 100% similarity]
src/lib/ecore_x/ecore_x_present.c [moved from src/lib/ecore_x/xlib/ecore_x_present.c with 100% similarity]
src/lib/ecore_x/ecore_x_private.h [moved from src/lib/ecore_x/xlib/ecore_x_private.h with 100% similarity]
src/lib/ecore_x/ecore_x_randr.c [moved from src/lib/ecore_x/xlib/ecore_x_randr.c with 99% similarity]
src/lib/ecore_x/ecore_x_region.c [moved from src/lib/ecore_x/xlib/ecore_x_region.c with 100% similarity]
src/lib/ecore_x/ecore_x_screensaver.c [moved from src/lib/ecore_x/xlib/ecore_x_screensaver.c with 100% similarity]
src/lib/ecore_x/ecore_x_selection.c [moved from src/lib/ecore_x/xlib/ecore_x_selection.c with 100% similarity]
src/lib/ecore_x/ecore_x_sync.c [moved from src/lib/ecore_x/xlib/ecore_x_sync.c with 100% similarity]
src/lib/ecore_x/ecore_x_test.c [moved from src/lib/ecore_x/xlib/ecore_x_test.c with 100% similarity]
src/lib/ecore_x/ecore_x_vsync.c [moved from src/lib/ecore_x/xlib/ecore_x_vsync.c with 100% similarity]
src/lib/ecore_x/ecore_x_window.c [moved from src/lib/ecore_x/xlib/ecore_x_window.c with 100% similarity]
src/lib/ecore_x/ecore_x_window_prop.c [moved from src/lib/ecore_x/xlib/ecore_x_window_prop.c with 100% similarity]
src/lib/ecore_x/ecore_x_window_shape.c [moved from src/lib/ecore_x/xlib/ecore_x_window_shape.c with 100% similarity]
src/lib/ecore_x/ecore_x_xi2.c [moved from src/lib/ecore_x/xlib/ecore_x_xi2.c with 100% similarity]
src/lib/ecore_x/ecore_x_xinerama.c [moved from src/lib/ecore_x/xlib/ecore_x_xinerama.c with 100% similarity]
src/lib/ecore_x/xcb/ecore_xcb.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_atoms.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_composite.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_cursor.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_damage.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_dnd.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_dpms.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_drawable.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_e.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_error.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_events.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_extensions.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_gc.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_gesture.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_icccm.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_image.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_input.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_keygrab.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_keymap.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_mwm.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_netwm.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_pixmap.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_present.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_private.h [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_randr.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_region.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_render.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_screensaver.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_selection.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_shape.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_sync.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_textlist.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_vsync.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_window.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_window_prop.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_window_shadow.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_window_shape.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_xdefaults.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_xfixes.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_xinerama.c [deleted file]
src/lib/ecore_x/xcb/ecore_xcb_xtest.c [deleted file]
src/modules/ecore_evas/engines/x/ecore_evas_x.c
src/modules/evas/engines/software_x11/Evas_Engine_Software_X11.h
src/modules/evas/engines/software_x11/evas_engine.c
src/modules/evas/engines/software_x11/evas_engine.h
src/modules/evas/engines/software_x11/evas_xcb_buffer.c [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_buffer.h [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_color.c [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_color.h [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_image.c [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_image.h [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_main.c [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_outbuf.c [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_outbuf.h [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_xdefaults.c [deleted file]
src/modules/evas/engines/software_x11/evas_xcb_xdefaults.h [deleted file]
src/tests/ecore/ecore_test_ecore_x.c
src/utils/ecore/.gitignore
src/utils/ecore/makekeys.c [deleted file]
src/utils/ecore/mkks.sh [deleted file]

index cd7ba3b..c709f7f 100644 (file)
@@ -1912,7 +1912,7 @@ EFL_LIB_START([Evas])
 
 # X11
 AC_ARG_WITH([x11],
-   [AS_HELP_STRING([--with-x11=xlib|xcb|none],[X11 method to use: xlib, xcb or none])])
+   [AS_HELP_STRING([--with-x11=xlib|none],[Use X11 (Xlib) or not])])
 
 if test "x${have_windows}" = "xyes" || test "x${have_ps3}" = "xyes" || test "x${have_darwin}" = "xyes"; then
    with_x11="none"
@@ -1921,7 +1921,6 @@ elif test "x${with_x11}" = "x"; then
 fi
 
 want_x11_xlib="no"
-want_x11_xcb="no"
 want_x11_none="no"
 want_x11_any="no"
 case "${with_x11}" in
@@ -1929,11 +1928,6 @@ case "${with_x11}" in
      want_x11_xlib="yes"
      want_x11_any="yes"
      ;;
-   xcb)
-     want_x11_xcb="yes"
-     want_x11_any="yes"
-     CFOPT_WARNING="xyes"
-     ;;
    none)
      want_x11_none="yes"
      ;;
@@ -1961,10 +1955,8 @@ case "${with_opengl}" in
 esac
 
 want_x11_xlib_opengl="no"
-want_x11_xcb_opengl="no"
 if test "${with_opengl}" != "none"; then
    want_x11_xlib_opengl="${want_x11_xlib}"
-   want_x11_xcb_opengl="${want_x11_xcb}"
    want_x11_any_opengl="${want_x11_any}"
 fi
 
@@ -2529,50 +2521,30 @@ EVAS_CHECK_ENGINE([gl-drm], [${want_gl_drm}], [no], [OpenGL Drm])
 EVAS_CHECK_ENGINE([eglfs], [${want_eglfs}], [no], [OpenGL Fb])
 
 
-# Software XCB
-
-have_evas_engine_software_xcb="no"
-if test "${with_x11}" = "xcb" ; then
-   EVAS_CHECK_ENGINE([software-xcb], [${want_x11_xcb}], [no], [Software XCB])
-else
-   AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_XCB], [false])
-   AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_XCB], [false])
-fi
-
-AC_MSG_CHECKING([whether to build Software XCB Engine])
-AC_MSG_RESULT([${have_evas_engine_software_xcb}])
-
-# No Software XCB ? Then try Software Xlib
+# Software Xlib
 
 have_evas_engine_software_xlib="no"
-if test "x${want_x11_xcb}" = "xno" ; then
-   EVAS_CHECK_ENGINE([software-xlib], [${want_x11_xlib}], [no], [Software Xlib])
-else
-   AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_XLIB], [false])
-   AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_XLIB], [false])
-fi
-
+EVAS_CHECK_ENGINE([software-xlib], [${want_x11_xlib}], [no], [Software Xlib])
 AC_MSG_CHECKING([whether to build Software Xlib Engine])
 AC_MSG_RESULT([${have_evas_engine_software_xlib}])
 
 # If software_x11 is available, define everything needed for X11
 
 have_evas_engine_software_x11="no"
-if test "x${have_evas_engine_software_xlib}" = "xyes" || test "x${have_evas_engine_software_xlib}" = "xstatic" || test "x${have_evas_engine_software_xcb}" = "xyes" || test "x${have_evas_engine_software_xcb}" = "xstatic" ; then
+if test "x${have_evas_engine_software_xlib}" = "xyes" || test "x${have_evas_engine_software_xlib}" = "xstatic"; then
    have_evas_engine_software_x11="yes"
    AC_DEFINE_UNQUOTED([BUILD_ENGINE_SOFTWARE_X11], [1], [Build software X11 engine])
 fi
 AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" = "xyes"])
 
-if test "x${have_evas_engine_software_xlib}" = "xstatic" || test "x${have_evas_engine_software_xcb}" = "xstatic"; then
+if test "x${have_evas_engine_software_xlib}" = "xstatic"; then
    AC_DEFINE_UNQUOTED([EVAS_STATIC_BUILD_SOFTWARE_X11], [1], [Build software X11 engine as part of libevas])
 fi
-AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_X11], [test "x${have_evas_engine_software_xcb}" = "xstatic" || test "x${have_evas_engine_software_xlib}" = "xstatic"])
+AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_X11], [test "x${have_evas_engine_software_xlib}" = "xstatic"])
 
 # Needed for evas-software-x11.pc
 
 AC_SUBST([have_evas_engine_software_xlib])
-AC_SUBST([have_evas_engine_software_xcb])
 
 # Software generic
 AC_DEFINE([EVAS_STATIC_BUILD_SOFTWARE_GENERIC], [1], [Build software generic engine as part of libevas])
@@ -2584,28 +2556,10 @@ if test "${with_opengl}" = "es" ; then
    AC_DEFINE(GL_GLES, 1, [GLSL runtime shader GLES2 support])
 fi
 
-# OpenGL XCB
-
-have_evas_engine_gl_xcb="no"
-if test "${want_x11_xcb_opengl}" = "yes"; then
-   EVAS_CHECK_ENGINE([gl-xcb], [${want_x11_xcb_opengl}], [no], [OpenGL XCB])
-else
-   AM_CONDITIONAL([BUILD_ENGINE_GL_XCB], [false])
-   AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_XCB], [false])
-fi
-
-AC_MSG_CHECKING([whether to build OpenGL XCB Engine])
-AC_MSG_RESULT([${have_evas_engine_gl_xcb}])
-
-# No openGL XCB ? Then try OpenGL Xlib
+# OpenGL Xlib
 
 have_evas_engine_gl_xlib="no"
-if test "x${have_evas_engine_gl_xcb}" = "xno" ; then
-   EVAS_CHECK_ENGINE([gl-xlib], [${want_x11_xlib_opengl}], [no], [OpenGL XLib])
-else
-   AM_CONDITIONAL([BUILD_ENGINE_GL_XLIB], [false])
-   AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_XLIB], [false])
-fi
+EVAS_CHECK_ENGINE([gl-xlib], [${want_x11_xlib_opengl}], [no], [OpenGL XLib])
 
 AC_MSG_CHECKING([whether to build OpenGL Xlib Engine])
 AC_MSG_RESULT([${have_evas_engine_gl_xlib}])
@@ -2613,21 +2567,20 @@ AC_MSG_RESULT([${have_evas_engine_gl_xlib}])
 # If opengl_x11 is available, define everything needed for X11
 
 have_evas_engine_gl_x11="no"
-if test "x${have_evas_engine_gl_xlib}" = "xyes" || test "x${have_evas_engine_gl_xlib}" = "xstatic" || test "x${have_evas_engine_gl_xcb}" = "xyes" || test "x${have_evas_engine_gl_xcb}" = "xstatic" ; then
+if test "x${have_evas_engine_gl_xlib}" = "xyes" || test "x${have_evas_engine_gl_xlib}" = "xstatic"; then
    have_evas_engine_gl_x11="yes"
    AC_DEFINE_UNQUOTED([BUILD_ENGINE_GL_X11], [1], [Build OpenGL X11 engine])
 fi
 AM_CONDITIONAL([BUILD_ENGINE_GL_X11], [test "x${have_evas_engine_gl_x11}" = "xyes"])
 
-if test "x${have_evas_engine_gl_xlib}" = "xstatic" || test "x${have_evas_engine_gl_xcb}" = "xstatic"; then
+if test "x${have_evas_engine_gl_xlib}" = "xstatic"; then
    AC_DEFINE_UNQUOTED([EVAS_STATIC_BUILD_GL_X11], [1], [Build OpenGL X11 engine as part of libevas])
 fi
-AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_X11], [test "x${have_evas_engine_gl_xcb}" = "xstatic" || test "x${have_evas_engine_gl_xlib}" = "xstatic"])
+AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_X11], [test "x${have_evas_engine_gl_xlib}" = "xstatic"])
 
 # Needed for evas-opengl-x11.pc
 
 AC_SUBST([have_evas_engine_gl_xlib])
-AC_SUBST([have_evas_engine_gl_xcb])
 
 # OpenGL SDL
 
@@ -2679,7 +2632,6 @@ AC_SUBST([evas_engine_gl_common_libs])
 have_evas_engine_gl_common="no"
 have_static_evas_engine_gl_common="no"
 if test "x$have_evas_engine_gl_xlib" = "xyes" || \
-   test "x$have_evas_engine_gl_xcb" = "xyes" || \
    test "x$have_evas_engine_gl_sdl" = "xyes" || \
    test "x$have_evas_engine_gl_cocoa" = "xyes" || \
    test "x$have_evas_engine_gl_drm" = "xyes" || \
@@ -2688,7 +2640,6 @@ if test "x$have_evas_engine_gl_xlib" = "xyes" || \
    have_evas_engine_gl_common="yes"
 fi
 if test "x$have_evas_engine_gl_xlib" = "xstatic" || \
-   test "x$have_evas_engine_gl_xcb" = "xstatic" || \
    test "x$have_evas_engine_gl_sdl" = "xstatic" || \
    test "x$have_evas_engine_gl_cocoa" = "xstatic" || \
    test "x$have_evas_engine_gl_drm" = "xstatic" || \
@@ -4177,65 +4128,6 @@ EFL_INTERNAL_DEPEND_PKG([ECORE_X], [eina])
 
 ## Xlib
 
-## XCB
-
-### Checks for header files
-
-AC_CHECK_DECL([MAXHOSTNAMELEN], [FOUND_MAXHOSTNAMELEN=yes])
-
-if test "x${FOUND_MAXHOSTNAMELEN}" != "xyes" ; then
-   FOUND_MAXHOSTNAMELEN="not found"
-
-   AC_COMPILE_IFELSE(
-      [
-       AC_LANG_PROGRAM(
-          [[
-#include <sys/param.h>
-          ]],
-          [[
-int h = MAXHOSTNAMELEN;
-          ]])
-      ],
-      [
-       FOUND_MAXHOSTNAMELEN="sys/param.h"
-       AC_DEFINE([NEED_SYS_PARAM_H], [1], [Define to 1 if you need <sys/param.h> to define MAXHOSTNAMELEN])
-      ])
-
-   AC_COMPILE_IFELSE(
-      [
-       AC_LANG_PROGRAM(
-          [[
-#include <netdb.h>
-          ]],
-          [[
-int h = MAXHOSTNAMELEN;
-          ]])
-      ],
-      [
-       FOUND_MAXHOSTNAMELEN="netdb.h"
-       AC_DEFINE([NEED_NETDB_H], [1], [Define to 1 if you need <netdb.h> to define MAXHOSTNAMELEN])
-      ])
-
-   AC_MSG_CHECKING([for header that defines MAXHOSTNAMELEN])
-   AC_MSG_RESULT([$FOUND_MAXHOSTNAMELEN])
-fi
-
-## Xlib
-if test "x${want_x11_xcb}" = "xyes" ; then
-   KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11
-   FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h"
-   for i in $FILES; do
-       if test -f "$KEYSYMDEFDIR/$i"; then
-         KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i"
-       elif test "x$i" = "xkeysymdef.h"; then
-         AC_MSG_ERROR([Cannot find keysymdef.h])
-       fi
-   done
-   AC_MSG_CHECKING([keysym definitions])
-   AC_MSG_RESULT([$KEYSYMDEFS])
-   AC_SUBST([KEYSYMDEFS])
-fi
-
 ### Checks for types
 
 ### Checks for structures
@@ -4302,54 +4194,6 @@ if test "x${want_x11_xlib}" = "xyes" ; then
    EFL_CHECK_FUNCS([ECORE_X], [dlopen dlsym])
 fi
 
-## XCB
-
-if test "${want_x11_xcb}" = "yes"; then
-dnl note: added pixman-1 as ecore_xcb_region uses that
-   EFL_DEPEND_PKG([ECORE_X], [ECORE_X_XCB],
-      [x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8 xcb-composite xcb-present xcb-damage xcb-dpms xcb-randr xcb-render xcb-screensaver xcb-shape xcb-sync xcb-xfixes xcb-xinerama xcb-xtest xcb-renderutil pixman-1])
-
-dnl TODO: remove these ifdefs from code!
-   AC_DEFINE([ECORE_XCB_COMPOSITE], [1], [Build support for XCB composite])
-   AC_DEFINE([ECORE_XCB_DAMAGE], [1], [Build support for XCB damage])
-   AC_DEFINE([ECORE_XCB_DPMS], [1], [Build support for XCB dpms])
-   AC_DEFINE([ECORE_XCB_RANDR], [1], [Build support for XCB randr])
-   AC_DEFINE([ECORE_XCB_RENDER], [1], [Build support for XCB render])
-   AC_DEFINE([ECORE_XCB_SCREENSAVER], [1], [Build support for XCB screensaver])
-   AC_DEFINE([ECORE_XCB_SHAPE], [1], [Build support for XCB shape])
-   AC_DEFINE([ECORE_XCB_SYNC], [1], [Build support for XCB sync])
-   AC_DEFINE([ECORE_XCB_XFIXES], [1], [Build support for XCB xfixes])
-   AC_DEFINE([ECORE_XCB_XINERAMA], [1], [Build support for XCB xinerama])
-   AC_DEFINE([ECORE_XCB_XTEST], [1], [Build support for XCB xtest])
-   AC_DEFINE([ECORE_XCB_CURSOR], [1], [Build support for XCB cursor])
-
-   EFL_OPTIONAL_DEPEND_PKG([ECORE_X], [${want_xpresent}], [ECORE_XCB_XPRESENT],
-      [xcb-present])
-   AC_DEFINE_IF([ECORE_XCB_XPRESENT], [test "${want_xpresent}" = "yes"],
-      [1], [Build support for XCB Present])
-   EFL_ADD_FEATURE([ECORE_X], [xpresent])
-
-   EFL_OPTIONAL_DEPEND_PKG([ECORE_X], [${want_gesture}], [ECORE_XCB_GESTURE],
-      [xcb-gesture])
-   AC_DEFINE_IF([ECORE_XCB_XGESTURE], [test "${want_gesture}" = "yes"],
-      [1], [Build support for XCB xgesture])
-
-   EFL_ADD_FEATURE([ECORE_X], [gesture])
-
-dnl input extension disabled currently in xcb as xcb-input has some issues
-dnl remember to add xcb-xinput to EFL_DEPEND_PKG()
-dnl AC_DEFINE([ECORE_XCB_XINPUT], [1], [Build support for XCB input])
-
-dnl dri extension disabled currently in xcb
-dnl remember to add xcb-dri2 to EFL_DEPEND_PKG()
-dnl AC_DEFINE([ECORE_XCB_DRI], [1], [Build support for XCB dri])
-
-   EFL_EVAL_PKGS([ECORE_X])
-   EFL_CHECK_FUNCS([ECORE_X], [dlopen iconv])
-
-   HAVE_ECORE_X_BACKEND="HAVE_ECORE_X_XCB"
-fi
-
 EFL_ADD_LIBS([ECORE_X], [${ECORE_X_LIBS}])
 
 AC_SUBST([HAVE_ECORE_X_BACKEND])
@@ -4357,7 +4201,6 @@ AC_SUBST([HAVE_ECORE_X_BACKEND])
 EFL_LIB_END_OPTIONAL([Ecore_X])
 
 AM_CONDITIONAL([HAVE_ECORE_X_XLIB], [test "${want_x11_xlib}" = "yes"])
-AM_CONDITIONAL([HAVE_ECORE_X_XCB], [test "${want_x11_xcb}" = "yes"])
 #### End of Ecore_X
 
 
@@ -4610,7 +4453,6 @@ AM_CONDITIONAL([BUILD_ECORE_EVAS_WIN32],
 ECORE_EVAS_MODULE([software-x11], [${want_x11_any}])
 
 have_ecore_evas_software_xlib="no"
-have_ecore_evas_software_xcb="no"
 if test "x$have_ecore_evas_software_x11" = "xyes" ; then
    have_ecore_evas_software_xlib=${have_evas_engine_software_xlib}
    if test "x${have_ecore_evas_software_xlib}" = "xstatic"; then
@@ -4619,13 +4461,6 @@ if test "x$have_ecore_evas_software_x11" = "xyes" ; then
    if test "x${have_ecore_evas_software_xlib}" = "xyes"; then
       AC_DEFINE([BUILD_ECORE_EVAS_SOFTWARE_XLIB], [1], [Evas Software Xlib Engine Support])
    fi
-   have_ecore_evas_software_xcb=${have_evas_engine_software_xcb}
-   if test "x$have_ecore_evas_software_xcb" = "xstatic"; then
-      have_ecore_evas_software_xcb="yes"
-   fi
-   if test "x$have_ecore_evas_software_xcb" = "xyes"; then
-      AC_DEFINE([BUILD_ECORE_EVAS_SOFTWARE_XCB], [1], [Evas Software XCB Engine Support])
-   fi
 fi
 
 # XXX TODO: ecore_evas_opengl_x11
@@ -4633,39 +4468,17 @@ fi
 ECORE_EVAS_MODULE([opengl-x11], [${want_x11_any_opengl}])
 
 have_ecore_evas_opengl_xlib="no"
-have_ecore_evas_opengl_xcb="no"
 if test "x${have_ecore_evas_opengl_x11}" = "xyes" || test "x${have_ecore_evas_opengl_x11}" = "xstatic" ; then
    have_ecore_evas_opengl_xlib=${have_evas_engine_gl_xlib}
    if test "x${have_ecore_evas_opengl_xlib}" = "xyes" ; then
       AC_DEFINE([BUILD_ECORE_EVAS_OPENGL_XLIB], [1], [OpenGL Xlib rendering backend])
    fi
-
-# opengl does not work with xcb (yet)
-   have_ecore_evas_opengl_xcb=${have_evas_engine_gl_xcb}
-   if test "x${have_ecore_evas_opengl_xcb}" = "xstatic"; then
-      have_ecore_evas_opengl_xcb="yes"
-   fi
-   if test "x${have_ecore_evas_opengl_xcb}" = "xyes"; then
-      PKG_CHECK_MODULES([XCB_X11],
-         [x11-xcb],
-         [
-          have_ecore_x_opengl_xcb="yes"
-          requirements_ecore_x="x11-xcb ${requirements_ecore_x}"
-          AC_DEFINE([BUILD_ECORE_X_OPENGL_XCB], [1], [Build support for XCB-based OpenGL])
-          AC_DEFINE([BUILD_ECORE_EVAS_OPENGL_XCB], [1], [OpenGL XCB rendering backend])
-         ],
-         [have_ecore_x_opengl_xcb="no"])
-    else
-      have_ecore_x_opengl_xcb="no"
-      AC_MSG_NOTICE([XCB-based OpenGL explicitly disabled])
-    fi
 fi
 
 build_ecore_evas_x11="no"
 build_ecore_evas_vnc="no"
 if test "x$have_ecore_evas_software_x11" = "xyes" || \
-   test "x$have_ecore_evas_opengl_x11" = "xyes" || \
-   test "x$have_ecore_evas_software_xcb" = "xyes"; then
+   test "x$have_ecore_evas_opengl_x11" = "xyes"; then
    AC_DEFINE([BUILD_ECORE_EVAS_X11], [1], [Support for X Window Engines in Ecore_Evas])
    build_ecore_evas_x11="yes"
    if test "$want_vnc_server" = "yes"; then
@@ -6062,27 +5875,6 @@ if test -n "$CFOPT_WARNING"; then
   echo "==-- WARNING --=="
   echo ""
   echo "_____________________________________________________________________"
-  if test "x${with_x11}" = "xxcb"; then
-    echo "_____________________________________________________________________"
-    echo "You have chosen to use XCB instead of Xlib. It is a myth that XCB"
-    echo "is amazingly faster than Xlib (when used sensibly). It can be"
-    echo "faster in a few corner cases on startup of an app, but it comes"
-    echo "with many downsides. One of those is more complex code inside"
-    echo "ecore_x, which is far less tested in XCB mode than Xlib. Also"
-    echo "the big catch is that OpenGL support basically requires Xlib anyway"
-    echo "so if you want OpenGL in X11, you need Xlib regardless and so you"
-    echo "gain nothing really in terms of speed and no savings in memory"
-    echo "because Xlib is still linked, loaded and used, BUT instead you"
-    echo "have OpenGL drivers working with an hybrid XCB/Xlib (mostly XCB)"
-    echo "toolkit and this is basically never tested by anyone working on"
-    echo "the OpenGL drivers, so you will have bugs. Do not enable XCB"
-    echo "and use OpenGL. XCB is only useful if you wish to shave a few Kb"
-    echo "off the memory footprint of a whole system and live with less"
-    echo "tested code, and possibly unimplemented features in ecore_x. To"
-    echo "remove the XCB setup, remove the --with-x11=xcb option to"
-    echo "configure."
-    echo "_____________________________________________________________________"
-  fi
   if test "x${want_physics}" = "xno"; then
     echo "_____________________________________________________________________"
     echo "You have chosen to disable physics support. This disables lots of"
index a7e0085..4ab7e4c 100644 (file)
@@ -123,167 +123,6 @@ pthread_create(NULL, NULL, NULL, NULL);
   ])
 ])
 
-dnl use: EVAS_CHECK_ENGINE_DEP_SOFTWARE_XCB(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
-
-AC_DEFUN([EVAS_CHECK_ENGINE_DEP_SOFTWARE_XCB],
-[
-
-requirement=""
-have_dep="no"
-evas_engine_[]$1[]_cflags=""
-evas_engine_[]$1[]_libs=""
-
-PKG_CHECK_EXISTS([xcb xcb-shm xcb-image >= 0.2.1 pixman-1],
-   [
-    have_dep="yes"
-    requirement="xcb xcb-shm xcb-image >= 0.2.1 pixman-1"
-   ],
-   [have_dep="no"])
-
-if test "x${have_dep}" = "xyes" ; then
-   if test "x$3" = "xstatic" ; then
-      requirements_pc_evas="${requirement} ${requirements_pc_evas}"
-      requirements_pc_deps_evas="${requirement} ${requirements_pc_deps_evas}"
-   else
-      PKG_CHECK_MODULES([XCB], [${requirement}])
-      evas_engine_[]$1[]_cflags="${XCB_CFLAGS}"
-      evas_engine_[]$1[]_libs="${XCB_LIBS}"
-   fi
-fi
-
-AC_SUBST([evas_engine_$1_cflags])
-AC_SUBST([evas_engine_$1_libs])
-
-AS_IF([test "x${have_dep}" = "xyes"], [$4], [$5])
-
-])
-
-
-dnl use: EVAS_CHECK_ENGINE_DEP_GL_XCB(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
-
-AC_DEFUN([EVAS_CHECK_ENGINE_DEP_GL_XCB],
-[
-
-requirement=""
-
-EFL_FIND_X(evas_engine_[]$1, [GL/gl.h],
-  [X11 XCreateColormap Xrender XRenderCreatePicture],
-  [
-    CFLAGS_save="$CFLAGS"
-    CFLAGS="$CFLAGS $evas_engine_[]$1[]_cflags"
-    CPPFLAGS_save="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $evas_engine_[]$1[]_cflags"
-    AC_CHECK_HEADER([GL/glext.h],
-      [have_dep="yes"],
-      [have_dep="no"],
-      [
-#include <GL/gl.h>
-#include <GL/glext.h>
-#include <GL/glx.h>
-    ])
-    CPPFLAGS=$CPPFLAGS_save
-    CFLAGS=$CFLAGS_save
-
-    gl_pt_lib="";
-    have_gl_pt="no"
-
-    AC_MSG_CHECKING([whether pthread_create() is supported])
-    CFLAGS_save="${CFLAGS}"
-    CFLAGS="${CFLAGS} -pthread"
-    LIBS_save="${LIBS}"
-    LIBS="${LIBS} -pthread"
-    AC_LINK_IFELSE(
-      [AC_LANG_PROGRAM([[
-#include <pthread.h>
-                       ]],
-                       [[
-pthread_create(NULL, NULL, NULL, NULL);
-                       ]])],
-      [have_gl_pt="yes"],
-      [have_gl_pt="no"])
-    CFLAGS=${CFLAGS_save}
-    LIBS=${LIBS_save}
-    AC_MSG_RESULT([${have_gl_pt}])
-
-    if test "x$have_gl_pt" = "xyes" ; then
-      gl_pt_lib=" -pthread"
-    fi
-
-    if test "x$have_dep" = "xyes" ; then
-      LIBS_save="$LIBS"
-      LIBS="$LIBS $evas_engine_[]$1[]_libs"
-      AC_CHECK_LIB([GL], [glXCreateContext], [have_dep="yes"], [have_dep="no"], [-lm $gl_pt_lib])
-      LIBS="$LIBS_save"
-    fi
-  ],[
-    have_dep=no
-  ])
-
-PKG_CHECK_EXISTS([x11-xcb xcb xcb-glx xcb-render xcb-renderutil],
-  [
-    have_dep="yes"
-    requirement="x11-xcb xcb xcb-glx xcb-render xcb-renderutil"
-  ],
-  [have_dep="no"])
-
-if test "x${have_dep}" = "xyes" ; then
-  if test "x$3" = "xstatic" ; then
-    requirements_pc_evas="${requirement} ${requirements_pc_evas}"
-    requirements_pc_deps_evas="${requirement} ${requirements_pc_deps_evas}"
-  else
-    PKG_CHECK_MODULES([XCB_GL], [${requirement}])
-  fi
-fi
-
-if test "x${with_opengl}" = "xes" ; then
-  have_dep=no
-fi
-
-if test "x${have_dep}" = "xyes" ; then
-  evas_engine_[]$1[]_cflags="$evas_engine_[]$1[]_cflags $XCB_GL_CFLAGS"
-  evas_engine_[]$1[]_libs="$evas_engine_[]$1[]_libs $XCB_GL_LIBS -lGL $gl_pt_lib"
-  evas_engine_gl_common_libs="$evas_engine_[]$1[]_libdirs -lGL $gl_pt_lib"
-else
-  CFLAGS_save="$CFLAGS"
-  CFLAGS="$CFLAGS $evas_engine_[]$1[]_cflags"
-  CPPFLAGS_save="$CPPFLAGS"
-  CPPFLAGS="$CPPFLAGS $evas_engine_[]$1[]_cflags"
-  AC_CHECK_HEADER([GLES2/gl2.h],
-    [have_egl="yes"],
-    [have_egl="no"],
-    [
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-#include <EGL/egl.h>
-    ])
-  CPPFLAGS=$CPPFLAGS_save
-  CFLAGS=$CFLAGS_save
-  if test "x${have_egl}" = "xyes" ; then
-    LIBS_save="$LIBS"
-    LIBS="$LIBS $evas_engine_[]$1[]_libs"
-    AC_CHECK_LIB(GLESv2, glTexImage2D, [have_glesv2="yes"], , -lEGL -lm $gl_pt_lib)
-    if test "x${have_glesv2}" = "xyes" ; then
-      evas_engine_[]$1[]_cflags="$evas_engine_[]$1[]_cflags $XCB_GL_CFLAGS"
-      evas_engine_[]$1[]_libs="$evas_engine_[]$1[]_libs $XCB_GL_LIBS -lGLESv2 -lEGL -lm $gl_pt_lib"
-      evas_engine_gl_common_libs="$evas_engine_[]$1[]_libdirs -lGLESv2 -lm $gl_pt_lib"
-      have_dep="yes"
-      AC_DEFINE(GLES_VARIETY_SGX, 1, [Imagination SGX GLES2 support])
-      gles_variety_sgx="yes"
-    fi
-  fi
-fi
-
-if test "x$3" = "xstatic"  && test "x${have_dep}" = "xyes" ; then
-  requirements_libs_evas="${evas_engine_[]$1[]_libs} ${requirements_libs_evas}"
-  requirements_pc_evas="${requirement} ${requirements_pc_evas}"
-  requirements_pc_deps_evas="${requirement} ${requirements_pc_deps_evas}"
-fi
-
-AS_IF([test "x${have_dep}" = "xyes"], [$4], [$5])
-
-])
-
-
 dnl use: EVAS_CHECK_ENGINE_DEP_SOFTWARE_GDI(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
 
 AC_DEFUN([EVAS_CHECK_ENGINE_DEP_SOFTWARE_GDI],
index 2cb1ec2..753e790 100644 (file)
@@ -3,4 +3,3 @@ Description: Evas OpenGL X11 engine
 Version: @VERSION@
 
 Xlib=@have_evas_engine_gl_xlib@
-XCB=@have_evas_engine_gl_xcb@
index b32556c..a92d072 100644 (file)
@@ -3,4 +3,3 @@ Description: Evas software X11 engine
 Version: @VERSION@
 
 Xlib=@have_evas_engine_software_xlib@
-XCB=@have_evas_engine_software_xcb@
index 40b38f0..10e5ffc 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2015-02-10 09:34+0000\n"
 "Last-Translator: JoanColl <Unknown>\n"
 "Language-Team: Catalan\n"
@@ -143,67 +143,67 @@ msgstr "no s'ha definit la llicència.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERROR: opció desconeguda --%s, s'ha ignorat.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERROR: l'opció --%s requereix un argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERROR: opció desconeguda -%c, s'ha ignorat.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERROR: L'opció -%c requereix un argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "ERROR: es requereix argument posicional %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "ERROR: acció no permesa %d per argument posicional %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERROR: no s'ha proporcionat cap analitzador.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERROR: no s'ha proporcionat cap valor.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERROR: no s'ha proporcionat cap argument.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERROR: s'han trobat opcions no vàlides."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Miri --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Miri -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "ERROR: arguments posicionals no vàlids."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERROR: valor geomètric incorrecte '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERROR: tamany incorrecte '%s'\n"
index 6d94409..1d196b4 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-05-22 22:44+0200\n"
 "Last-Translator: Tomáš Čech <sleep_walker@suse.cz>\n"
 "Language-Team: Czech <kde-i18n-doc@kde.org>\n"
@@ -145,68 +145,68 @@ msgstr "nebyla definována licence.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "CHYBA: volba --%s vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "CHYBA: volba -%c vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "CHYBA: volba -%c vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "CHYBA: nebyl poskytnut parser.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "CHYBA: nalezeny neplatné volby."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Viz --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Viz -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "CHYBA: nalezeny neplatné volby."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
index 838aec0..cec88c9 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 0.7.0.57309\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2011-02-25 20:22+0100\n"
 "Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
 "Language-Team: German\n"
@@ -143,68 +143,68 @@ msgstr "es wurde keine Lizenz angegeben.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "FEHLER: Option --%s benötigt ein Argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "FEHLER: Option -%c benötigt ein Argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "FEHLER: Option -%c benötigt ein Argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "FEHLER: Kein Parser bereitgestellt.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "FEHLER: Keine Werte bereitgestellt.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "FEHLER: Keine Argumente bereitgestellt.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "FEHLER: Ungültige Optionen gefunden."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Siehe --%s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Siehe -%c\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "FEHLER: Ungültige Optionen gefunden."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "FEHLER: Falscher Geometriewert \"%s\"\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "FEHLER: Falscher Größenwert \"%s\"\n"
index 6915edb..3506e52 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2012-12-19 15:58+0200\n"
 "Last-Translator: Efstathios Iosifidis <iosifidis@opensuse.org>\n"
 "Language-Team: Ελληνικά, Σύγχρονα <opensuse-translation-el@opensuse.org>\n"
@@ -146,68 +146,68 @@ msgstr "δεν έχει οριστεί άδεια.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή --%s, αγνοήθηκε.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ΣΦΑΛΜΑ: η επιλογή --%s απαιτεί μια παράμετρο!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c, αγνοήθηκε.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ΣΦAΛΜΑ: η επιλογή -%c απαιτεί μία παράμετρο!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "ΣΦAΛΜΑ: η επιλογή -%c απαιτεί μία παράμετρο!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ΣΦΑΛΜΑ: δεν παρέχεται αναλυτής.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ΣΦΑΛΜΑ: δεν έχουν δοθεί τιμές.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί παράμετροι.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ΣΦΑΛΜΑ: βρέθηκαν μη έγκυρες επιλογές."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Δείτε --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Δείτε -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "ΣΦΑΛΜΑ: βρέθηκαν μη έγκυρες επιλογές."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ΣΦΑΛΜΑ: μη έγκυρη γεωμετρική τιμή '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ΣΦΑΛΜΑ: μη έγκυρη τιμή μεγέθους '%s'\n"
index 97340bf..ae65f90 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: enlightenment\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2013-11-05 18:59+0000\n"
 "Last-Translator: Eliovir <Unknown>\n"
 "Language-Team: Esperanto <eo@li.org>\n"
@@ -142,67 +142,67 @@ msgstr "neniu permesilo estas difinita.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERARO: nekonata opcio --%s. Ignorita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERARO: opcio --%s postulas argumenton!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERARO: nekonata opcio -%c. Ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERARO: opcio -%c postulas argumenton!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "ERARO: nepra poziciaj argumento %s mankas.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "ERARO: neeltena tipo de agado %d por pozicia argumento %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERARO: neniu sintaksa analizilo provizita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERARO: neniu valoro provizita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERARO: neniu argumento provizita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERARO: nevalidaj opcioj trovitaj."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Vidu --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Vidu -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "ERARO: nevalida poziciaj argumentoj trovitaj."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERARO: nekorekta geometria valoro '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERARO: nekorekta valoro de grando '%s'\n"
index b9ff6e3..d44249e 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2015-05-03 18:19+0100\n"
 "Last-Translator: Adrián Arévalo <adri58@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -142,67 +142,67 @@ msgstr "no se definió la licencia.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERROR: opción desconocida --%s, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERROR: La opción --%s requiere un argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERROR: opción desconocida -%c, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERROR: La opción -%c requiere un argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "ERROR: Falta un argumento posicional requerido %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "ERROR: tipo de acción %d no permitido para argumento posicional %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERROR: no se proporcionó ningún parser.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERROR: no se proporcionó ningún valor.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERROR: no se proporcionó ningún argumento.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERROR: opciones inválidas."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Vea --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Vea -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "ERROR: argumentos posicionales inválidos encontrados."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERROR: valor geométrico incorrecto '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERROR: tamaño incorrecto '%s'\n"
index 31004e4..95227eb 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: enlightenment\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-08-31 15:13+0000\n"
 "Last-Translator: Kai Huuhko <kai.huuhko@gmail.com>\n"
 "Language-Team: Finnish <fi@li.org>\n"
@@ -142,67 +142,67 @@ msgstr "lisenssiä ei määritelty.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "VIRHE: tuntematon optio --%s, jätetty huomioimatta.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "VIRHE: optio --%s tarvitsee argumentin!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "VIRHE: tuntematon optio -%c, jätetty huomioimatta.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "VIRHE: optio -%c tarvitsee argumentin\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "VIRHE: puuttuva pakollinen sija-argumentti %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "VIRHE: toimintotyyppi %d ei ole tuettu sija-argumentille %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "VIRHE: jäsennintä ei annettu.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "VIRHE: yhtään arvoa ei annettu.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "VIRHE: yhtään argumenttia ei annettu.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "VIRHE: virheellisiä optioita löydetty."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Katso --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Katso -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "VIRHE: virheellisiä sija-argumentteja löydetty."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "VIRHE: virheellinen geometrinen arvo '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "VIRHE: virheellinen koon arvo '%s'\n"
index 421b9b8..e3acb64 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-05-25 20:18+0000\n"
 "Last-Translator: Eliovir <Unknown>\n"
 "Language-Team: French <sansgourou@gmail.com>\n"
@@ -148,67 +148,67 @@ msgstr "aucune licence n’est définie.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERREUR : option inconnue --%s, non prise en compte.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERREUR : l’option --%s requiert un argument !\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERREUR : option inconnue -%c, non prise en compte.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERREUR : l’option -%c requiert un argument !\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERREUR : aucun analyseur n’est fourni.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERREUR : aucune valeur n’est fournie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERREUR : aucun argument n’est fourni.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERREUR : options non valides détectées."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Voir --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Voir -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERREUR : valeur géométrique incorrecte « %s »\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERREUR : valeur de taille incorrecte « %s »\n"
index b262ac9..fb7b63e 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-05-24 08:39+0000\n"
 "Last-Translator: Kaptan <khanyux@gmail.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -141,67 +141,67 @@ msgstr "non se definiu a licenza.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERRO: opción descoñecida --%s, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERRO: opción --%s require un argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERRO: opción descoñecida -%c, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERRO: opción -%c require un argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERRO: non se forneceu ningún procesador.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERRO: non se forneceu ningún valor.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERRO: non se forneceu ningún argumento.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERRO: atopadas opcións inválidas."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Consulte --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Consulte  -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERRO: valor xeométrico incorrecto '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERRO: valor do tamaño incorrecto '%s'\n"
index 5df53c4..852234d 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 1.8.2\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-01-29 15:27+0100\n"
 "Last-Translator: rezso <rezso@rezso.net>\n"
 "Language-Team: General\n"
@@ -142,68 +142,68 @@ msgstr "Nincs definiált licenc.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "HIBA: ismeretlen opció: --%s, figyelmen kívül hagyva.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "HIBA: --%s opció argumentumot igényel.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "HIBA: ismeretlen opció: -%c, figyelmen kívül hagyva.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "HIBA: -%c opció argumentumot igényel.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "HIBA: -%c opció argumentumot igényel.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "HIBA: hiányzó parser.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "HIBA: hiányzó értékek.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "HIBA: hiányzó argumentumok.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "HIBA: érvénytelen opciók találhatók."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Lásd --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Lásd -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "HIBA: érvénytelen opciók találhatók."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "HIBA: helytelen geometria érték: '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "HIBA: helytelen méret érték: '%s'\n"
index 7efa103..1ddace6 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2015-06-11 14:19+0200\n"
 "Last-Translator: Massimo Maiurana <maiurana@gmail.com>\n"
 "Language-Team: General\n"
@@ -140,68 +140,68 @@ msgstr "nessuna licenza definita.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERRORE: l'opzione --%s richiede un argomento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERRORE: l'opzione -%c richiede un argomento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "ERRORE: manca l'argomento posizionale %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 "ERRORE: azione di tipo %d non supportata per argomento posizionale %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERRORE: nessun parser fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERRORE: nessun valore fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERRORE: nessun argomento fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERRORE: trovate opzioni non valide."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Vedere --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Vedere -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "ERRORE: trovati argomenti posizionali non validi."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERRORE: valore geometrico non corretto '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERRORE: valore dimensione non corretto '%s'\n"
index 2024859..5afd236 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efl\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2012-06-24 17:10+0900\n"
 "Last-Translator: Daichi Fukui<when.a.cat.sits.beside.you@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -140,68 +140,68 @@ msgstr "ライセンスが定義されていません.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "エラー: 不明なオプション --%s, 無視.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "エラー: オプション --%s には引数が必要です.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "エラー: 不明なオプション -%c, 無視.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "エラー: オプション -%c には引数が必要です.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "エラー: オプション -%c には引数が必要です.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "エラー: パーサーがありません.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "エラー: 値がありません.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "エラー: 引数がありません.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "エラー: 不正なオプションです."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr "--%s を参照.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr "-%c を参照.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "エラー: 不正なオプションです."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "エラー: 不正なジオメトリ値 '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "エラー: 不正なsize値です '%s'\n"
index 1285605..af6a91a 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efl\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-11-10 01:01+0900\n"
 "Last-Translator: Daniel Juyung Seo <seojuyung2@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -145,67 +145,67 @@ msgstr "정의한 라이선스가 없습니다.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "오류: 알 수 없는 --%s 옵션을 무시합니다.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "오류: --%s 옵션에 인자가 필요합니다!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "오류: 알 수 없는 -%c 옵션을 무시합니다.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "오류: -%c 옵션에 인자가 필요합니다!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "오류: %s 옵션에 위치 인자가 필요합니다!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "오류: 지원하지 않는 동작 형식 %d의 위치 인자 %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "오류: 해석 프로그램이 존재하지 않습니다.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "오류: 값이 존재하지 않습니다.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "인자가 존재하지 않습니다.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "오류: 잘못된 옵션이 있습니다."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " --%s 옵션을 참조하십시오.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " -%c 옵션을 참조하십시오.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "오류: 잘못된 위치 인자가 있습니다."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "오류: '%s' 값의 좌표가 올바르지 않습니다\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "오류: '%s' 값의 크기가 올바르지 않습니다\n"
index cf404eb..f4d428b 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: enlightenment\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-02-21 22:38+0000\n"
 "Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
 "Language-Team: Lithuanian <lt@li.org>\n"
@@ -142,67 +142,67 @@ msgstr ""
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "KLAIDA: nežinomas parametras --%s, nepaisomas.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "KLAIDA: nežinomas parametras -%c, nepaisomas.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "KLAIDA: aptikti netinkami parametrai."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr ""
index 4a10b38..d7d981b 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 0.7.0.57309\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2011-06-19 16:41+0100\n"
 "Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n"
 "Language-Team: Dutch <vistausss@gmail.com>\n"
@@ -144,68 +144,68 @@ msgstr "geen licentie was gedefinieerd.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "FOUT: onbekende optie --%s, genegeerd.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "FOUT: optie --%s vereist een argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "FOUT: onbekende opties -%c, genegeerd.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "FOUT: optie -%c vereist een argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "FOUT: optie -%c vereist een argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "FOUT: geen doorvoerder beschikbaar gesteld.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "FOUT: geen waarden beschikbaar gesteld.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "FOUT: geen argumenten beschibaar gesteld.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "FOUT: ongeldige opties gevonden."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr "Zie --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr "Zie -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "FOUT: ongeldige opties gevonden."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "Fout: foutieve wiskundige waarde '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "FOUT: foutieve grootte-waarden '%s'\n"
index a3b3a61..8c54ab6 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2013-11-23 14:48+0100\n"
 "Last-Translator: Konrad Makowski <poczta@konradmakowski.pl>\n"
 "Language-Team: General\n"
@@ -143,68 +143,68 @@ msgstr "nie zdefiniowano licencji.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "BŁĄD: nieznana opcja --%s, zignorowano.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "BŁĄD: opcja --%s wymaga argumentu!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "BŁĄD: nieznana opcja --%c, zignorowano.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "BŁĄD: opcja --%c wymaga argumentu!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "BŁĄD: opcja --%c wymaga argumentu!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "BŁĄD: nie dostarczono parsera.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "BŁĄD: nie podano wartości.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "BŁĄD: nie podano argumentów.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "BŁĄD: wykryto błędne funkcje."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr "Zobacz --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr "Zobacz -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "BŁĄD: wykryto błędne funkcje."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "BŁĄD: nieprawidłowa wartość geometryczna \"%s\"\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "BŁĄD: nieprawdiłowy rozmiar wartości \"%s\"\n"
index 7a9dab6..6f16727 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2013-11-05 14:11-0000\n"
 "Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
 "Language-Team: General\n"
@@ -142,67 +142,67 @@ msgstr "licença não definida.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERRO: opção desconhecida --%s, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERRO: a opção --%s requer um argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERRO: opção desconhecida --%c, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERRO: a opção --%c requer um argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "ERRO: falta o argumento de posição necessário %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "ERRO: tipo de ação não suportado %d para o argumento de posição %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ERRO: nenhum processador fornecido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ERRO: nenhum valor fornecido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERRO: nenhum argumento fornecido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ERRO: encontradas opções inválidas."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr "Consulte --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr "Consulte -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "ERRO: encontrados argumentos de posição inválidos."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERRO: valor geométrico incorreto \"%s\"\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERRO: tamanho incorreto \"%s\"\n"
index 2b6a5f9..6d29405 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 1.11\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2015-02-07 15:16+0300\n"
 "Last-Translator: Игорь Мурзов <garik@efl.so>\n"
 "Language-Team: ru <enlightenment-intl@lists.sourceforge.net>\n"
@@ -143,67 +143,67 @@ msgstr ""
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr ""
index 06a325a..ffb5e51 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Efl\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2016-09-21 17:00+0200\n"
 "Last-Translator: Renato Rener <renato.rener@gmail.com>\n"
 "Language-Team: Enlightenment Team\n"
@@ -141,67 +141,67 @@ msgstr "definirana ni bila nobena licenca.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "NAPAKA:·možnost·-%c zahteva argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "NAPAKA: manjka zahtevani argument nahajališča %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "NAPAKA: nepodprto dejanje vrste %d za argumente nahajališča %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "NAPAKA:·ni podan razčlenjevalnik.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "NAPAKA::·ni podanih vrednosti.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "NAPAKA::·ni podanih argumentov.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "NAPAKA::·najdene nepravilne možnosti"
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr "·Glej·--%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr "·Glej·-%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "NAPAKA: nepravilni argumenti nahajališča najdeni."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n"
index cc0579a..a7cd58c 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: а\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2015-01-31 14:06+0100\n"
 "Last-Translator: Саша Петровић <salepetronije@gmail.com>\n"
 "Language-Team: српски <xfce4@xfce4.org>\n"
@@ -145,67 +145,67 @@ msgstr "није одређена дозвола.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ГРЕШКА: непозната могућност --%s, занемарујем.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ГРЕШКА: могућност --%s захтева одредницу!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ГРЕШКА: непозната могућност -%c, занемарујем.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ГРЕШКА: могућност -%c захтева одредницу!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "Грешка: недостаје потребна одредница положаја %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "Грешка: неподржана радња врсте %d за одредницу положаја %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "ГРЕШКА: није обезбеђен рашчлањивач.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "ГРЕШКА: нема обезбеђених вредности.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "ГРЕШКА: није обезбеђена одредница.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "ГРЕШКА: нађена је неисправна могућност."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Погледајте --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Погледајте -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "Грешка: нађена је неисправна одредница положаја."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ГРЕШКА: неисправна геометријска вредност „%s“\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ГРЕШКА: неисправна вредност величине  „%s“\n"
index 04be26e..855d7b5 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: enlightenment\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2014-04-18 13:35+0000\n"
 "Last-Translator: Ali E.İMREK <alierkanimrek@gmail.com>\n"
 "Language-Team: Turkish <tr@li.org>\n"
@@ -142,67 +142,67 @@ msgstr "lisans tanımlanmadı.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "HATA: bilinmeyen seçenek --%s, yoksayıldı.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "HATA: seçenek --%s bağımsız bir değişken gerektirir!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "HATA: bilinmeyen seçenek --%c, yoksayıldı.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "HATA: seçenek --%c bağımsız bir değişken gerektirir!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "HATA: konumsal argüman kayıp  %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "HATA:  %d desteklenmeyen eylem türü %s konumsal argümanı için.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "HATA: ayrıştırıcı sağlanmadı.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "HATA: değerler sağlanmadı.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "HATA: bağımsız değişkenler sağlanmadı.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "HATA: geçersiz seçenekler bulundu."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " Bakın --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " Bakın -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "HATA: geçersiz konumsal argümanlar bulundu."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "HATA: yanlış geometri değeri '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "HATA: yanlış boyut değeri '%s'\n"
index 3d63c1c..978d75e 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2015-09-29 18:06+0900\n"
 "Last-Translator: Thiep Ha <thiepha@gmail.com>\n"
 "Language-Team: General\n"
@@ -143,67 +143,67 @@ msgstr "không định nghĩa giấy phép.\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "LỖI: không rõ lựa chọn --%s, bỏ qua.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "LỖI: lựa chọn --%s đòi hỏi một tham số!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "LỖI: không rõ lựa chọn -%c, bỏ qua.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "LỖI: lựa chọn -%c đòi hỏi một tham số!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "LỖI: thiếu tham số vị trí được yêu cầu %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr "LỖI: kiểu hoạt động không được hỗ trợ %d cho tham số vị trí %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "LỖI: không cung cấp bộ phân tích.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "LỖI: không cung cấp giá trị.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "LỖI: không cung cấp đối số.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "LỖI: phát hiện các tùy chọn không hợp lệ."
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr "Xem --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr "Xem -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 msgid "ERROR: invalid positional arguments found."
 msgstr "LỖI: phát hiện các đối số vị trí không hợp lệ."
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "LỖI: giá trị hình học không đúng '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "LỖI: giá trị kích thước không đúng '%s'\n"
index b71cf8b..42b7588 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-10-28 09:22+0900\n"
+"POT-Creation-Date: 2016-11-01 22:10+0900\n"
 "PO-Revision-Date: 2012-12-22 03:55+0800\n"
 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
 "Language-Team: Chinese (simplified)\n"
@@ -142,68 +142,68 @@ msgstr "未定义许可证。\n"
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "错误:未知选项 --%s,忽略。\n"
 
-#: src/lib/ecore/ecore_getopt.c:1703
+#: src/lib/ecore/ecore_getopt.c:1710
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "错误:选项 --%s 需要一个参数!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1745
+#: src/lib/ecore/ecore_getopt.c:1752
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "错误:未知选项 -%c,忽略。\n"
 
-#: src/lib/ecore/ecore_getopt.c:1783
+#: src/lib/ecore/ecore_getopt.c:1797
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "错误:选项 -%c 需要一个参数!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1878
+#: src/lib/ecore/ecore_getopt.c:1892
 #, fuzzy, c-format
 msgid "ERROR: missing required positional argument %s.\n"
 msgstr "错误:选项 -%c 需要一个参数!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1910
+#: src/lib/ecore/ecore_getopt.c:1924
 #, c-format
 msgid "ERROR: unsupported action type %d for positional argument %s\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:2031 src/lib/ecore/ecore_getopt.c:2097
+#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
 msgid "ERROR: no parser provided.\n"
 msgstr "错误:未提供解析器。\n"
 
-#: src/lib/ecore/ecore_getopt.c:2036 src/lib/ecore/ecore_getopt.c:2102
+#: src/lib/ecore/ecore_getopt.c:2050 src/lib/ecore/ecore_getopt.c:2116
 msgid "ERROR: no values provided.\n"
 msgstr "错误:未提供值。\n"
 
-#: src/lib/ecore/ecore_getopt.c:2045 src/lib/ecore/ecore_getopt.c:2111
+#: src/lib/ecore/ecore_getopt.c:2059 src/lib/ecore/ecore_getopt.c:2125
 msgid "ERROR: no arguments provided.\n"
 msgstr "错误:未提供参数。\n"
 
-#: src/lib/ecore/ecore_getopt.c:2071
+#: src/lib/ecore/ecore_getopt.c:2085
 msgid "ERROR: invalid options found."
 msgstr "错误:无效的选项。"
 
-#: src/lib/ecore/ecore_getopt.c:2077 src/lib/ecore/ecore_getopt.c:2143
+#: src/lib/ecore/ecore_getopt.c:2091 src/lib/ecore/ecore_getopt.c:2157
 #, c-format
 msgid " See --%s.\n"
 msgstr " 参看 --%s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2079 src/lib/ecore/ecore_getopt.c:2145
+#: src/lib/ecore/ecore_getopt.c:2093 src/lib/ecore/ecore_getopt.c:2159
 #, c-format
 msgid " See -%c.\n"
 msgstr " 参看 -%c\n"
 
-#: src/lib/ecore/ecore_getopt.c:2137
+#: src/lib/ecore/ecore_getopt.c:2151
 #, fuzzy
 msgid "ERROR: invalid positional arguments found."
 msgstr "错误:无效的选项。"
 
-#: src/lib/ecore/ecore_getopt.c:2172
+#: src/lib/ecore/ecore_getopt.c:2186
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "错误:不正确的形状 %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:2190
+#: src/lib/ecore/ecore_getopt.c:2204
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "错误:不正确的大小 %s\n"
index 673cb70..7172114 100644 (file)
@@ -12,88 +12,41 @@ lib/ecore_x/Ecore_X_Atoms.h \
 lib/ecore_x/Ecore_X_Cursor.h
 
 lib_ecore_x_libecore_x_la_SOURCES = \
-lib/ecore_x/ecore_x_atoms_decl.h
-
-if HAVE_ECORE_X_XCB
-lib_ecore_x_libecore_x_la_SOURCES += \
-lib/ecore_x/xcb/ecore_xcb.c \
-lib/ecore_x/xcb/ecore_xcb_atoms.c \
-lib/ecore_x/xcb/ecore_xcb_extensions.c \
-lib/ecore_x/xcb/ecore_xcb_shape.c \
-lib/ecore_x/xcb/ecore_xcb_screensaver.c \
-lib/ecore_x/xcb/ecore_xcb_sync.c \
-lib/ecore_x/xcb/ecore_xcb_render.c \
-lib/ecore_x/xcb/ecore_xcb_randr.c \
-lib/ecore_x/xcb/ecore_xcb_xfixes.c \
-lib/ecore_x/xcb/ecore_xcb_composite.c \
-lib/ecore_x/xcb/ecore_xcb_cursor.c \
-lib/ecore_x/xcb/ecore_xcb_damage.c \
-lib/ecore_x/xcb/ecore_xcb_dnd.c \
-lib/ecore_x/xcb/ecore_xcb_dpms.c \
-lib/ecore_x/xcb/ecore_xcb_drawable.c \
-lib/ecore_x/xcb/ecore_xcb_e.c \
-lib/ecore_x/xcb/ecore_xcb_gc.c \
-lib/ecore_x/xcb/ecore_xcb_image.c \
-lib/ecore_x/xcb/ecore_xcb_input.c \
-lib/ecore_x/xcb/ecore_xcb_gesture.c \
-lib/ecore_x/xcb/ecore_xcb_mwm.c \
-lib/ecore_x/xcb/ecore_xcb_pixmap.c \
-lib/ecore_x/xcb/ecore_xcb_present.c \
-lib/ecore_x/xcb/ecore_xcb_region.c \
-lib/ecore_x/xcb/ecore_xcb_selection.c \
-lib/ecore_x/xcb/ecore_xcb_textlist.c \
-lib/ecore_x/xcb/ecore_xcb_events.c \
-lib/ecore_x/xcb/ecore_xcb_keymap.c \
-lib/ecore_x/xcb/ecore_xcb_keygrab.c \
-lib/ecore_x/xcb/ecore_xcb_netwm.c \
-lib/ecore_x/xcb/ecore_xcb_icccm.c \
-lib/ecore_x/xcb/ecore_xcb_window.c \
-lib/ecore_x/xcb/ecore_xcb_window_prop.c \
-lib/ecore_x/xcb/ecore_xcb_window_shape.c \
-lib/ecore_x/xcb/ecore_xcb_window_shadow.c \
-lib/ecore_x/xcb/ecore_xcb_xinerama.c \
-lib/ecore_x/xcb/ecore_xcb_error.c \
-lib/ecore_x/xcb/ecore_xcb_xtest.c \
-lib/ecore_x/xcb/ecore_xcb_vsync.c \
-lib/ecore_x/xcb/ecore_xcb_xdefaults.c \
-lib/ecore_x/xcb/ecore_xcb_private.h
-else
-lib_ecore_x_libecore_x_la_SOURCES += \
-lib/ecore_x/xlib/ecore_x.c \
-lib/ecore_x/xlib/ecore_x_dnd.c \
-lib/ecore_x/xlib/ecore_x_sync.c \
-lib/ecore_x/xlib/ecore_x_randr.c \
-lib/ecore_x/xlib/ecore_x_fixes.c \
-lib/ecore_x/xlib/ecore_x_damage.c \
-lib/ecore_x/xlib/ecore_x_composite.c \
-lib/ecore_x/xlib/ecore_x_error.c \
-lib/ecore_x/xlib/ecore_x_events.c \
-lib/ecore_x/xlib/ecore_x_icccm.c \
-lib/ecore_x/xlib/ecore_x_keygrab.c \
-lib/ecore_x/xlib/ecore_x_netwm.c \
-lib/ecore_x/xlib/ecore_x_mwm.c \
-lib/ecore_x/xlib/ecore_x_e.c \
-lib/ecore_x/xlib/ecore_x_selection.c \
-lib/ecore_x/xlib/ecore_x_window.c \
-lib/ecore_x/xlib/ecore_x_window_prop.c \
-lib/ecore_x/xlib/ecore_x_window_shape.c \
-lib/ecore_x/xlib/ecore_x_pixmap.c \
-lib/ecore_x/xlib/ecore_x_present.c \
-lib/ecore_x/xlib/ecore_x_gc.c \
-lib/ecore_x/xlib/ecore_x_xinerama.c \
-lib/ecore_x/xlib/ecore_x_screensaver.c \
-lib/ecore_x/xlib/ecore_x_dpms.c \
-lib/ecore_x/xlib/ecore_x_drawable.c \
-lib/ecore_x/xlib/ecore_x_cursor.c \
-lib/ecore_x/xlib/ecore_x_test.c \
-lib/ecore_x/xlib/ecore_x_atoms.c \
-lib/ecore_x/xlib/ecore_x_region.c \
-lib/ecore_x/xlib/ecore_x_image.c \
-lib/ecore_x/xlib/ecore_x_xi2.c \
-lib/ecore_x/xlib/ecore_x_vsync.c \
-lib/ecore_x/xlib/ecore_x_gesture.c \
-lib/ecore_x/xlib/ecore_x_private.h
-endif
+lib/ecore_x/ecore_x_atoms_decl.h \
+lib/ecore_x/ecore_x.c \
+lib/ecore_x/ecore_x_dnd.c \
+lib/ecore_x/ecore_x_sync.c \
+lib/ecore_x/ecore_x_randr.c \
+lib/ecore_x/ecore_x_fixes.c \
+lib/ecore_x/ecore_x_damage.c \
+lib/ecore_x/ecore_x_composite.c \
+lib/ecore_x/ecore_x_error.c \
+lib/ecore_x/ecore_x_events.c \
+lib/ecore_x/ecore_x_icccm.c \
+lib/ecore_x/ecore_x_keygrab.c \
+lib/ecore_x/ecore_x_netwm.c \
+lib/ecore_x/ecore_x_mwm.c \
+lib/ecore_x/ecore_x_e.c \
+lib/ecore_x/ecore_x_selection.c \
+lib/ecore_x/ecore_x_window.c \
+lib/ecore_x/ecore_x_window_prop.c \
+lib/ecore_x/ecore_x_window_shape.c \
+lib/ecore_x/ecore_x_pixmap.c \
+lib/ecore_x/ecore_x_present.c \
+lib/ecore_x/ecore_x_gc.c \
+lib/ecore_x/ecore_x_xinerama.c \
+lib/ecore_x/ecore_x_screensaver.c \
+lib/ecore_x/ecore_x_dpms.c \
+lib/ecore_x/ecore_x_drawable.c \
+lib/ecore_x/ecore_x_cursor.c \
+lib/ecore_x/ecore_x_test.c \
+lib/ecore_x/ecore_x_atoms.c \
+lib/ecore_x/ecore_x_region.c \
+lib/ecore_x/ecore_x_image.c \
+lib/ecore_x/ecore_x_xi2.c \
+lib/ecore_x/ecore_x_vsync.c \
+lib/ecore_x/ecore_x_gesture.c \
+lib/ecore_x/ecore_x_private.h
 
 lib_ecore_x_libecore_x_la_CPPFLAGS = \
 -I$(top_builddir)/src/lib/efl \
@@ -101,34 +54,9 @@ lib_ecore_x_libecore_x_la_CPPFLAGS = \
 -DPACKAGE_BIN_DIR=\"$(bindir)\" \
 -DPACKAGE_LIB_DIR=\"$(libdir)\" \
 -DPACKAGE_DATA_DIR=\"$(datadir)/ecore_x\"
-if HAVE_ECORE_X_XCB
-lib_ecore_x_libecore_x_la_CPPFLAGS += -I$(top_builddir)/src/lib/ecore_x/xcb
-endif
 
 lib_ecore_x_libecore_x_la_LIBADD = @ECORE_X_LIBS@ @USE_ECORE_CON_LIBS@
 lib_ecore_x_libecore_x_la_DEPENDENCIES = @ECORE_X_INTERNAL_LIBS@ @USE_ECORE_CON_INTERNAL_LIBS@
 lib_ecore_x_libecore_x_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
-if HAVE_ECORE_X_XCB
-MAINTAINERCLEANFILES += \
-$(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table.h \
-$(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table_h
-
-BUILT_SOURCES += \
-$(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table.h
-
-$(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table.h: $(KEYSYMDEFS) utils/ecore/makekeys$(EXEEXT)
-       $(MKDIR_P) $(top_builddir)/src/lib/ecore_x/xcb
-       $(top_builddir)/src/utils/ecore/makekeys $(KEYSYMDEFS) > $(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table_h
-       mv -f $(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table_h $(top_builddir)/src/lib/ecore_x/xcb/ecore_xcb_keysym_table.h
-endif
-
-### Utils
-
-noinst_PROGRAMS += utils/ecore/makekeys
-
-utils_ecore_makekeys_SOURCES = utils/ecore/makekeys.c
-utils_ecore_makekeys_CFLAGS = @ECORE_X_CFLAGS@
-
 endif
-EXTRA_DIST2 += utils/ecore/mkks.sh
index a7bb362..f690335 100644 (file)
@@ -894,7 +894,7 @@ modules_evas_engines_gl_generic_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
 modules_evas_engines_gl_generic_module_la_LIBTOOLFLAGS = --tag=disable-static
 
 if BUILD_ENGINE_GL_X11
-modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@ @evas_engine_gl_xcb_cflags@
+modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@
 endif
 if BUILD_ENGINE_WAYLAND_EGL
 modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_wayland_egl_cflags@
@@ -996,10 +996,8 @@ modules/evas/engines/gl_x11/evas_x_main.c \
 modules/evas/engines/gl_x11/evas_engine.h
 if EVAS_STATIC_BUILD_GL_X11
 lib_evas_libevas_la_SOURCES += $(GL_X11_SOURCES)
-lib_evas_libevas_la_CPPFLAGS += \
-@evas_engine_gl_xlib_cflags@ @evas_engine_gl_xcb_cflags@
-lib_evas_libevas_la_LIBADD += \
-@evas_engine_gl_xlib_libs@ @evas_engine_gl_xcb_libs@
+lib_evas_libevas_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@
+lib_evas_libevas_la_LIBADD += @evas_engine_gl_xlib_libs@
 else
 engineglx11pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH)
 engineglx11pkg_LTLIBRARIES = modules/evas/engines/gl_x11/module.la
@@ -1014,12 +1012,10 @@ modules_evas_engines_gl_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
 -I$(top_srcdir)/src/lib/evas/include \
 -I$(top_srcdir)/src/lib/evas/cserve2 \
 @EVAS_CFLAGS@ \
-@evas_engine_gl_xlib_cflags@ \
-@evas_engine_gl_xcb_cflags@
+@evas_engine_gl_xlib_cflags@
 modules_evas_engines_gl_x11_module_la_LIBADD = \
 @USE_EVAS_LIBS@ \
-@evas_engine_gl_xlib_libs@ \
-@evas_engine_gl_xcb_libs@
+@evas_engine_gl_xlib_libs@
 modules_evas_engines_gl_x11_module_la_DEPENDENCIES = \
 @USE_EVAS_INTERNAL_LIBS@
 modules_evas_engines_gl_x11_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
@@ -1169,22 +1165,6 @@ modules/evas/engines/software_x11/evas_xlib_dri_image.h
 SOFTWARE_X11_CPPFLAGS += @evas_engine_software_xlib_cflags@
 SOFTWARE_X11_LIBADD += @evas_engine_software_xlib_libs@
 endif
-if BUILD_ENGINE_SOFTWARE_XCB
-SOFTWARE_X11_SOURCES += \
-modules/evas/engines/software_x11/evas_xcb_xdefaults.c \
-modules/evas/engines/software_x11/evas_xcb_outbuf.c \
-modules/evas/engines/software_x11/evas_xcb_buffer.c \
-modules/evas/engines/software_x11/evas_xcb_color.c \
-modules/evas/engines/software_x11/evas_xcb_main.c \
-modules/evas/engines/software_x11/evas_xcb_image.c \
-modules/evas/engines/software_x11/evas_xcb_outbuf.h \
-modules/evas/engines/software_x11/evas_xcb_buffer.h \
-modules/evas/engines/software_x11/evas_xcb_color.h \
-modules/evas/engines/software_x11/evas_xcb_xdefaults.h \
-modules/evas/engines/software_x11/evas_xcb_image.h
-SOFTWARE_X11_CPPFLAGS += @evas_engine_software_xcb_cflags@
-SOFTWARE_X11_LIBADD += @evas_engine_software_xcb_libs@
-endif
 if EVAS_STATIC_BUILD_SOFTWARE_X11
 lib_evas_libevas_la_SOURCES += $(SOFTWARE_X11_SOURCES)
 lib_evas_libevas_la_CPPFLAGS += $(SOFTWARE_X11_CPPFLAGS)
index e504fc8..e669422 100644 (file)
@@ -111,8 +111,8 @@ typedef enum _Ecore_Evas_Engine_Type
    ECORE_EVAS_ENGINE_SOFTWARE_XLIB,
    ECORE_EVAS_ENGINE_XRENDER_X11,
    ECORE_EVAS_ENGINE_OPENGL_X11,
-   ECORE_EVAS_ENGINE_SOFTWARE_XCB,
-   ECORE_EVAS_ENGINE_XRENDER_XCB,
+   ECORE_EVAS_ENGINE_SOFTWARE_XCB, /* @deprecated */
+   ECORE_EVAS_ENGINE_XRENDER_XCB, /* @deprecated */
    ECORE_EVAS_ENGINE_SOFTWARE_GDI,
    ECORE_EVAS_ENGINE_SOFTWARE_DDRAW,
    ECORE_EVAS_ENGINE_DIRECT3D,
index cc7f02f..5a722a6 100644 (file)
@@ -261,13 +261,9 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
 #else
         return EINA_FALSE;
 #endif
-      case ECORE_EVAS_ENGINE_SOFTWARE_XCB:
-#ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
-        return EINA_TRUE;
-#else
+      case ECORE_EVAS_ENGINE_SOFTWARE_XCB: /* @deprecated */
         return EINA_FALSE;
-#endif
-      case ECORE_EVAS_ENGINE_XRENDER_XCB:
+      case ECORE_EVAS_ENGINE_XRENDER_XCB: /* @deprecated */
         return EINA_FALSE;
       case ECORE_EVAS_ENGINE_SOFTWARE_GDI:
 #ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI
index 320d035..a587ee9 100644 (file)
@@ -264,10 +264,6 @@ _ecore_evas_available_engines_get(void)
 #endif
 #ifdef BUILD_ECORE_EVAS_SOFTWARE_XLIB
                             ADDENG("software_x11");
-#else
-# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
-                            ADDENG("software_x11");
-# endif
 #endif
                          }
                        else if (!strcmp(name, "buffer"))
index 7337ae2..e732fb9 100644 (file)
@@ -72,8 +72,8 @@ EAPI extern Ecore_X_Version *ecore_x_version;
  * @li @ref Ecore_X_Window_Parent_Group
  * @li @ref Ecore_X_Window_Shape
  *
- * When using the XLib backend, setting the ECORE_X_SYNC environment variable
- * will cause X calls to be run synchronously for easier debugging.
+ * The ECORE_X_SYNC environment variable will cause X calls to be run
+ * synchronously for easier debugging.
  */
 
 typedef unsigned int   Ecore_X_ID;
@@ -89,11 +89,7 @@ typedef struct _Ecore_X_Icon
 #endif // ifndef _ECORE_X_WINDOW_PREDEF
 typedef void          *Ecore_X_Visual;
 typedef Ecore_X_ID     Ecore_X_Drawable;
-#ifdef HAVE_ECORE_X_XCB
-typedef Ecore_X_ID     Ecore_X_GC;
-#else // ifdef HAVE_ECORE_X_XCB
 typedef void          *Ecore_X_GC;
-#endif /* HAVE_ECORE_X_XCB */
 typedef Ecore_X_ID     Ecore_X_Colormap;
 typedef Ecore_X_ID     Ecore_X_Time;
 typedef Ecore_X_ID     Ecore_X_Cursor;
@@ -1118,7 +1114,7 @@ struct Ecore_X_Event_Present_Idle
 }; /**< @since 1.9 */
 
 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, will be XEvent.
                                         @warning avoid using it.
                                     */
 EAPI extern int ECORE_X_EVENT_MOUSE_IN;
similarity index 99%
rename from src/lib/ecore_x/xlib/ecore_x_randr.c
rename to src/lib/ecore_x/ecore_x_randr.c
index 03da850..f2288cc 100644 (file)
@@ -1966,8 +1966,6 @@ ecore_x_randr_crtc_info_free(Ecore_X_Randr_Crtc_Info *info)
  * @param mode The mode added to the output.
  * @return @c EINA_FALSE if output or mode equal Ecore_X_Randr_None, else
  * @c EINA_TRUE.
- * Additionally, if xcb backend is used, the success of the addition is
- * reported back directly.
  * @since 1.2.0
  */
 EAPI Eina_Bool 
diff --git a/src/lib/ecore_x/xcb/ecore_xcb.c b/src/lib/ecore_x/xcb/ecore_xcb.c
deleted file mode 100644 (file)
index 9e08aef..0000000
+++ /dev/null
@@ -1,1605 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <X11/Xlib-xcb.h>
-#include <dlfcn.h>
-
-/* local function prototypes */
-static int _ecore_xcb_shutdown(Eina_Bool close_display);
-static Eina_Bool _ecore_xcb_fd_handle(void *data, Ecore_Fd_Handler *hdlr EINA_UNUSED);
-static Eina_Bool _ecore_xcb_fd_handle_buff(void *data, Ecore_Fd_Handler *hdlr EINA_UNUSED);
-static Eina_Bool _ecore_xcb_idle_enter(void *data EINA_UNUSED);
-
-/* local variables */
-static int _ecore_xcb_init_count = 0;
-static int _ecore_xcb_grab_count = 0;
-static Ecore_Fd_Handler *_ecore_xcb_fd_handler = NULL;
-static xcb_generic_event_t *_ecore_xcb_event_buffered = NULL;
-static Ecore_Idle_Enterer *_ecore_xcb_idle_enterer = NULL;
-
-static Ecore_X_Version _version = { VMAJ, VMIN, VMIC, VREV };
-EAPI Ecore_X_Version *ecore_x_version = &_version;
-
-/* external variables */
-int _ecore_xcb_log_dom = -1;
-Ecore_X_Display *_ecore_xcb_display = NULL;
-Ecore_X_Connection *_ecore_xcb_conn = NULL;
-Ecore_X_Screen *_ecore_xcb_screen = NULL;
-Ecore_X_Atom _ecore_xcb_atoms_wm_protocol[ECORE_X_WM_PROTOCOL_NUM];
-double _ecore_xcb_double_click_time = 0.25;
-
-/**
- * @defgroup Ecore_X_Init_Group X Library Init and Shutdown Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that start and shut down the Ecore X Library.
- */
-
-static int
-_ecore_x_init(const char *name, Ecore_X_Display *display)
-{
-   char *gl = NULL;
-   uint32_t mask, list[1];
-
-   /* check if we have initialized already */
-   if (++_ecore_xcb_init_count != 1)
-     return _ecore_xcb_init_count;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   /* try to initialize eina */
-   if (!eina_init()) return --_ecore_xcb_init_count;
-
-   /* setup ecore_xcb log domain */
-   _ecore_xcb_log_dom =
-     eina_log_domain_register("ecore_x", ECORE_XCB_DEFAULT_LOG_COLOR);
-   if (_ecore_xcb_log_dom < 0)
-     {
-        EINA_LOG_ERR("Cannot create Ecore Xcb log domain");
-        eina_shutdown();
-        return --_ecore_xcb_init_count;
-     }
-
-   /* try to initialize ecore */
-   if (!ecore_init())
-     {
-        /* unregister log domain */
-         eina_log_domain_unregister(_ecore_xcb_log_dom);
-         _ecore_xcb_log_dom = -1;
-         eina_shutdown();
-         return --_ecore_xcb_init_count;
-     }
-
-   /* try to initialize ecore_event */
-   if (!ecore_event_init())
-     {
-        /* unregister log domain */
-         eina_log_domain_unregister(_ecore_xcb_log_dom);
-         _ecore_xcb_log_dom = -1;
-         ecore_shutdown();
-         eina_shutdown();
-         return --_ecore_xcb_init_count;
-     }
-
-   /* NB: XLib has XInitThreads */
-
-   /* check for env var which says we are not going to use GL @ all
-    *
-    * NB: This is done because if someone wants a 'pure' xcb implementation
-    * of ecore_x, all they need do is export this variable in the environment
-    * and ecore_x will not use xlib stuff at all.
-    *
-    * The upside is you can get pure xcb-based ecore_x (w/ all the speed), but
-    * there is a down-side here in that you cannot get OpenGL without XLib :(
-    */
-   if ((gl = getenv("ECORE_X_NO_XLIB")))
-     {
-        /* we found the env var that says 'Yes, we are not ever gonna try
-         * OpenGL so it is safe to not use XLib at all' */
-
-        /* try to connect to the display server */
-        _ecore_xcb_conn = xcb_connect(name, NULL);
-     }
-   else
-     {
-        /* env var was not specified, so we will assume that the user
-         * may want opengl @ some point. connect this way for opengl to work */
-        void *libxcb, *libxlib;
-        Display *(*_real_display)(const char *display);
-        xcb_connection_t *(*_real_connection)(Display * dpy);
-        void (*_real_queue)(Display *dpy, enum XEventQueueOwner owner);
-        int (*_real_close)(Display *dpy);
-#ifdef EVAS_FRAME_QUEUING
-        Status (*_real_threads)(void);
-#endif
-
-        /* want to dlopen here to avoid actual library linkage */
-        libxlib = dlopen("libX11.so", (RTLD_LAZY | RTLD_GLOBAL));
-        if (!libxlib)
-          libxlib = dlopen("libX11.so.6", (RTLD_LAZY | RTLD_GLOBAL));
-        if (!libxlib)
-          libxlib = dlopen("libX11.so.6.3.0", (RTLD_LAZY | RTLD_GLOBAL));
-        if (!libxlib)
-          {
-             ERR("Could not dlsym to libX11");
-             /* unregister log domain */
-             eina_log_domain_unregister(_ecore_xcb_log_dom);
-             _ecore_xcb_log_dom = -1;
-             ecore_event_shutdown();
-             ecore_shutdown();
-             eina_shutdown();
-             return --_ecore_xcb_init_count;
-          }
-
-        libxcb = dlopen("libX11-xcb.so", (RTLD_LAZY | RTLD_GLOBAL));
-        if (!libxcb)
-          libxcb = dlopen("libX11-xcb.so.1", (RTLD_LAZY | RTLD_GLOBAL));
-        if (!libxcb)
-          libxcb = dlopen("libX11-xcb.so.1.0.0", (RTLD_LAZY | RTLD_GLOBAL));
-        if (!libxcb)
-          {
-             ERR("Could not dlsym to libX11-xcb");
-             /* unregister log domain */
-             eina_log_domain_unregister(_ecore_xcb_log_dom);
-             _ecore_xcb_log_dom = -1;
-             ecore_event_shutdown();
-             ecore_shutdown();
-             eina_shutdown();
-             return --_ecore_xcb_init_count;
-          }
-
-        _real_display = dlsym(libxlib, "XOpenDisplay");
-        _real_close = dlsym(libxlib, "XCloseDisplay");
-        _real_connection = dlsym(libxcb, "XGetXCBConnection");
-        _real_queue = dlsym(libxcb, "XSetEventQueueOwner");
-#ifdef EVAS_FRAME_QUEUING
-        _real_threads = dlsym(libxlib, "XInitThreads");
-#endif
-
-        if (_real_display)
-          {
-#ifdef EVAS_FRAME_QUEUING
-             if (_real_threads) _real_threads();
-#endif
-             _ecore_xcb_display = display ? display : _real_display(name);
-             if (!_ecore_xcb_display)
-               {
-                  ERR("Could not open Display via XLib");
-                  /* unregister log domain */
-                  eina_log_domain_unregister(_ecore_xcb_log_dom);
-                  _ecore_xcb_log_dom = -1;
-                  ecore_event_shutdown();
-                  ecore_shutdown();
-                  eina_shutdown();
-                  return --_ecore_xcb_init_count;
-               }
-             if (_real_connection)
-               _ecore_xcb_conn = _real_connection(_ecore_xcb_display);
-             if (!_ecore_xcb_conn)
-               {
-                  ERR("Could not get XCB Connection from XLib");
-
-                  if (_real_close) _real_close(_ecore_xcb_display);
-
-                  /* unregister log domain */
-                  eina_log_domain_unregister(_ecore_xcb_log_dom);
-                  _ecore_xcb_log_dom = -1;
-                  ecore_event_shutdown();
-                  ecore_shutdown();
-                  eina_shutdown();
-                  return --_ecore_xcb_init_count;
-               }
-             if (_real_queue)
-               _real_queue(_ecore_xcb_display, XCBOwnsEventQueue);
-          }
-     }
-
-   if (xcb_connection_has_error(_ecore_xcb_conn))
-     {
-        CRI("XCB Connection has error");
-        eina_log_domain_unregister(_ecore_xcb_log_dom);
-        _ecore_xcb_log_dom = -1;
-        ecore_event_shutdown();
-        ecore_shutdown();
-        eina_shutdown();
-        return --_ecore_xcb_init_count;
-     }
-
-   /* grab the default screen */
-   _ecore_xcb_screen =
-     xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).data;
-
-   /* NB: This method of init/finalize extensions first, then atoms
-    * Does end up being 2 round trips to X, BUT if we do extensions init then
-    * atoms init first, and call the 'finalize' functions later, we end up
-    * being slower, so it's a trade-off. This current method clocks in
-    * around 0.003 for fetching atoms VS 0.010 for init both then finalize */
-
-   /* prefetch extension data */
-   _ecore_xcb_extensions_init();
-
-   /* finalize extensions */
-   _ecore_xcb_extensions_finalize();
-
-   /* set keyboard autorepeat */
-   mask = XCB_KB_AUTO_REPEAT_MODE;
-   list[0] = XCB_AUTO_REPEAT_MODE_ON;
-   xcb_change_keyboard_control(_ecore_xcb_conn, mask, list);
-
-   /* setup xcb events */
-   _ecore_xcb_events_init();
-
-   /* setup xcb keymasks */
-   _ecore_xcb_keymap_init();
-
-   /* finalize xcb keymasks */
-   _ecore_xcb_keymap_finalize();
-
-   /* prefetch atoms */
-   _ecore_xcb_atoms_init();
-
-   /* finalize atoms */
-   _ecore_xcb_atoms_finalize();
-
-   /* icccm_init: dummy function */
-   ecore_x_icccm_init();
-
-   /* setup netwm */
-   ecore_x_netwm_init();
-
-   /* old e hints init: dummy function */
-   ecore_x_e_init();
-
-   _ecore_xcb_atoms_wm_protocol[ECORE_X_WM_PROTOCOL_DELETE_REQUEST] =
-     ECORE_X_ATOM_WM_DELETE_WINDOW;
-   _ecore_xcb_atoms_wm_protocol[ECORE_X_WM_PROTOCOL_TAKE_FOCUS] =
-     ECORE_X_ATOM_WM_TAKE_FOCUS;
-   _ecore_xcb_atoms_wm_protocol[ECORE_X_NET_WM_PROTOCOL_PING] =
-     ECORE_X_ATOM_NET_WM_PING;
-   _ecore_xcb_atoms_wm_protocol[ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST] =
-     ECORE_X_ATOM_NET_WM_SYNC_REQUEST;
-
-   /* setup selection */
-   _ecore_xcb_selection_init();
-
-   /* setup dnd */
-   _ecore_xcb_dnd_init();
-
-   _ecore_xcb_idle_enterer =
-     ecore_idle_enterer_add(_ecore_xcb_idle_enter, NULL);
-
-   /* setup ecore fd handler */
-   _ecore_xcb_fd_handler =
-     ecore_main_fd_handler_add(xcb_get_file_descriptor(_ecore_xcb_conn),
-                               ECORE_FD_READ, _ecore_xcb_fd_handle,
-                               _ecore_xcb_conn, _ecore_xcb_fd_handle_buff,
-                               _ecore_xcb_conn);
-
-   if (!_ecore_xcb_fd_handler)
-     return _ecore_xcb_shutdown(EINA_TRUE);
-
-   return _ecore_xcb_init_count;
-}
-
-/**
- * Initialize the X display connection to the given display.
- *
- * @param   name Display target name.  If @c NULL, the default display is
- *               assumed.
- * @return  The number of times the library has been initialized without
- *          being shut down.  0 is returned if an error occurs.
- * @ingroup Ecore_X_Init_Group
- */
-EAPI int
-ecore_x_init(const char *name)
-{
-   return _ecore_x_init(name, NULL);
-}
-
-EAPI int
-ecore_x_init_from_display(Ecore_X_Display *display)
-{
-   EINA_SAFETY_ON_NULL_RETURN_VAL(display, 0);
-   return _ecore_x_init(NULL, display);
-}
-
-/**
- * Shuts down the Ecore X library.
- *
- * In shutting down the library, the X display connection is terminated
- * and any event handlers for it are removed.
- *
- * @return  The number of times the library has been initialized without
- *          being shut down.
- * @ingroup Ecore_X_Init_Group
- */
-EAPI int
-ecore_x_shutdown(void)
-{
-   return _ecore_xcb_shutdown(EINA_TRUE);
-}
-
-/**
- * Shuts down the Ecore X library.
- *
- * As ecore_x_shutdown, except do not close Display, only connection.
- *
- * @return The number of times the library has been initialized without
- * being shut down. 0 is returned if an error occurs.
- * @ingroup Ecore_X_Init_Group
- */
-EAPI int
-ecore_x_disconnect(void)
-{
-   return _ecore_xcb_shutdown(EINA_FALSE);
-}
-
-/**
- * @defgroup Ecore_X_Flush_Group X Synchronization Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that ensure that all commands that have been issued by the
- * Ecore X library have been sent to the server.
- */
-
-/**
- * Sends all X commands in the X Display buffer.
- * @ingroup Ecore_X_Flush_Group
- */
-EAPI void
-ecore_x_flush(void)
-{
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   CHECK_XCB_CONN;
-   xcb_flush(_ecore_xcb_conn);
-}
-
-/**
- * Retrieves the Ecore_X_Screen handle used for the current X connection.
- * @return  The current default screen.
- * @ingroup Ecore_X_Display_Attr_Group
- */
-EAPI Ecore_X_Screen *
-ecore_x_default_screen_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return (Ecore_X_Screen *)_ecore_xcb_screen;
-}
-
-EAPI Ecore_X_Connection *
-ecore_x_connection_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   CHECK_XCB_CONN;
-   return (Ecore_X_Connection *)_ecore_xcb_conn;
-}
-
-/**
- * Return the last event time
- */
-EAPI Ecore_X_Time
-ecore_x_current_time_get(void)
-{
-   return _ecore_xcb_events_last_time_get();
-}
-
-/**
- * Flushes the command buffer and waits until all requests have been
- * processed by the server.
- * @ingroup Ecore_X_Flush_Group
- */
-EAPI void
-ecore_x_sync(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   CHECK_XCB_CONN;
-   free(xcb_get_input_focus_reply(_ecore_xcb_conn,
-                                  xcb_get_input_focus_unchecked(_ecore_xcb_conn),
-                                  NULL));
-}
-
-EAPI void
-ecore_x_grab(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   CHECK_XCB_CONN;
-   _ecore_xcb_grab_count++;
-   if (_ecore_xcb_grab_count == 1)
-     xcb_grab_server(_ecore_xcb_conn);
-}
-
-EAPI void
-ecore_x_ungrab(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   CHECK_XCB_CONN;
-   _ecore_xcb_grab_count--;
-   if (_ecore_xcb_grab_count < 0) _ecore_xcb_grab_count = 0;
-   if (_ecore_xcb_grab_count == 0)
-     xcb_ungrab_server(_ecore_xcb_conn);
-}
-
-/**
- * Send client message with given type and format 32.
- *
- * @param win     The window the message is sent to.
- * @param type    The client message type.
- * @param mask    The mask of the message to be sent.
- * @param d0      The client message data item 1
- * @param d1      The client message data item 2
- * @param d2      The client message data item 3
- * @param d3      The client message data item 4
- * @param d4      The client message data item 5
- *
- * @return @c EINA_TRUE on success @c EINA_FALSE otherwise.
- */
-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)
-{
-   xcb_client_message_event_t ev;
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = type;
-   ev.data.data32[0] = (uint32_t)d0;
-   ev.data.data32[1] = (uint32_t)d1;
-   ev.data.data32[2] = (uint32_t)d2;
-   ev.data.data32[3] = (uint32_t)d3;
-   ev.data.data32[4] = (uint32_t)d4;
-
-   cookie = xcb_send_event(_ecore_xcb_conn, 0, win, mask, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        DBG("Problem Sending Event");
-        DBG("\tType: %d", type);
-        DBG("\tWin: %d", win);
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-/**
- * Send client message with given type and format 8.
- *
- * @param win     The window the message is sent to.
- * @param type    The client message type.
- * @param data    Data to be sent.
- * @param len     Number of data bytes, max @c 20.
- *
- * @return @c EINA_TRUE on success @c EINA_FALSE otherwise.
- */
-EAPI Eina_Bool
-ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type,
-                             const void *data, int len)
-{
-   xcb_client_message_event_t ev;
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 8;
-   ev.window = win;
-   ev.type = type;
-   if (len > 20)
-     len = 20;
-   if (data && len > 0)
-     memcpy(ev.data.data8, data, len);
-   if (len < 20)
-     memset(ev.data.data8 + len, 0, 20 - len);
-
-   cookie = xcb_send_event(_ecore_xcb_conn, 0, win,
-                           XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        DBG("Problem Sending Event");
-        DBG("\tType: %d", type);
-        DBG("\tWin: %d", win);
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_mouse_down_send(Ecore_X_Window win, int x, int y, int b)
-{
-   xcb_translate_coordinates_cookie_t cookie;
-   xcb_translate_coordinates_reply_t *reply;
-   xcb_button_press_event_t ev;
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-   Ecore_X_Window root = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ecore_x_window_root_get(win);
-   cookie = xcb_translate_coordinates(_ecore_xcb_conn, win, root, x, y);
-   reply = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   memset(&ev, 0, sizeof(xcb_button_press_event_t));
-
-   ev.response_type = XCB_BUTTON_PRESS;
-   ev.event = win;
-   ev.child = win;
-   ev.root = root;
-   ev.event_x = x;
-   ev.event_y = y;
-   ev.same_screen = 1;
-   ev.state = 1 << b;
-   ev.detail = b; // xcb uses detail for button
-   ev.root_x = reply->dst_x;
-   ev.root_y = reply->dst_y;
-   ev.time = ecore_x_current_time_get();
-   free(reply);
-
-   vcookie = xcb_send_event(_ecore_xcb_conn, 1, win,
-                            XCB_EVENT_MASK_BUTTON_PRESS, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_mouse_up_send(Ecore_X_Window win, int x, int y, int b)
-{
-   xcb_translate_coordinates_cookie_t cookie;
-   xcb_translate_coordinates_reply_t *reply;
-   xcb_button_release_event_t ev;
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-   Ecore_X_Window root = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ecore_x_window_root_get(win);
-   cookie = xcb_translate_coordinates(_ecore_xcb_conn, win, root, x, y);
-   reply = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   memset(&ev, 0, sizeof(xcb_button_release_event_t));
-
-   ev.response_type = XCB_BUTTON_RELEASE;
-   ev.event = win;
-   ev.child = win;
-   ev.root = root;
-   ev.event_x = x;
-   ev.event_y = y;
-   ev.same_screen = 1;
-   ev.state = 0;
-   ev.root_x = reply->dst_x;
-   ev.root_y = reply->dst_y;
-   ev.detail = b; // xcb uses detail for button
-   ev.time = ecore_x_current_time_get();
-   free(reply);
-
-   vcookie = xcb_send_event(_ecore_xcb_conn, 1, win,
-                            XCB_EVENT_MASK_BUTTON_RELEASE, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_mouse_move_send(Ecore_X_Window win, int x, int y)
-{
-   xcb_translate_coordinates_cookie_t cookie;
-   xcb_translate_coordinates_reply_t *reply;
-   xcb_motion_notify_event_t ev;
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-   Ecore_X_Window root = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ecore_x_window_root_get(win);
-   cookie = xcb_translate_coordinates(_ecore_xcb_conn, win, root, x, y);
-   reply = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   memset(&ev, 0, sizeof(xcb_motion_notify_event_t));
-
-   ev.response_type = XCB_MOTION_NOTIFY;
-   ev.event = win;
-   ev.child = win;
-   ev.root = root;
-   ev.event_x = x;
-   ev.event_y = y;
-   ev.same_screen = 1;
-   ev.state = 0;
-   ev.detail = 0; // xcb uses 'detail' for is_hint
-   ev.root_x = reply->dst_x;
-   ev.root_y = reply->dst_y;
-   ev.time = ecore_x_current_time_get();
-   free(reply);
-
-   vcookie = xcb_send_event(_ecore_xcb_conn, 1, win,
-                            XCB_EVENT_MASK_POINTER_MOTION, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_mouse_in_send(Ecore_X_Window win, int x, int y)
-{
-   xcb_translate_coordinates_cookie_t cookie;
-   xcb_translate_coordinates_reply_t *reply;
-   xcb_enter_notify_event_t ev;
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-   Ecore_X_Window root = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ecore_x_window_root_get(win);
-   cookie = xcb_translate_coordinates(_ecore_xcb_conn, win, root, x, y);
-   reply = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   memset(&ev, 0, sizeof(xcb_enter_notify_event_t));
-
-   ev.response_type = XCB_ENTER_NOTIFY;
-   ev.event = win;
-   ev.child = win;
-   ev.root = root;
-   ev.event_x = x;
-   ev.event_y = y;
-   ev.same_screen_focus = 1;
-   ev.mode = XCB_NOTIFY_MODE_NORMAL;
-   ev.detail = XCB_NOTIFY_DETAIL_NONLINEAR;
-   /* ev.focus = 0; */
-   ev.state = 0;
-   ev.root_x = reply->dst_x;
-   ev.root_y = reply->dst_y;
-   ev.time = ecore_x_current_time_get();
-   free(reply);
-
-   vcookie = xcb_send_event(_ecore_xcb_conn, 1, win,
-                            XCB_EVENT_MASK_ENTER_WINDOW, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_mouse_out_send(Ecore_X_Window win, int x, int y)
-{
-   xcb_translate_coordinates_cookie_t cookie;
-   xcb_translate_coordinates_reply_t *reply;
-   xcb_leave_notify_event_t ev;
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-   Ecore_X_Window root = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ecore_x_window_root_get(win);
-   cookie = xcb_translate_coordinates(_ecore_xcb_conn, win, root, x, y);
-   reply = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   memset(&ev, 0, sizeof(xcb_leave_notify_event_t));
-
-   ev.response_type = XCB_LEAVE_NOTIFY;
-   ev.event = win;
-   ev.child = win;
-   ev.root = root;
-   ev.event_x = x;
-   ev.event_y = y;
-   ev.same_screen_focus = 1;
-   ev.mode = XCB_NOTIFY_MODE_NORMAL;
-   ev.detail = XCB_NOTIFY_DETAIL_NONLINEAR;
-   /* ev.focus = 0; */
-   ev.state = 0;
-   ev.root_x = reply->dst_x;
-   ev.root_y = reply->dst_y;
-   ev.time = ecore_x_current_time_get();
-   free(reply);
-
-   vcookie = xcb_send_event(_ecore_xcb_conn, 1, win,
-                            XCB_EVENT_MASK_LEAVE_WINDOW, (const char *)&ev);
-
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_keyboard_grab(Ecore_X_Window win)
-{
-   xcb_grab_keyboard_cookie_t cookie;
-   xcb_grab_keyboard_reply_t *reply;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie =
-     xcb_grab_keyboard_unchecked(_ecore_xcb_conn, 0, win, XCB_CURRENT_TIME,
-                                 XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
-   reply = xcb_grab_keyboard_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-   free(reply);
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_keyboard_ungrab(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_ungrab_keyboard(_ecore_xcb_conn, XCB_CURRENT_TIME);
-}
-
-EAPI void
-ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y)
-{
-   xcb_query_pointer_cookie_t cookie;
-   xcb_query_pointer_reply_t *reply;
-
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-//   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (x) *x = -1;
-   if (y) *y = -1;
-
-   cookie = xcb_query_pointer_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_query_pointer_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   if (x) *x = reply->win_x;
-   if (y) *y = reply->win_y;
-   free(reply);
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_control_set(int accel_num, int accel_denom, int threshold)
-{
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   vcookie =
-     xcb_change_pointer_control_checked(_ecore_xcb_conn,
-                                        accel_num, accel_denom, threshold, 
-                                        1, 1);
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_control_get(int *accel_num, int *accel_denom, int *threshold)
-{
-   xcb_get_pointer_control_cookie_t cookie;
-   xcb_get_pointer_control_reply_t *reply;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (accel_num) *accel_num = 0;
-   if (accel_denom) *accel_denom = 0;
-   if (threshold) *threshold = 0;
-
-   cookie = xcb_get_pointer_control_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_pointer_control_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   if (accel_num) *accel_num = reply->acceleration_numerator;
-   if (accel_denom) *accel_denom = reply->acceleration_denominator;
-   if (threshold) *threshold = reply->threshold;
-   free(reply);
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_mapping_set(unsigned char *map, int nmap)
-{
-   xcb_set_pointer_mapping_cookie_t cookie;
-   xcb_set_pointer_mapping_reply_t *reply;
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_set_pointer_mapping_unchecked(_ecore_xcb_conn, nmap, map);
-   reply = xcb_set_pointer_mapping_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   if (reply->status == XCB_MAPPING_STATUS_SUCCESS)
-     ret = EINA_TRUE;
-
-   free(reply);
-   return ret;
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_mapping_get(unsigned char *map, int nmap)
-{
-   xcb_get_pointer_mapping_cookie_t cookie;
-   xcb_get_pointer_mapping_reply_t *reply;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (map) *map = 0;
-   nmap = 0;
-
-   cookie = xcb_get_pointer_mapping_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_pointer_mapping_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   nmap = xcb_get_pointer_mapping_map_length(reply);
-   if (nmap <= 0)
-     {
-        free(reply);
-        return EINA_FALSE;
-     }
-
-   if (map)
-     {
-        uint8_t *tmp;
-        int i = 0;
-
-        tmp = xcb_get_pointer_mapping_map(reply);
-        for (i = 0; i < nmap; i++)
-          map[i] = tmp[i];
-     }
-
-   free(reply);
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_grab(Ecore_X_Window win)
-{
-   xcb_grab_pointer_cookie_t cookie;
-   xcb_grab_pointer_reply_t *reply;
-   uint16_t mask;
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   mask = (XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE |
-           XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-           XCB_EVENT_MASK_POINTER_MOTION);
-
-   cookie = xcb_grab_pointer_unchecked(_ecore_xcb_conn, 0, win, mask,
-                                       XCB_GRAB_MODE_ASYNC,
-                                       XCB_GRAB_MODE_ASYNC,
-                                       XCB_NONE, XCB_NONE, XCB_CURRENT_TIME);
-   reply = xcb_grab_pointer_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   ret = (reply->status == XCB_GRAB_STATUS_SUCCESS) ? EINA_TRUE : EINA_FALSE;
-
-   free(reply);
-   return ret;
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_confine_grab(Ecore_X_Window win)
-{
-   xcb_grab_pointer_cookie_t cookie;
-   xcb_grab_pointer_reply_t *reply;
-   uint16_t mask;
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   mask = (XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE |
-           XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-           XCB_EVENT_MASK_POINTER_MOTION);
-
-   cookie = xcb_grab_pointer_unchecked(_ecore_xcb_conn, 0, win, mask,
-                                       XCB_GRAB_MODE_ASYNC,
-                                       XCB_GRAB_MODE_ASYNC,
-                                       win, XCB_NONE, XCB_CURRENT_TIME);
-   reply = xcb_grab_pointer_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   ret = (reply->status == XCB_GRAB_STATUS_SUCCESS) ? EINA_TRUE : EINA_FALSE;
-
-   free(reply);
-   return ret;
-}
-
-EAPI void
-ecore_x_pointer_ungrab(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_ungrab_pointer(_ecore_xcb_conn, XCB_CURRENT_TIME);
-}
-
-EAPI Eina_Bool
-ecore_x_pointer_warp(Ecore_X_Window win, int x, int y)
-{
-   xcb_void_cookie_t vcookie;
-   xcb_generic_error_t *err;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   vcookie =
-     xcb_warp_pointer_checked(_ecore_xcb_conn, XCB_NONE, win, 0, 0, 0, 0, x, y);
-   err = xcb_request_check(_ecore_xcb_conn, vcookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-/**
- * Invoke the standard system beep to alert users
- *
- * @param percent The volume at which the bell rings. Must be in the range
- * [-100,+100]. If percent >= 0, the final volume will be:
- *       base - [(base * percent) / 100] + percent
- * Otherwise, it's calculated as:
- *       base + [(base * percent) / 100]
- * where @c base is the bell's base volume as set by XChangeKeyboardControl(3).
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
- */
-EAPI Eina_Bool
-ecore_x_bell(int percent)
-{
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-
-   CHECK_XCB_CONN;
-
-   // FIXME: Use unchecked version after development is ironed out
-   cookie = xcb_bell_checked(_ecore_xcb_conn, percent);
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_display_size_get(Ecore_X_Display *dsp EINA_UNUSED, int *w, int *h)
-{
-   xcb_screen_t *screen;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   /* grab the default screen */
-   screen = xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).data;
-   if (w) *w = screen->width_in_pixels;
-   if (h) *h = screen->height_in_pixels;
-}
-
-EAPI unsigned long
-ecore_x_display_black_pixel_get(Ecore_X_Display *dsp EINA_UNUSED)
-{
-   xcb_screen_t *screen;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   /* grab the default screen */
-   screen = xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).data;
-   return screen->black_pixel;
-}
-
-EAPI unsigned long
-ecore_x_display_white_pixel_get(Ecore_X_Display *dsp EINA_UNUSED)
-{
-   xcb_screen_t *screen;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   /* grab the default screen */
-   screen = xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).data;
-   return screen->white_pixel;
-}
-
-EAPI void
-ecore_x_pointer_last_xy_get(int *x, int *y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (x) *x = _ecore_xcb_event_last_root_x;
-   if (y) *y = _ecore_xcb_event_last_root_y;
-}
-
-EAPI void
-ecore_x_focus_reset(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_set_input_focus(_ecore_xcb_conn, XCB_INPUT_FOCUS_POINTER_ROOT,
-                       ((xcb_screen_t *)_ecore_xcb_screen)->root,
-                       XCB_CURRENT_TIME);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_events_allow_all(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_allow_events(_ecore_xcb_conn, XCB_ALLOW_ASYNC_BOTH, XCB_CURRENT_TIME);
-//   ecore_x_flush();
-}
-
-/**
- * Kill a specific client
- *
- * You can kill a specific client owning window @p win
- *
- * @param win Window of the client to be killed
- */
-EAPI void
-ecore_x_kill(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_kill_client(_ecore_xcb_conn, win);
-//   ecore_x_flush();
-}
-
-/**
- * Kill all clients with subwindows under a given window.
- *
- * You can kill all clients connected to the X server by using
- * @ref ecore_x_window_root_list to get a list of root windows, and
- * then passing each root window to this function.
- *
- * @param root The window whose children will be killed.
- */
-EAPI void
-ecore_x_killall(Ecore_X_Window root)
-{
-   int screens = 0, i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   ecore_x_grab();
-
-   screens = xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).rem;
-
-   /* Traverse window tree starting from root, and drag each
-    * before the firing squad */
-   for (i = 0; i < screens; ++i)
-     {
-        xcb_query_tree_cookie_t cookie;
-        xcb_query_tree_reply_t *reply;
-
-        cookie = xcb_query_tree_unchecked(_ecore_xcb_conn, root);
-        reply = xcb_query_tree_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             xcb_window_t *wins = NULL;
-             int tree_c_len, j = 0;
-
-             wins = xcb_query_tree_children(reply);
-             tree_c_len = xcb_query_tree_children_length(reply);
-             for (j = 0; j < tree_c_len; j++)
-               xcb_kill_client(_ecore_xcb_conn, wins[j]);
-             free(reply);
-          }
-     }
-
-   ecore_x_ungrab();
-   ecore_x_sync(); // needed
-}
-
-/**
- * Return the screen DPI
- *
- * This is a simplistic call to get DPI. It does not account for differing
- * DPI in the x amd y axes nor does it account for multihead or xinerama and
- * xrander where different parts of the screen may have differen DPI etc.
- *
- * @return the general screen DPI (dots/pixels per inch).
- */
-EAPI int
-ecore_x_dpi_get(void)
-{
-   uint16_t mw = 0, w = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   mw = ((xcb_screen_t *)_ecore_xcb_screen)->width_in_millimeters;
-   if (mw <= 0) return 75;
-   w = ((xcb_screen_t *)_ecore_xcb_screen)->width_in_pixels;
-   return (((w * 254) / mw) + 5) / 10;
-}
-
-/**
- * @defgroup Ecore_X_Display_Attr_Group X Display Attributes
- * @ingroup Ecore_X_Group
- *
- * Functions that set and retrieve X display attributes.
- */
-
-/**
- * Retrieves the Ecore_X_Display handle used for the current X connection.
- * @return  The current X display.
- * @ingroup Ecore_X_Display_Attr_Group
- */
-EAPI Ecore_X_Display *
-ecore_x_display_get(void)
-{
-   char *gl = NULL;
-
-   CHECK_XCB_CONN;
-
-   /* if we have the 'dont use xlib' env var, then we are not using
-    * XLib and thus cannot return a real XDisplay.
-    *
-    * NB: This may break EFL in some places and needs lots of testing !!! */
-   if ((gl = getenv("ECORE_X_NO_XLIB")))
-     return (Ecore_X_Display *)_ecore_xcb_conn;
-   else /* we can safely return an XDisplay var */
-     return (Ecore_X_Display *)_ecore_xcb_display;
-}
-
-/**
- * Retrieves the X display file descriptor.
- * @return  The current X display file descriptor.
- * @ingroup Ecore_X_Display_Attr_Group
- */
-EAPI int
-ecore_x_fd_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-   return xcb_get_file_descriptor(_ecore_xcb_conn);
-}
-
-EAPI void
-ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, int type, void *event),
-                                     void *data)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_window_grab_replay_func = func;
-   _ecore_xcb_window_grab_replay_data = data;
-}
-
-/**
- * Retrieves the size of an Ecore_X_Screen.
- * @param screen the handle to the screen to query.
- * @param w where to return the width. May be NULL. Returns 0 on errors.
- * @param h where to return the height. May be NULL. Returns 0 on errors.
- * @ingroup Ecore_X_Display_Attr_Group
- * @see ecore_x_default_screen_get()
- *
- * @since 1.1
- */
-EAPI void
-ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h)
-{
-   xcb_screen_t *s;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (w) *w = 0;
-   if (h) *h = 0;
-   if (!(s = (xcb_screen_t *)screen)) return;
-   if (w) *w = s->width_in_pixels;
-   if (h) *h = s->height_in_pixels;
-}
-
-/**
- * Retrieves the count of screens.
- *
- * @return  The count of screens.
- * @ingroup Ecore_X_Display_Attr_Group
- *
- * @since 1.1
- */
-EAPI int
-ecore_x_screen_count_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   return xcb_setup_roots_length(xcb_get_setup(_ecore_xcb_conn));
-}
-
-/**
- * Retrieves the index number of the given screen.
- *
- * @param screen The screen for which index will be gotten.
- * @return  The index number of the screen.
- * @ingroup Ecore_X_Display_Attr_Group
- *
- * @since 1.1
- */
-EAPI int
-ecore_x_screen_index_get(const Ecore_X_Screen *screen)
-{
-   xcb_screen_iterator_t iter;
-   int i = 0;
-
-   CHECK_XCB_CONN;
-
-   iter =
-     xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn));
-   for (; iter.rem; xcb_screen_next(&iter))
-     {
-        if (iter.data == (xcb_screen_t *)screen)
-          return i;
-        i++;
-     }
-
-   return 0;
-}
-
-/**
- * Retrieves the screen based on index number.
- *
- * @param idx The index that will be used to retrieve the screen.
- * @return  The Ecore_X_Screen at this index.
- * @ingroup Ecore_X_Display_Attr_Group
- *
- * @since 1.1
- */
-EAPI Ecore_X_Screen *
-ecore_x_screen_get(int idx)
-{
-   xcb_screen_iterator_t iter;
-   int i = 0;
-
-   CHECK_XCB_CONN;
-
-   iter =
-     xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn));
-   for (i = 0; iter.rem; xcb_screen_next(&iter), i++)
-     if (i == idx) return iter.data;
-
-   return NULL;
-}
-
-EAPI unsigned int
-ecore_x_visual_id_get(Ecore_X_Visual visual)
-{
-   return ((xcb_visualtype_t *)visual)->visual_id;
-}
-
-/**
- * Retrieve the default Visual.
- *
- * @param disp  The Display to get the Default Visual from
- * @param screen The Screen.
- *
- * @return The default visual.
- * @since 1.1.0
- */
-EAPI Ecore_X_Visual
-ecore_x_default_visual_get(Ecore_X_Display *disp EINA_UNUSED, Ecore_X_Screen *screen)
-{
-   xcb_screen_t *s;
-   xcb_depth_iterator_t diter;
-   xcb_visualtype_iterator_t viter;
-
-   CHECK_XCB_CONN;
-
-   s = (xcb_screen_t *)screen;
-   diter = xcb_screen_allowed_depths_iterator(s);
-   for (; diter.rem; xcb_depth_next(&diter))
-     {
-        viter = xcb_depth_visuals_iterator(diter.data);
-        for (; viter.rem; xcb_visualtype_next(&viter))
-          {
-             if (viter.data->visual_id == s->root_visual)
-               return viter.data;
-          }
-     }
-   return 0;
-}
-
-/**
- * Retrieve the default Colormap.
- *
- * @param disp  The Display to get the Default Colormap from
- * @param screen The Screen.
- *
- * @return The default colormap.
- * @since 1.1.0
- */
-EAPI Ecore_X_Colormap
-ecore_x_default_colormap_get(Ecore_X_Display *disp EINA_UNUSED, Ecore_X_Screen *screen)
-{
-   xcb_screen_t *s;
-
-   s = (xcb_screen_t *)screen;
-   return s->default_colormap;
-}
-
-/**
- * Retrieve the default depth.
- *
- * @param disp  The Display to get the Default Depth from
- * @param screen The Screen.
- *
- * @return The default depth.
- * @since 1.1.0
- */
-EAPI int
-ecore_x_default_depth_get(Ecore_X_Display *disp EINA_UNUSED, Ecore_X_Screen *screen)
-{
-   xcb_screen_t *s;
-
-   s = (xcb_screen_t *)screen;
-   return s->root_depth;
-}
-
-EAPI void
-ecore_x_xkb_select_group(int group EINA_UNUSED)
-{
-   // XXX: implement me */
-}
-
-/**
- * Sets the timeout for a double and triple clicks to be flagged.
- *
- * This sets the time between clicks before the double_click flag is
- * set in a button down event. If 3 clicks occur within double this
- * time, the triple_click flag is also set.
- *
- * @param   t The time in seconds
- * @ingroup Ecore_X_Display_Attr_Group
- */
-EAPI void
-ecore_x_double_click_time_set(double t)
-{
-   if (t < 0.0) t = 0.0;
-   _ecore_xcb_double_click_time = t;
-}
-
-/**
- * Retrieves the double and triple click flag timeout.
- *
- * See @ref ecore_x_double_click_time_set for more information.
- *
- * @return  The timeout for double clicks in seconds.
- * @ingroup Ecore_X_Display_Attr_Group
- */
-EAPI double
-ecore_x_double_click_time_get(void)
-{
-   return _ecore_xcb_double_click_time;
-}
-
-/* local function prototypes */
-static int
-_ecore_xcb_shutdown(Eina_Bool close_display)
-{
-   if (--_ecore_xcb_init_count != 0)
-     return _ecore_xcb_init_count;
-
-   if (!_ecore_xcb_conn)
-     return _ecore_xcb_init_count;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   ecore_idle_enterer_del(_ecore_xcb_idle_enterer);
-   _ecore_xcb_idle_enterer = NULL;
-
-   if (_ecore_xcb_fd_handler)
-     ecore_main_fd_handler_del(_ecore_xcb_fd_handler);
-
-   /* disconnect from display server */
-   if (close_display)
-     xcb_disconnect(_ecore_xcb_conn);
-   else
-     {
-        close(xcb_get_file_descriptor(_ecore_xcb_conn));
-        _ecore_xcb_conn = NULL;
-     }
-
-   /* shutdown events */
-   _ecore_xcb_events_shutdown();
-
-   /* shutdown input extension */
-   _ecore_xcb_input_shutdown();
-
-   /* shutdown gesture extension */
-   _ecore_xcb_gesture_shutdown();
-
-   /* shutdown selection */
-   _ecore_xcb_selection_shutdown();
-
-   /* shutdown dnd */
-   _ecore_xcb_dnd_shutdown();
-
-   /* shutdown netwm */
-   ecore_x_netwm_shutdown();
-
-   /* shutdown keymap */
-   _ecore_xcb_keymap_shutdown();
-
-   /* shutdown ecore_event */
-   ecore_event_shutdown();
-
-   /* shutdown ecore */
-   ecore_shutdown();
-
-   /* unregister log domain */
-   eina_log_domain_unregister(_ecore_xcb_log_dom);
-   _ecore_xcb_log_dom = -1;
-
-   /* shutdown eina */
-   eina_shutdown();
-
-   return _ecore_xcb_init_count;
-}
-
-static Eina_Bool
-_ecore_xcb_fd_handle(void *data, Ecore_Fd_Handler *hdlr EINA_UNUSED)
-{
-   xcb_connection_t *conn;
-   xcb_generic_event_t *ev = NULL;
-
-   conn = (xcb_connection_t *)data;
-
-   if (_ecore_xcb_event_buffered)
-     {
-        _ecore_xcb_events_handle(_ecore_xcb_event_buffered);
-        free(_ecore_xcb_event_buffered);
-        _ecore_xcb_event_buffered = NULL;
-     }
-
-//   xcb_flush(conn);
-
-   while ((ev = xcb_poll_for_event(conn)))
-     {
-        /* NB: Ecore Xlib uses filterevent for xim, but xcb does not support
-         * xim, so no need for it here */
-
-          /* check for errors first */
-           if (xcb_connection_has_error(conn))
-             {
-                xcb_generic_error_t *err;
-
-                err = (xcb_generic_error_t *)ev;
-                _ecore_xcb_io_error_handle(err);
-             }
-           else
-             {
-                /* FIXME: Filter event for XIM */
-                _ecore_xcb_events_handle(ev);
-                free(ev);
-             }
-     }
-
-   return ECORE_CALLBACK_RENEW;
-}
-
-static Eina_Bool
-_ecore_xcb_fd_handle_buff(void *data, Ecore_Fd_Handler *hdlr EINA_UNUSED)
-{
-   xcb_connection_t *conn;
-   xcb_generic_event_t *ev = NULL;
-
-   conn = (xcb_connection_t *)data;
-   ev = xcb_poll_for_event(conn);
-   if (ev)
-     {
-        /* check for errors first */
-        if (xcb_connection_has_error(conn))
-          {
-             xcb_generic_error_t *err;
-
-             err = (xcb_generic_error_t *)ev;
-             _ecore_xcb_io_error_handle(err);
-             return ECORE_CALLBACK_CANCEL;
-          }
-        _ecore_xcb_event_buffered = ev;
-        return ECORE_CALLBACK_RENEW;
-     }
-   return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool
-_ecore_xcb_idle_enter(void *data EINA_UNUSED)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_flush(_ecore_xcb_conn);
-   return ECORE_CALLBACK_RENEW;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_atoms.c b/src/lib/ecore_x/xcb/ecore_xcb_atoms.c
deleted file mode 100644 (file)
index ba31df7..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-#include "ecore_xcb_private.h"
-#include "ecore_x_atoms_decl.h"
-
-/* NB: Increment if you add new atoms */
-#define ECORE_X_ATOMS_COUNT 199
-
-/* local function prototypes */
-
-/* local variables */
-static xcb_intern_atom_cookie_t cookies[ECORE_X_ATOMS_COUNT];
-
-#define MYMIN(X, Y) (((X) < (Y)) ? (X) : (Y))
-
-void
-_ecore_xcb_atoms_init(void)
-{
-   int i = 0, num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   num = (sizeof(atom_items) / sizeof(Atom_Item));
-   num = MYMIN(num, ECORE_X_ATOMS_COUNT);
-   for (i = 0; i < num; i++)
-     {
-        cookies[i] =
-          xcb_intern_atom_unchecked(_ecore_xcb_conn, 0,
-                                    strlen(atom_items[i].name), atom_items[i].name);
-     }
-}
-
-void
-_ecore_xcb_atoms_finalize(void)
-{
-   int i = 0, num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   num = (sizeof(atom_items) / sizeof(Atom_Item));
-   num = MYMIN(num, ECORE_X_ATOMS_COUNT);
-   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;
-        *(atom_items[i].atom) = reply->atom;
-        free(reply);
-     }
-}
-
-/**
- * @defgroup Ecore_X_Atom_Group X Atom Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that operate on atoms
- */
-
-/**
- * Retrieves the atom value associated to a name.
- *
- * @param  name Unused.
- * @return      Associated atom value.
- *
- * Retrieves the atom value associated to a name. The reply is the
- * returned value of the function ecore_xcb_intern_atom_reply(). If
- * @p reply is @c NULL, the NULL atom is returned. Otherwise, the atom
- * associated to the name is returned.
- *
- * @ingroup Ecore_X_Atom_Group
- */
-EAPI Ecore_X_Atom
-ecore_x_atom_get(const char *name)
-{
-   xcb_intern_atom_cookie_t cookie;
-   xcb_intern_atom_reply_t *reply;
-   Ecore_X_Atom a;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_intern_atom_unchecked(_ecore_xcb_conn, 0, strlen(name), name);
-   reply = xcb_intern_atom_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return XCB_ATOM_NONE;
-   a = reply->atom;
-   free(reply);
-   return a;
-}
-
-/**
- * Retrieves the name of the given atom.
- *
- * @param  atom
- * @return      The name of the atom.
- *
- * @ingroup Ecore_X_Atom_Group
- */
-EAPI char *
-ecore_x_atom_name_get(Ecore_X_Atom atom)
-{
-   xcb_get_atom_name_cookie_t cookie;
-   xcb_get_atom_name_reply_t *reply;
-   char *name;
-   int len = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_atom_name_unchecked(_ecore_xcb_conn, atom);
-   reply = xcb_get_atom_name_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-   len = xcb_get_atom_name_name_length(reply);
-   name = (char *)malloc(sizeof(char) * (len + 1));
-   if (!name)
-     {
-        free(reply);
-        return NULL;
-     }
-   memcpy(name, xcb_get_atom_name_name(reply), len);
-   name[len] = '\0';
-
-   free(reply);
-   return name;
-}
-
-EAPI void
-ecore_x_atoms_get(const char  **names,
-                  int           num,
-                  Ecore_X_Atom *atoms)
-{
-   xcb_intern_atom_cookie_t cookies[num];
-   int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   num = MYMIN(num, ECORE_X_ATOMS_COUNT);
-   for (i = 0; i < num; i++)
-     {
-        cookies[i] =
-          xcb_intern_atom_unchecked(_ecore_xcb_conn, 0,
-                                    strlen(names[i]), names[i]);
-     }
-   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] = reply->atom;
-        free(reply);
-     }
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_composite.c b/src/lib/ecore_x/xcb/ecore_xcb_composite.c
deleted file mode 100644 (file)
index b614d3c..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_COMPOSITE
-# include <xcb/composite.h>
-#endif
-
-/* local variables */
-static Eina_Bool _composite_avail = EINA_FALSE;
-
-void
-_ecore_xcb_composite_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_COMPOSITE
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_composite_id);
-#endif
-}
-
-void
-_ecore_xcb_composite_finalize(void)
-{
-#ifdef ECORE_XCB_COMPOSITE
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_COMPOSITE
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_composite_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_composite_query_version_cookie_t cookie;
-        xcb_composite_query_version_reply_t *reply;
-
-        cookie =
-          xcb_composite_query_version_unchecked(_ecore_xcb_conn,
-                                                XCB_COMPOSITE_MAJOR_VERSION,
-                                                XCB_COMPOSITE_MINOR_VERSION);
-        reply =
-          xcb_composite_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-//             if ((reply->major_version >= XCB_COMPOSITE_MAJOR_VERSION) &&
-               if (reply->minor_version >= XCB_COMPOSITE_MINOR_VERSION)
-                 {
-# ifdef ECORE_XCB_RENDER
-                    if (_ecore_xcb_render_avail_get())
-                      {
-#  ifdef ECORE_XCB_XFIXES
-                         if (_ecore_xcb_xfixes_avail_get())
-                           _composite_avail = EINA_TRUE;
-#  endif
-                      }
-# endif
-                 }
-
-               free(reply);
-          }
-     }
-#endif
-}
-
-/**
- * @defgroup Ecore_X_Composite_Group X Composite Extension Functions
- * @ingroup Ecore_X_Group
- *
- * Functions related to the X Composite Extension
- */
-
-/**
- * Return whether the Composite Extension is available
- *
- * @return @c EINA_TRUE is the Composite Extension is available, @c EINA_FALSE
- * if not.
- *
- * @ingroup Ecore_X_Composite_Group
- */
-EAPI Eina_Bool
-ecore_x_composite_query(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   return _composite_avail;
-}
-
-EAPI void
-ecore_x_composite_redirect_window(Ecore_X_Window                win,
-                                  Ecore_X_Composite_Update_Type type)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_COMPOSITE
-   uint8_t update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-
-   switch (type)
-     {
-      case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
-        update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-        break;
-
-      case ECORE_X_COMPOSITE_UPDATE_MANUAL:
-        update = XCB_COMPOSITE_REDIRECT_MANUAL;
-        break;
-     }
-   xcb_composite_redirect_window(_ecore_xcb_conn, win, update);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI void
-ecore_x_composite_redirect_subwindows(Ecore_X_Window                win,
-                                      Ecore_X_Composite_Update_Type type)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_COMPOSITE
-   uint8_t update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-
-   switch (type)
-     {
-      case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
-        update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-        break;
-
-      case ECORE_X_COMPOSITE_UPDATE_MANUAL:
-        update = XCB_COMPOSITE_REDIRECT_MANUAL;
-        break;
-     }
-   xcb_composite_redirect_subwindows(_ecore_xcb_conn, win, update);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI void
-ecore_x_composite_unredirect_window(Ecore_X_Window                win,
-                                    Ecore_X_Composite_Update_Type type)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_COMPOSITE
-   uint8_t update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-
-   switch (type)
-     {
-      case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
-        update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-        break;
-
-      case ECORE_X_COMPOSITE_UPDATE_MANUAL:
-        update = XCB_COMPOSITE_REDIRECT_MANUAL;
-        break;
-     }
-   xcb_composite_unredirect_window(_ecore_xcb_conn, win, update);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI void
-ecore_x_composite_unredirect_subwindows(Ecore_X_Window                win,
-                                        Ecore_X_Composite_Update_Type type)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_COMPOSITE
-   uint8_t update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-
-   switch (type)
-     {
-      case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
-        update = XCB_COMPOSITE_REDIRECT_AUTOMATIC;
-        break;
-
-      case ECORE_X_COMPOSITE_UPDATE_MANUAL:
-        update = XCB_COMPOSITE_REDIRECT_MANUAL;
-        break;
-     }
-   xcb_composite_unredirect_subwindows(_ecore_xcb_conn, win, update);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI Ecore_X_Pixmap
-ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win)
-{
-#ifdef ECORE_XCB_COMPOSITE
-   Ecore_X_Pixmap pmap = XCB_NONE;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return XCB_NONE;
-
-#ifdef ECORE_XCB_COMPOSITE
-   pmap = xcb_generate_id(_ecore_xcb_conn);
-   xcb_composite_name_window_pixmap(_ecore_xcb_conn, win, pmap);
-//   ecore_x_flush();
-#endif
-
-   return pmap;
-}
-
-EAPI void
-ecore_x_composite_window_events_disable(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_SHAPE
-   ecore_x_window_shape_input_rectangle_set(win, -1, -1, 1, 1);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-#endif
-}
-
-EAPI void
-ecore_x_composite_window_events_enable(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_SHAPE
-   ecore_x_window_shape_input_rectangle_set(win, 0, 0, 65535, 65535);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-#endif
-}
-
-EAPI Ecore_X_Window
-ecore_x_composite_render_window_enable(Ecore_X_Window root)
-{
-   Ecore_X_Window win = 0;
-#ifdef ECORE_XCB_COMPOSITE
-   xcb_composite_get_overlay_window_cookie_t cookie;
-   xcb_composite_get_overlay_window_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return 0;
-
-#ifdef ECORE_XCB_COMPOSITE
-   cookie = xcb_composite_get_overlay_window_unchecked(_ecore_xcb_conn, root);
-   reply =
-     xcb_composite_get_overlay_window_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return win;
-
-   win = reply->overlay_win;
-   free(reply);
-
-   ecore_x_composite_window_events_disable(win);
-//   ecore_x_flush();
-#endif
-
-   return win;
-}
-
-EAPI void
-ecore_x_composite_render_window_disable(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_composite_avail) return;
-
-#ifdef ECORE_XCB_COMPOSITE
-   xcb_composite_release_overlay_window(_ecore_xcb_conn, win);
-//   ecore_x_flush();
-#endif
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_cursor.c b/src/lib/ecore_x/xcb/ecore_xcb_cursor.c
deleted file mode 100644 (file)
index 755df04..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_CURSOR
-# include <xcb/render.h>
-# include <xcb/xcb_renderutil.h>
-#endif
-
-/* local function prototypes */
-#ifdef ECORE_XCB_CURSOR
-static xcb_render_pictforminfo_t *_ecore_xcb_cursor_format_get(void);
-#endif
-static void                       _ecore_xcb_cursor_default_size_get(void);
-static void                       _ecore_xcb_cursor_dpi_size_get(void);
-static void                       _ecore_xcb_cursor_guess_size(void);
-#ifdef ECORE_XCB_CURSOR
-static Ecore_X_Cursor             _ecore_xcb_cursor_image_load_cursor(xcb_image_t *img,
-                                                                      int          hot_x,
-                                                                      int          hot_y);
-#endif
-static void _ecore_xcb_cursor_image_destroy(xcb_image_t *img);
-
-/* local variables */
-static int _ecore_xcb_cursor_size = 0;
-static Eina_Bool _ecore_xcb_cursor = EINA_FALSE;
-#ifdef ECORE_XCB_CURSOR
-static uint32_t _ecore_xcb_cursor_format_id = 0;
-//   static xcb_render_pictforminfo_t *_ecore_xcb_cursor_format = NULL;
-#endif
-
-void
-_ecore_xcb_cursor_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   /* NB: No-op */
-}
-
-void
-_ecore_xcb_cursor_finalize(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_CURSOR
-   _ecore_xcb_cursor = _ecore_xcb_render_argb_get();
-
-   /* find render pict format */
-   if (_ecore_xcb_cursor_format_id <= 0)
-     _ecore_xcb_cursor_format_id = _ecore_xcb_cursor_format_get()->id;
-#endif
-
-   /* try to grab cursor size from XDefaults */
-   _ecore_xcb_cursor_default_size_get();
-
-   /* if that failed, try to get it from Xft Dpi setting */
-   if (_ecore_xcb_cursor_size == 0)
-     _ecore_xcb_cursor_dpi_size_get();
-
-   /* if that failed, try to guess from display size */
-   if (_ecore_xcb_cursor_size == 0)
-     _ecore_xcb_cursor_guess_size();
-
-   /* NB: Would normally add theme stuff here, but E cursor does not support
-    * xcursor themes. Delay parsing that stuff out until such time if/when the
-    * user selects to use X Cursor, rather than E cursor */
-}
-
-EAPI Eina_Bool
-ecore_x_cursor_color_supported_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_cursor;
-}
-
-EAPI Ecore_X_Cursor
-ecore_x_cursor_new(Ecore_X_Window win,
-                   int           *pixels,
-                   int            w,
-                   int            h,
-                   int            hot_x,
-                   int            hot_y)
-{
-   Ecore_X_Cursor cursor = 0;
-   xcb_image_t *img;
-
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_CURSOR
-   if (_ecore_xcb_cursor)
-     {
-        img = _ecore_xcb_image_create_native(w, h, XCB_IMAGE_FORMAT_Z_PIXMAP,
-                                             32, NULL, (w * h * sizeof(int)),
-                                             (uint8_t *)pixels);
-        cursor = _ecore_xcb_cursor_image_load_cursor(img, hot_x, hot_y);
-        _ecore_xcb_cursor_image_destroy(img);
-        return cursor;
-     }
-   else
-#endif
-   {
-      Ecore_X_GC gc;
-      xcb_pixmap_t pmap, mask;
-      uint32_t *pix;
-      uint8_t fr = 0x00, fg = 0x00, fb = 0x00;
-      uint8_t br = 0xff, bg = 0xff, bb = 0xff;
-      uint32_t brightest = 0, darkest = 255 * 3;
-      uint16_t x, y;
-      const uint32_t dither[2][2] =
-      {
-         {0, 2},
-         {3, 1}
-      };
-
-      img = _ecore_xcb_image_create_native(w, h, XCB_IMAGE_FORMAT_Z_PIXMAP,
-                                           1, NULL, ~0, NULL);
-      if (img->data) free(img->data);
-      img->data = malloc(img->size);
-
-      pmap = xcb_generate_id(_ecore_xcb_conn);
-      xcb_create_pixmap(_ecore_xcb_conn, 1, pmap, win, w, h);
-      mask = xcb_generate_id(_ecore_xcb_conn);
-      xcb_create_pixmap(_ecore_xcb_conn, 1, mask, win, w, h);
-
-      pix = (uint32_t *)pixels;
-      for (y = 0; y < h; y++)
-        {
-           for (x = 0; x < w; x++)
-             {
-                uint8_t r, g, b, a;
-
-                a = (pix[0] >> 24) & 0xff;
-                r = (pix[0] >> 16) & 0xff;
-                g = (pix[0] >> 8) & 0xff;
-                b = (pix[0]) & 0xff;
-                if (a > 0)
-                  {
-                     if ((uint32_t)(r + g + b) > brightest)
-                       {
-                          brightest = r + g + b;
-                          br = r;
-                          bg = g;
-                          bb = b;
-                       }
-
-                     if ((uint32_t)(r + g + b) < darkest)
-                       {
-                          darkest = r + g + b;
-                          fr = r;
-                          fg = g;
-                          fb = b;
-                       }
-                  }
-                pix++;
-             }
-        }
-
-      pix = (uint32_t *)pixels;
-      for (y = 0; y < h; y++)
-        {
-           for (x = 0; x < w; x++)
-             {
-                uint32_t v;
-                uint8_t r, g, b;
-                int32_t d1, d2;
-
-                r = (pix[0] >> 16) & 0xff;
-                g = (pix[0] >> 8) & 0xff;
-                b = (pix[0]) & 0xff;
-                d1 =
-                  ((r - fr) * (r - fr)) +
-                  ((g - fg) * (g - fg)) +
-                  ((b - fb) * (b - fb));
-                d2 =
-                  ((r - br) * (r - br)) +
-                  ((g - bg) * (g - bg)) +
-                  ((b - bb) * (b - bb));
-                if (d1 + d2)
-                  {
-                     v = (((d2 * 255) / (d1 + d2)) * 5) / 256;
-                     if (v > dither[x & 0x1][y & 0x1])
-                       v = 1;
-                     else
-                       v = 0;
-                  }
-                else
-                  v = 0;
-
-                xcb_image_put_pixel(img, x, y, v);
-                pix++;
-             }
-        }
-
-      gc = ecore_x_gc_new(pmap, 0, NULL);
-      xcb_put_image(_ecore_xcb_conn, img->format, pmap, gc, w, h,
-                    0, 0, 0, img->depth, img->size, img->data);
-      ecore_x_gc_free(gc);
-
-      pix = (uint32_t *)pixels;
-      for (y = 0; y < h; y++)
-        {
-           for (x = 0; x < w; x++)
-             {
-                uint32_t v;
-
-                v = (((pix[0] >> 24) & 0xff) * 5) / 256;
-                if (v > dither[x & 0x1][y & 0x1])
-                  v = 1;
-                else
-                  v = 0;
-
-                xcb_image_put_pixel(img, x, y, v);
-                pix++;
-             }
-        }
-
-      gc = ecore_x_gc_new(mask, 0, NULL);
-      xcb_put_image(_ecore_xcb_conn, img->format, mask, gc, w, h,
-                    0, 0, 0, img->depth, img->size, img->data);
-      ecore_x_gc_free(gc);
-
-      if (img->data) free(img->data);
-      _ecore_xcb_cursor_image_destroy(img);
-
-      cursor = xcb_generate_id(_ecore_xcb_conn);
-      xcb_create_cursor(_ecore_xcb_conn, cursor, pmap, mask,
-                        fr << 8 | fr, fg << 8 | fg, fb << 8 | fb,
-                        br << 8 | br, bg << 8 | bg, bb << 8 | bb,
-                        hot_x, hot_y);
-
-      xcb_free_pixmap(_ecore_xcb_conn, pmap);
-      xcb_free_pixmap(_ecore_xcb_conn, mask);
-
-      return cursor;
-   }
-
-   return 0;
-}
-
-EAPI void
-ecore_x_cursor_free(Ecore_X_Cursor c)
-{
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-     CHECK_XCB_CONN;
-
-     xcb_free_cursor(_ecore_xcb_conn, c);
-}
-
-/*
- * Returns the cursor for the given shape.
- * Note that the return value must not be freed with
- * ecore_x_cursor_free()!
- */
-EAPI Ecore_X_Cursor
-ecore_x_cursor_shape_get(int shape)
-{
-   Ecore_X_Cursor cursor = 0;
-   xcb_font_t font;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   font = xcb_generate_id(_ecore_xcb_conn);
-   xcb_open_font(_ecore_xcb_conn, font, strlen("cursor"), "cursor");
-
-   cursor = xcb_generate_id(_ecore_xcb_conn);
-   /* FIXME: Add request check ?? */
-   xcb_create_glyph_cursor(_ecore_xcb_conn, cursor, font, font,
-                           shape, shape + 1, 0, 0, 0, 65535, 65535, 65535);
-
-   xcb_close_font(_ecore_xcb_conn, font);
-   return cursor;
-}
-
-EAPI void
-ecore_x_cursor_size_set(int size)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_cursor_size = size;
-   /* NB: May need to adjust size of current cursors here */
-}
-
-EAPI int
-ecore_x_cursor_size_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_cursor_size;
-}
-
-/* local functions */
-#ifdef ECORE_XCB_CURSOR
-static xcb_render_pictforminfo_t *
-_ecore_xcb_cursor_format_get(void)
-{
-   const xcb_render_query_pict_formats_reply_t *reply;
-   xcb_render_pictforminfo_t *ret = NULL;
-
-   CHECK_XCB_CONN;
-
-   reply = xcb_render_util_query_formats(_ecore_xcb_conn);
-   if (reply)
-     ret = xcb_render_util_find_standard_format(reply,
-                                                XCB_PICT_STANDARD_ARGB_32);
-
-   return ret;
-}
-
-#endif
-
-static void
-_ecore_xcb_cursor_default_size_get(void)
-{
-   char *s = NULL;
-   int v = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   s = getenv("XCURSOR_SIZE");
-   if (!s)
-     {
-        _ecore_xcb_xdefaults_init();
-        v = _ecore_xcb_xdefaults_int_get("Xcursor", "size");
-        _ecore_xcb_xdefaults_shutdown();
-     }
-   else
-     v = atoi(s);
-   if (v) _ecore_xcb_cursor_size = ((v * 16) / 72);
-}
-
-static void
-_ecore_xcb_cursor_dpi_size_get(void)
-{
-   int v = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_xdefaults_init();
-   v = _ecore_xcb_xdefaults_int_get("Xft", "dpi");
-   if (v) _ecore_xcb_cursor_size = ((v * 16) / 72);
-   _ecore_xcb_xdefaults_shutdown();
-}
-
-static void
-_ecore_xcb_cursor_guess_size(void)
-{
-   int w = 0, h = 0, s = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_screen_size_get(_ecore_xcb_screen, &w, &h);
-   if (h < w) s = h;
-   else s = w;
-   _ecore_xcb_cursor_size = (s / 48);
-}
-
-#ifdef ECORE_XCB_CURSOR
-static Ecore_X_Cursor
-_ecore_xcb_cursor_image_load_cursor(xcb_image_t *img,
-                                    int          hot_x,
-                                    int          hot_y)
-{
-   Ecore_X_Cursor cursor = 0;
-   Ecore_X_GC gc;
-   xcb_pixmap_t pmap;
-   xcb_render_picture_t pict;
-
-   CHECK_XCB_CONN;
-
-   pmap = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_pixmap(_ecore_xcb_conn, img->depth, pmap,
-                     ((xcb_screen_t *)_ecore_xcb_screen)->root,
-                     img->width, img->height);
-
-   gc = ecore_x_gc_new(pmap, 0, NULL);
-   xcb_put_image(_ecore_xcb_conn, img->format, pmap, gc,
-                 img->width, img->height, 0, 0, 0, img->depth,
-                 img->size, img->data);
-   ecore_x_gc_free(gc);
-
-   pict = xcb_generate_id(_ecore_xcb_conn);
-   xcb_render_create_picture(_ecore_xcb_conn, pict, pmap,
-                             _ecore_xcb_cursor_format_id, 0, NULL);
-   xcb_free_pixmap(_ecore_xcb_conn, pmap);
-
-   cursor = xcb_generate_id(_ecore_xcb_conn);
-   xcb_render_create_cursor(_ecore_xcb_conn, cursor, pict, hot_x, hot_y);
-   xcb_render_free_picture(_ecore_xcb_conn, pict);
-
-   return cursor;
-}
-
-#endif
-
-static void
-_ecore_xcb_cursor_image_destroy(xcb_image_t *img)
-{
-   CHECK_XCB_CONN;
-   if (img) xcb_image_destroy(img);
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_damage.c b/src/lib/ecore_x/xcb/ecore_xcb_damage.c
deleted file mode 100644 (file)
index fdb7a2a..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "ecore_xcb_private.h"
-# ifdef ECORE_XCB_DAMAGE
-#  include <xcb/damage.h>
-# endif
-
-/* local variables */
-static Eina_Bool _damage_avail = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_damage = -1;
-
-void
-_ecore_xcb_damage_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_DAMAGE
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_damage_id);
-#endif
-}
-
-void
-_ecore_xcb_damage_finalize(void)
-{
-#ifdef ECORE_XCB_DAMAGE
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_DAMAGE
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_damage_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_damage_query_version_cookie_t cookie;
-        xcb_damage_query_version_reply_t *reply;
-
-        cookie =
-          xcb_damage_query_version_unchecked(_ecore_xcb_conn,
-                                             XCB_DAMAGE_MAJOR_VERSION,
-                                             XCB_DAMAGE_MINOR_VERSION);
-        reply = xcb_damage_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             _damage_avail = EINA_TRUE;
-             free(reply);
-          }
-
-        if (_damage_avail)
-          _ecore_xcb_event_damage = ext_reply->first_event;
-     }
-#endif
-}
-
-/**
- * @defgroup Ecore_X_Damage_Group X Damage Extension Functions
- * @ingroup Ecore_X_Group
- *
- * Functions related to the X Damage Extension.
- */
-
-EAPI Eina_Bool
-ecore_x_damage_query(void)
-{
-   return _damage_avail;
-}
-
-/**
- * Create a damage object
- *
- * @param drawable The drawable to monitor
- * @param level The level of the damage report
- * @return The damage object
- *
- * Creates a damage object to monitor changes to @p drawable,
- * with the level @p level.
- *
- * @ingroup Ecore_X_Damage_Group
- */
-EAPI Ecore_X_Damage
-ecore_x_damage_new(Ecore_X_Drawable            drawable,
-                   Ecore_X_Damage_Report_Level level)
-{
-   Ecore_X_Damage damage = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_damage_avail) return 0;
-
-#ifdef ECORE_XCB_DAMAGE
-   damage = xcb_generate_id(_ecore_xcb_conn);
-   xcb_damage_create(_ecore_xcb_conn, damage, drawable, level);
-//   ecore_x_flush();
-#endif
-
-   return damage;
-}
-
-/**
- * Destroy a damage object
- *
- * @param damage The damage object to destroy
- *
- * Destroys the damage object @p damage
- *
- * @ingroup Ecore_X_Damage_Group
- */
-EAPI void
-ecore_x_damage_free(Ecore_X_Damage damage)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_damage_avail) return;
-
-#ifdef ECORE_XCB_DAMAGE
-   xcb_damage_destroy(_ecore_xcb_conn, damage);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Synchronously modifies the region
- *
- * @param damage The damage object to destroy
- * @param repair The repair region
- * @param parts The parts region
- *
- * Synchronously modifies the regions in the following manner:
- * If @p repair is @c XCB_NONE:
- *   1) parts = damage
- *   2) damage = \<empty\>
- * Otherwise:
- *   1) parts = damage INTERSECT repair
- *   2) damage = damage - parts
- *   3) Generate DamageNotify for remaining damage areas
- *
- * @ingroup Ecore_X_Damage_Group
- */
-EAPI void
-ecore_x_damage_subtract(Ecore_X_Damage damage,
-                        Ecore_X_Region repair,
-                        Ecore_X_Region parts)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_damage_avail) return;
-
-#ifdef ECORE_XCB_DAMAGE
-   xcb_damage_subtract(_ecore_xcb_conn, damage, repair, parts);
-//   ecore_x_flush();
-#endif
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_dnd.c b/src/lib/ecore_x/xcb/ecore_xcb_dnd.c
deleted file mode 100644 (file)
index 974ec0e..0000000
+++ /dev/null
@@ -1,720 +0,0 @@
-#include "ecore_xcb_private.h"
-
-/* local structures */
-typedef struct _Version_Cache_Item
-{
-   Ecore_X_Window win;
-   int            ver;
-} Version_Cache_Item;
-
-/* local function prototypes */
-static Eina_Bool _ecore_xcb_dnd_converter_copy(char         *target EINA_UNUSED,
-                                               void         *data,
-                                               int           size,
-                                               void        **data_ret,
-                                               int          *size_ret,
-                                               Ecore_X_Atom *tprop EINA_UNUSED,
-                                               int          *count EINA_UNUSED);
-
-/* local variables */
-static int _ecore_xcb_dnd_init_count = 0;
-static Ecore_X_DND_Source *_source = NULL;
-static Ecore_X_DND_Target *_target = NULL;
-static Version_Cache_Item *_version_cache = NULL;
-static int _version_cache_num = 0, _version_cache_alloc = 0;
-static void (*_posupdatecb)(void *,
-                            Ecore_X_Xdnd_Position *);
-static void *_posupdatedata;
-
-/* external variables */
-EAPI int ECORE_X_EVENT_XDND_ENTER = 0;
-EAPI int ECORE_X_EVENT_XDND_POSITION = 0;
-EAPI int ECORE_X_EVENT_XDND_STATUS = 0;
-EAPI int ECORE_X_EVENT_XDND_LEAVE = 0;
-EAPI int ECORE_X_EVENT_XDND_DROP = 0;
-EAPI int ECORE_X_EVENT_XDND_FINISHED = 0;
-
-void
-_ecore_xcb_dnd_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!_ecore_xcb_dnd_init_count)
-     {
-        _source = calloc(1, sizeof(Ecore_X_DND_Source));
-        if (!_source) return;
-        _source->version = ECORE_X_DND_VERSION;
-        _source->win = XCB_NONE;
-        _source->dest = XCB_NONE;
-        _source->state = ECORE_X_DND_SOURCE_IDLE;
-        _source->prev.window = 0;
-
-        _target = calloc(1, sizeof(Ecore_X_DND_Target));
-        if (!_target)
-          {
-             free(_source);
-             _source = NULL;
-             return;
-          }
-        _target->win = XCB_NONE;
-        _target->source = XCB_NONE;
-        _target->state = ECORE_X_DND_TARGET_IDLE;
-
-        ECORE_X_EVENT_XDND_ENTER = ecore_event_type_new();
-        ECORE_X_EVENT_XDND_POSITION = ecore_event_type_new();
-        ECORE_X_EVENT_XDND_STATUS = ecore_event_type_new();
-        ECORE_X_EVENT_XDND_LEAVE = ecore_event_type_new();
-        ECORE_X_EVENT_XDND_DROP = ecore_event_type_new();
-        ECORE_X_EVENT_XDND_FINISHED = ecore_event_type_new();
-     }
-   _ecore_xcb_dnd_init_count++;
-}
-
-void
-_ecore_xcb_dnd_shutdown(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_dnd_init_count--;
-   if (_ecore_xcb_dnd_init_count > 0) return;
-   if (_source) free(_source);
-   _source = NULL;
-   if (_target) free(_target);
-   _target = NULL;
-   _ecore_xcb_dnd_init_count = 0;
-}
-
-EAPI void
-ecore_x_dnd_send_status(Eina_Bool         will_accept,
-                        Eina_Bool         suppress,
-                        Ecore_X_Rectangle rect,
-                        Ecore_X_Atom      action)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (_target->state == ECORE_X_DND_TARGET_IDLE) return;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   _target->will_accept = will_accept;
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.type = ECORE_X_ATOM_XDND_STATUS;
-   ev.format = 32;
-   ev.window = _target->source;
-   ev.data.data32[0] = _target->win;
-   ev.data.data32[1] = 0;
-   if (will_accept) ev.data.data32[1] |= 0x1UL;
-   if (!suppress) ev.data.data32[1] |= 0x2UL;
-
-   ev.data.data32[2] = rect.x;
-   ev.data.data32[2] <<= 16;
-   ev.data.data32[2] |= rect.y;
-   ev.data.data32[3] = rect.width;
-   ev.data.data32[3] <<= 16;
-   ev.data.data32[3] |= rect.height;
-
-   if (will_accept)
-     ev.data.data32[4] = action;
-   else
-     ev.data.data32[4] = XCB_NONE;
-   _target->accepted_action = action;
-
-   xcb_send_event(_ecore_xcb_conn, 0, _target->source,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_dnd_aware_set(Ecore_X_Window win,
-                      Eina_Bool      on)
-{
-   Ecore_X_Atom prop_data = ECORE_X_DND_VERSION;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (on)
-     ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_AWARE,
-                                      ECORE_X_ATOM_ATOM, 32, &prop_data, 1);
-   else
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_XDND_AWARE);
-}
-
-EAPI int
-ecore_x_dnd_version_get(Ecore_X_Window win)
-{
-   unsigned char *data;
-   int num = 0;
-   Version_Cache_Item *t;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (_source->state == ECORE_X_DND_SOURCE_DRAGGING)
-     {
-        if (_version_cache)
-          {
-             int i = 0;
-
-             for (i = 0; i < _version_cache_num; i++)
-               {
-                  if (_version_cache[i].win == win)
-                    return _version_cache[i].ver;
-               }
-          }
-     }
-
-   if (ecore_x_window_prop_property_get(win, ECORE_X_ATOM_XDND_AWARE,
-                                        ECORE_X_ATOM_ATOM, 32, &data, &num))
-     {
-        int version = 0;
-
-        version = (int)*data;
-        free(data);
-        if (_source->state == ECORE_X_DND_SOURCE_DRAGGING)
-          {
-             _version_cache_num++;
-             if (_version_cache_num > _version_cache_alloc)
-               _version_cache_alloc += 16;
-             t = realloc(_version_cache,
-                         _version_cache_alloc * sizeof(Version_Cache_Item));
-             if (!t) return 0;
-             _version_cache = t;
-             _version_cache[_version_cache_num - 1].win = win;
-             _version_cache[_version_cache_num - 1].ver = version;
-          }
-        return version;
-     }
-
-   if (_source->state == ECORE_X_DND_SOURCE_DRAGGING)
-     {
-        _version_cache_num++;
-        if (_version_cache_num > _version_cache_alloc)
-          _version_cache_alloc += 16;
-        t = realloc(_version_cache,
-                    _version_cache_alloc * sizeof(Version_Cache_Item));
-        if (!t) return 0;
-        _version_cache = t;
-        _version_cache[_version_cache_num - 1].win = win;
-        _version_cache[_version_cache_num - 1].ver = 0;
-     }
-
-   return 0;
-}
-
-EAPI Eina_Bool
-ecore_x_dnd_type_isset(Ecore_X_Window win,
-                       const char    *type)
-{
-   int num = 0, i = 0;
-   Eina_Bool ret = EINA_FALSE;
-   unsigned char *data;
-   Ecore_X_Atom *atoms, atom;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_XDND_TYPE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, &data, &num))
-     return ret;
-
-   atom = ecore_x_atom_get(type);
-   atoms = (Ecore_X_Atom *)data;
-   for (i = 0; i < num; ++i)
-     {
-        if (atom == atoms[i])
-          {
-             ret = EINA_TRUE;
-             break;
-          }
-     }
-
-   free(data);
-   return ret;
-}
-
-EAPI void
-ecore_x_dnd_type_set(Ecore_X_Window win,
-                     const char    *type,
-                     Eina_Bool      on)
-{
-   Ecore_X_Atom atom, *oldset = NULL, *newset = NULL;
-   int i = 0, j = 0, num = 0;
-   unsigned char *data = NULL, *old_data = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   atom = ecore_x_atom_get(type);
-   ecore_x_window_prop_property_get(win, ECORE_X_ATOM_XDND_TYPE_LIST,
-                                    ECORE_X_ATOM_ATOM, 32, &old_data, &num);
-   oldset = (Ecore_X_Atom *)old_data;
-   if (on)
-     {
-        if (ecore_x_dnd_type_isset(win, type))
-          {
-             free(old_data);
-             return;
-          }
-        newset = calloc(num + 1, sizeof(Ecore_X_Atom));
-        if (!newset) return;
-        data = (unsigned char *)newset;
-        for (i = 0; i < num; i++)
-          newset[i + 1] = oldset[i];
-        newset[0] = atom;
-        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_TYPE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, data, num + 1);
-     }
-   else
-     {
-        if (!ecore_x_dnd_type_isset(win, type))
-          {
-             free(old_data);
-             return;
-          }
-        newset = calloc(num - 1, sizeof(Ecore_X_Atom));
-        if (!newset)
-          {
-             free(old_data);
-             return;
-          }
-        data = (unsigned char *)newset;
-        for (i = 0; i < num; i++)
-          if (oldset[i] != atom)
-            newset[j++] = oldset[i];
-        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_TYPE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, data, num - 1);
-     }
-   free(oldset);
-   free(newset);
-}
-
-EAPI void
-ecore_x_dnd_types_set(Ecore_X_Window win,
-                      const char   **types,
-                      unsigned int   num_types)
-{
-   Ecore_X_Atom *newset = NULL;
-   unsigned int i;
-   unsigned char *data = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!num_types)
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_XDND_TYPE_LIST);
-   else
-     {
-        newset = calloc(num_types, sizeof(Ecore_X_Atom));
-        if (!newset) return;
-
-        data = (unsigned char *)newset;
-        for (i = 0; i < num_types; i++)
-          {
-             newset[i] = ecore_x_atom_get(types[i]);
-             ecore_x_selection_converter_atom_add(newset[i],
-                                                  _ecore_xcb_dnd_converter_copy);
-          }
-        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_TYPE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, data,
-                                         num_types);
-        free(newset);
-     }
-}
-
-EAPI void
-ecore_x_dnd_actions_set(Ecore_X_Window win,
-                        Ecore_X_Atom  *actions,
-                        unsigned int   num_actions)
-{
-   unsigned int i;
-   unsigned char *data = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!num_actions)
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_XDND_ACTION_LIST);
-   else
-     {
-        data = (unsigned char *)actions;
-        for (i = 0; i < num_actions; i++)
-          ecore_x_selection_converter_atom_add(actions[i],
-                                               _ecore_xcb_dnd_converter_copy);
-        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_ACTION_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, data,
-                                         num_actions);
-     }
-}
-
-/**
- * The DND position update cb is called Ecore_X sends a DND position to a
- * client.
- *
- * It essentially mirrors some of the data sent in the position message.
- * Generally this cb should be set just before position update is called.
- * Please note well you need to look after your own data pointer if someone
- * trashes you position update cb set.
- *
- * It is considered good form to clear this when the dnd event finishes.
- *
- * @param cb Callback to updated each time ecore_x sends a position update.
- * @param data User data.
- */
-EAPI void
-ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data),
-                                    const void *data)
-{
-   _posupdatecb = cb;
-   _posupdatedata = (void *)data;
-}
-
-static Eina_Bool
-_ecore_x_dnd_begin(Ecore_X_Window source, Eina_Bool self, unsigned char *data, int size)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_dnd_version_get(source)) return EINA_FALSE;
-
-   /* Take ownership of XdndSelection */
-   if (!ecore_x_selection_xdnd_set(source, data, size)) return EINA_FALSE;
-
-   if (_version_cache)
-     {
-        free(_version_cache);
-        _version_cache = NULL;
-        _version_cache_num = 0;
-        _version_cache_alloc = 0;
-     }
-
-   ecore_x_window_shadow_tree_flush();
-
-   _source->win = source;
-   if (!self) ecore_x_window_ignore_set(_source->win, 1);
-   _source->state = ECORE_X_DND_SOURCE_DRAGGING;
-   _source->time = _ecore_xcb_events_last_time_get();
-   _source->prev.window = 0;
-
-   /* Default Accepted Action: move */
-   _source->action = ECORE_X_ATOM_XDND_ACTION_MOVE;
-   _source->accepted_action = XCB_NONE;
-   _source->dest = XCB_NONE;
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ecore_x_dnd_drop(Eina_Bool self)
-{
-   xcb_client_message_event_t ev;
-   Eina_Bool status = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   if (_source->dest)
-     {
-        ev.response_type = XCB_CLIENT_MESSAGE;
-        ev.format = 32;
-        ev.window = _source->dest;
-
-        if (_source->will_accept)
-          {
-             ev.type = ECORE_X_ATOM_XDND_DROP;
-             ev.data.data32[0] = _source->win;
-             ev.data.data32[1] = 0;
-             ev.data.data32[2] = _source->time;
-
-             xcb_send_event(_ecore_xcb_conn, 0, _source->dest,
-                            XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//             ecore_x_flush();
-             _source->state = ECORE_X_DND_SOURCE_DROPPED;
-             status = EINA_TRUE;
-          }
-        else
-          {
-             ev.type = ECORE_X_ATOM_XDND_LEAVE;
-             ev.data.data32[0] = _source->win;
-             ev.data.data32[1] = 0;
-
-             xcb_send_event(_ecore_xcb_conn, 0, _source->dest,
-                            XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//             ecore_x_flush();
-             _source->state = ECORE_X_DND_SOURCE_IDLE;
-          }
-     }
-   else
-     {
-        ecore_x_selection_xdnd_clear();
-        _source->state = ECORE_X_DND_SOURCE_IDLE;
-     }
-
-   if (!self) ecore_x_window_ignore_set(_source->win, 0);
-   _source->prev.window = 0;
-
-   return status;
-}
-
-EAPI Eina_Bool
-ecore_x_dnd_begin(Ecore_X_Window source,
-                  unsigned char *data,
-                  int            size)
-{
-   return _ecore_x_dnd_begin(source, EINA_FALSE, data, size);
-}
-
-EAPI Eina_Bool
-ecore_x_dnd_drop(void)
-{
-   return _ecore_x_dnd_drop(EINA_FALSE);
-}
-
-EAPI Eina_Bool
-ecore_x_dnd_self_begin(Ecore_X_Window source,
-                       unsigned char *data,
-                       int            size)
-{
-   return _ecore_x_dnd_begin(source, EINA_TRUE, data, size);
-}
-
-EAPI Eina_Bool
-ecore_x_dnd_self_drop(void)
-{
-   return _ecore_x_dnd_drop(EINA_TRUE);
-}
-
-EAPI void
-ecore_x_dnd_send_finished(void)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (_target->state == ECORE_X_DND_TARGET_IDLE) return;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.type = ECORE_X_ATOM_XDND_FINISHED;
-   ev.window = _target->source;
-   ev.data.data32[0] = _target->win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   if (_target->will_accept)
-     {
-        ev.data.data32[1] |= 0x1UL;
-        ev.data.data32[2] = _target->accepted_action;
-     }
-
-   xcb_send_event(_ecore_xcb_conn, 0, _target->source,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-   _target->state = ECORE_X_DND_TARGET_IDLE;
-}
-
-EAPI void
-ecore_x_dnd_source_action_set(Ecore_X_Atom action)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _source->action = action;
-   if (_source->prev.window)
-     _ecore_xcb_dnd_drag(_source->prev.window,
-                         _source->prev.x, _source->prev.y);
-}
-
-Ecore_X_DND_Source *
-_ecore_xcb_dnd_source_get(void)
-{
-   return _source;
-}
-
-Ecore_X_DND_Target *
-_ecore_xcb_dnd_target_get(void)
-{
-   return _target;
-}
-
-void
-_ecore_xcb_dnd_drag(Ecore_X_Window root,
-                    int            x,
-                    int            y)
-{
-   xcb_client_message_event_t ev;
-   Ecore_X_Window win, *skip;
-   Ecore_X_Xdnd_Position pos;
-   int num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (_source->state != ECORE_X_DND_SOURCE_DRAGGING) return;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-
-   skip = ecore_x_window_ignore_list(&num);
-   win = ecore_x_window_shadow_tree_at_xy_with_skip_get(root, x, y, skip, num);
-   while ((win) && !(ecore_x_dnd_version_get(win)))
-     win = ecore_x_window_shadow_parent_get(root, win);
-
-   if ((_source->dest) && (win != _source->dest))
-     {
-        ev.window = _source->dest;
-        ev.type = ECORE_X_ATOM_XDND_LEAVE;
-        ev.data.data32[0] = _source->win;
-        ev.data.data32[1] = 0;
-
-        xcb_send_event(_ecore_xcb_conn, 0, _source->dest,
-                       XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//        ecore_x_flush();
-        _source->suppress = 0;
-     }
-
-   if (win)
-     {
-        int x1, x2, y1, y2;
-
-        _source->version = MIN(ECORE_X_DND_VERSION,
-                               ecore_x_dnd_version_get(win));
-        if (win != _source->dest)
-          {
-             int i = 0;
-             unsigned char *data;
-             Ecore_X_Atom *types;
-
-             ecore_x_window_prop_property_get(_source->win,
-                                              ECORE_X_ATOM_XDND_TYPE_LIST,
-                                              ECORE_X_ATOM_ATOM, 32,
-                                              &data, &num);
-             types = (Ecore_X_Atom *)data;
-             ev.window = win;
-             ev.type = ECORE_X_ATOM_XDND_ENTER;
-             ev.data.data32[0] = _source->win;
-             ev.data.data32[1] = 0;
-             if (num > 3)
-               ev.data.data32[1] |= 0x1UL;
-             else
-               ev.data.data32[1] &= 0xfffffffeUL;
-             ev.data.data32[1] |= ((unsigned long)_source->version) << 24;
-
-             for (i = 2; i < 5; i++)
-               ev.data.data32[i] = 0;
-             for (i = 0; i < MIN(num, 3); ++i)
-               ev.data.data32[i + 2] = types[i];
-             free(data);
-
-             xcb_send_event(_ecore_xcb_conn, 0, win,
-                            XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//             ecore_x_flush();
-             _source->await_status = 0;
-             _source->will_accept = 0;
-          }
-
-        x1 = _source->rectangle.x;
-        x2 = _source->rectangle.x + _source->rectangle.width;
-        y1 = _source->rectangle.y;
-        y2 = _source->rectangle.y + _source->rectangle.height;
-
-        if ((!_source->await_status) || (!_source->suppress) ||
-            ((x < x1) || (x > x2) || (y < y1) || (y > y2)))
-          {
-             ev.window = win;
-             ev.type = ECORE_X_ATOM_XDND_POSITION;
-             ev.data.data32[0] = _source->win;
-             ev.data.data32[1] = 0;
-             ev.data.data32[2] = ((x << 16) & 0xffff0000) | (y & 0xffff);
-             ev.data.data32[3] = _source->time;
-             ev.data.data32[4] = _source->action;
-
-             xcb_send_event(_ecore_xcb_conn, 0, win,
-                            XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//             ecore_x_flush();
-             _source->await_status = 1;
-          }
-     }
-
-   if (_posupdatecb)
-     {
-        pos.position.x = x;
-        pos.position.y = y;
-        pos.win = win;
-        pos.prev = _source->dest;
-        _posupdatecb(_posupdatedata, &pos);
-     }
-
-   _source->prev.x = x;
-   _source->prev.y = y;
-   _source->prev.window = root;
-   _source->dest = win;
-}
-
-EAPI Ecore_X_Atom
-ecore_x_dnd_source_action_get(void)
-{
-   return _source->action;
-}
-
-/* local functions */
-static Eina_Bool
-_ecore_xcb_dnd_converter_copy(char         *target EINA_UNUSED,
-                              void         *data,
-                              int           size,
-                              void        **data_ret,
-                              int          *size_ret,
-                              Ecore_X_Atom *tprop EINA_UNUSED,
-                              int          *count EINA_UNUSED)
-{
-   Ecore_Xcb_Textproperty text_prop;
-   Ecore_Xcb_Encoding_Style style = XcbTextStyle;
-   char *mystr;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if ((!data) || (!size)) return EINA_FALSE;
-
-   mystr = calloc(1, size + 1);
-   if (!mystr) return EINA_FALSE;
-
-   memcpy(mystr, data, size);
-   if (_ecore_xcb_mb_textlist_to_textproperty(&mystr, 1, style, &text_prop))
-     {
-        int len;
-
-        len = strlen((char *)text_prop.value) + 1;
-        if (!(*data_ret = malloc(len)))
-          {
-             free(mystr);
-             return EINA_FALSE;
-          }
-        memcpy(*data_ret, text_prop.value, len);
-        *size_ret = len;
-        free(text_prop.value);
-        free(mystr);
-        return EINA_TRUE;
-     }
-   else
-     {
-        free(mystr);
-        return EINA_FALSE;
-     }
-}
-
-EAPI Eina_Bool
-ecore_x_dnd_abort(Ecore_X_Window xwin_source)
-{
-   if (xwin_source == _source->win)
-     {
-        _source->will_accept = 0;
-        return ecore_x_dnd_self_drop();
-     }
-   else return EINA_FALSE;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_dpms.c b/src/lib/ecore_x/xcb/ecore_xcb_dpms.c
deleted file mode 100644 (file)
index 95360e3..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_DAMAGE
-# include <xcb/dpms.h>
-#endif
-
-/* local variables */
-static Eina_Bool _dpms_avail = EINA_FALSE;
-
-void
-_ecore_xcb_dpms_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_DPMS
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_dpms_id);
-#endif
-}
-
-void
-_ecore_xcb_dpms_finalize(void)
-{
-#ifdef ECORE_XCB_DPMS
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_DPMS
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_dpms_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_dpms_get_version_cookie_t cookie;
-        xcb_dpms_get_version_reply_t *reply;
-
-        cookie =
-          xcb_dpms_get_version_unchecked(_ecore_xcb_conn,
-                                         XCB_DPMS_MAJOR_VERSION,
-                                         XCB_DPMS_MINOR_VERSION);
-        reply = xcb_dpms_get_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             if (reply->server_major_version >= 1)
-               _dpms_avail = EINA_TRUE;
-             free(reply);
-          }
-     }
-#endif
-}
-
-/**
- * @defgroup Ecore_X_DPMS_Group X DPMS Extension Functions
- * @ingroup Ecore_X_Group
- *
- * Functions related to the X DPMS Extension
- */
-
-/**
- * Checks if the DPMS extension is available or not.
- *
- * @return @c EINA_TRUE if the DPMS extension is available,
- * @c EINA_FALSE otherwise.
- *
- * Return @c EINA_TRUE if the X server supports the DPMS Extension version 1.0,
- * @c EINA_FALSE otherwise.
- *
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI Eina_Bool
-ecore_x_dpms_query(void)
-{
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-     return _dpms_avail;
-}
-
-/**
- * Checks if the X server is capable of DPMS.
- * @return @c 1 if the X server is capable of DPMS, @c 0 otherwise.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI Eina_Bool
-ecore_x_dpms_capable_get(void)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_DPMS
-   xcb_dpms_capable_cookie_t cookie;
-   xcb_dpms_capable_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_dpms_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_DPMS
-   cookie = xcb_dpms_capable_unchecked(_ecore_xcb_conn);
-   reply = xcb_dpms_capable_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        ret = reply->capable;
-        free(reply);
-     }
-#endif
-
-   return ret;
-}
-
-/**
- * Checks the DPMS state of the display.
- * @return @c EINA_TRUE if DPMS is enabled, @c EINA_FALSE otherwise.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI Eina_Bool
-ecore_x_dpms_enabled_get(void)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_DPMS
-   xcb_dpms_info_cookie_t cookie;
-   xcb_dpms_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_dpms_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_DPMS
-   cookie = xcb_dpms_info_unchecked(_ecore_xcb_conn);
-   reply = xcb_dpms_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-   if (reply->state) ret = EINA_TRUE;
-   free(reply);
-#endif
-
-   return ret;
-}
-
-/**
- * Sets the DPMS state of the display.
- * @param enabled @c 0 to disable DPMS characteristics of the server, enable it otherwise.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI void
-ecore_x_dpms_enabled_set(int enabled)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_dpms_avail) return;
-
-#ifdef ECORE_XCB_DPMS
-   if (enabled)
-     xcb_dpms_enable(_ecore_xcb_conn);
-   else
-     xcb_dpms_disable(_ecore_xcb_conn);
-#endif
-}
-
-/**
- * Gets the timeouts. The values are in unit of seconds.
- * @param standby Amount of time of inactivity before standby mode will be invoked.
- * @param suspend Amount of time of inactivity before the screen is placed into suspend mode.
- * @param off     Amount of time of inactivity before the monitor is shut off.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI void
-ecore_x_dpms_timeouts_get(unsigned int *standby,
-                          unsigned int *suspend,
-                          unsigned int *off)
-{
-#ifdef ECORE_XCB_DPMS
-   xcb_dpms_get_timeouts_cookie_t cookie;
-   xcb_dpms_get_timeouts_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (standby) *standby = 0;
-   if (suspend) *suspend = 0;
-   if (off) *off = 0;
-
-   if (!_dpms_avail) return;
-
-#ifdef ECORE_XCB_DPMS
-   cookie = xcb_dpms_get_timeouts_unchecked(_ecore_xcb_conn);
-   reply = xcb_dpms_get_timeouts_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   if (standby) *standby = reply->standby_timeout;
-   if (suspend) *suspend = reply->suspend_timeout;
-   if (off) *off = reply->off_timeout;
-   free(reply);
-#endif
-}
-
-/**
- * Sets the timeouts. The values are in unit of seconds.
- *
- * @param standby Amount of time of inactivity before standby mode will be invoked.
- * @param suspend Amount of time of inactivity before the screen is placed into suspend mode.
- * @param off     Amount of time of inactivity before the monitor is shut off.
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI Eina_Bool
-ecore_x_dpms_timeouts_set(unsigned int standby,
-                          unsigned int suspend,
-                          unsigned int off)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_dpms_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_DPMS
-   // FIXME: Add request check
-   xcb_dpms_set_timeouts(_ecore_xcb_conn, standby, suspend, off);
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
-/**
- * Returns the amount of time of inactivity before standby mode is invoked.
- * @return The standby timeout value.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI unsigned int
-ecore_x_dpms_timeout_standby_get(void)
-{
-   unsigned int standby = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_dpms_timeouts_get(&standby, NULL, NULL);
-   return standby;
-}
-
-/**
- * Returns the amount of time of inactivity before the second level of
- * power saving is invoked.
- * @return The suspend timeout value.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI unsigned int
-ecore_x_dpms_timeout_suspend_get(void)
-{
-   unsigned int suspend = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_dpms_timeouts_get(NULL, &suspend, NULL);
-   return suspend;
-}
-
-/**
- * Returns the amount of time of inactivity before the third and final
- * level of power saving is invoked.
- * @return The off timeout value.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI unsigned int
-ecore_x_dpms_timeout_off_get(void)
-{
-   unsigned int off = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_dpms_timeouts_get(NULL, NULL, &off);
-   return off;
-}
-
-/**
- * Sets the standby timeout (in unit of seconds).
- * @param new_timeout Amount of time of inactivity before standby mode will be invoked.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI void
-ecore_x_dpms_timeout_standby_set(unsigned int new_timeout)
-{
-   unsigned int standby = 0, suspend = 0, off = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_dpms_timeouts_get(&standby, &suspend, &off);
-   ecore_x_dpms_timeouts_set(new_timeout, suspend, off);
-}
-
-/**
- * Sets the suspend timeout (in unit of seconds).
- * @param new_timeout Amount of time of inactivity before the screen is placed into suspend mode.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI void
-ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout)
-{
-   unsigned int standby = 0, suspend = 0, off = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_dpms_timeouts_get(&standby, &suspend, &off);
-   ecore_x_dpms_timeouts_set(standby, new_timeout, off);
-}
-
-/**
- * Sets the off timeout (in unit of seconds).
- * @param new_timeout     Amount of time of inactivity before the monitor is shut off.
- * @ingroup Ecore_X_DPMS_Group
- */
-EAPI void
-ecore_x_dpms_timeout_off_set(unsigned int new_timeout)
-{
-   unsigned int standby = 0, suspend = 0, off = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_dpms_timeouts_get(&standby, &suspend, &off);
-   ecore_x_dpms_timeouts_set(standby, suspend, new_timeout);
-}
-
-/**
- * Check the DPMS power level.
- * @return @c 0 if DPMS is :In Use
- * @return @c 1 if DPMS is :Blanked, low power
- * @return @c 2 if DPMS is :Blanked, lower power
- * @return @c 3 if DPMS is :Shut off, awaiting activity
- * @return @c -1 otherwise.
-*/
-EAPI Ecore_X_Dpms_Mode 
-ecore_x_dpms_power_level_get(void)
-{
-   Ecore_X_Dpms_Mode ret = -1;
-#ifdef ECORE_XCB_DPMS
-   xcb_dpms_info_cookie_t cookie;
-   xcb_dpms_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_dpms_avail) return ret;
-
-#ifdef ECORE_XCB_DPMS
-   cookie = xcb_dpms_info_unchecked(_ecore_xcb_conn);
-   reply = xcb_dpms_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return -1;
-
-   ret = reply->power_level;
-   free(reply);
-#endif
-
-   return ret;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_drawable.c b/src/lib/ecore_x/xcb/ecore_xcb_drawable.c
deleted file mode 100644 (file)
index 30bb880..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-#include "ecore_xcb_private.h"
-
-/**
- * @defgroup Ecore_X_Drawable_Group X Drawable Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that operate on drawables.
- */
-
-/**
- * Fill the specified rectangle on a drawable.
- * @param d The given drawable.
- * @param gc The graphic context that controls the fill rules.
- * @param x The X coordinate of the top-left corner of the rectangle.
- * @param y The Y coordinate of the top-left corner of the rectangle.
- * @param width The width of the rectangle.
- * @param height The height of the rectangle.
- */
-EAPI void
-ecore_x_drawable_rectangle_fill(Ecore_X_Drawable draw,
-                                Ecore_X_GC       gc,
-                                int              x,
-                                int              y,
-                                int              w,
-                                int              h)
-{
-   xcb_rectangle_t rect;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_poly_fill_rectangle(_ecore_xcb_conn, draw, gc, 1,
-                           (const xcb_rectangle_t *)&rect);
-//   ecore_x_flush();
-}
-
-/**
- * Retrieves the geometry of the given drawable.
- * @param d The given drawable.
- * @param x Pointer to an integer into which the X position is to be stored.
- * @param y Pointer to an integer into which the Y position is to be stored.
- * @param w Pointer to an integer into which the width is to be stored.
- * @param h Pointer to an integer into which the height is to be stored.
- * @ingroup Ecore_X_Drawable_Group
- */
-EAPI void
-ecore_x_drawable_geometry_get(Ecore_X_Drawable draw,
-                              int             *x,
-                              int             *y,
-                              int             *w,
-                              int             *h)
-{
-   xcb_get_geometry_cookie_t cookie;
-   xcb_get_geometry_reply_t *reply;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (x) *x = 0;
-   if (y) *y = 0;
-   if (w) *w = 0;
-   if (h) *h = 0;
-   cookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, draw);
-   reply = xcb_get_geometry_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   if (x) *x = reply->x;
-   if (y) *y = reply->y;
-   if (w) *w = (int)reply->width;
-   if (h) *h = (int)reply->height;
-   free(reply);
-}
-
-/**
- * Retrieves the width of the border of the given drawable.
- * @param  d The given drawable.
- * @return The border width of the given drawable.
- * @ingroup Ecore_X_Drawable_Group
- */
-EAPI int
-ecore_x_drawable_border_width_get(Ecore_X_Drawable d)
-{
-   xcb_get_geometry_cookie_t cookie;
-   xcb_get_geometry_reply_t *reply;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, d);
-   reply = xcb_get_geometry_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   ret = (int)reply->border_width;
-   free(reply);
-   return ret;
-}
-
-/**
- * Retrieves the depth of the given drawable.
- * @param  d The given drawable.
- * @return The depth of the given drawable.
- * @ingroup Ecore_X_Drawable_Group
- */
-EAPI int
-ecore_x_drawable_depth_get(Ecore_X_Drawable d)
-{
-   xcb_get_geometry_cookie_t cookie;
-   xcb_get_geometry_reply_t *reply;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, d);
-   reply = xcb_get_geometry_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   ret = (int)reply->depth;
-   free(reply);
-   return ret;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_e.c b/src/lib/ecore_x/xcb/ecore_xcb_e.c
deleted file mode 100644 (file)
index 15bd726..0000000
+++ /dev/null
@@ -1,2266 +0,0 @@
-#include "ecore_xcb_private.h"
-
-/* local function prototypes */
-static Ecore_X_Atom                    _ecore_xcb_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state);
-static Ecore_X_Virtual_Keyboard_State  _ecore_xcb_e_vkbd_state_get(Ecore_X_Atom atom);
-static Ecore_X_Atom                    _ecore_xcb_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state);
-static Ecore_X_Illume_Quickpanel_State _ecore_xcb_e_quickpanel_state_get(Ecore_X_Atom atom);
-static Ecore_X_Atom                    _ecore_xcb_e_illume_atom_get(Ecore_X_Illume_Mode mode);
-static Ecore_X_Illume_Mode             _ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom);
-static Ecore_X_Atom                    _ecore_xcb_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state);
-static Ecore_X_Illume_Indicator_State  _ecore_xcb_e_indicator_state_get(Ecore_X_Atom atom);
-
-EAPI void
-ecore_x_e_init(void)
-{
-}
-
-EAPI void
-ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
-                                   Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
-                                        Ecore_X_Window win,
-                                        int            w,
-                                        int            h)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 1;
-   ev.data.data32[2] = w;
-   ev.data.data32[3] = h;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_sync_counter_set(Ecore_X_Window       win,
-                                Ecore_X_Sync_Counter counter)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (counter)
-     ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
-                                 ECORE_X_ATOM_CARDINAL, &counter, 1);
-   else
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER);
-}
-
-EAPI Ecore_X_Sync_Counter
-ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
-{
-   Ecore_X_Sync_Counter counter = 0;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
-                                     ECORE_X_ATOM_CARDINAL, &counter, 1);
-   if (ret != 1) return 0;
-   return counter;
-}
-
-EAPI Eina_Bool
-ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
-{
-   Ecore_X_Window win, win2;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   ret =
-     ecore_x_window_prop_xid_get(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
-                                 ECORE_X_ATOM_WINDOW, &win, 1);
-   if ((ret == 1) && (win))
-     {
-        ret =
-          ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
-                                      ECORE_X_ATOM_WINDOW, &win2, 1);
-        if ((ret == 1) && (win2 == win))
-          return EINA_TRUE;
-     }
-   return EINA_FALSE;
-}
-
-/*
- * @since 1.3
- * @deprecated use ecore_x_e_window_available_profiles_set
- */
-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__);
-   CHECK_XCB_CONN;
-
-   if (!win)
-     return;
-
-   if ((!profiles) || (num_profiles <= 0))
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_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_WINDOW_PROFILE_AVAILABLE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, (void *)atoms,
-                                         num_profiles);
-     }
-}
-
-/*
- * @since 1.3
- * @deprecated use ecore_x_e_window_available_profiles_get
- */
-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;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (ret_num)
-     *ret_num = 0;
-
-   if (profiles)
-     *profiles = NULL;
-
-   if (!win)
-     return EINA_FALSE;
-
-   if (!ecore_x_window_prop_property_get(win,
-                                         ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
-                                         ECORE_X_ATOM_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__);
-   CHECK_XCB_CONN;
-
-   if (!win)
-     return;
-
-   if (!profile)
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_WINDOW_PROFILE);
-   else
-     {
-        atom = ecore_x_atom_get(profile);
-        ecore_x_window_prop_property_set(win, ECORE_X_ATOM_E_WINDOW_PROFILE,
-                                         ECORE_X_ATOM_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__);
-   CHECK_XCB_CONN;
-   if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_E_WINDOW_PROFILE,
-                                         ECORE_X_ATOM_ATOM, 32, &data, &num))
-     {
-        if (data)
-          free(data);
-        return NULL;
-     }
-
-   if (data)
-     atom = (Ecore_X_Atom *)data;
-
-   if (atom)
-     profile = ecore_x_atom_name_get(atom[0]);
-
-   if (data) free(data);
-
-   return profile;
-}
-
-EAPI void
-ecore_x_e_window_profile_supported_set(Ecore_X_Window root,
-                                       Eina_Bool      enabled)
-{
-   Ecore_X_Window win;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (enabled)
-     {
-        win = ecore_x_window_new(root, 1, 2, 3, 4);
-        ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
-                                    ECORE_X_ATOM_WINDOW, &win, 1);
-        ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
-                                    ECORE_X_ATOM_WINDOW, &win, 1);
-     }
-   else
-     {
-        int ret = 0;
-
-        ret = ecore_x_window_prop_xid_get(root,
-                                          ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
-                                          ECORE_X_ATOM_WINDOW, &win, 1);
-        if ((ret == 1) && (win))
-          {
-             ecore_x_window_prop_property_del(root,
-                                              ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED);
-             ecore_x_window_free(win);
-          }
-     }
-}
-
-EAPI Eina_Bool
-ecore_x_e_window_profile_supported_get(Ecore_X_Window root)
-{
-   Ecore_X_Window win, win2;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   ret =
-     ecore_x_window_prop_xid_get(root,
-                                 ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
-                                 ECORE_X_ATOM_WINDOW,
-                                 &win, 1);
-   if ((ret == 1) && (win))
-     {
-        ret =
-          ecore_x_window_prop_xid_get(win,
-                                      ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED,
-                                      ECORE_X_ATOM_WINDOW,
-                                      &win2, 1);
-        if ((ret == 1) && (win2 == win))
-          return EINA_TRUE;
-     }
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_window_available_profiles_set(Ecore_X_Window  win,
-                                        const char    **profiles,
-                                        unsigned int    count)
-{
-   Ecore_X_Atom *atoms;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win)
-     return;
-
-   if ((!profiles) || (count <= 0))
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST);
-   else
-     {
-        atoms = alloca(count * sizeof(Ecore_X_Atom));
-        ecore_x_atoms_get(profiles, count, atoms);
-        ecore_x_window_prop_property_set(win,
-                                         ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, (void *)atoms,
-                                         count);
-     }
-}
-
-EAPI Eina_Bool
-ecore_x_e_window_available_profiles_get(Ecore_X_Window   win,
-                                        const char    ***profiles,
-                                        int             *count)
-{
-   unsigned char *data = NULL;
-   Ecore_X_Atom *atoms;
-   int num, i;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (count)
-     *count = 0;
-
-   if (profiles)
-     *profiles = NULL;
-
-   if (!win)
-     return EINA_FALSE;
-
-   if (!ecore_x_window_prop_property_get(win,
-                                         ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST,
-                                         ECORE_X_ATOM_ATOM, 32, &data, &num))
-     return EINA_FALSE;
-
-   if (count)
-     *count = num;
-
-   if (profiles)
-     {
-        (*profiles) = calloc(num, sizeof(char *));
-        if (!(*profiles))
-          {
-             if (count)
-               *count = 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_change_send(Ecore_X_Window  root,
-                                     Ecore_X_Window  win,
-                                     const char     *profile)
-{
-   xcb_client_message_event_t ev;
-   Ecore_X_Atom atom;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root)
-     root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (!win)
-     return;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   atom = ecore_x_atom_get(profile);
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = atom;
-   ev.data.data32[2] = 0; // later
-   ev.data.data32[3] = 0; // later
-   ev.data.data32[4] = 0; // later
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY),
-                  (const char *)&ev);
-}
-
-EAPI void
-ecore_x_e_window_profile_change_request_send(Ecore_X_Window win,
-                                             const char    *profile)
-{
-   xcb_client_message_event_t ev;
-   Ecore_X_Atom atom;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win)
-     return;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   atom = ecore_x_atom_get(profile);
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_REQUEST;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = atom;
-   ev.data.data32[2] = 0; // later
-   ev.data.data32[3] = 0; // later
-   ev.data.data32[4] = 0; // later
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT,
-                  (const char *)&ev);
-}
-
-EAPI void
-ecore_x_e_window_profile_change_done_send(Ecore_X_Window root,
-                                          Ecore_X_Window win,
-                                          const char    *profile)
-{
-   xcb_client_message_event_t ev;
-   Ecore_X_Atom atom;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root)
-     root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (!win)
-     return;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   atom = ecore_x_atom_get(profile);
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_DONE;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = atom;
-   ev.data.data32[2] = 0; // later
-   ev.data.data32[3] = 0; // later
-   ev.data.data32[4] = 0; // later
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY),
-                  (const char *)&ev);
-}
-
-EAPI void
-ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
-                                  Eina_Bool      enabled)
-{
-   Ecore_X_Window win;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   if (enabled)
-     {
-        win = ecore_x_window_new(root, 1, 2, 3, 4);
-        ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
-                                    ECORE_X_ATOM_WINDOW, &win, 1);
-        ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
-                                    ECORE_X_ATOM_WINDOW, &win, 1);
-     }
-   else
-     {
-        int ret = 0;
-
-        ret = ecore_x_window_prop_xid_get(root,
-                                          ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
-                                          ECORE_X_ATOM_WINDOW, &win, 1);
-        if ((ret == 1) && (win))
-          {
-             ecore_x_window_prop_property_del(root,
-                                              ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED);
-             ecore_x_window_free(win);
-          }
-     }
-}
-
-EAPI void
-ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_SYNC_END;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_flush_send(Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_FLUSH;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_dump_send(Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_COMP_DUMP;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = 0;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
-                          Ecore_X_Pixmap pixmap)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (pixmap)
-     ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_PIXMAP,
-                                 ECORE_X_ATOM_PIXMAP, &pixmap, 1);
-   else
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_PIXMAP);
-}
-
-EAPI Ecore_X_Pixmap
-ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
-{
-   Ecore_X_Pixmap pixmap = 0;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_PIXMAP,
-                                     ECORE_X_ATOM_PIXMAP, &pixmap, 1);
-   if (ret != 1) return 0;
-   return pixmap;
-}
-
-EAPI void
-ecore_x_e_frame_size_set(Ecore_X_Window win,
-                         int            fl,
-                         int            fr,
-                         int            ft,
-                         int            fb)
-{
-   uint32_t frames[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   frames[0] = fl;
-   frames[1] = fr;
-   frames[2] = ft;
-   frames[3] = fb;
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
-}
-
-EAPI Ecore_X_Virtual_Keyboard_State
-ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
-                                     &atom, 1))
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
-
-   return _ecore_xcb_e_vkbd_state_get(atom);
-}
-
-EAPI void
-ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window                 win,
-                                     Ecore_X_Virtual_Keyboard_State state)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   atom = _ecore_xcb_e_vkbd_atom_get(state);
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
-                                &atom, 1);
-}
-
-EAPI void
-ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window                 win,
-                                      Ecore_X_Virtual_Keyboard_State state)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_xcb_e_vkbd_atom_get(state),
-                                 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_virtual_keyboard_set(Ecore_X_Window win,
-                               unsigned int   is_keyboard)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
-                                  &is_keyboard, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
-                                       &val, 1))
-     return EINA_FALSE;
-
-   return val ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI int
-ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win,
-                                       ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
-                                       &val, 1))
-     return 0;
-
-   return val;
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win,
-                                               unsigned int   priority)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win,
-                                  ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
-                                  &priority, 1);
-}
-
-EAPI int
-ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win,
-                                       ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
-                                       &val, 1))
-     return 0;
-
-   return val;
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win,
-                                               unsigned int   priority)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win,
-                                  ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
-                                  &priority, 1);
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win,
-                                     unsigned int   zone)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
-                                  &zone, 1);
-}
-
-EAPI int
-ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win,
-                                       ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
-                                       &val, 1))
-     return 0;
-
-   return val;
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_conformant_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
-                                       &val, 1))
-     return EINA_FALSE;
-
-   return val ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_illume_conformant_set(Ecore_X_Window win,
-                                unsigned int   is_conformant)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
-                                  &is_conformant, 1);
-}
-
-EAPI void
-ecore_x_e_illume_softkey_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_SOFTKEY_GEOMETRY,
-                                  geom, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
-                                      int           *x,
-                                      int           *y,
-                                      int           *w,
-                                      int           *h)
-{
-   unsigned int geom[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (x) *x = 0;
-   if (y) *y = 0;
-   if (w) *w = 0;
-   if (h) *h = 0;
-
-   if (ecore_x_window_prop_card32_get(win,
-                                      ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
-                                      geom, 4) != 4)
-     return EINA_FALSE;
-
-   if (x) *x = geom[0];
-   if (y) *y = geom[1];
-   if (w) *w = geom[2];
-   if (h) *h = geom[3];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_e_illume_indicator_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_INDICATOR_GEOMETRY,
-                                  geom, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
-                                        int           *x,
-                                        int           *y,
-                                        int           *w,
-                                        int           *h)
-{
-   unsigned int geom[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (x) *x = 0;
-   if (y) *y = 0;
-   if (w) *w = 0;
-   if (h) *h = 0;
-
-   if (ecore_x_window_prop_card32_get(win,
-                                      ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
-                                      geom, 4) != 4)
-     return EINA_FALSE;
-
-   if (x) *x = geom[0];
-   if (y) *y = geom[1];
-   if (w) *w = geom[2];
-   if (h) *h = geom[3];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_e_illume_keyboard_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_KEYBOARD_GEOMETRY,
-                                  geom, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
-                                       int           *x,
-                                       int           *y,
-                                       int           *w,
-                                       int           *h)
-{
-   unsigned int geom[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (x) *x = 0;
-   if (y) *y = 0;
-   if (w) *w = 0;
-   if (h) *h = 0;
-
-   if (ecore_x_window_prop_card32_get(win,
-                                      ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
-                                      geom, 4) != 4)
-     return EINA_FALSE;
-
-   if (x) *x = geom[0];
-   if (y) *y = geom[1];
-   if (w) *w = geom[2];
-   if (h) *h = geom[3];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_set(Ecore_X_Window win,
-                                unsigned int   is_quickpanel)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
-                                  &is_quickpanel, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
-                                       &val, 1))
-     return EINA_FALSE;
-
-   return val ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window                  win,
-                                      Ecore_X_Illume_Quickpanel_State state)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   atom = _ecore_xcb_e_quickpanel_atom_get(state);
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
-                                &atom, 1);
-}
-
-EAPI Ecore_X_Illume_Quickpanel_State
-ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_atom_get(win,
-                                     ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
-                                     &atom, 1))
-     return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
-
-   return _ecore_xcb_e_quickpanel_state_get(atom);
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window                  win,
-                                       Ecore_X_Illume_Quickpanel_State state)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_xcb_e_quickpanel_atom_get(state),
-                                 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 0, 0, 0, 0, 0);
-}
-
-static Ecore_X_Atom
-_ecore_xcb_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
-{
-   switch (state)
-     {
-      case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
-        return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
-      case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
-        return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
-      default:
-        break;
-     }
-   return 0;
-}
-
-static Ecore_X_Illume_Clipboard_State
-_ecore_xcb_e_clipboard_state_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
-     return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
-
-   if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
-     return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
-
-   return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
-}
-
-EAPI void
-ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
-                                     Ecore_X_Illume_Clipboard_State state)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   atom = _ecore_xcb_e_clipboard_atom_get(state);
-
-   ecore_x_window_prop_atom_set(win,
-                                ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
-                                &atom, 1);
-}
-
-EAPI Ecore_X_Illume_Clipboard_State
-ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_atom_get(win,
-                                     ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
-                                     &atom, 1))
-     return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
-   return _ecore_xcb_e_clipboard_state_get(atom);
-}
-
-EAPI void
-ecore_x_e_illume_clipboard_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_CLIPBOARD_GEOMETRY,
-                                  geom, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_clipboard_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_CLIPBOARD_GEOMETRY,
-                                     geom, 4);
-   if (ret != 4) return EINA_FALSE;
-
-   if (x) *x = geom[0];
-   if (y) *y = geom[1];
-   if (w) *w = geom[2];
-   if (h) *h = geom[3];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_e_illume_mode_set(Ecore_X_Window      win,
-                          Ecore_X_Illume_Mode mode)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   atom = _ecore_xcb_e_illume_atom_get(mode);
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1);
-}
-
-EAPI Ecore_X_Illume_Mode
-ecore_x_e_illume_mode_get(Ecore_X_Window win)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1))
-     return ECORE_X_ILLUME_MODE_UNKNOWN;
-
-   return _ecore_xcb_e_illume_mode_get(atom);
-}
-
-EAPI void
-ecore_x_e_illume_mode_send(Ecore_X_Window      win,
-                           Ecore_X_Illume_Mode mode)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_MODE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_xcb_e_illume_atom_get(mode),
-                                 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_close_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_home_new_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_home_del_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-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_over_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_OVER,
-                                 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_access_action_up_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_UP,
-                                 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_access_action_down_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_DOWN,
-                                 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_drag_set(Ecore_X_Window win,
-                          unsigned int   drag)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1);
-}
-
-EAPI void
-ecore_x_e_illume_drag_locked_set(Ecore_X_Window win,
-                                 unsigned int   is_locked)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
-                                  &is_locked, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
-                                       &val, 1))
-     return EINA_FALSE;
-
-   return val ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_e_illume_drag_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG, &val, 1))
-     return EINA_FALSE;
-
-   return val ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 1, 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_illume_zone_set(Ecore_X_Window win,
-                          Ecore_X_Window zone)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE, &zone, 1);
-}
-
-EAPI Ecore_X_Window
-ecore_x_e_illume_zone_get(Ecore_X_Window win)
-{
-   Ecore_X_Window zone = 0;
-   int ret;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret = ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE,
-                                        &zone, 1);
-   if ((ret == 0) || (ret == -1))
-     return 0;
-
-   return zone;
-}
-
-EAPI void
-ecore_x_e_illume_zone_list_set(Ecore_X_Window  win,
-                               Ecore_X_Window *zones,
-                               unsigned int    num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
-                                  zones, num);
-}
-
-/* local functions */
-static Ecore_X_Atom
-_ecore_xcb_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
-{
-   switch (state)
-     {
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD;
-
-      case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME:
-        return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
-
-      default:
-        break;
-     }
-   return 0;
-}
-
-static Ecore_X_Virtual_Keyboard_State
-_ecore_xcb_e_vkbd_state_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD;
-   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME)
-     return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
-
-   return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
-}
-
-static Ecore_X_Atom
-_ecore_xcb_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
-{
-   switch (state)
-     {
-      case ECORE_X_ILLUME_QUICKPANEL_STATE_ON:
-        return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON;
-
-      case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF:
-        return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF;
-
-      default:
-        break;
-     }
-   return 0;
-}
-
-static Ecore_X_Illume_Quickpanel_State
-_ecore_xcb_e_quickpanel_state_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
-     return ECORE_X_ILLUME_QUICKPANEL_STATE_ON;
-   if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF)
-     return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF;
-
-   return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
-}
-
-static Ecore_X_Atom
-_ecore_xcb_e_illume_atom_get(Ecore_X_Illume_Mode mode)
-{
-   switch (mode)
-     {
-      case ECORE_X_ILLUME_MODE_SINGLE:
-        return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE;
-
-      case ECORE_X_ILLUME_MODE_DUAL_TOP:
-        return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP;
-
-      case ECORE_X_ILLUME_MODE_DUAL_LEFT:
-        return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT;
-
-      default:
-        break;
-     }
-   return ECORE_X_ILLUME_MODE_UNKNOWN;
-}
-
-static Ecore_X_Illume_Mode
-_ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE)
-     return ECORE_X_ILLUME_MODE_SINGLE;
-   if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP)
-     return ECORE_X_ILLUME_MODE_DUAL_TOP;
-   if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT)
-     return ECORE_X_ILLUME_MODE_DUAL_LEFT;
-
-   return ECORE_X_ILLUME_MODE_UNKNOWN;
-}
-
-static Ecore_X_Atom
-_ecore_xcb_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state)
-{
-   switch (state)
-     {
-      case ECORE_X_ILLUME_INDICATOR_STATE_ON:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
-
-      case ECORE_X_ILLUME_INDICATOR_STATE_OFF:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
-
-      default:
-        break;
-     }
-   return 0;
-}
-
-static Ecore_X_Illume_Indicator_State
-_ecore_xcb_e_indicator_state_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON)
-     return ECORE_X_ILLUME_INDICATOR_STATE_ON;
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF)
-     return ECORE_X_ILLUME_INDICATOR_STATE_OFF;
-
-   return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
-}
-
-EAPI void
-ecore_x_e_illume_indicator_state_set(Ecore_X_Window                 win,
-                                     Ecore_X_Illume_Indicator_State state)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   atom = _ecore_xcb_e_indicator_atom_get(state);
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
-                                &atom, 1);
-}
-
-EAPI Ecore_X_Illume_Indicator_State
-ecore_x_e_illume_indicator_state_get(Ecore_X_Window win)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_atom_get(win,
-                                     ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
-                                     &atom, 1))
-     return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
-
-   return _ecore_xcb_e_indicator_state_get(atom);
-}
-
-EAPI void
-ecore_x_e_illume_indicator_state_send(Ecore_X_Window                 win,
-                                      Ecore_X_Illume_Indicator_State state)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_xcb_e_indicator_atom_get(state),
-                                 0, 0, 0, 0);
-}
-
-static Ecore_X_Atom
-_ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode)
-{
-   switch (mode)
-     {
-      case ECORE_X_ILLUME_INDICATOR_OPAQUE:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
-
-      case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
-
-      case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
-
-      default:
-        break;
-     }
-   return 0;
-}
-
-static Ecore_X_Illume_Indicator_Opacity_Mode
-_ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE)
-     return ECORE_X_ILLUME_INDICATOR_OPAQUE;
-
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT)
-     return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT;
-
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT)
-     return ECORE_X_ILLUME_INDICATOR_TRANSPARENT;
-
-   return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
-}
-
-EAPI void
-ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
-                                     Ecore_X_Illume_Indicator_Opacity_Mode mode)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   atom = _ecore_x_e_indicator_opacity_atom_get(mode);
-   ecore_x_window_prop_atom_set(win,
-                                ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
-                                &atom, 1);
-}
-
-EAPI Ecore_X_Illume_Indicator_Opacity_Mode
-ecore_x_e_illume_indicator_opacity_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_INDICATOR_OPACITY_MODE,
-                                     &atom, 1))
-     return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
-
-   return _ecore_x_e_indicator_opacity_get(atom);
-}
-
-EAPI void
-ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
-                                      Ecore_X_Illume_Indicator_Opacity_Mode mode)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_x_e_indicator_opacity_atom_get(mode),
-                                 0, 0, 0, 0);
-}
-
-static Ecore_X_Atom
-_ecore_x_e_indicator_type_atom_get(Ecore_X_Illume_Indicator_Type_Mode mode)
-{
-   switch (mode)
-     {
-      case ECORE_X_ILLUME_INDICATOR_TYPE_1:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1;
-
-      case ECORE_X_ILLUME_INDICATOR_TYPE_2:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2;
-
-      case ECORE_X_ILLUME_INDICATOR_TYPE_3:
-        return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_3;
-
-      default:
-        break;
-     }
-   return 0;
-}
-
-static Ecore_X_Illume_Indicator_Type_Mode
-_ecore_x_e_indicator_type_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1)
-     return ECORE_X_ILLUME_INDICATOR_TYPE_1;
-
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2)
-     return ECORE_X_ILLUME_INDICATOR_TYPE_2;
-
-   if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_3)
-     return ECORE_X_ILLUME_INDICATOR_TYPE_3;
-
-   return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
-}
-
-EAPI void
-ecore_x_e_illume_indicator_type_set(Ecore_X_Window win,
-                                     Ecore_X_Illume_Indicator_Type_Mode mode)
-{
-   Ecore_X_Atom atom = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   atom = _ecore_x_e_indicator_type_atom_get(mode);
-   ecore_x_window_prop_atom_set(win,
-                                ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
-                                &atom, 1);
-}
-
-EAPI Ecore_X_Illume_Indicator_Type_Mode
-ecore_x_e_illume_indicator_type_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_INDICATOR_TYPE_MODE,
-                                     &atom, 1))
-     return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
-
-   return _ecore_x_e_indicator_type_get(atom);
-}
-
-EAPI void
-ecore_x_e_illume_indicator_type_send(Ecore_X_Window win,
-                                      Ecore_X_Illume_Indicator_Type_Mode mode)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_x_e_indicator_type_atom_get(mode),
-                                 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);
-}
-
-EAPI void
-ecore_x_e_illume_window_state_send(Ecore_X_Window win,
-                                   Ecore_X_Illume_Window_State state)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
-                                 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
-                                 _ecore_x_e_illume_window_state_atom_get(state),
-                                 0, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_window_rotation_supported_set(Ecore_X_Window root,
-                                        Eina_Bool      enabled)
-{
-   Ecore_X_Window win;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (enabled)
-     {
-        win = ecore_x_window_new(root, 1, 2, 3, 4);
-        ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
-                                    ECORE_X_ATOM_WINDOW, &win, 1);
-        ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
-                                    ECORE_X_ATOM_WINDOW, &win, 1);
-     }
-   else
-     {
-        int ret;
-
-        ret =
-          ecore_x_window_prop_xid_get(root,
-                                      ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
-                                      ECORE_X_ATOM_WINDOW,
-                                      &win, 1);
-        if ((ret == 1) && (win))
-          {
-             ecore_x_window_prop_property_del(
-               root,
-               ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED);
-             ecore_x_window_free(win);
-          }
-     }
-}
-
-EAPI Eina_Bool
-ecore_x_e_window_rotation_supported_get(Ecore_X_Window root)
-{
-   Ecore_X_Window win, win2;
-   int ret;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   ret =
-     ecore_x_window_prop_xid_get(root,
-                                 ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
-                                 ECORE_X_ATOM_WINDOW,
-                                 &win, 1);
-   if ((ret == 1) && (win))
-     {
-        ret =
-          ecore_x_window_prop_xid_get(win,
-                                      ECORE_X_ATOM_E_WINDOW_ROTATION_SUPPORTED,
-                                      ECORE_X_ATOM_WINDOW,
-                                      &win2, 1);
-        if ((ret == 1) && (win2 == win))
-          return EINA_TRUE;
-     }
-
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_window_rotation_app_set(Ecore_X_Window win,
-                                  Eina_Bool      set)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (set) val = 1;
-
-   ecore_x_window_prop_card32_set(win,
-                                  ECORE_X_ATOM_E_WINDOW_ROTATION_APP_SUPPORTED,
-                                  &val, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_e_window_rotation_app_get(Ecore_X_Window win)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win,
-                                       ECORE_X_ATOM_E_WINDOW_ROTATION_APP_SUPPORTED,
-                                       &val, 1))
-     return EINA_FALSE;
-
-   return val ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_window_rotation_preferred_rotation_set(Ecore_X_Window win,
-                                                 int            rot)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (rot != -1)
-     {
-        val = (unsigned int)rot;
-        ecore_x_window_prop_card32_set(win,
-                                       ECORE_X_ATOM_E_WINDOW_ROTATION_PREFERRED_ROTATION,
-                                       &val, 1);
-     }
-   else
-     {
-        ecore_x_window_prop_property_del(win,
-                                         ECORE_X_ATOM_E_WINDOW_ROTATION_PREFERRED_ROTATION);
-     }
-}
-
-EAPI Eina_Bool
-ecore_x_e_window_rotation_preferred_rotation_get(Ecore_X_Window win,
-                                                 int           *rot)
-{
-   unsigned int val = 0;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret = ecore_x_window_prop_card32_get(win,
-                                        ECORE_X_ATOM_E_WINDOW_ROTATION_PREFERRED_ROTATION,
-                                        &val, 1);
-   if (ret == 1)
-     {
-        if (rot) *rot = (int)val;
-        return EINA_TRUE;
-     }
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_window_rotation_available_rotations_set(Ecore_X_Window win,
-                                                  const int     *rots,
-                                                  unsigned int   count)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!win) return;
-
-   if ((rots) && (count > 0))
-     ecore_x_window_prop_card32_set(win,
-                                    ECORE_X_ATOM_E_WINDOW_ROTATION_AVAILABLE_LIST,
-                                    (unsigned int *)rots, count);
-   else
-     ecore_x_window_prop_property_del(win,
-                                      ECORE_X_ATOM_E_WINDOW_ROTATION_AVAILABLE_LIST);
-}
-
-EAPI Eina_Bool
-ecore_x_e_window_rotation_available_rotations_get(Ecore_X_Window  win,
-                                                  int           **rots,
-                                                  unsigned int   *count)
-{
-   unsigned char *data = NULL;
-   int num, i;
-   int *val = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!win) || (!rots) || (!count))
-     return EINA_FALSE;
-
-   *rots = NULL;
-   *count = 0;
-
-   if (!ecore_x_window_prop_property_get(win,
-                                         ECORE_X_ATOM_E_WINDOW_ROTATION_AVAILABLE_LIST,
-                                         XCB_ATOM_CARDINAL, 32, &data, &num))
-     return EINA_FALSE;
-
-   *count = num;
-
-   if ((num >= 1) && (data))
-     {
-        val = calloc(num, sizeof(int));
-        if (!val)
-          {
-             *count = 0;
-             if (data) free(data);
-             return EINA_FALSE;
-          }
-        for (i = 0; i < num; i++)
-          val[i] = ((int *)data)[i];
-        if (data) free(data);
-        *rots = val;
-        return EINA_TRUE;
-     }
-   if (data) free(data);
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_e_window_rotation_change_prepare_send(Ecore_X_Window win,
-                                              int            rot,
-                                              Eina_Bool      resize,
-                                              int            w,
-                                              int            h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_PREPARE,
-                                 ECORE_X_EVENT_MASK_NONE,
-                                 win, rot, resize, w, h);
-}
-
-EAPI void
-ecore_x_e_window_rotation_change_prepare_done_send(Ecore_X_Window root,
-                                                   Ecore_X_Window win,
-                                                   int            rot)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_PREPARE_DONE;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = rot;
-   ev.data.data32[2] = 0;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-}
-
-EAPI void
-ecore_x_e_window_rotation_change_request_send(Ecore_X_Window win,
-                                              int            rot)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_client_message32_send(win,
-                                 ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_REQUEST,
-                                 ECORE_X_EVENT_MASK_NONE,
-                                 win, rot, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_e_window_rotation_change_done_send(Ecore_X_Window root,
-                                           Ecore_X_Window win,
-                                           int            rot,
-                                           int            w,
-                                           int            h)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_DONE;
-   ev.data.data32[0] = win;
-   ev.data.data32[1] = rot;
-   ev.data.data32[2] = w;
-   ev.data.data32[3] = h;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-}
-
-EAPI void
-ecore_x_e_keyrouter_set(Ecore_X_Window win EINA_UNUSED, Eina_Bool on)
-{
-   Ecore_X_Window root;
-   unsigned int val;
-
-   CHECK_XCB_CONN;
-
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   val = (on) ? 1 : 0;
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_E_KEYROUTER_SUPPORTED,
-                                  &val, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_e_keyrouter_get(Ecore_X_Window win EINA_UNUSED)
-{
-   Ecore_X_Window root;
-   int ret;
-   unsigned int val;
-
-   CHECK_XCB_CONN;
-
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   ret =
-     ecore_x_window_prop_card32_get(root, ECORE_X_ATOM_E_KEYROUTER_SUPPORTED,
-                                    &val, 1);
-   if (ret != 1) return EINA_FALSE;
-   return (val == 1) ? EINA_TRUE : EINA_FALSE;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_error.c b/src/lib/ecore_x/xcb/ecore_xcb_error.c
deleted file mode 100644 (file)
index 166d5ee..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <xcb/xcb_event.h>
-
-/* local variables */
-static void (*_error_func)(void *data) = NULL;
-static void *_error_data = NULL;
-static void (*_io_error_func)(void *data) = NULL;
-static void *_io_error_data = NULL;
-static int _error_request_code = 0;
-static int _error_code = 0;
-static Ecore_X_ID _error_resource_id = 0;
-
-/**
- * Set the error handler.
- * @param func The error handler function
- * @param data The data to be passed to the handler function
- *
- * Set the X error handler function
- */
-EAPI void
-ecore_x_error_handler_set(void        (*func)(void *data),
-                          const void *data)
-{
-   _error_func = func;
-   _error_data = (void *)data;
-}
-
-/**
- * Set the I/O error handler.
- * @param func The I/O error handler function
- * @param data The data to be passed to the handler function
- *
- * Set the X I/O error handler function
- */
-EAPI void
-ecore_x_io_error_handler_set(void        (*func)(void *data),
-                             const void *data)
-{
-   _io_error_func = func;
-   _io_error_data = (void *)data;
-}
-
-/**
- * Get the request code that caused the error.
- * @return The request code causing the X error
- *
- * Return the X request code that caused the last X error
- */
-EAPI int
-ecore_x_error_request_get(void)
-{
-   return _error_request_code;
-}
-
-/**
- * Get the error code from the error.
- * @return The error code from the X error
- *
- * Return the error code from the last X error
- */
-EAPI int
-ecore_x_error_code_get(void)
-{
-   return _error_code;
-}
-
-/**
- * Get the resource id that caused the error.
- * @return The resource id causing the X error
- *
- * Return the X resource id that caused the last X error
- */
-EAPI Ecore_X_ID
-ecore_x_error_resource_id_get(void)
-{
-   return _error_resource_id;
-}
-
-int
-_ecore_xcb_error_handle(xcb_generic_error_t *err)
-{
-   WRN("Got Error:");
-   WRN("\tEvent: %s", xcb_event_get_request_label(err->major_code));
-   WRN("\tError: %s", xcb_event_get_error_label(err->error_code));
-
-   if (err->error_code == XCB_VALUE)
-     WRN("\tBad Value: %d", ((xcb_value_error_t *)err)->bad_value);
-   else if (err->error_code == XCB_WINDOW)
-     WRN("\tBad Window: %d", ((xcb_window_error_t *)err)->bad_value);
-
-   _error_request_code = err->sequence;
-   _error_code = err->error_code;
-   _error_resource_id = err->resource_id;
-   if (_error_func)
-     _error_func(_error_data);
-
-   return 0;
-}
-
-int
-_ecore_xcb_io_error_handle(xcb_generic_error_t *err)
-{
-   CRI("IO Error:");
-   if (err)
-     {
-        CRI("\tRequest: %d", err->sequence);
-        CRI("\tCode: %d", err->error_code);
-     }
-   if (_io_error_func)
-     _io_error_func(_io_error_data);
-   else
-     exit(-1);
-
-   return 0;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_events.c b/src/lib/ecore_x/xcb/ecore_xcb_events.c
deleted file mode 100644 (file)
index c2c944e..0000000
+++ /dev/null
@@ -1,2831 +0,0 @@
-#include "ecore_xcb_private.h"
-//#include "Ecore_X_Atoms.h"
-#include <langinfo.h>
-#include <xcb/xcb_icccm.h>
-#include <xcb/xcb_event.h>
-# ifdef ECORE_XCB_DAMAGE
-#  include <xcb/damage.h>
-# endif
-# ifdef ECORE_XCB_RANDR
-#  include <xcb/randr.h>
-# endif
-# ifdef ECORE_XCB_SCREENSAVER
-#  include <xcb/screensaver.h>
-# endif
-# ifdef ECORE_XCB_SYNC
-#  include <xcb/sync.h>
-# endif
-# ifdef ECORE_XCB_XFIXES
-#  include <xcb/xfixes.h>
-# endif
-# ifdef ECORE_XCB_XPRESENT
-#  include <xcb/present.h>
-# endif
-# ifdef ECORE_XCB_XGESTURE
-#  include <xcb/gesture.h>
-# endif
-
-#ifndef CODESET
-# define CODESET "INVALID"
-#endif
-
-typedef struct _Ecore_X_Mouse_Down_Info
-{
-   EINA_INLIST;
-   int            dev;
-   Ecore_X_Time   last_time;
-   Ecore_X_Time   last_last_time;
-   Ecore_X_Window last_win;
-   Ecore_X_Window last_last_win;
-   Ecore_X_Window last_event_win;
-   Ecore_X_Window last_last_event_win;
-   Eina_Bool      did_double : 1;
-   Eina_Bool      did_triple : 1;
-} Ecore_X_Mouse_Down_Info;
-
-/* local function prototypes */
-static void                     _ecore_xcb_event_handle_any_event(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_key_press(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_key_release(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_button_press(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_button_release(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_motion_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_enter_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_leave_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_keymap_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_focus_in(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_focus_out(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_expose(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_graphics_exposure(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_visibility_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_create_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_destroy_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_map_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_unmap_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_map_request(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_reparent_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_configure_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_configure_request(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gravity_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_resize_request(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_circulate_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_circulate_request(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_property_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_selection_clear(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_selection_request(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_selection_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_colormap_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_client_message(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_mapping_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_damage_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_randr_change(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_randr_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_randr_crtc_change(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_randr_output_change(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_randr_output_property_change(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_screensaver_notify(xcb_generic_event_t *event);
-#ifdef ECORE_XCB_XGESTURE
-static void                     _ecore_xcb_event_handle_gesture_notify_flick(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gesture_notify_pan(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gesture_notify_pinchrotation(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gesture_notify_tap(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gesture_notify_tapnhold(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gesture_notify_hold(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_gesture_notify_group(xcb_generic_event_t *event);
-#endif
-#ifdef ECORE_XCB_SHAPE
-static void                     _ecore_xcb_event_handle_shape_change(xcb_generic_event_t *event);
-#endif
-static void                     _ecore_xcb_event_handle_sync_counter(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_sync_alarm(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_xfixes_selection_notify(xcb_generic_event_t *event EINA_UNUSED);
-static void                     _ecore_xcb_event_handle_xfixes_cursor_notify(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_generic_event(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_handle_input_event(xcb_generic_event_t *event);
-
-static void                     _ecore_xcb_event_key_press(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_key_release(xcb_generic_event_t *event);
-static void                     _ecore_xcb_event_mouse_move_free(void *data EINA_UNUSED,
-                                                                 void *event);
-static Ecore_X_Event_Mode       _ecore_xcb_event_mode_get(uint8_t mode);
-static Ecore_X_Event_Detail     _ecore_xcb_event_detail_get(uint8_t detail);
-static void                     _ecore_xcb_event_xdnd_enter_free(void *data EINA_UNUSED,
-                                                                 void *event);
-static void                     _ecore_xcb_event_selection_notify_free(void *data EINA_UNUSED,
-                                                                       void *event);
-static void                     _ecore_xcb_event_generic_event_free(void *data,
-                                                                    void *event);
-static void                     _ecore_xcb_event_mouse_down_info_clear(void);
-static Ecore_X_Mouse_Down_Info *_ecore_xcb_event_mouse_down_info_get(int dev);
-
-/* local variables */
-static Eina_Bool _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-//static Ecore_Event *_ecore_xcb_event_last_mouse_move_event = NULL;
-static Eina_Inlist *_ecore_xcb_mouse_down_info_list = NULL;
-static Ecore_X_Time _ecore_xcb_event_last_time;
-static Ecore_X_Window _ecore_xcb_event_last_window = 0;
-
-/* public variables */
-int16_t _ecore_xcb_event_last_root_x = 0;
-int16_t _ecore_xcb_event_last_root_y = 0;
-
-EAPI int ECORE_X_EVENT_ANY = 0;
-EAPI int ECORE_X_EVENT_MOUSE_IN = 0;
-EAPI int ECORE_X_EVENT_MOUSE_OUT = 0;
-EAPI int ECORE_X_EVENT_WINDOW_FOCUS_IN = 0;
-EAPI int ECORE_X_EVENT_WINDOW_FOCUS_OUT = 0;
-EAPI int ECORE_X_EVENT_WINDOW_KEYMAP = 0;
-EAPI int ECORE_X_EVENT_WINDOW_DAMAGE = 0;
-EAPI int ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE = 0;
-EAPI int ECORE_X_EVENT_WINDOW_CREATE = 0;
-EAPI int ECORE_X_EVENT_WINDOW_DESTROY = 0;
-EAPI int ECORE_X_EVENT_WINDOW_HIDE = 0;
-EAPI int ECORE_X_EVENT_WINDOW_SHOW = 0;
-EAPI int ECORE_X_EVENT_WINDOW_SHOW_REQUEST = 0;
-EAPI int ECORE_X_EVENT_WINDOW_REPARENT = 0;
-EAPI int ECORE_X_EVENT_WINDOW_CONFIGURE = 0;
-EAPI int ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST = 0;
-EAPI int ECORE_X_EVENT_WINDOW_GRAVITY = 0;
-EAPI int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST = 0;
-EAPI int ECORE_X_EVENT_WINDOW_STACK = 0;
-EAPI int ECORE_X_EVENT_WINDOW_STACK_REQUEST = 0;
-EAPI int ECORE_X_EVENT_WINDOW_PROPERTY = 0;
-EAPI int ECORE_X_EVENT_WINDOW_COLORMAP = 0;
-EAPI int ECORE_X_EVENT_WINDOW_MAPPING = 0;
-EAPI int ECORE_X_EVENT_MAPPING_CHANGE = 0;
-EAPI int ECORE_X_EVENT_SELECTION_CLEAR = 0;
-EAPI int ECORE_X_EVENT_SELECTION_REQUEST = 0;
-EAPI int ECORE_X_EVENT_SELECTION_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_FIXES_SELECTION_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_CLIENT_MESSAGE = 0;
-EAPI int ECORE_X_EVENT_WINDOW_SHAPE = 0;
-EAPI int ECORE_X_EVENT_SCREENSAVER_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_FLICK = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_PAN = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_TAP = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_HOLD = 0;
-EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_GROUP = 0;
-EAPI int ECORE_X_EVENT_SYNC_COUNTER = 0;
-EAPI int ECORE_X_EVENT_SYNC_ALARM = 0;
-EAPI int ECORE_X_EVENT_SCREEN_CHANGE = 0;
-EAPI int ECORE_X_EVENT_DAMAGE_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_RANDR_CRTC_CHANGE = 0;
-EAPI int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE = 0;
-EAPI int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_WINDOW_DELETE_REQUEST = 0;
-EAPI int ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST = 0;
-EAPI int ECORE_X_EVENT_WINDOW_STATE_REQUEST = 0;
-EAPI int ECORE_X_EVENT_FRAME_EXTENTS_REQUEST = 0;
-EAPI int ECORE_X_EVENT_PING = 0;
-EAPI int ECORE_X_EVENT_DESKTOP_CHANGE = 0;
-EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW = 0;
-EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE = 0;
-EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE = 0;
-EAPI int ECORE_X_EVENT_XKB_STATE_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY = 0;
-EAPI int ECORE_X_EVENT_GENERIC = 0;
-
-EAPI int ECORE_X_EVENT_PRESENT_CONFIGURE = 0;
-EAPI int ECORE_X_EVENT_PRESENT_COMPLETE = 0;
-EAPI int ECORE_X_EVENT_PRESENT_IDLE = 0;
-
-EAPI int ECORE_X_RAW_BUTTON_PRESS = 0;
-EAPI int ECORE_X_RAW_BUTTON_RELEASE = 0;
-EAPI int ECORE_X_RAW_MOTION = 0;
-
-void
-_ecore_xcb_events_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ECORE_X_EVENT_ANY)
-     {
-        ECORE_X_EVENT_ANY = ecore_event_type_new();
-        ECORE_X_EVENT_MOUSE_IN = ecore_event_type_new();
-        ECORE_X_EVENT_MOUSE_OUT = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_FOCUS_IN = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_FOCUS_OUT = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_KEYMAP = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_DAMAGE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_CREATE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_DESTROY = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_HIDE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_SHOW = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_SHOW_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_REPARENT = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_CONFIGURE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_GRAVITY = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_RESIZE_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_STACK = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_STACK_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_PROPERTY = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_COLORMAP = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_MAPPING = ecore_event_type_new();
-        ECORE_X_EVENT_MAPPING_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_SELECTION_CLEAR = ecore_event_type_new();
-        ECORE_X_EVENT_SELECTION_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_SELECTION_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_FIXES_SELECTION_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_CLIENT_MESSAGE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_SHAPE = ecore_event_type_new();
-        ECORE_X_EVENT_SCREENSAVER_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_FLICK = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_PAN = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_TAP = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_HOLD = ecore_event_type_new();
-        ECORE_X_EVENT_GESTURE_NOTIFY_GROUP = ecore_event_type_new();
-        ECORE_X_EVENT_SYNC_COUNTER = ecore_event_type_new();
-        ECORE_X_EVENT_SYNC_ALARM = ecore_event_type_new();
-        ECORE_X_EVENT_SCREEN_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_RANDR_CRTC_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_RANDR_OUTPUT_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_DAMAGE_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_DELETE_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_DESKTOP_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_WINDOW_STATE_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_FRAME_EXTENTS_REQUEST = ecore_event_type_new();
-        ECORE_X_EVENT_PING = ecore_event_type_new();
-        ECORE_X_EVENT_STARTUP_SEQUENCE_NEW = ecore_event_type_new();
-        ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE = ecore_event_type_new();
-        ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE = ecore_event_type_new();
-        ECORE_X_EVENT_XKB_STATE_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_XKB_NEWKBD_NOTIFY = ecore_event_type_new();
-        ECORE_X_EVENT_GENERIC = ecore_event_type_new();
-
-        ECORE_X_EVENT_PRESENT_CONFIGURE = ecore_event_type_new();
-        ECORE_X_EVENT_PRESENT_COMPLETE = ecore_event_type_new();
-        ECORE_X_EVENT_PRESENT_IDLE = ecore_event_type_new();
-
-       ECORE_X_RAW_BUTTON_PRESS = ecore_event_type_new();
-       ECORE_X_RAW_BUTTON_RELEASE = ecore_event_type_new();
-       ECORE_X_RAW_MOTION = ecore_event_type_new();
-     }
-}
-
-void
-_ecore_xcb_events_shutdown(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_event_mouse_down_info_clear();
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-//   if (_ecore_xcb_event_last_mouse_move_event)
-//     {
-//        ecore_event_del(_ecore_xcb_event_last_mouse_move_event);
-//        _ecore_xcb_event_last_mouse_move_event = NULL;
-//     }
-}
-
-void
-_ecore_xcb_events_handle(xcb_generic_event_t *ev)
-{
-   uint8_t response = 0;
-
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   /* strip highest bit (set if event is generated) */
-   response = (ev->response_type & ~0x80);
-   if (response == 0)
-     {
-        xcb_generic_error_t *err;
-
-        err = (xcb_generic_error_t *)ev;
-
-        /* NB: There is no way to check access of destroyed windows,
-         * so trap those cases and ignore. We also ignore BadValue from
-         * xcb_grab/ungrab_button (happens when we are using any_mod)
-         * and a few others */
-        if (err->error_code == XCB_WINDOW) return;
-        else if (err->error_code == XCB_MATCH)
-          {
-             if ((err->major_code == XCB_SET_INPUT_FOCUS) ||
-                 (err->major_code == XCB_CONFIGURE_WINDOW))
-               return;
-          }
-        else if (err->error_code == XCB_VALUE)
-          {
-             if ((err->major_code == XCB_KILL_CLIENT) ||
-                 (err->major_code == XCB_GRAB_BUTTON) ||
-                 (err->major_code == XCB_UNGRAB_BUTTON))
-               return;
-          }
-        WRN("Got Event Error:");
-        WRN("\tMajor Code: %d", err->major_code);
-        WRN("\tMinor Code: %d", err->minor_code);
-        WRN("\tRequest: %s", xcb_event_get_request_label(err->major_code));
-        WRN("\tError: %s", xcb_event_get_error_label(err->error_code));
-        if (err->error_code == 2) // bad value
-          WRN("\tValue: %d", ((xcb_value_error_t *)err)->bad_value);
-        else if (err->error_code == 8) // bad match
-          WRN("\tMatch: %d", ((xcb_match_error_t *)err)->bad_value);
-
-        if (err->major_code == XCB_SEND_EVENT)
-          {
-             WRN("\tSend Event Error");
-             WRN("\t\tSeq: %d", ev->sequence);
-             WRN("\t\tFull Seq: %d", ev->full_sequence);
-             WRN("\t\tType: %d", ev->response_type);
-          }
-        /* if (err->major_code == 148)  */
-        /*   { */
-        /*      printf("GOT 148 Error\n"); */
-        /*   } */
-        return;
-     }
-
-   /* FIXME: Filter event for xim when xcb supports xim */
-
-   _ecore_xcb_event_handle_any_event(ev);
-
-   if (response == XCB_KEY_PRESS)
-     _ecore_xcb_event_handle_key_press(ev);
-   else if (response == XCB_KEY_RELEASE)
-     _ecore_xcb_event_handle_key_release(ev);
-   else if (response == XCB_BUTTON_PRESS)
-     _ecore_xcb_event_handle_button_press(ev);
-   else if (response == XCB_BUTTON_RELEASE)
-     _ecore_xcb_event_handle_button_release(ev);
-   else if (response == XCB_MOTION_NOTIFY)
-     _ecore_xcb_event_handle_motion_notify(ev);
-   else if (response == XCB_ENTER_NOTIFY)
-     _ecore_xcb_event_handle_enter_notify(ev);
-   else if (response == XCB_LEAVE_NOTIFY)
-     _ecore_xcb_event_handle_leave_notify(ev);
-   else if (response == XCB_KEYMAP_NOTIFY)
-     _ecore_xcb_event_handle_keymap_notify(ev);
-   else if (response == XCB_FOCUS_IN)
-     _ecore_xcb_event_handle_focus_in(ev);
-   else if (response == XCB_FOCUS_OUT)
-     _ecore_xcb_event_handle_focus_out(ev);
-   else if (response == XCB_EXPOSE)
-     _ecore_xcb_event_handle_expose(ev);
-   else if (response == XCB_GRAPHICS_EXPOSURE)
-     _ecore_xcb_event_handle_graphics_exposure(ev);
-   else if (response == XCB_VISIBILITY_NOTIFY)
-     _ecore_xcb_event_handle_visibility_notify(ev);
-   else if (response == XCB_CREATE_NOTIFY)
-     _ecore_xcb_event_handle_create_notify(ev);
-   else if (response == XCB_DESTROY_NOTIFY)
-     _ecore_xcb_event_handle_destroy_notify(ev);
-   else if (response == XCB_MAP_NOTIFY)
-     _ecore_xcb_event_handle_map_notify(ev);
-   else if (response == XCB_UNMAP_NOTIFY)
-     _ecore_xcb_event_handle_unmap_notify(ev);
-   else if (response == XCB_MAP_REQUEST)
-     _ecore_xcb_event_handle_map_request(ev);
-   else if (response == XCB_REPARENT_NOTIFY)
-     _ecore_xcb_event_handle_reparent_notify(ev);
-   else if (response == XCB_CONFIGURE_NOTIFY)
-     _ecore_xcb_event_handle_configure_notify(ev);
-   else if (response == XCB_CONFIGURE_REQUEST)
-     _ecore_xcb_event_handle_configure_request(ev);
-   else if (response == XCB_GRAVITY_NOTIFY)
-     _ecore_xcb_event_handle_gravity_notify(ev);
-   else if (response == XCB_RESIZE_REQUEST)
-     _ecore_xcb_event_handle_resize_request(ev);
-   else if (response == XCB_CIRCULATE_NOTIFY)
-     _ecore_xcb_event_handle_circulate_notify(ev);
-   else if (response == XCB_CIRCULATE_REQUEST)
-     _ecore_xcb_event_handle_circulate_request(ev);
-   else if (response == XCB_PROPERTY_NOTIFY)
-     _ecore_xcb_event_handle_property_notify(ev);
-   else if (response == XCB_SELECTION_CLEAR)
-     _ecore_xcb_event_handle_selection_clear(ev);
-   else if (response == XCB_SELECTION_REQUEST)
-     _ecore_xcb_event_handle_selection_request(ev);
-   else if (response == XCB_SELECTION_NOTIFY)
-     _ecore_xcb_event_handle_selection_notify(ev);
-   else if (response == XCB_COLORMAP_NOTIFY)
-     _ecore_xcb_event_handle_colormap_notify(ev);
-   else if (response == XCB_CLIENT_MESSAGE)
-     _ecore_xcb_event_handle_client_message(ev);
-   else if (response == XCB_MAPPING_NOTIFY)
-     _ecore_xcb_event_handle_mapping_notify(ev);
-   else if (response == 35) /* GenericEvent == 35 */
-     _ecore_xcb_event_handle_generic_event(ev);
-#ifdef ECORE_XCB_DAMAGE
-   else if ((_ecore_xcb_event_damage >= 0) &&
-            (response == (_ecore_xcb_event_damage + XCB_DAMAGE_NOTIFY)))
-     _ecore_xcb_event_handle_damage_notify(ev);
-#endif
-#ifdef ECORE_XCB_RANDR
-   else if ((_ecore_xcb_event_randr >= 0) &&
-            (response ==
-             _ecore_xcb_event_randr + XCB_RANDR_SCREEN_CHANGE_NOTIFY))
-     _ecore_xcb_event_handle_randr_change(ev);
-   else if ((_ecore_xcb_event_randr >= 0) &&
-            (response == (_ecore_xcb_event_randr + XCB_RANDR_NOTIFY)))
-     _ecore_xcb_event_handle_randr_notify(ev);
-#endif
-#ifdef ECORE_XCB_SCREENSAVER
-   else if ((_ecore_xcb_event_screensaver >= 0) &&
-            (response ==
-             _ecore_xcb_event_screensaver + XCB_SCREENSAVER_NOTIFY))
-     _ecore_xcb_event_handle_screensaver_notify(ev);
-#endif
-#ifdef ECORE_XCB_XGESTURE
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_FLICK))
-     _ecore_xcb_event_handle_gesture_notify_flick(ev);
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_PAN))
-     _ecore_xcb_event_handle_gesture_notify_pan(ev);
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_PINCH_ROTATION))
-     _ecore_xcb_event_handle_gesture_notify_pinchrotation(ev);
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_TAP))
-     _ecore_xcb_event_handle_gesture_notify_tap(ev);
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_TAP_N_HOLD))
-     _ecore_xcb_event_handle_gesture_notify_tapnhold(ev);
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_HOLD))
-     _ecore_xcb_event_handle_gesture_notify_hold(ev);
-   else if ((_ecore_xcb_event_gesture >= 0) && 
-            (response == 
-                _ecore_xcb_event_gesture + XCB_GESTURE_NOTIFY_GROUP))
-     _ecore_xcb_event_handle_gesture_notify_group(ev);
-#endif
-#ifdef ECORE_XCB_SHAPE
-   else if ((_ecore_xcb_event_shape >= 0) &&
-            (response == (_ecore_xcb_event_shape + XCB_SHAPE_NOTIFY)))
-     _ecore_xcb_event_handle_shape_change(ev);
-#endif
-#ifdef ECORE_XCB_SYNC
-   else if ((_ecore_xcb_event_sync >= 0) &&
-            (response == (_ecore_xcb_event_sync + XCB_SYNC_COUNTER_NOTIFY)))
-     _ecore_xcb_event_handle_sync_counter(ev);
-   else if ((_ecore_xcb_event_sync >= 0) &&
-            (response == (_ecore_xcb_event_sync + XCB_SYNC_ALARM_NOTIFY)))
-     _ecore_xcb_event_handle_sync_alarm(ev);
-#endif
-#ifdef ECORE_XCB_XFIXES
-   else if ((_ecore_xcb_event_xfixes >= 0) &&
-            (response ==
-             _ecore_xcb_event_xfixes + XCB_XFIXES_SELECTION_NOTIFY))
-     _ecore_xcb_event_handle_xfixes_selection_notify(ev);
-   else if ((_ecore_xcb_event_xfixes >= 0) &&
-            (response == (_ecore_xcb_event_xfixes + XCB_XFIXES_CURSOR_NOTIFY)))
-     _ecore_xcb_event_handle_xfixes_cursor_notify(ev);
-#endif
-}
-
-Ecore_X_Time
-_ecore_xcb_events_last_time_get(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_event_last_time;
-}
-
-EAPI void
-ecore_x_event_mask_set(Ecore_X_Window     win,
-                       Ecore_X_Event_Mask mask)
-{
-   xcb_get_window_attributes_cookie_t cookie;
-   xcb_get_window_attributes_reply_t *reply;
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   cookie = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-
-   list = (mask | reply->your_event_mask);
-   free(reply);
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_EVENT_MASK, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_event_mask_unset(Ecore_X_Window     win,
-                         Ecore_X_Event_Mask mask)
-{
-   xcb_get_window_attributes_cookie_t cookie;
-   xcb_get_window_attributes_reply_t *reply;
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   cookie = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-
-   list = (reply->your_event_mask & ~mask);
-   free(reply);
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_EVENT_MASK, &list);
-//   ecore_x_flush();
-}
-
-unsigned int
-_ecore_xcb_events_modifiers_get(unsigned int state)
-{
-   unsigned int modifiers = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (state & ECORE_X_MODIFIER_SHIFT)
-     modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
-   if (state & ECORE_X_MODIFIER_CTRL)
-     modifiers |= ECORE_EVENT_MODIFIER_CTRL;
-   if (state & ECORE_X_MODIFIER_ALT)
-     modifiers |= ECORE_EVENT_MODIFIER_ALT;
-   if (state & ECORE_X_MODIFIER_WIN)
-     modifiers |= ECORE_EVENT_MODIFIER_WIN;
-   if (state & ECORE_X_MODIFIER_ALTGR)
-     modifiers |= ECORE_EVENT_MODIFIER_ALTGR;
-   if (state & ECORE_X_LOCK_SCROLL)
-     modifiers |= ECORE_EVENT_LOCK_SCROLL;
-   if (state & ECORE_X_LOCK_CAPS)
-     modifiers |= ECORE_EVENT_LOCK_CAPS;
-   if (state & ECORE_X_LOCK_NUM)
-     modifiers |= ECORE_EVENT_LOCK_NUM;
-   if (state & ECORE_X_LOCK_SHIFT)
-     modifiers |= ECORE_EVENT_LOCK_SHIFT;
-
-   return modifiers;
-}
-
-/* local functions */
-static void
-_ecore_xcb_event_handle_any_event(xcb_generic_event_t *event)
-{
-   xcb_generic_event_t *ev;
-
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ev = malloc(sizeof(xcb_generic_event_t));
-   if (!ev) return;
-
-   memcpy(ev, event, sizeof(xcb_generic_event_t));
-   ecore_event_add(ECORE_X_EVENT_ANY, ev, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_key_press(xcb_generic_event_t *event)
-{
-   _ecore_xcb_event_key_press(event);
-}
-
-static void
-_ecore_xcb_event_handle_key_release(xcb_generic_event_t *event)
-{
-   _ecore_xcb_event_key_release(event);
-}
-
-static void
-_ecore_xcb_event_handle_button_press(xcb_generic_event_t *event)
-{
-   xcb_button_press_event_t *ev;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-
-   ev = (xcb_button_press_event_t *)event;
-   if ((ev->detail > 3) && (ev->detail < 8))
-     {
-        Ecore_Event_Mouse_Wheel *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_Event_Mouse_Wheel)))) return;
-
-        e->timestamp = ev->time;
-        e->modifiers = _ecore_xcb_events_modifiers_get(ev->state);
-        switch (ev->detail)
-          {
-           case 4:
-             e->direction = 0;
-             e->z = -1;
-             break;
-
-           case 5:
-             e->direction = 0;
-             e->z = 1;
-             break;
-
-           case 6:
-             e->direction = 1;
-             e->z = -1;
-             break;
-
-           case 7:
-             e->direction = 1;
-             e->z = 1;
-             break;
-
-           default:
-             e->direction = 0;
-             e->z = 0;
-             break;
-          }
-        e->x = ev->event_x;
-        e->y = ev->event_y;
-        e->root.x = ev->root_x;
-        e->root.y = ev->root_y;
-        if (ev->child)
-          e->window = ev->child;
-        else
-          e->window = ev->event;
-
-        e->event_window = ev->event;
-        e->same_screen = ev->same_screen;
-        e->root_window = ev->root;
-
-        _ecore_xcb_event_last_time = e->timestamp;
-        _ecore_xcb_event_last_window = e->window;
-        _ecore_xcb_event_last_root_x = e->root.x;
-        _ecore_xcb_event_last_root_y = e->root.y;
-
-        ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, e, NULL, NULL);
-
-        _ecore_xcb_window_grab_allow_events(ev->event, ev->child,
-                                            ECORE_EVENT_MOUSE_WHEEL,
-                                            e, ev->time);
-     }
-   else
-     {
-        Ecore_Event_Mouse_Button *e;
-        unsigned int child_win = 0;
-
-        child_win = (ev->child ? ev->child : ev->event);
-
-        _ecore_xcb_event_mouse_move(ev->time, ev->state,
-                                    ev->event_x, ev->event_y,
-                                    ev->root_x, ev->root_y,
-                                    ev->event, child_win,
-                                    ev->root, ev->same_screen,
-                                    0, 1, 1, 1.0, 0.0,
-                                    ev->event_x, ev->event_y,
-                                    ev->root_x, ev->root_y);
-
-        e = _ecore_xcb_event_mouse_button(ECORE_EVENT_MOUSE_BUTTON_DOWN,
-                                          ev->time,
-                                          ev->state, ev->detail,
-                                          ev->event_x, ev->event_y,
-                                          ev->root_x, ev->root_y, ev->event,
-                                          child_win,
-                                          ev->root, ev->same_screen,
-                                          0, 1, 1, 1.0, 0.0,
-                                          ev->event_x, ev->event_y,
-                                          ev->root_x, ev->root_y);
-        if (e)
-          _ecore_xcb_window_grab_allow_events(ev->event, ev->child,
-                                              ECORE_EVENT_MOUSE_BUTTON_DOWN,
-                                              e, ev->time);
-     }
-}
-
-static void
-_ecore_xcb_event_handle_button_release(xcb_generic_event_t *event)
-{
-   xcb_button_release_event_t *ev;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_button_release_event_t *)event;
-   if ((ev->detail <= 3) || (ev->detail > 7))
-     {
-        _ecore_xcb_event_mouse_move(ev->time, ev->state,
-                                    ev->event_x, ev->event_y,
-                                    ev->root_x, ev->root_y,
-                                    ev->event,
-                                    (ev->child ? ev->child : ev->event),
-                                    ev->root, ev->same_screen,
-                                    0, 1, 1, 1.0, 0.0,
-                                    ev->event_x, ev->event_y,
-                                    ev->root_x, ev->root_y);
-
-        _ecore_xcb_event_mouse_button(ECORE_EVENT_MOUSE_BUTTON_UP, ev->time,
-                                      ev->state, ev->detail,
-                                      ev->event_x, ev->event_y, ev->root_x,
-                                      ev->root_y, ev->event,
-                                      (ev->child ? ev->child : ev->event),
-                                      ev->root, ev->same_screen,
-                                      0, 1, 1, 1.0, 0.0,
-                                      ev->event_x, ev->event_y,
-                                      ev->root_x, ev->root_y);
-     }
-}
-
-static void
-_ecore_xcb_event_handle_motion_notify(xcb_generic_event_t *event)
-{
-   xcb_motion_notify_event_t *ev;
-
-   ev = (xcb_motion_notify_event_t *)event;
-
-   /* if (_ecore_xcb_event_last_mouse_move_event)  */
-   /*   { */
-   /*      ecore_event_del(_ecore_xcb_event_last_mouse_move_event); */
-   /*      _ecore_xcb_event_last_mouse_move = EINA_FALSE; */
-   /*      _ecore_xcb_event_last_mouse_move_event = NULL; */
-   /*   } */
-
-   _ecore_xcb_event_mouse_move(ev->time, ev->state,
-                               ev->event_x, ev->event_y,
-                               ev->root_x, ev->root_y,
-                               ev->event,
-                               (ev->child ? ev->child : ev->event),
-                               ev->root, ev->same_screen,
-                               0, 1, 1, 1.0, 0.0,
-                               ev->event_x, ev->event_y,
-                               ev->root_x, ev->root_y);
-   _ecore_xcb_event_last_mouse_move = EINA_TRUE;
-
-   _ecore_xcb_dnd_drag(ev->root, ev->root_x, ev->root_y);
-}
-
-static void
-_ecore_xcb_event_handle_enter_notify(xcb_generic_event_t *event)
-{
-   xcb_enter_notify_event_t *ev;
-   Ecore_X_Event_Mouse_In *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_enter_notify_event_t *)event;
-
-   _ecore_xcb_event_mouse_move(ev->time, ev->state,
-                               ev->event_x, ev->event_y,
-                               ev->root_x, ev->root_y,
-                               ev->event,
-                               (ev->child ? ev->child : ev->event),
-                               ev->root, ev->same_screen_focus,
-                               0, 1, 1, 1.0, 0.0,
-                               ev->event_x, ev->event_y,
-                               ev->root_x, ev->root_y);
-
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Mouse_In)))) return;
-
-   e->modifiers = _ecore_xcb_events_modifiers_get(ev->state);
-   e->x = ev->event_x;
-   e->y = ev->event_y;
-   e->root.x = ev->root_x;
-   e->root.y = ev->root_y;
-   if (ev->child)
-     e->win = ev->child;
-   else
-     e->win = ev->event;
-   e->event_win = ev->event;
-   e->same_screen = ev->same_screen_focus;
-   e->root_win = ev->root;
-   e->mode = _ecore_xcb_event_mode_get(ev->mode);
-   e->detail = _ecore_xcb_event_detail_get(ev->detail);
-   e->time = ev->time;
-   _ecore_xcb_event_last_time = e->time;
-
-   ecore_event_add(ECORE_X_EVENT_MOUSE_IN, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_leave_notify(xcb_generic_event_t *event)
-{
-   xcb_leave_notify_event_t *ev;
-   Ecore_X_Event_Mouse_Out *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_enter_notify_event_t *)event;
-
-   _ecore_xcb_event_mouse_move(ev->time, ev->state,
-                               ev->event_x, ev->event_y,
-                               ev->root_x, ev->root_y,
-                               ev->event,
-                               (ev->child ? ev->child : ev->event),
-                               ev->root, ev->same_screen_focus,
-                               0, 1, 1, 1.0, 0.0,
-                               ev->event_x, ev->event_y,
-                               ev->root_x, ev->root_y);
-
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Mouse_Out)))) return;
-
-   e->modifiers = _ecore_xcb_events_modifiers_get(ev->state);
-   e->x = ev->event_x;
-   e->y = ev->event_y;
-   e->root.x = ev->root_x;
-   e->root.y = ev->root_y;
-   if (ev->child)
-     e->win = ev->child;
-   else
-     e->win = ev->event;
-   e->event_win = ev->event;
-   e->same_screen = ev->same_screen_focus;
-   e->root_win = ev->root;
-   e->mode = _ecore_xcb_event_mode_get(ev->mode);
-   e->detail = _ecore_xcb_event_detail_get(ev->detail);
-
-   e->time = ev->time;
-   _ecore_xcb_event_last_time = e->time;
-   _ecore_xcb_event_last_window = e->win;
-   _ecore_xcb_event_last_root_x = e->root.x;
-   _ecore_xcb_event_last_root_y = e->root.y;
-
-   ecore_event_add(ECORE_X_EVENT_MOUSE_OUT, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_keymap_notify(xcb_generic_event_t *event EINA_UNUSED)
-{
-//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-     // FIXME: handle this event type
-       _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-}
-
-static void
-_ecore_xcb_event_handle_focus_in(xcb_generic_event_t *event)
-{
-   xcb_focus_in_event_t *ev;
-   Ecore_X_Event_Window_Focus_In *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_focus_in_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Focus_In)))) return;
-
-   e->win = ev->event;
-   e->mode = _ecore_xcb_event_mode_get(ev->mode);
-   e->detail = _ecore_xcb_event_detail_get(ev->detail);
-
-   e->time = _ecore_xcb_event_last_time;
-   _ecore_xcb_event_last_time = e->time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_focus_out(xcb_generic_event_t *event)
-{
-   xcb_focus_out_event_t *ev;
-   Ecore_X_Event_Window_Focus_Out *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_focus_out_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Focus_Out)))) return;
-
-   e->win = ev->event;
-   e->mode = _ecore_xcb_event_mode_get(ev->mode);
-   e->detail = _ecore_xcb_event_detail_get(ev->detail);
-
-   e->time = _ecore_xcb_event_last_time;
-   _ecore_xcb_event_last_time = e->time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_expose(xcb_generic_event_t *event)
-{
-   xcb_expose_event_t *ev;
-   Ecore_X_Event_Window_Damage *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_expose_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Damage)))) return;
-
-   e->win = ev->window;
-   e->time = _ecore_xcb_event_last_time;
-   e->x = ev->x;
-   e->y = ev->y;
-   e->w = ev->width;
-   e->h = ev->height;
-   e->count = ev->count;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_graphics_exposure(xcb_generic_event_t *event)
-{
-   xcb_graphics_exposure_event_t *ev;
-   Ecore_X_Event_Window_Damage *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_graphics_exposure_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Damage)))) return;
-
-   e->win = ev->drawable;
-   e->x = ev->x;
-   e->y = ev->y;
-   e->w = ev->width;
-   e->h = ev->height;
-   e->count = ev->count;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_visibility_notify(xcb_generic_event_t *event)
-{
-   xcb_visibility_notify_event_t *ev;
-   Ecore_X_Event_Window_Visibility_Change *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_visibility_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Visibility_Change))))
-     return;
-
-   e->win = ev->window;
-   e->time = _ecore_xcb_event_last_time;
-   if (ev->state == XCB_VISIBILITY_FULLY_OBSCURED)
-     e->fully_obscured = 1;
-   else
-     e->fully_obscured = 0;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_create_notify(xcb_generic_event_t *event)
-{
-   xcb_create_notify_event_t *ev;
-   Ecore_X_Event_Window_Create *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_create_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Create)))) return;
-
-   e->win = ev->window;
-   e->parent = ev->parent;
-   if (ev->override_redirect)
-     e->override = 1;
-   else
-     e->override = 0;
-   e->x = ev->x;
-   e->y = ev->y;
-   e->w = ev->width;
-   e->h = ev->height;
-   e->border = ev->border_width;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_CREATE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_destroy_notify(xcb_generic_event_t *event)
-{
-   xcb_destroy_notify_event_t *ev;
-   Ecore_X_Event_Window_Destroy *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_destroy_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Destroy)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   if (e->win == _ecore_xcb_event_last_window)
-     _ecore_xcb_event_last_window = 0;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_DESTROY, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_map_notify(xcb_generic_event_t *event)
-{
-   xcb_map_notify_event_t *ev;
-   Ecore_X_Event_Window_Show *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_map_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Show)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_unmap_notify(xcb_generic_event_t *event)
-{
-   xcb_unmap_notify_event_t *ev;
-   Ecore_X_Event_Window_Hide *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_unmap_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Hide)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   e->time = _ecore_xcb_event_last_time;
-   /* send_event is bit 7 (0x80) of response_type */
-   e->send_event = ((ev->response_type & 0x80) ? 1 : 0);
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_HIDE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_map_request(xcb_generic_event_t *event)
-{
-   xcb_map_request_event_t *ev;
-   Ecore_X_Event_Window_Show_Request *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_map_request_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Show_Request)))) return;
-
-   e->win = ev->window;
-   e->parent = ev->parent;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW_REQUEST, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_reparent_notify(xcb_generic_event_t *event)
-{
-   xcb_reparent_notify_event_t *ev;
-   Ecore_X_Event_Window_Reparent *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_reparent_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Reparent)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   e->parent = ev->parent;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_REPARENT, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_configure_notify(xcb_generic_event_t *event)
-{
-   xcb_configure_notify_event_t *ev;
-   Ecore_X_Event_Window_Configure *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_configure_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Configure)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   e->abovewin = ev->above_sibling;
-   e->x = ev->x;
-   e->y = ev->y;
-   e->w = ev->width;
-   e->h = ev->height;
-   e->border = ev->border_width;
-   e->override = ev->override_redirect;
-   /* send_event is bit 7 (0x80) of response_type */
-   e->from_wm = ((ev->response_type & 0x80) ? 1 : 0);
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_configure_request(xcb_generic_event_t *event)
-{
-   xcb_configure_request_event_t *ev;
-   Ecore_X_Event_Window_Configure_Request *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_configure_request_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Configure_Request))))
-     return;
-
-   e->win = ev->window;
-   e->parent_win = ev->parent;
-   e->abovewin = ev->sibling;
-   e->x = ev->x;
-   e->y = ev->y;
-   e->w = ev->width;
-   e->h = ev->height;
-   e->border = ev->border_width;
-   e->value_mask = ev->value_mask;
-   switch (ev->stack_mode)
-     {
-      case XCB_STACK_MODE_ABOVE:
-        e->detail = ECORE_X_WINDOW_STACK_ABOVE;
-        break;
-
-      case XCB_STACK_MODE_BELOW:
-        e->detail = ECORE_X_WINDOW_STACK_BELOW;
-        break;
-
-      case XCB_STACK_MODE_TOP_IF:
-        e->detail = ECORE_X_WINDOW_STACK_TOP_IF;
-        break;
-
-      case XCB_STACK_MODE_BOTTOM_IF:
-        e->detail = ECORE_X_WINDOW_STACK_BOTTOM_IF;
-        break;
-
-      case XCB_STACK_MODE_OPPOSITE:
-        e->detail = ECORE_X_WINDOW_STACK_OPPOSITE;
-        break;
-     }
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_gravity_notify(xcb_generic_event_t *event EINA_UNUSED)
-{
-/*
-   xcb_gravity_notify_event_t *ev;
-   Ecore_X_Event_Window_Gravity *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_gravity_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Gravity)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_GRAVITY, e, NULL, NULL);
- */
-}
-
-static void
-_ecore_xcb_event_handle_resize_request(xcb_generic_event_t *event)
-{
-   xcb_resize_request_event_t *ev;
-   Ecore_X_Event_Window_Resize_Request *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_resize_request_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Resize_Request)))) return;
-
-   e->win = ev->window;
-   e->w = ev->width;
-   e->h = ev->height;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_RESIZE_REQUEST, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_circulate_notify(xcb_generic_event_t *event)
-{
-   xcb_circulate_notify_event_t *ev;
-   Ecore_X_Event_Window_Stack *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_circulate_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Stack)))) return;
-
-   e->win = ev->window;
-   e->event_win = ev->event;
-   if (ev->place == XCB_PLACE_ON_TOP)
-     e->detail = ECORE_X_WINDOW_STACK_ABOVE;
-   else
-     e->detail = ECORE_X_WINDOW_STACK_BELOW;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_STACK, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_circulate_request(xcb_generic_event_t *event)
-{
-   xcb_circulate_request_event_t *ev;
-   Ecore_X_Event_Window_Stack_Request *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_circulate_request_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Stack_Request)))) return;
-
-   e->win = ev->window;
-   e->parent = ev->event;
-   if (ev->place == XCB_PLACE_ON_TOP)
-     e->detail = ECORE_X_WINDOW_STACK_ABOVE;
-   else
-     e->detail = ECORE_X_WINDOW_STACK_BELOW;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_STACK_REQUEST, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_property_notify(xcb_generic_event_t *event)
-{
-   xcb_property_notify_event_t *ev;
-   Ecore_X_Event_Window_Property *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_property_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Property)))) return;
-
-   e->win = ev->window;
-   e->atom = ev->atom;
-   e->time = ev->time;
-   e->state = !!ev->state;
-   _ecore_xcb_event_last_time = e->time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_PROPERTY, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_selection_clear(xcb_generic_event_t *event)
-{
-   xcb_selection_clear_event_t *ev;
-   Ecore_X_Event_Selection_Clear *e;
-   Ecore_X_Atom sel;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_selection_clear_event_t *)event;
-   if (!(e = malloc(sizeof(Ecore_X_Event_Selection_Clear)))) return;
-
-   e->win = ev->owner;
-   e->atom = sel = ev->selection;
-   if (sel == ECORE_X_ATOM_SELECTION_PRIMARY)
-     e->selection = ECORE_X_SELECTION_PRIMARY;
-   else if (sel == ECORE_X_ATOM_SELECTION_SECONDARY)
-     e->selection = ECORE_X_SELECTION_SECONDARY;
-   else if (sel == ECORE_X_ATOM_SELECTION_XDND)
-     e->selection = ECORE_X_SELECTION_XDND;
-   else if (sel == ECORE_X_ATOM_SELECTION_CLIPBOARD)
-     e->selection = ECORE_X_SELECTION_CLIPBOARD;
-   else
-     e->selection = ECORE_X_SELECTION_OTHER;
-   e->time = ev->time;
-
-   ecore_event_add(ECORE_X_EVENT_SELECTION_CLEAR, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_selection_request(xcb_generic_event_t *event)
-{
-   xcb_selection_request_event_t *ev;
-   Ecore_X_Event_Selection_Request *e;
-   Ecore_X_Selection_Intern *sd;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_selection_request_event_t *)event;
-   if (!(e = malloc(sizeof(Ecore_X_Event_Selection_Request)))) return;
-
-   e->owner = ev->owner;
-   e->requestor = ev->requestor;
-   e->selection = ev->selection;
-   e->target = ev->target;
-   e->property = ev->property;
-   e->time = ev->time;
-
-   ecore_event_add(ECORE_X_EVENT_SELECTION_REQUEST, e, NULL, NULL);
-
-   if ((sd = _ecore_xcb_selection_get(ev->selection)) &&
-       (sd->win == ev->owner))
-     {
-        Ecore_X_Selection_Intern *si;
-
-        si = _ecore_xcb_selection_get(ev->selection);
-        if (si->data)
-          {
-             Ecore_X_Atom property = XCB_NONE, type;
-             void *data = NULL;
-             int len = 0, typesize = 0;
-
-             type = ev->target;
-             typesize = 8;
-             len = sd->length;
-
-             if (!ecore_x_selection_convert(ev->selection, ev->target,
-                                            &data, &len, &type, &typesize))
-               property = XCB_NONE;
-             else if (data)
-               {
-                  ecore_x_window_prop_property_set(ev->requestor, ev->property,
-                                                   type, typesize, data, len);
-                  property = ev->property;
-                  free(data);
-               }
-             ecore_x_selection_notify_send(ev->requestor, ev->selection,
-                                           ev->target, property, ev->time);
-          }
-     }
-}
-
-static void
-_ecore_xcb_event_handle_selection_notify(xcb_generic_event_t *event)
-{
-   xcb_selection_notify_event_t *ev;
-   Ecore_X_Event_Selection_Notify *e;
-   unsigned char *data = NULL;
-   Ecore_X_Atom selection;
-   int num = 0, format = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_selection_notify_event_t *)event;
-   selection = ev->selection;
-   if (ev->target == ECORE_X_ATOM_SELECTION_TARGETS)
-     {
-        format =
-          ecore_x_window_prop_property_get(ev->requestor, ev->property,
-                                           XCB_ATOM_ATOM, 32, &data, &num);
-        if (!format)
-          {
-             /* fallback if targets handling is not working and try get the
-              * selection directly */
-             xcb_convert_selection(_ecore_xcb_conn, ev->requestor,
-                                   selection, selection,
-                                   ECORE_X_ATOM_UTF8_STRING, XCB_CURRENT_TIME);
-             return;
-          }
-     }
-   else
-     {
-        format = ecore_x_window_prop_property_get(ev->requestor, ev->property,
-                                                  XCB_GET_PROPERTY_TYPE_ANY, 8,
-                                                  &data, &num);
-        if (!format) return;
-     }
-
-   e = calloc(1, sizeof(Ecore_X_Event_Selection_Notify));
-   if (!e) return;
-   e->win = ev->requestor;
-   e->time = ev->time;
-   e->atom = selection;
-   e->property = ev->property;
-   e->target = _ecore_xcb_selection_target_get(ev->target);
-
-   if (selection == ECORE_X_ATOM_SELECTION_PRIMARY)
-     e->selection = ECORE_X_SELECTION_PRIMARY;
-   else if (selection == ECORE_X_ATOM_SELECTION_SECONDARY)
-     e->selection = ECORE_X_SELECTION_SECONDARY;
-   else if (selection == ECORE_X_ATOM_SELECTION_XDND)
-     e->selection = ECORE_X_SELECTION_XDND;
-   else if (selection == ECORE_X_ATOM_SELECTION_CLIPBOARD)
-     e->selection = ECORE_X_SELECTION_CLIPBOARD;
-   else
-     e->selection = ECORE_X_SELECTION_OTHER;
-
-   e->data = _ecore_xcb_selection_parse(e->target, data, num, format);
-
-   ecore_event_add(ECORE_X_EVENT_SELECTION_NOTIFY, e,
-                   _ecore_xcb_event_selection_notify_free, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_colormap_notify(xcb_generic_event_t *event)
-{
-   xcb_colormap_notify_event_t *ev;
-   Ecore_X_Event_Window_Colormap *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_colormap_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Colormap)))) return;
-
-   e->win = ev->window;
-   e->cmap = ev->colormap;
-   if (ev->state == XCB_COLORMAP_STATE_INSTALLED)
-     e->installed = 1;
-   else
-     e->installed = 0;
-   e->time = _ecore_xcb_event_last_time;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_COLORMAP, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_client_message(xcb_generic_event_t *event)
-{
-   xcb_client_message_event_t *ev;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_client_message_event_t *)event;
-
-   /* Special client message event handling here. need to put LOTS of if */
-   /* checks here and generate synthetic events per special message known */
-   /* otherwise generate generic client message event. this would handle*/
-   /* netwm, ICCCM, gnomewm, old kde and mwm hint client message protocols */
-
-   if ((ev->type == ECORE_X_ATOM_WM_PROTOCOLS) && (ev->format == 32) &&
-       (ev->data.data32[0] == ECORE_X_ATOM_WM_DELETE_WINDOW))
-     {
-        Ecore_X_Event_Window_Delete_Request *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Delete_Request))))
-          return;
-        e->win = ev->window;
-        e->time = _ecore_xcb_event_last_time;
-        ecore_event_add(ECORE_X_EVENT_WINDOW_DELETE_REQUEST, e, NULL, NULL);
-     }
-   else if ((ev->type == ECORE_X_ATOM_NET_WM_MOVERESIZE) &&
-            (ev->format == 32) && (ev->data.data32[2] < 9))
-     {
-        Ecore_X_Event_Window_Move_Resize_Request *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Move_Resize_Request))))
-          return;
-        e->win = ev->window;
-        e->x = ev->data.data32[0];
-        e->y = ev->data.data32[1];
-        e->direction = ev->data.data32[2];
-        e->button = ev->data.data32[3];
-        e->source = ev->data.data32[4];
-        ecore_event_add(ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_XDND_ENTER)
-     {
-        Ecore_X_Event_Xdnd_Enter *e;
-        Ecore_X_DND_Target *target;
-
-        DBG("Got Xdnd Enter Event");
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Enter)))) return;
-        target = _ecore_xcb_dnd_target_get();
-        target->state = ECORE_X_DND_TARGET_ENTERED;
-        target->source = ev->data.data32[0];
-        target->win = ev->window;
-        target->version = (int)(ev->data.data32[1] >> 24);
-        if (target->version > ECORE_X_DND_VERSION)
-          {
-             WRN("DND: Requested version %d but we only support up to %d",
-                 target->version, ECORE_X_DND_VERSION);
-             free(e);
-             return;
-          }
-        if (ev->data.data32[1] & 0x1UL)
-          {
-             unsigned char *data;
-             Ecore_X_Atom *types;
-             int num_ret = 0;
-
-             if (!ecore_x_window_prop_property_get(target->source,
-                                                   ECORE_X_ATOM_XDND_TYPE_LIST,
-                                                   ECORE_X_ATOM_ATOM, 32,
-                                                   &data, &num_ret))
-               {
-                  WRN("DND: Could not fetch data type list from source window");
-                  free(e);
-                  return;
-               }
-             types = (Ecore_X_Atom *)data;
-             e->types = calloc(num_ret, sizeof(char *));
-             if (e->types)
-               {
-                  int i = 0;
-
-                  for (i = 0; i < num_ret; i++)
-                    e->types[i] = ecore_x_atom_name_get(types[i]);
-               }
-             e->num_types = num_ret;
-             if (data) free(data);
-          }
-        else
-          {
-             int i = 0;
-
-             e->types = calloc(3, sizeof(char *));
-             if (e->types)
-               {
-                  while ((i < 3) && (ev->data.data32[i + 2]))
-                    {
-                       e->types[i] =
-                         ecore_x_atom_name_get(ev->data.data32[i + 2]);
-                       i++;
-                    }
-               }
-             e->num_types = i;
-          }
-
-        e->win = target->win;
-        e->source = target->source;
-        ecore_event_add(ECORE_X_EVENT_XDND_ENTER, e,
-                        _ecore_xcb_event_xdnd_enter_free, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_XDND_POSITION)
-     {
-        Ecore_X_Event_Xdnd_Position *e;
-        Ecore_X_DND_Target *target;
-
-        DBG("Got Xdnd Position Event");
-        target = _ecore_xcb_dnd_target_get();
-        if ((target->source != (Ecore_X_Window)ev->data.data32[0]) ||
-            (target->win != ev->window)) return;
-        target->pos.x = ev->data.data32[2] >> 16;
-        target->pos.y = ev->data.data32[2] & 0xFFFFUL;
-        target->action = ev->data.data32[4];
-        target->time = (target->version >= 1) ?
-          (Ecore_X_Time)ev->data.data32[3] : XCB_CURRENT_TIME;
-
-        e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Position));
-        if (!e) return;
-        e->win = target->win;
-        e->source = target->source;
-        e->position.x = target->pos.x;
-        e->position.y = target->pos.y;
-        e->action = target->action;
-        ecore_event_add(ECORE_X_EVENT_XDND_POSITION, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_XDND_STATUS)
-     {
-        Ecore_X_Event_Xdnd_Status *e;
-        Ecore_X_DND_Source *source;
-
-        DBG("Got Xdnd Status Event");
-        source = _ecore_xcb_dnd_source_get();
-        if ((source->win != ev->window) ||
-            (source->dest != (Ecore_X_Window)ev->data.data32[0]))
-          return;
-
-        source->await_status = 0;
-        source->will_accept = ev->data.data32[1] & 0x1UL;
-        source->suppress = (ev->data.data32[1] & 0x2UL) ? 0 : 1;
-        source->rectangle.x = ev->data.data32[2] >> 16;
-        source->rectangle.y = ev->data.data32[2] & 0xFFFFUL;
-        source->rectangle.width = ev->data.data32[3] >> 16;
-        source->rectangle.height = ev->data.data32[3] & 0xFFFFUL;
-        source->accepted_action = ev->data.data32[4];
-
-        e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Status));
-        if (!e) return;
-        e->win = source->win;
-        e->target = source->dest;
-        e->will_accept = source->will_accept;
-        e->rectangle.x = source->rectangle.x;
-        e->rectangle.y = source->rectangle.y;
-        e->rectangle.width = source->rectangle.width;
-        e->rectangle.height = source->rectangle.height;
-        e->action = source->accepted_action;
-
-        ecore_event_add(ECORE_X_EVENT_XDND_STATUS, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_XDND_LEAVE)
-     {
-        Ecore_X_Event_Xdnd_Leave *e;
-        Ecore_X_DND_Target *target;
-
-        DBG("Got Xdnd Leave Event");
-        target = _ecore_xcb_dnd_target_get();
-        if ((target->source != (Ecore_X_Window)ev->data.data32[0]) ||
-            (target->win != ev->window))
-          return;
-        target->state = ECORE_X_DND_TARGET_IDLE;
-        e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Leave));
-        if (!e) return;
-        e->win = ev->window;
-        e->source = (Ecore_X_Window)ev->data.data32[0];
-        ecore_event_add(ECORE_X_EVENT_XDND_LEAVE, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_XDND_DROP)
-     {
-        Ecore_X_Event_Xdnd_Drop *e;
-        Ecore_X_DND_Target *target;
-
-        DBG("Got Xdnd Drop Event");
-        target = _ecore_xcb_dnd_target_get();
-        if ((target->source != (Ecore_X_Window)ev->data.data32[0]) ||
-            (target->win != ev->window))
-          return;
-        target->time = (target->version >= 1) ?
-          (Ecore_X_Time)ev->data.data32[2] : _ecore_xcb_event_last_time;
-
-        e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Drop));
-        if (!e) return;
-        e->win = target->win;
-        e->source = target->source;
-        e->action = target->action;
-        e->position.x = target->pos.x;
-        e->position.y = target->pos.y;
-        ecore_event_add(ECORE_X_EVENT_XDND_DROP, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_XDND_FINISHED)
-     {
-        Ecore_X_Event_Xdnd_Finished *e;
-        Ecore_X_DND_Source *source;
-        Eina_Bool completed = EINA_TRUE;
-
-        DBG("Got Xdnd Finished Event");
-        source = _ecore_xcb_dnd_source_get();
-        if ((source->win != ev->window) ||
-            (source->dest != (Ecore_X_Window)ev->data.data32[0]))
-          return;
-        if ((source->version < 5) || (ev->data.data32[1] & 0x1UL))
-          {
-             ecore_x_selection_xdnd_clear();
-             source->state = ECORE_X_DND_SOURCE_IDLE;
-          }
-        else if (source->version >= 5)
-          {
-             completed = EINA_FALSE;
-             source->state = ECORE_X_DND_SOURCE_CONVERTING;
-             /* FIXME: Probably need to add a timer to switch back to idle
-              * and discard the selection data */
-          }
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Finished))))
-          return;
-        e->win = source->win;
-        e->target = source->dest;
-        e->completed = completed;
-        if (source->version >= 5)
-          {
-             source->accepted_action = ev->data.data32[2];
-             e->action = source->accepted_action;
-          }
-        else
-          {
-             source->accepted_action = 0;
-             e->action = source->action;
-          }
-        ecore_event_add(ECORE_X_EVENT_XDND_FINISHED, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_NET_WM_STATE)
-     {
-        Ecore_X_Event_Window_State_Request *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_State_Request))))
-          return;
-        e->win = ev->window;
-        if (ev->data.data32[0] == 0)
-          e->action = ECORE_X_WINDOW_STATE_ACTION_REMOVE;
-        else if (ev->data.data32[0] == 1)
-          e->action = ECORE_X_WINDOW_STATE_ACTION_ADD;
-        else if (ev->data.data32[0] == 2)
-          e->action = ECORE_X_WINDOW_STATE_ACTION_TOGGLE;
-        else
-          {
-             free(e);
-             return;
-          }
-        e->state[0] = _ecore_xcb_netwm_window_state_get(ev->data.data32[1]);
-        if (e->state[0] == ECORE_X_WINDOW_STATE_UNKNOWN)
-          {
-             /* FIXME */
-          }
-        e->state[1] = _ecore_xcb_netwm_window_state_get(ev->data.data32[2]);
-        if (e->state[1] == ECORE_X_WINDOW_STATE_UNKNOWN)
-          {
-             /* FIXME */
-          }
-        e->source = ev->data.data32[3];
-        ecore_event_add(ECORE_X_EVENT_WINDOW_STATE_REQUEST, e, NULL, NULL);
-     }
-   else if ((ev->type == ECORE_X_ATOM_WM_CHANGE_STATE) && (ev->format == 32) &&
-            (ev->data.data32[0] == XCB_ICCCM_WM_STATE_ICONIC))
-     {
-        Ecore_X_Event_Window_State_Request *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_State_Request))))
-          return;
-        e->win = ev->window;
-        e->action = ECORE_X_WINDOW_STATE_ACTION_ADD;
-        e->state[0] = ECORE_X_WINDOW_STATE_ICONIFIED;
-        ecore_event_add(ECORE_X_EVENT_WINDOW_STATE_REQUEST, e, NULL, NULL);
-     }
-   else if ((ev->type == ECORE_X_ATOM_NET_WM_DESKTOP) && (ev->format == 32))
-     {
-        Ecore_X_Event_Desktop_Change *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Desktop_Change))))
-          return;
-        e->win = ev->window;
-        e->desk = ev->data.data32[0];
-        e->source = ev->data.data32[1];
-        ecore_event_add(ECORE_X_EVENT_DESKTOP_CHANGE, e, NULL, NULL);
-     }
-   else if (ev->type == ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS)
-     {
-        Ecore_X_Event_Frame_Extents_Request *e;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Frame_Extents_Request))))
-          return;
-        e->win = ev->window;
-        ecore_event_add(ECORE_X_EVENT_FRAME_EXTENTS_REQUEST, e, NULL, NULL);
-     }
-   else if ((ev->type == ECORE_X_ATOM_WM_PROTOCOLS) &&
-            ((Ecore_X_Atom)ev->data.data32[0] == ECORE_X_ATOM_NET_WM_PING) &&
-            (ev->format == 32))
-     {
-        Ecore_X_Event_Ping *e;
-        Ecore_X_Window root = 0;
-        int count = 0;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Ping)))) return;
-        e->win = ev->window;
-        e->time = ev->data.data32[1];
-        e->event_win = ev->data.data32[2];
-        ecore_event_add(ECORE_X_EVENT_PING, e, NULL, NULL);
-
-        CHECK_XCB_CONN;
-
-        count = xcb_setup_roots_length(xcb_get_setup(_ecore_xcb_conn));
-        if (count > 1)
-          root = ecore_x_window_root_get(e->win);
-        else
-          root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-        if (ev->window != root)
-          {
-             ev->window = root;
-             xcb_send_event(_ecore_xcb_conn, 0, root,
-                            (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                             XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY),
-                            (const char *)&ev);
-//             ecore_x_flush();
-          }
-     }
-   else if ((ev->type == ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN) &&
-            (ev->format == 8))
-     {
-        _ecore_xcb_netwm_startup_info_begin(ev->window, ev->data.data8[0]);
-     }
-   else if ((ev->type == ECORE_X_ATOM_NET_STARTUP_INFO) && (ev->format == 8))
-     {
-        _ecore_xcb_netwm_startup_info(ev->window, ev->data.data8[0]);
-     }
-   else if ((ev->type == 27777) && (ev->data.data32[0] == 0x7162534) &&
-            (ev->format == 32)) // && (ev->window = _private_window))
-     {
-        if (ev->data.data32[1] == 0x10000001)
-          _ecore_xcb_window_button_grab_remove(ev->data.data32[2]);
-        else if (ev->data.data32[1] == 0x10000002)
-          _ecore_xcb_window_key_grab_remove(ev->data.data32[2]);
-     }
-   else
-     {
-        Ecore_X_Event_Client_Message *e;
-        int i = 0;
-
-        if (!(e = calloc(1, sizeof(Ecore_X_Event_Client_Message))))
-          return;
-
-        e->win = ev->window;
-        e->message_type = ev->type;
-        e->format = ev->format;
-        e->time = _ecore_xcb_event_last_time;
-        for (i = 0; i < 5; i++)
-          e->data.l[i] = ev->data.data32[i];
-        ecore_event_add(ECORE_X_EVENT_CLIENT_MESSAGE, e, NULL, NULL);
-     }
-}
-
-static void
-_ecore_xcb_event_handle_mapping_notify(xcb_generic_event_t *event)
-{
-   xcb_mapping_notify_event_t *ev;
-   Ecore_X_Event_Mapping_Change *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-
-   ev = (xcb_mapping_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Mapping_Change)))) return;
-
-   _ecore_xcb_keymap_refresh(ev);
-   _ecore_xcb_modifiers_get();
-
-   switch (ev->request)
-     {
-      case XCB_MAPPING_MODIFIER:
-        e->type = ECORE_X_MAPPING_MODIFIER;
-        break;
-
-      case XCB_MAPPING_KEYBOARD:
-        e->type = ECORE_X_MAPPING_KEYBOARD;
-        break;
-
-      case XCB_MAPPING_POINTER:
-      default:
-        e->type = ECORE_X_MAPPING_MOUSE;
-        break;
-     }
-   e->keycode = ev->first_keycode;
-   e->num = ev->count;
-
-   ecore_event_add(ECORE_X_EVENT_MAPPING_CHANGE, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_damage_notify(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_DAMAGE
-   xcb_damage_notify_event_t *ev;
-   Ecore_X_Event_Damage *e;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-#ifdef ECORE_XCB_DAMAGE
-   ev = (xcb_damage_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Damage)))) return;
-
-   e->level = ev->level;
-   e->drawable = ev->drawable;
-   e->damage = ev->damage;
-   e->time = ev->timestamp;
-   e->area.x = ev->area.x;
-   e->area.y = ev->area.y;
-   e->area.width = ev->area.width;
-   e->area.height = ev->area.height;
-   e->geometry.x = ev->geometry.x;
-   e->geometry.y = ev->geometry.y;
-   e->geometry.width = ev->geometry.width;
-   e->geometry.height = ev->geometry.height;
-
-   ecore_event_add(ECORE_X_EVENT_DAMAGE_NOTIFY, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_randr_change(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_screen_change_notify_event_t *ev;
-   Ecore_X_Event_Screen_Change *e;
-#endif
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   ev = (xcb_randr_screen_change_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Screen_Change)))) return;
-
-   e->win = ev->request_window;
-   e->root = ev->root;
-   e->size.width = ev->width;
-   e->size.height = ev->height;
-   e->time = ev->timestamp;
-   e->config_time = ev->config_timestamp;
-   e->size.width_mm = ev->mwidth;
-   e->size.height_mm = ev->mheight;
-   e->orientation = ev->rotation;
-   e->subpixel_order = ev->subpixel_order;
-
-   ecore_event_add(ECORE_X_EVENT_SCREEN_CHANGE, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_randr_notify(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_notify_event_t *ev;
-#endif
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   ev = (xcb_randr_notify_event_t *)event;
-   switch (ev->subCode)
-     {
-      case XCB_RANDR_NOTIFY_CRTC_CHANGE:
-        _ecore_xcb_event_handle_randr_crtc_change(event);
-        break;
-
-      case XCB_RANDR_NOTIFY_OUTPUT_CHANGE:
-        _ecore_xcb_event_handle_randr_output_change(event);
-        break;
-
-      case XCB_RANDR_NOTIFY_OUTPUT_PROPERTY:
-        _ecore_xcb_event_handle_randr_output_property_change(event);
-        break;
-
-      default:
-        break;
-     }
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_randr_crtc_change(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_notify_event_t *ev;
-   Ecore_X_Event_Randr_Crtc_Change *e;
-#endif
-
-#ifdef ECORE_XCB_RANDR
-   ev = (xcb_randr_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Randr_Crtc_Change))))
-     return;
-
-   e->win = ev->u.cc.window;
-   e->crtc = ev->u.cc.crtc;
-   e->mode = ev->u.cc.mode;
-   e->orientation = ev->u.cc.rotation;
-   e->geo.x = ev->u.cc.x;
-   e->geo.y = ev->u.cc.y;
-   e->geo.w = ev->u.cc.width;
-   e->geo.h = ev->u.cc.height;
-
-   ecore_event_add(ECORE_X_EVENT_RANDR_CRTC_CHANGE, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_randr_output_change(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_notify_event_t *ev;
-   Ecore_X_Event_Randr_Output_Change *e;
-#endif
-
-#ifdef ECORE_XCB_RANDR
-   ev = (xcb_randr_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Randr_Output_Change))))
-     return;
-
-   e->win = ev->u.oc.window;
-   e->output = ev->u.oc.output;
-   e->crtc = ev->u.oc.crtc;
-   e->mode = ev->u.oc.mode;
-   e->orientation = ev->u.oc.rotation;
-   e->connection = ev->u.oc.connection;
-   e->subpixel_order = ev->u.oc.subpixel_order;
-
-   ecore_event_add(ECORE_X_EVENT_RANDR_OUTPUT_CHANGE, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_randr_output_property_change(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_notify_event_t *ev;
-   Ecore_X_Event_Randr_Output_Property_Notify *e;
-#endif
-
-#ifdef ECORE_XCB_RANDR
-   ev = (xcb_randr_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Randr_Output_Property_Notify))))
-     return;
-
-   e->win = ev->u.op.window;
-   e->output = ev->u.op.output;
-   e->property = ev->u.op.atom;
-   e->time = ev->u.op.timestamp;
-   if (ev->u.op.status == XCB_PROPERTY_NEW_VALUE)
-     e->state = ECORE_X_RANDR_PROPERTY_CHANGE_ADD;
-   else
-     e->state = ECORE_X_RANDR_PROPERTY_CHANGE_DEL;
-
-   ecore_event_add(ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_screensaver_notify(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_screensaver_notify_event_t *ev;
-   Ecore_X_Event_Screensaver_Notify *e;
-#endif
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-#ifdef ECORE_XCB_SCREENSAVER
-   ev = (xcb_screensaver_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Screensaver_Notify)))) return;
-
-   e->win = ev->window;
-   e->on = EINA_FALSE;
-   if ((ev->state == XCB_SCREENSAVER_STATE_ON) ||
-       (ev->state == XCB_SCREENSAVER_STATE_CYCLE)) e->on = EINA_TRUE;
-   e->time = ev->time;
-
-   ecore_event_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, e, NULL, NULL);
-#endif
-}
-
-#ifdef ECORE_XCB_XGESTURE
-static void
-_ecore_xcb_event_handle_gesture_notify_flick(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_flick_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_Flick *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_flick_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Flick)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_fingers = ev->num_finger;
-   e->distance = ev->distance;
-   e->duration = ev->duration;
-   e->direction = ev->direction;
-   e->angle = XFixedToDouble(ev->angle);
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_FLICK, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_gesture_notify_pan(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_pan_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_Pan *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_pan_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Pan)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_fingers = ev->num_finger;
-   e->dx = ev->dx;
-   e->dy = ev->dy;
-   e->distance = ev->distance;
-   e->duration = ev->duration;
-   e->direction = ev->direction;
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_PAN, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_gesture_notify_pinchrotation(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_pinch_rotation_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_PinchRotation *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_pinch_rotation_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_PinchRotation)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_fingers = ev->num_finger;
-   e->distance = ev->distance;
-   e->cx = ev->cx;
-   e->cy = ev->cy;
-   e->zoom = XFixedToDouble(ev->zoom);
-   e->angle = XFixedToDouble(ev->angle);
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_gesture_notify_tap(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_tap_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_Tap *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_tap_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Tap)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_fingers = ev->num_finger;
-   e->cx = ev->cx;
-   e->cy = ev->cy;
-   e->tap_repeat = ev->tap_repeat;
-   e->interval = ev->interval;
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_TAP, e, NULL, NULL);
-}
-
-static void
-_ecore_xcb_event_handle_gesture_notify_tapnhold(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_tap_n_hold_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_TapNHold *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_tap_n_hold_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_TapNHold)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_fingers = ev->num_finger;
-   e->cx = ev->cx;
-   e->cy = ev->cy;
-   e->interval = ev->interval;
-   e->hold_time = ev->holdtime;
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD, e, NULL, NULL);
-}
-
-static void
- _ecore_xcb_event_handle_gesture_notify_hold(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_hold_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_Hold *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_hold_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Hold)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_fingers = ev->num_finger;
-   e->cx = ev->cx;
-   e->cy = ev->cy;
-   e->hold_time = ev->holdtime;
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_HOLD, e, NULL, NULL);
-}
-
-static void
- _ecore_xcb_event_handle_gesture_notify_group(xcb_generic_event_t *event)
-{
-   xcb_gesture_notify_group_event_t *ev;
-   Ecore_X_Event_Gesture_Notify_Group *e;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   fprintf(stderr, "[ECORE_XCB][%s]...\n", __FUNCTION__);
-
-   ev = (xcb_gesture_notify_group_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Group)))) return;
-
-   e->win = ev->window;
-   e->time = ev->time;
-   e->subtype = ev->kind;
-   e->num_groups = ev->num_group;
-   e->group_id = ev->groupid;
-
-   ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_GROUP, e, NULL, NULL);
-}
-#endif
-
-#ifdef ECORE_XCB_SHAPE
-static void
-_ecore_xcb_event_handle_shape_change(xcb_generic_event_t *event)
-{
-   xcb_shape_notify_event_t *ev;
-   Ecore_X_Event_Window_Shape *e;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-   ev = (xcb_shape_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Window_Shape)))) return;
-
-   e->win = ev->affected_window;
-   e->time = ev->server_time;
-   switch (ev->shape_kind)
-     {
-      case XCB_SHAPE_SK_BOUNDING:
-        e->type = ECORE_X_SHAPE_BOUNDING;
-        break;
-
-      case XCB_SHAPE_SK_CLIP:
-        e->type = ECORE_X_SHAPE_CLIP;
-        break;
-
-      case XCB_SHAPE_SK_INPUT:
-        e->type = ECORE_X_SHAPE_INPUT;
-        break;
-
-      default:
-        break;
-     }
-   e->x = ev->extents_x;
-   e->y = ev->extents_y;
-   e->w = ev->extents_width;
-   e->h = ev->extents_height;
-   e->shaped = ev->shaped;
-
-   ecore_event_add(ECORE_X_EVENT_WINDOW_SHAPE, e, NULL, NULL);
-}
-
-#endif
-
-static void
-_ecore_xcb_event_handle_sync_counter(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_counter_notify_event_t *ev;
-   Ecore_X_Event_Sync_Counter *e;
-#endif
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-
-#ifdef ECORE_XCB_SYNC
-   ev = (xcb_sync_counter_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Sync_Counter)))) return;
-
-   e->time = ev->timestamp;
-
-   ecore_event_add(ECORE_X_EVENT_SYNC_COUNTER, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_sync_alarm(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_alarm_notify_event_t *ev;
-   Ecore_X_Event_Sync_Alarm *e;
-#endif
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-#ifdef ECORE_XCB_SYNC
-   ev = (xcb_sync_alarm_notify_event_t *)event;
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Sync_Alarm)))) return;
-
-   e->time = ev->timestamp;
-   e->alarm = ev->alarm;
-
-   ecore_event_add(ECORE_X_EVENT_SYNC_ALARM, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_xfixes_selection_notify(xcb_generic_event_t *event)
-{
-#ifdef ECORE_XCB_XFIXES
-   Ecore_X_Event_Fixes_Selection_Notify *e;
-   Ecore_X_Atom sel;
-   xcb_xfixes_selection_notify_event_t *ev;
-#endif
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-#ifdef ECORE_XCB_XFIXES
-   ev = (xcb_xfixes_selection_notify_event_t *)event;
-
-   if (!(e = calloc(1, sizeof(*e)))) return;
-
-   e->win = ev->window;
-   e->owner = ev->owner;
-   e->time = ev->timestamp;
-   e->selection_time = ev->selection_timestamp;
-   e->atom = sel = ev->selection;
-   if (sel == ECORE_X_ATOM_SELECTION_PRIMARY)
-     e->selection = ECORE_X_SELECTION_PRIMARY;
-   else if (sel == ECORE_X_ATOM_SELECTION_SECONDARY)
-     e->selection = ECORE_X_SELECTION_SECONDARY;
-   else if (sel == ECORE_X_ATOM_SELECTION_XDND)
-     e->selection = ECORE_X_SELECTION_XDND;
-   else if (sel == ECORE_X_ATOM_SELECTION_CLIPBOARD)
-     e->selection = ECORE_X_SELECTION_CLIPBOARD;
-   else
-     e->selection = ECORE_X_SELECTION_OTHER;
-   e->reason = ev->subtype;
-
-   ecore_event_add(ECORE_X_EVENT_FIXES_SELECTION_NOTIFY, e, NULL, NULL);
-#endif
-}
-
-static void
-_ecore_xcb_event_handle_xfixes_cursor_notify(xcb_generic_event_t *event EINA_UNUSED)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-//  FIXME: TBD
-}
-
-static void
-_ecore_xcb_event_handle_generic_event(xcb_generic_event_t *event)
-{
-   xcb_ge_event_t *ev;
-   Ecore_X_Event_Generic *e;
-
-   ev = (xcb_ge_event_t *)event;
-
-   /* pad0 *IS* extension - bug in xcb */
-   if (ev->pad0 == _ecore_xcb_event_input)
-     {
-        _ecore_xcb_event_handle_input_event(event);
-// FIXME: should we generate generic events as WELL as input events?
-//        return;
-     }
-#ifdef ECORE_XCB_XPRESENT
-   else if (ev->pad0 == _ecore_xcb_event_xpresent)
-     {
-        _ecore_xcb_event_handle_present_event((xcb_ge_event_t*)event);
-        return;
-     }
-#endif
-
-   if (!(e = calloc(1, sizeof(Ecore_X_Event_Generic))))
-     return;
-
-   DBG("Handle Generic Event: %d", ev->event_type);
-
-   e->cookie = ev->sequence;
-   /* NB: These are bugs in xcb ge_event structure. The struct should have a
-    * field for extension & data, but does not.
-    *
-    * XCB people have been notified of this issue */
-   e->extension = ev->pad0;
-   /* e->data = ev->pad1; */
-   if (ev->length > 0)
-     {
-        int len = ev->length * sizeof(int);
-        e->data = malloc(len);
-        if (e->data) memcpy(e->data, &(event[1]), len);
-     }
-
-   e->evtype = ev->event_type;
-
-   ecore_event_add(ECORE_X_EVENT_GENERIC, e,
-                   _ecore_xcb_event_generic_event_free, e->data);
-}
-
-static void
-_ecore_xcb_event_handle_input_event(xcb_generic_event_t *event)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_input_handle_event(event);
-}
-
-static void
-_ecore_xcb_event_key_press(xcb_generic_event_t *event)
-{
-   Ecore_Event_Key *e;
-   xcb_keysym_t sym = XCB_NO_SYMBOL;
-   xcb_keycode_t keycode = 0;
-   xcb_key_press_event_t *xevent;
-   char *keyname = NULL, *key = NULL;
-   char *compose = NULL;
-   char compose_buffer[256];
-   int val = 0;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-
-   xevent = (xcb_key_press_event_t *)event;
-   keycode = xevent->detail;
-
-   sym = _ecore_xcb_keymap_keycode_to_keysym(keycode, xevent->state);
-   keyname = _ecore_xcb_keymap_keysym_to_string(sym);
-   if (!keyname)
-     {
-        char buff[256];
-
-        snprintf(buff, sizeof(buff), "Keycode-%i", keycode);
-        keyname = buff;
-     }
-
-   val =
-     _ecore_xcb_keymap_lookup_string(keycode, xevent->state, compose_buffer,
-                                     sizeof(compose_buffer), &sym);
-   if (val > 0)
-     {
-        compose_buffer[val] = 0;
-        compose =
-          eina_str_convert(nl_langinfo(CODESET), "UTF-8", compose_buffer);
-        if (!compose)
-          ERR("Ecore_X cannot convert input key string '%s' to UTF-8. "
-              "Is Eina built with iconv support?", compose_buffer);
-     }
-
-   key = _ecore_xcb_keymap_keysym_to_string(sym);
-   if (!key) key = keyname;
-
-   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
-              (compose ? strlen(compose) : 0) + 3);
-   if (e)
-     {
-        e->keyname = (char *)(e + 1);
-        e->key = e->keyname + strlen(keyname) + 1;
-
-        if (compose) e->compose = (e->key + strlen(key) + 1);
-        e->string = e->compose;
-
-        strcpy((char *)e->keyname, keyname);
-        strcpy((char *)e->key, key);
-        if (compose) strcpy((char *)e->compose, compose);
-
-        e->modifiers = _ecore_xcb_events_modifiers_get(xevent->state);
-        e->timestamp = xevent->time;
-        e->window = xevent->child ? xevent->child : xevent->event;
-        e->event_window = xevent->event;
-        e->same_screen = xevent->same_screen;
-        e->root_window = xevent->root;
-        e->keycode = keycode;
-
-        DBG("Sending Key Down Event: %s", e->keyname);
-        ecore_event_add(ECORE_EVENT_KEY_DOWN, e, NULL, NULL);
-     }
-   _ecore_xcb_event_last_time = xevent->time;
-}
-
-static void
-_ecore_xcb_event_key_release(xcb_generic_event_t *event)
-{
-   Ecore_Event_Key *e;
-   xcb_keysym_t sym = XCB_NO_SYMBOL;
-   xcb_keycode_t keycode = 0;
-   xcb_key_release_event_t *xevent;
-   char *keyname = NULL, *key = NULL;
-   char *compose = NULL;
-   char compose_buffer[256];
-   int val = 0;
-
-   _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-
-   xevent = (xcb_key_release_event_t *)event;
-   keycode = xevent->detail;
-
-   sym = _ecore_xcb_keymap_keycode_to_keysym(keycode, xevent->state);
-   keyname = _ecore_xcb_keymap_keysym_to_string(sym);
-   if (!keyname)
-     {
-        char buff[256];
-
-        snprintf(buff, sizeof(buff), "Keycode-%i", keycode);
-        keyname = buff;
-     }
-
-   val =
-     _ecore_xcb_keymap_lookup_string(keycode, xevent->state, compose_buffer,
-                                     sizeof(compose_buffer), &sym);
-   if (val > 0)
-     {
-        compose_buffer[val] = 0;
-        compose =
-          eina_str_convert(nl_langinfo(CODESET), "UTF-8", compose_buffer);
-//        tmp = compose;
-     }
-
-   key = _ecore_xcb_keymap_keysym_to_string(sym);
-   if (!key) key = keyname;
-
-   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
-              (compose ? strlen(compose) : 0) + 3);
-   if (e)
-     {
-        e->keyname = (char *)(e + 1);
-        e->key = e->keyname + strlen(keyname) + 1;
-
-        if (compose) e->compose = (e->key + strlen(key) + 1);
-        e->string = e->compose;
-
-        strcpy((char *)e->keyname, keyname);
-        strcpy((char *)e->key, key);
-        if (compose) strcpy((char *)e->compose, compose);
-
-        e->modifiers = _ecore_xcb_events_modifiers_get(xevent->state);
-        e->timestamp = xevent->time;
-        e->window = xevent->child ? xevent->child : xevent->event;
-        e->event_window = xevent->event;
-        e->same_screen = xevent->same_screen;
-        e->root_window = xevent->root;
-        e->keycode = keycode;
-
-        ecore_event_add(ECORE_EVENT_KEY_UP, e, NULL, NULL);
-     }
-   _ecore_xcb_event_last_time = xevent->time;
-}
-
-void
-_ecore_xcb_event_mouse_move(uint16_t     timestamp,
-                            uint16_t     modifiers,
-                            int16_t      x,
-                            int16_t      y,
-                            int16_t      root_x,
-                            int16_t      root_y,
-                            xcb_window_t event_win,
-                            xcb_window_t win,
-                            xcb_window_t root_win,
-                            uint8_t      same_screen,
-                            int          dev,
-                            double       radx,
-                            double       rady,
-                            double       pressure,
-                            double       angle,
-                            int16_t      mx,
-                            int16_t      my,
-                            int16_t      mrx,
-                            int16_t      mry)
-{
-   Ecore_Event_Mouse_Move *e;
-
-   if (!(e = calloc(1, sizeof(Ecore_Event_Mouse_Move)))) return;
-
-   e->window = win;
-   e->root_window = root_win;
-   e->timestamp = timestamp;
-   e->same_screen = same_screen;
-   e->event_window = event_win;
-   e->modifiers = _ecore_xcb_events_modifiers_get(modifiers);
-   e->x = x;
-   e->y = y;
-   e->root.x = root_x;
-   e->root.y = root_y;
-   e->multi.device = dev;
-   e->multi.radius = ((radx + rady) / 2);
-   e->multi.radius_x = radx;
-   e->multi.radius_y = rady;
-   e->multi.pressure = pressure;
-   e->multi.angle = angle;
-   e->multi.x = mx;
-   e->multi.y = my;
-   e->multi.root.x = mrx;
-   e->multi.root.y = mry;
-
-   ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e,
-                   _ecore_xcb_event_mouse_move_free, NULL);
-
-   _ecore_xcb_event_last_time = e->timestamp;
-   _ecore_xcb_event_last_window = e->window;
-   _ecore_xcb_event_last_root_x = root_x;
-   _ecore_xcb_event_last_root_y = root_y;
-}
-
-static void
-_ecore_xcb_event_mouse_move_free(void *data EINA_UNUSED,
-                                 void *event)
-{
-   Ecore_Event_Mouse_Move *ev;
-
-   ev = event;
-//   if (_ecore_xcb_event_last_mouse_move_event)
-//     {
-//        _ecore_xcb_event_last_mouse_move = EINA_FALSE;
-//        _ecore_xcb_event_last_mouse_move_event = NULL;
-//     }
-   if (ev) free(ev);
-}
-
-Ecore_Event_Mouse_Button *
-_ecore_xcb_event_mouse_button(int          event,
-                              uint16_t     timestamp,
-                              uint16_t     modifiers,
-                              xcb_button_t buttons,
-                              int16_t      x,
-                              int16_t      y,
-                              int16_t      root_x,
-                              int16_t      root_y,
-                              xcb_window_t event_win,
-                              xcb_window_t win,
-                              xcb_window_t root_win,
-                              uint8_t      same_screen,
-                              int          dev,
-                              double       radx,
-                              double       rady,
-                              double       pressure,
-                              double       angle,
-                              int16_t      mx,
-                              int16_t      my,
-                              int16_t      mrx,
-                              int16_t      mry)
-{
-   Ecore_Event_Mouse_Button *e;
-   Ecore_X_Mouse_Down_Info *info = NULL;
-
-   if (!(e = calloc(1, sizeof(Ecore_Event_Mouse_Button)))) return NULL;
-
-   e->window = win;
-   e->root_window = root_win;
-   e->timestamp = timestamp;
-   e->same_screen = same_screen;
-   e->event_window = event_win;
-   e->buttons = buttons;
-   e->modifiers = _ecore_xcb_events_modifiers_get(modifiers);
-   e->double_click = 0;
-   e->triple_click = 0;
-   e->x = x;
-   e->y = y;
-   e->root.x = root_x;
-   e->root.y = root_y;
-
-   if ((info = _ecore_xcb_event_mouse_down_info_get(dev)))
-     {
-        if ((event == ECORE_EVENT_MOUSE_BUTTON_DOWN) &&
-            (info->did_triple))
-          {
-             info->last_win = 0;
-             info->last_last_win = 0;
-             info->last_event_win = 0;
-             info->last_time = 0;
-             info->last_last_time = 0;
-          }
-        if (event_win == win)
-          {
-             if (event == ECORE_EVENT_MOUSE_BUTTON_DOWN)
-               {
-                  if (((int)(timestamp - info->last_time) <=
-                       (int)(1000 * _ecore_xcb_double_click_time)) &&
-                      (win == info->last_win) &&
-                      (event_win == info->last_event_win))
-                    {
-                       e->double_click = 1;
-                       info->did_double = EINA_TRUE;
-                    }
-                  else
-                    {
-                       info->did_double = EINA_FALSE;
-                       info->did_triple = EINA_FALSE;
-                    }
-                  if (((int)(timestamp - info->last_last_time) <=
-                       (int)(2 * 1000 * _ecore_xcb_double_click_time)) &&
-                      (win == info->last_win) &&
-                      (win == info->last_last_win) &&
-                      (event_win == info->last_event_win) &&
-                      (event_win == info->last_last_event_win))
-                    {
-                       e->triple_click = 1;
-                       info->did_triple = EINA_TRUE;
-                    }
-                  else
-                    info->did_triple = EINA_FALSE;
-               }
-             else
-               {
-                  if (info->did_double) e->double_click = 1;
-                  if (info->did_triple) e->triple_click = 1;
-               }
-          }
-     }
-
-   /* NB: Comment out right now because _ecore_xcb_mouse_up_count is
-    * only used here...nowhere else in the code */
-
-   /* if ((event == ECORE_EVENT_MOUSE_BUTTON_DOWN) &&  */
-   /*     (!e->double_click) && (!e->triple_click)) */
-   /*   _ecore_xcb_mouse_up_count = 0; */
-
-   e->multi.device = dev;
-   e->multi.radius = ((radx + rady) / 2);
-   e->multi.radius_x = radx;
-   e->multi.radius_y = rady;
-   e->multi.pressure = pressure;
-   e->multi.angle = angle;
-   e->multi.x = mx;
-   e->multi.y = my;
-   e->multi.root.x = mrx;
-   e->multi.root.y = mry;
-
-   _ecore_xcb_event_last_time = e->timestamp;
-   _ecore_xcb_event_last_window = e->window;
-   _ecore_xcb_event_last_root_x = root_x;
-   _ecore_xcb_event_last_root_y = root_y;
-
-   ecore_event_add(event, e, NULL, NULL);
-
-   if ((info) && (event == ECORE_EVENT_MOUSE_BUTTON_DOWN) &&
-       (win == event_win) && (!info->did_triple))
-     {
-        info->last_last_win = info->last_win;
-        info->last_win = win;
-        info->last_last_event_win = info->last_event_win;
-        info->last_event_win = event_win;
-        info->last_last_time = info->last_time;
-        info->last_time = timestamp;
-     }
-
-   return e;
-}
-
-static Ecore_X_Event_Mode
-_ecore_xcb_event_mode_get(uint8_t mode)
-{
-   switch (mode)
-     {
-      case XCB_NOTIFY_MODE_NORMAL:
-        return ECORE_X_EVENT_MODE_NORMAL;
-
-      case XCB_NOTIFY_MODE_WHILE_GRABBED:
-        return ECORE_X_EVENT_MODE_WHILE_GRABBED;
-
-      case XCB_NOTIFY_MODE_GRAB:
-        return ECORE_X_EVENT_MODE_GRAB;
-
-      case XCB_NOTIFY_MODE_UNGRAB:
-        return ECORE_X_EVENT_MODE_UNGRAB;
-
-      default:
-        return ECORE_X_EVENT_MODE_NORMAL;
-     }
-}
-
-static Ecore_X_Event_Detail
-_ecore_xcb_event_detail_get(uint8_t detail)
-{
-   switch (detail)
-     {
-      case XCB_NOTIFY_DETAIL_ANCESTOR:
-        return ECORE_X_EVENT_DETAIL_ANCESTOR;
-
-      case XCB_NOTIFY_DETAIL_VIRTUAL:
-        return ECORE_X_EVENT_DETAIL_VIRTUAL;
-
-      case XCB_NOTIFY_DETAIL_INFERIOR:
-        return ECORE_X_EVENT_DETAIL_INFERIOR;
-
-      case XCB_NOTIFY_DETAIL_NONLINEAR:
-        return ECORE_X_EVENT_DETAIL_NON_LINEAR;
-
-      case XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL:
-        return ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL;
-
-      case XCB_NOTIFY_DETAIL_POINTER:
-        return ECORE_X_EVENT_DETAIL_POINTER;
-
-      case XCB_NOTIFY_DETAIL_POINTER_ROOT:
-        return ECORE_X_EVENT_DETAIL_POINTER_ROOT;
-
-      case XCB_NOTIFY_DETAIL_NONE:
-      default:
-        return ECORE_X_EVENT_DETAIL_ANCESTOR;
-     }
-}
-
-static void
-_ecore_xcb_event_xdnd_enter_free(void *data EINA_UNUSED,
-                                 void *event)
-{
-   Ecore_X_Event_Xdnd_Enter *e;
-   int i = 0;
-
-   e = event;
-   for (i = 0; i < e->num_types; i++)
-     free(e->types[i]);
-   free(e->types);
-   free(e);
-}
-
-static void
-_ecore_xcb_event_selection_notify_free(void *data EINA_UNUSED,
-                                       void *event)
-{
-   Ecore_X_Event_Selection_Notify *e;
-   Ecore_X_Selection_Data *sel;
-
-   e = event;
-   if (!(sel = e->data)) return;
-   if (sel->free) sel->free(sel);
-   free(e->target);
-   free(e);
-}
-
-static void
-_ecore_xcb_event_generic_event_free(void *data,
-                                    void *event)
-{
-   Ecore_X_Event_Generic *e;
-
-   e = (Ecore_X_Event_Generic *)event;
-   if (e->data) free(data);
-   free(e);
-}
-
-static void
-_ecore_xcb_event_mouse_down_info_clear(void)
-{
-   Eina_Inlist *l;
-   Ecore_X_Mouse_Down_Info *info = NULL;
-
-   l = _ecore_xcb_mouse_down_info_list;
-   while (l)
-     {
-        info = EINA_INLIST_CONTAINER_GET(l, Ecore_X_Mouse_Down_Info);
-        l = eina_inlist_remove(l, l);
-        free(info);
-     }
-   _ecore_xcb_mouse_down_info_list = NULL;
-}
-
-static Ecore_X_Mouse_Down_Info *
-_ecore_xcb_event_mouse_down_info_get(int dev)
-{
-   Eina_Inlist *l;
-   Ecore_X_Mouse_Down_Info *info = NULL;
-
-   l = _ecore_xcb_mouse_down_info_list;
-   EINA_INLIST_FOREACH(l, info)
-     if (info->dev == dev) return info;
-
-   if (!(info = calloc(1, sizeof(Ecore_X_Mouse_Down_Info)))) return NULL;
-
-   info->dev = dev;
-   l = eina_inlist_append(l, (Eina_Inlist *)info);
-   _ecore_xcb_mouse_down_info_list = l;
-
-   return info;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_extensions.c b/src/lib/ecore_x/xcb/ecore_xcb_extensions.c
deleted file mode 100644 (file)
index a94c23f..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "ecore_xcb_private.h"
-
-void
-_ecore_xcb_extensions_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_big_requests_id);
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_shm_id);
-
-#ifdef ECORE_XCB_SHAPE
-   _ecore_xcb_shape_init();
-#endif
-
-#ifdef ECORE_XCB_SCREENSAVER
-   _ecore_xcb_screensaver_init();
-#endif
-
-#ifdef ECORE_XCB_SYNC
-   _ecore_xcb_sync_init();
-#endif
-
-#ifdef ECORE_XCB_RANDR
-   _ecore_xcb_randr_init();
-#endif
-
-#ifdef ECORE_XCB_XFIXES
-   _ecore_xcb_xfixes_init();
-#endif
-
-#ifdef ECORE_XCB_DAMAGE
-   _ecore_xcb_damage_init();
-#endif
-
-#ifdef ECORE_XCB_RENDER
-   _ecore_xcb_render_init();
-#endif
-
-#ifdef ECORE_XCB_COMPOSITE
-   _ecore_xcb_composite_init();
-#endif
-
-#ifdef ECORE_XCB_DPMS
-   _ecore_xcb_dpms_init();
-#endif
-
-#ifdef ECORE_XCB_DPMS
-   _ecore_xcb_dpms_init();
-#endif
-
-#ifdef ECORE_XCB_CURSOR
-   _ecore_xcb_cursor_init();
-#endif
-
-#ifdef ECORE_XCB_XINERAMA
-   _ecore_xcb_xinerama_init();
-#endif
-
-#ifdef ECORE_XCB_XINPUT
-   _ecore_xcb_input_init();
-#endif
-
-#ifdef ECORE_XCB_GESTURE
-   _ecore_xcb_gesture_init();
-#endif
-
-#ifdef ECORE_XCB_XPRESENT
-   _ecore_xcb_present_init();
-#endif
-
-/* #ifdef ECORE_XCB_DRI */
-/*    _ecore_xcb_dri_init(); */
-/* #endif */
-
-#ifdef ECORE_XCB_XTEST
-   _ecore_xcb_xtest_init();
-#endif
-
-   xcb_prefetch_maximum_request_length(_ecore_xcb_conn);
-}
-
-void
-_ecore_xcb_extensions_finalize(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   xcb_get_extension_data(_ecore_xcb_conn, &xcb_big_requests_id);
-   xcb_get_extension_data(_ecore_xcb_conn, &xcb_shm_id);
-
-#ifdef ECORE_XCB_SHAPE
-   _ecore_xcb_shape_finalize();
-#endif
-
-#ifdef ECORE_XCB_SCREENSAVER
-   _ecore_xcb_screensaver_finalize();
-#endif
-
-#ifdef ECORE_XCB_SYNC
-   _ecore_xcb_sync_finalize();
-#endif
-
-#ifdef ECORE_XCB_RANDR
-   _ecore_xcb_randr_finalize();
-#endif
-
-#ifdef ECORE_XCB_XFIXES
-   _ecore_xcb_xfixes_finalize();
-#endif
-
-#ifdef ECORE_XCB_DAMAGE
-   _ecore_xcb_damage_finalize();
-#endif
-
-#ifdef ECORE_XCB_RENDER
-   _ecore_xcb_render_finalize();
-#endif
-
-#ifdef ECORE_XCB_COMPOSITE
-   _ecore_xcb_composite_finalize();
-#endif
-
-#ifdef ECORE_XCB_DPMS
-   _ecore_xcb_dpms_finalize();
-#endif
-
-#ifdef ECORE_XCB_CURSOR
-   _ecore_xcb_cursor_finalize();
-#endif
-
-#ifdef ECORE_XCB_XINERAMA
-   _ecore_xcb_xinerama_finalize();
-#endif
-
-#ifdef ECORE_XCB_XINPUT
-   _ecore_xcb_input_finalize();
-#endif
-
-#ifdef ECORE_XCB_GESTURE
-   _ecore_xcb_gesture_finalize();
-#endif
-
-#ifdef ECORE_XCB_XPRESENT
-   _ecore_xcb_present_finalize();
-#endif
-
-/* #ifdef ECORE_XCB_DRI */
-/*    _ecore_xcb_dri_finalize(); */
-/* #endif */
-
-#ifdef ECORE_XCB_XTEST
-   _ecore_xcb_xtest_finalize();
-#endif
-
-   xcb_get_maximum_request_length(_ecore_xcb_conn);
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_gc.c b/src/lib/ecore_x/xcb/ecore_xcb_gc.c
deleted file mode 100644 (file)
index d811b54..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#include "ecore_xcb_private.h"
-
-/**
- * Creates a new default graphics context associated with the given
- * drawable.
- * @param  draw Drawable to create graphics context with.  If @c 0 is
- *              given instead, the default root window is used.
- * @param value_mask Bitmask values.
- * @param value_list List of values. The order of values must be the
- *                   same than the corresponding bitmaks.
- * @return The new default graphics context.
- */
-EAPI Ecore_X_GC
-ecore_x_gc_new(Ecore_X_Drawable      drawable,
-               Ecore_X_GC_Value_Mask value_mask,
-               const unsigned int   *value_list)
-{
-   xcb_gcontext_t gc;
-   uint32_t vmask = 0;
-   int i = 0, mask = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!drawable) drawable = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   for (i = 0, mask = 1; i <= 22; i++, mask <<= 1)
-     {
-        switch (mask & value_mask)
-          {
-           case ECORE_X_GC_VALUE_MASK_FUNCTION:
-             vmask |= XCB_GC_FUNCTION;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_PLANE_MASK:
-             vmask |= XCB_GC_PLANE_MASK;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_FOREGROUND:
-             vmask |= XCB_GC_FOREGROUND;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_BACKGROUND:
-             vmask |= XCB_GC_BACKGROUND;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_LINE_WIDTH:
-             vmask |= XCB_GC_LINE_WIDTH;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_LINE_STYLE:
-             vmask |= XCB_GC_LINE_STYLE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_CAP_STYLE:
-             vmask |= XCB_GC_CAP_STYLE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_JOIN_STYLE:
-             vmask |= XCB_GC_JOIN_STYLE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_FILL_STYLE:
-             vmask |= XCB_GC_FILL_STYLE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_FILL_RULE:
-             vmask |= XCB_GC_FILL_RULE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_TILE:
-             vmask |= XCB_GC_TILE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_STIPPLE:
-             vmask |= XCB_GC_STIPPLE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_X:
-             vmask |= XCB_GC_TILE_STIPPLE_ORIGIN_X;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_Y:
-             vmask |= XCB_GC_TILE_STIPPLE_ORIGIN_Y;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_FONT:
-             vmask |= XCB_GC_FONT;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE:
-             vmask |= XCB_GC_SUBWINDOW_MODE;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES:
-             vmask |= XCB_GC_GRAPHICS_EXPOSURES;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X:
-             vmask |= XCB_GC_CLIP_ORIGIN_X;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y:
-             vmask |= XCB_GC_CLIP_ORIGIN_Y;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_CLIP_MASK:
-             vmask |= XCB_GC_CLIP_MASK;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_DASH_OFFSET:
-             vmask |= XCB_GC_DASH_OFFSET;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_DASH_LIST:
-             vmask |= XCB_GC_DASH_LIST;
-             break;
-
-           case ECORE_X_GC_VALUE_MASK_ARC_MODE:
-             vmask |= XCB_GC_ARC_MODE;
-             break;
-          }
-     }
-
-   gc = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_gc(_ecore_xcb_conn, gc, drawable, vmask, value_list);
-
-//   ecore_x_flush();
-   return gc;
-}
-
-/**
- * Deletes and frees the given graphics context.
- * @param gc The given graphics context.
- */
-EAPI void
-ecore_x_gc_free(Ecore_X_GC gc)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_free_gc(_ecore_xcb_conn, gc);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_gc_foreground_set(Ecore_X_GC    gc,
-                          unsigned long foreground)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = foreground;
-   xcb_change_gc(_ecore_xcb_conn, gc, XCB_GC_FOREGROUND, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_gc_background_set(Ecore_X_GC    gc,
-                          unsigned long background)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = background;
-   xcb_change_gc(_ecore_xcb_conn, gc, XCB_GC_BACKGROUND, &list);
-//   ecore_x_flush();
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_gesture.c b/src/lib/ecore_x/xcb/ecore_xcb_gesture.c
deleted file mode 100644 (file)
index 27c1316..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_XGESTURE
-# include <xcb/gesture.h>
-# include <xcb/xcb_event.h>
-#endif
-
-/* local variables */
-static Eina_Bool _gesture_available = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_gesture = -1;
-
-void 
-_ecore_xcb_gesture_init(void) 
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XGESTURE
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_gesture_id);
-#endif
-}
-
-void 
-_ecore_xcb_gesture_finalize(void) 
-{
-#ifdef ECORE_XCB_XGESTURE
-   xcb_gesture_query_version_cookie_t cookie;
-   xcb_gesture_query_version_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XGESTURE
-   cookie = 
-     xcb_gesture_query_version_unchecked(_ecore_xcb_conn);
-   reply = 
-     xcb_gesture_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply) 
-     {
-        _gesture_available = EINA_TRUE;
-        free(reply);
-     }
-
-   if (_gesture_available) 
-     {
-        const xcb_query_extension_reply_t *ext_reply;
-
-        ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_gesture_id);
-        if (ext_reply) 
-          _ecore_xcb_event_gesture = ext_reply->first_event;
-     }
-#endif
-}
-
-void 
-_ecore_xcb_gesture_shutdown(void) 
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-}
-
-EAPI Eina_Bool
-ecore_x_gesture_supported(void)
-{
-   return _gesture_available;
-}
-
-#ifdef ECORE_XCB_XGESTURE
-EAPI Eina_Bool
-ecore_x_gesture_events_select(Ecore_X_Window win,
-                              Ecore_X_Gesture_Event_Mask mask)
-#else
-EAPI Eina_Bool
-ecore_x_gesture_events_select(Ecore_X_Window win EINA_UNUSED,
-                              Ecore_X_Gesture_Event_Mask mask EINA_UNUSED)
-#endif
-
-{
-#ifdef ECORE_XCB_XGESTURE
-   if (!_gesture_available) return EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN
-
-   xcb_gesture_select_events(_ecore_xcb_conn, win, mask);
-
-   return EINA_TRUE;
-#else
-   return EINA_FALSE;
-#endif
-}
-
-#ifdef ECORE_XCB_XGESTURE
-EAPI Ecore_X_Gesture_Event_Mask
-ecore_x_gesture_events_selected_get(Ecore_X_Window win)
-#else
-EAPI Ecore_X_Gesture_Event_Mask
-ecore_x_gesture_events_selected_get(Ecore_X_Window win EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XGESTURE
-   xcb_gesture_get_selected_events_cookie_t ecookie;
-   xcb_gesture_get_selected_events_reply_t *ereply;
-   Ecore_X_Gesture_Event_Mask mask = ECORE_X_GESTURE_EVENT_MASK_NONE;
-
-   if (!_gesture_available) return mask;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN
-
-   ecookie = xcb_gesture_get_selected_events(_ecore_xcb_conn, win);
-   ereply = 
-     xcb_gesture_get_selected_events_reply(_ecore_xcb_conn, ecookie, NULL);
-   if (ereply)
-     {
-        mask = ereply->mask;
-        free(ereply);
-     }
-
-   return mask;
-#else
-   return ECORE_X_GESTURE_EVENT_MASK_NONE;
-#endif
-}
-
-#ifdef ECORE_XCB_XGESTURE
-EAPI Eina_Bool
-ecore_x_gesture_event_grab(Ecore_X_Window win,
-                           Ecore_X_Gesture_Event_Type type,
-                           int num_fingers)
-#else
-EAPI Eina_Bool
-ecore_x_gesture_event_grab(Ecore_X_Window win EINA_UNUSED,
-                           Ecore_X_Gesture_Event_Type type EINA_UNUSED,
-                           int num_fingers EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XGESTURE
-   Eina_Bool status = EINA_TRUE;
-   xcb_gesture_grab_event_cookie_t ecookie;
-   xcb_gesture_grab_event_reply_t *ereply;
-
-   if (!_gesture_available) return EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN
-
-   ecookie = 
-     xcb_gesture_grab_event(_ecore_xcb_conn, win, type, num_fingers, 0L);
-   ereply = xcb_gesture_grab_event_reply(_ecore_xcb_conn, ecookie, NULL);
-
-   if (ereply)
-     {
-        if (ereply->status) status = EINA_FALSE;
-        free(ereply);
-     }
-   else
-     status = EINA_FALSE;
-
-   return status;
-#else
-   return EINA_FALSE;
-#endif
-}
-
-#ifdef ECORE_XCB_XGESTURE
-EAPI Eina_Bool
-ecore_x_gesture_event_ungrab(Ecore_X_Window win,
-                             Ecore_X_Gesture_Event_Type type,
-                             int num_fingers)
-#else
-EAPI Eina_Bool
-ecore_x_gesture_event_ungrab(Ecore_X_Window win EINA_UNUSED,
-                             Ecore_X_Gesture_Event_Type type EINA_UNUSED,
-                             int num_fingers EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XGESTURE
-   Eina_Bool status = EINA_TRUE;
-   xcb_gesture_ungrab_event_cookie_t ecookie;
-   xcb_gesture_ungrab_event_reply_t *ereply;
-
-   if (!_gesture_available) return EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN
-
-  ecookie = 
-     xcb_gesture_ungrab_event(_ecore_xcb_conn, win, type, num_fingers, 0L);
-  ereply = xcb_gesture_ungrab_event_reply(_ecore_xcb_conn, ecookie, NULL);
-
-   if (ereply)
-     {
-        if (ereply->status) status = EINA_FALSE;
-        free(ereply);
-     }
-   else
-     status = EINA_FALSE;
-
-   return status;
-#else
-   return EINA_FALSE;
-#endif
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_icccm.c b/src/lib/ecore_x/xcb/ecore_xcb_icccm.c
deleted file mode 100644 (file)
index 9514674..0000000
+++ /dev/null
@@ -1,1259 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <xcb/xcb_icccm.h>
-
-EAPI void
-ecore_x_icccm_init(void)
-{
-}
-
-/**
- * Sets the WM_COMMAND property for @a win.
- *
- * @param win  The window.
- * @param argc Number of arguments.
- * @param argv Arguments.
- */
-EAPI void
-ecore_x_icccm_command_set(Ecore_X_Window win,
-                          int            argc,
-                          char         **argv)
-{
-   void *buf;
-   char *b;
-   int nbytes, i;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   for (i = 0, nbytes = 0; i < argc; i++) 
-     if (argv[i]) nbytes += strlen(argv[i]) + 1;
-
-   buf = malloc(sizeof(char) * nbytes);
-   if (!buf) return;
-
-   b = (char *)buf;
-   for (i = 0; i < argc; i++)
-     {
-        if (argv[i])
-          {
-             strcpy(b, argv[i]);
-             b += strlen(argv[i]) + 1;
-          }
-        else
-          *b++ = '\0';
-     }
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                       ECORE_X_ATOM_WM_COMMAND, ECORE_X_ATOM_STRING, 8,
-                       nbytes, buf);
-   free(buf);
-}
-
-/**
- * Get the WM_COMMAND property for @a win.
- *
- * Return the command of a window. String must be free'd when done with.
- *
- * @param win  The window.
- * @param argc Number of arguments.
- * @param argv Arguments.
- */
-EAPI void
-ecore_x_icccm_command_get(Ecore_X_Window win,
-                          int           *argc,
-                          char        ***argv)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   int len = 0;
-   char **v, *data, *cp, *start;
-   int c = 0, i = 0, j = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (argc) *argc = 0;
-   if (argv) *argv = NULL;
-
-   cookie = xcb_get_property_unchecked(_ecore_xcb_conn, 0, win,
-                                       ECORE_X_ATOM_WM_COMMAND,
-                                       XCB_GET_PROPERTY_TYPE_ANY,
-                                       0, 1000000L);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-
-   if ((reply->type != ECORE_X_ATOM_STRING) || (reply->format != 8))
-     {
-        free(reply);
-        return;
-     }
-
-   len = reply->value_len;
-   if (len < 1)
-     {
-        free(reply);
-        return;
-     }
-
-   data = (char *)xcb_get_property_value(reply);
-   if (len && (data[len - 1] == '\0'))
-     len--;
-
-   c = 1;
-   for (cp = (char *)data, i = len; i > 0; cp++, i--)
-     if (*cp == '\0') c++;
-
-   v = (char **)malloc((c + 1) * sizeof(char *));
-   if (!v)
-     {
-        free(reply);
-        return;
-     }
-
-   start = (char *)malloc((len + 1) * sizeof(char));
-   if (!start)
-     {
-        free(reply);
-        free(v);
-        return;
-     }
-
-   memcpy(start, (char *)data, len);
-   start[len] = '\0';
-   for (cp = start, i = len + 1, j = 0; i > 0; cp++, i--)
-     {
-        if (*cp == '\0')
-          {
-             v[j] = start;
-             start = (cp + 1);
-             j++;
-          }
-     }
-
-   if (c < 1)
-     {
-        free(reply);
-        free(v);
-        return;
-     }
-
-   if (argc) *argc = c;
-
-   if (argv)
-     {
-        (*argv) = malloc(c * sizeof(char *));
-        if (!*argv)
-          {
-             free(reply);
-             free(v);
-             if (argc) *argc = 0;
-             return;
-          }
-
-        for (i = 0; i < c; i++)
-          {
-             if (v[i])
-               (*argv)[i] = strdup(v[i]);
-             else
-               (*argv)[i] = strdup("");
-          }
-     }
-
-   free(reply);
-   free(v);
-}
-
-EAPI char *
-ecore_x_icccm_title_get(Ecore_X_Window win)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_get_text_property_reply_t prop;
-   uint8_t ret = 0;
-   char *title = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return NULL;
-   cookie = xcb_icccm_get_wm_name_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_name_reply(_ecore_xcb_conn, cookie, &prop, NULL);
-   if (ret == 0) return NULL;
-   if (prop.name_len < 1)
-     {
-        xcb_icccm_get_text_property_reply_wipe(&prop);
-        return NULL;
-     }
-
-   if (!(title = malloc((prop.name_len + 1) * sizeof(char *))))
-     {
-        xcb_icccm_get_text_property_reply_wipe(&prop);
-        return NULL;
-     }
-   memcpy(title, prop.name, sizeof(char *) * prop.name_len);
-   title[prop.name_len] = '\0';
-
-   if (prop.encoding != ECORE_X_ATOM_UTF8_STRING)
-     {
-        Ecore_Xcb_Textproperty tp;
-        int count = 0;
-        char **list = NULL;
-        Eina_Bool ret = EINA_FALSE;
-
-        tp.value = strdup(title);
-        tp.nitems = prop.name_len;
-        tp.encoding = prop.encoding;
-#ifdef HAVE_ICONV
-        ret = _ecore_xcb_utf8_textproperty_to_textlist(&tp, &list, &count);
-#else
-        ret = _ecore_xcb_mb_textproperty_to_textlist(&tp, &list, &count);
-#endif
-        if (ret)
-          {
-             if (count > 0)
-               title = strdup(list[0]);
-
-             if (list) free(list);
-          }
-     }
-
-   xcb_icccm_get_text_property_reply_wipe(&prop);
-   return title;
-}
-
-EAPI void
-ecore_x_icccm_title_set(Ecore_X_Window win,
-                        const char    *title)
-{
-   Ecore_Xcb_Textproperty prop;
-   char *list[1];
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!title) return;
-
-   prop.value = NULL;
-   list[0] = strdup(title);
-
-#ifdef HAVE_ICONV
-   ret = _ecore_xcb_utf8_textlist_to_textproperty(list, 1, XcbUTF8StringStyle,
-                                                  &prop);
-#else
-   ret = _ecore_xcb_mb_textlist_to_textproperty(list, 1, XcbStdICCTextStyle,
-                                                &prop);
-#endif
-
-   if (ret)
-     {
-        xcb_icccm_set_wm_name(_ecore_xcb_conn, win, ECORE_X_ATOM_STRING, 8,
-                              strlen(prop.value), prop.value);
-        if (prop.value) free(prop.value);
-     }
-   else
-     xcb_icccm_set_wm_name(_ecore_xcb_conn, win, ECORE_X_ATOM_STRING, 8,
-                           strlen(title), title);
-   free(list[0]);
-}
-
-/**
- * Get a window name & class.
- * @param win The window
- * @param n The name string
- * @param c The class string
- *
- * Get a window name * class
- */
-EAPI void
-ecore_x_icccm_name_class_get(Ecore_X_Window win,
-                             char         **name,
-                             char         **class)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_get_wm_class_reply_t prop;
-   uint8_t ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (name) *name = NULL;
-   if (class) *class = NULL;
-
-   cookie = xcb_icccm_get_wm_class_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_class_reply(_ecore_xcb_conn, cookie, &prop, NULL);
-   if (ret == 0) return;
-
-   if (name) *name = strdup(prop.instance_name);
-   if (class) *class = strdup(prop.class_name);
-
-   xcb_icccm_get_wm_class_reply_wipe(&prop);
-}
-
-/**
- * Set a window name & class.
- * @param win The window
- * @param n The name string
- * @param c The class string
- *
- * Set a window name * class
- */
-EAPI void
-ecore_x_icccm_name_class_set(Ecore_X_Window win,
-                             const char    *name,
-                             const char    *class)
-{
-   char *class_string, *s;
-   int length_name = 0, length_class = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (name) length_name = strlen(name);
-   if (class) length_class = strlen(class);
-   class_string =
-     (char *)malloc(sizeof(char) * (length_name + length_class + 2));
-   if (!class_string) return;
-
-   s = class_string;
-   if (length_name)
-     {
-        strcpy(s, name);
-        s += length_name + 1;
-     }
-   else
-     *s++ = '\0';
-
-   if (length_class)
-     strcpy(s, class);
-   else
-     *s = '\0';
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                       ECORE_X_ATOM_WM_CLASS, ECORE_X_ATOM_STRING, 8,
-                       length_name + length_class + 2, (void *)class_string);
-   free(class_string);
-}
-
-/**
- * Specify that a window is transient for another top-level window and should be handled accordingly.
- * @param win the transient window
- * @param forwin the toplevel window
- */
-EAPI void
-ecore_x_icccm_transient_for_set(Ecore_X_Window win,
-                                Ecore_X_Window forwindow)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                       ECORE_X_ATOM_WM_TRANSIENT_FOR, ECORE_X_ATOM_WINDOW, 32,
-                       1, (void *)&forwindow);
-}
-
-/**
- * Remove the transient_for setting from a window.
- * @param win The window
- */
-EAPI void
-ecore_x_icccm_transient_for_unset(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_property_del(win, ECORE_X_ATOM_WM_TRANSIENT_FOR);
-}
-
-/**
- * Get the window this window is transient for, if any.
- * @param win The window to check
- * @return The window ID of the top-level window, or 0 if the property does not exist.
- */
-EAPI Ecore_X_Window
-ecore_x_icccm_transient_for_get(Ecore_X_Window win)
-{
-   Ecore_X_Window forwin = 0;
-   xcb_get_property_cookie_t cookie;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_icccm_get_wm_transient_for_unchecked(_ecore_xcb_conn, win);
-   xcb_icccm_get_wm_transient_for_reply(_ecore_xcb_conn, cookie, &forwin, NULL);
-
-   return forwin;
-}
-
-/**
- * Get the window role.
- * @param win The window
- * @return The window's role string.
- */
-EAPI char *
-ecore_x_icccm_window_role_get(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_window_prop_string_get(win, ECORE_X_ATOM_WM_WINDOW_ROLE);
-}
-
-/**
- * Set the window role hint.
- * @param win The window
- * @param role The role string
- */
-EAPI void
-ecore_x_icccm_window_role_set(Ecore_X_Window win,
-                              const char    *role)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_string_set(win, ECORE_X_ATOM_WM_WINDOW_ROLE, role);
-}
-
-/**
- * Get the window's client leader.
- * @param win The window
- * @return The window's client leader window, or 0 if unset
- */
-EAPI Ecore_X_Window
-ecore_x_icccm_client_leader_get(Ecore_X_Window win)
-{
-   Ecore_X_Window leader;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (ecore_x_window_prop_window_get(win, ECORE_X_ATOM_WM_CLIENT_LEADER,
-                                      &leader, 1) > 0)
-     return leader;
-
-   return 0;
-}
-
-/**
- * Set the window's client leader.
- * @param win The window
- * @param l The client leader window
- *
- * All non-transient top-level windows created by an app other than
- * the main window must have this property set to the app's main window.
- */
-EAPI void
-ecore_x_icccm_client_leader_set(Ecore_X_Window win,
-                                Ecore_X_Window leader)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(win, ECORE_X_ATOM_WM_CLIENT_LEADER,
-                                  &leader, 1);
-}
-
-EAPI Ecore_X_Window_State_Hint
-ecore_x_icccm_state_get(Ecore_X_Window win)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   Ecore_X_Window_State_Hint hint = ECORE_X_WINDOW_STATE_HINT_NONE;
-   uint8_t *prop;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie =
-     xcb_get_property_unchecked(_ecore_xcb_conn, 0, win,
-                                ECORE_X_ATOM_WM_STATE, ECORE_X_ATOM_WM_STATE,
-                                0L, 0x7fffffff);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return hint;
-   if ((reply->type == 0) || (reply->format != 8) || (reply->value_len != 2))
-     {
-        free(reply);
-        return hint;
-     }
-
-   prop = (uint8_t *)xcb_get_property_value(reply);
-   switch (prop[0])
-     {
-      case XCB_ICCCM_WM_STATE_WITHDRAWN:
-        hint = ECORE_X_WINDOW_STATE_HINT_WITHDRAWN;
-        break;
-
-      case XCB_ICCCM_WM_STATE_NORMAL:
-        hint = ECORE_X_WINDOW_STATE_HINT_NORMAL;
-        break;
-
-      case XCB_ICCCM_WM_STATE_ICONIC:
-        hint = ECORE_X_WINDOW_STATE_HINT_ICONIC;
-        break;
-
-      default:
-        break;
-     }
-
-   free(reply);
-   return hint;
-}
-
-EAPI void
-ecore_x_icccm_state_set(Ecore_X_Window            win,
-                        Ecore_X_Window_State_Hint state)
-{
-   xcb_icccm_wm_hints_t hints;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_icccm_wm_hints_set_none(&hints);
-
-   hints.flags = XCB_ICCCM_WM_HINT_STATE;
-
-   if (state == ECORE_X_WINDOW_STATE_HINT_WITHDRAWN)
-     xcb_icccm_wm_hints_set_withdrawn(&hints);
-   else if (state == ECORE_X_WINDOW_STATE_HINT_NORMAL)
-     xcb_icccm_wm_hints_set_normal(&hints);
-   else if (state == ECORE_X_WINDOW_STATE_HINT_ICONIC)
-     xcb_icccm_wm_hints_set_iconic(&hints);
-
-   xcb_icccm_set_wm_hints(_ecore_xcb_conn, win, &hints);
-}
-
-EAPI void
-ecore_x_icccm_delete_window_send(Ecore_X_Window win,
-                                 Ecore_X_Time   t)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
-                                 ECORE_X_EVENT_MASK_NONE,
-                                 ECORE_X_ATOM_WM_DELETE_WINDOW, t, 0, 0, 0);
-}
-
-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)
-{
-   xcb_icccm_wm_hints_t hints;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_icccm_wm_hints_set_none(&hints);
-   xcb_icccm_wm_hints_set_input(&hints, accepts_focus);
-
-   if (initial_state == ECORE_X_WINDOW_STATE_HINT_WITHDRAWN)
-     xcb_icccm_wm_hints_set_withdrawn(&hints);
-   else if (initial_state == ECORE_X_WINDOW_STATE_HINT_NORMAL)
-     xcb_icccm_wm_hints_set_normal(&hints);
-   else if (initial_state == ECORE_X_WINDOW_STATE_HINT_ICONIC)
-     xcb_icccm_wm_hints_set_iconic(&hints);
-
-   if (icon_pixmap != 0)
-     xcb_icccm_wm_hints_set_icon_pixmap(&hints, icon_pixmap);
-   if (icon_mask != 0)
-     xcb_icccm_wm_hints_set_icon_mask(&hints, icon_mask);
-   if (icon_window != 0)
-     xcb_icccm_wm_hints_set_icon_window(&hints, icon_window);
-   if (window_group != 0)
-     xcb_icccm_wm_hints_set_window_group(&hints, window_group);
-   if (is_urgent)
-     xcb_icccm_wm_hints_set_urgency(&hints);
-
-   xcb_icccm_set_wm_hints(_ecore_xcb_conn, win, &hints);
-}
-
-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)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_wm_hints_t hints;
-   uint8_t ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (accepts_focus) *accepts_focus = EINA_TRUE;
-   if (initial_state) *initial_state = ECORE_X_WINDOW_STATE_HINT_NORMAL;
-   if (icon_pixmap) *icon_pixmap = 0;
-   if (icon_mask) *icon_mask = 0;
-   if (icon_window) *icon_window = 0;
-   if (window_group) *window_group = 0;
-   if (is_urgent) *is_urgent = EINA_FALSE;
-
-   xcb_icccm_wm_hints_set_none(&hints);
-   cookie = xcb_icccm_get_wm_hints_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_hints_reply(_ecore_xcb_conn, cookie, &hints, NULL);
-   if (!ret) return EINA_FALSE;
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_INPUT) && (accepts_focus))
-     {
-        if (hints.input)
-          *accepts_focus = EINA_TRUE;
-        else
-          *accepts_focus = EINA_FALSE;
-     }
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_STATE) && (initial_state))
-     {
-        if (hints.initial_state == XCB_ICCCM_WM_STATE_WITHDRAWN)
-          *initial_state = ECORE_X_WINDOW_STATE_HINT_WITHDRAWN;
-        else if (hints.initial_state == XCB_ICCCM_WM_STATE_NORMAL)
-          *initial_state = ECORE_X_WINDOW_STATE_HINT_NORMAL;
-        else if (hints.initial_state == XCB_ICCCM_WM_STATE_ICONIC)
-          *initial_state = ECORE_X_WINDOW_STATE_HINT_ICONIC;
-     }
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_ICON_PIXMAP) && (icon_pixmap))
-     *icon_pixmap = hints.icon_pixmap;
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_ICON_MASK) && (icon_mask))
-     *icon_mask = hints.icon_mask;
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_ICON_WINDOW) && (icon_window))
-     *icon_window = hints.icon_window;
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_WINDOW_GROUP) && (window_group))
-     *window_group = hints.window_group;
-
-   if ((hints.flags & XCB_ICCCM_WM_HINT_X_URGENCY) && (is_urgent))
-     *is_urgent = EINA_TRUE;
-
-   return EINA_TRUE;
-}
-
-/**
- * Get a window icon name.
- * @param win The window
- * @return The windows icon name string
- *
- * Return the icon name of a window. String must be free'd when done with.
- */
-EAPI char *
-ecore_x_icccm_icon_name_get(Ecore_X_Window win)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_get_text_property_reply_t prop;
-   uint8_t ret = 0;
-   char *tmp = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return NULL;
-
-   cookie = xcb_icccm_get_wm_icon_name_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_icon_name_reply(_ecore_xcb_conn, cookie, &prop, NULL);
-   if (ret == 0) return NULL;
-
-   if (prop.name_len < 1)
-     {
-        xcb_icccm_get_text_property_reply_wipe(&prop);
-        return NULL;
-     }
-
-   if (!(tmp = malloc((prop.name_len + 1) * sizeof(char *))))
-     {
-        xcb_icccm_get_text_property_reply_wipe(&prop);
-        return NULL;
-     }
-   memcpy(tmp, prop.name, sizeof(char *) * prop.name_len);
-   tmp[prop.name_len] = '\0';
-
-   if (prop.encoding != ECORE_X_ATOM_UTF8_STRING)
-     {
-        Ecore_Xcb_Textproperty tp;
-        int count = 0;
-        char **list = NULL;
-        Eina_Bool ret = EINA_FALSE;
-
-        tp.value = strdup(tmp);
-        tp.nitems = prop.name_len;
-        tp.encoding = prop.encoding;
-#ifdef HAVE_ICONV
-        ret = _ecore_xcb_utf8_textproperty_to_textlist(&tp, &list, &count);
-#else
-        ret = _ecore_xcb_mb_textproperty_to_textlist(&tp, &list, &count);
-#endif
-        if (ret)
-          {
-             if (count > 0)
-               tmp = strdup(list[0]);
-
-             if (list) free(list);
-          }
-     }
-
-   xcb_icccm_get_text_property_reply_wipe(&prop);
-   return tmp;
-}
-
-/**
- * Set a window icon name.
- * @param win The window
- * @param t The icon name string
- *
- * Set a window icon name
- */
-EAPI void
-ecore_x_icccm_icon_name_set(Ecore_X_Window win,
-                            const char    *name)
-{
-   Ecore_Xcb_Textproperty prop;
-   char *list[1];
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!win) || (!name)) return;
-
-   prop.value = NULL;
-   list[0] = strdup(name);
-
-#ifdef HAVE_ICONV
-   ret = _ecore_xcb_utf8_textlist_to_textproperty(list, 1, XcbUTF8StringStyle,
-                                                  &prop);
-#else
-   ret = _ecore_xcb_mb_textlist_to_textproperty(list, 1, XcbStdICCTextStyle,
-                                                &prop);
-#endif
-
-   if (ret)
-     {
-        xcb_icccm_set_wm_icon_name(_ecore_xcb_conn, win, ECORE_X_ATOM_STRING,
-                                   8, strlen(prop.value), prop.value);
-        if (prop.value) free(prop.value);
-     }
-   else
-     xcb_icccm_set_wm_icon_name(_ecore_xcb_conn, win, ECORE_X_ATOM_STRING,
-                                8, strlen(name), name);
-
-   free(list[0]);
-}
-
-EAPI void
-ecore_x_icccm_iconic_request_send(Ecore_X_Window win,
-                                  Ecore_X_Window root)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_WM_CHANGE_STATE;
-   ev.data.data32[0] = XCB_ICCCM_WM_STATE_ICONIC;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT),
-                  (const char *)&ev);
-//   ecore_x_flush();
-}
-
-/**
- * Set or unset a wm protocol property.
- * @param win The Window
- * @param protocol The protocol to enable/disable
- * @param on On/Off
- */
-EAPI void
-ecore_x_icccm_protocol_set(Ecore_X_Window      win,
-                           Ecore_X_WM_Protocol protocol,
-                           Eina_Bool           on)
-{
-   Ecore_X_Atom proto;
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_get_wm_protocols_reply_t protos;
-   int i = 0, count = 0, set = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (protocol >= ECORE_X_WM_PROTOCOL_NUM) return;
-   proto = _ecore_xcb_atoms_wm_protocol[protocol];
-   cookie = xcb_icccm_get_wm_protocols_unchecked(_ecore_xcb_conn, win, proto);
-   if (!xcb_icccm_get_wm_protocols_reply(_ecore_xcb_conn, cookie, &protos, NULL))
-     count = 0;
-   else
-     count = protos.atoms_len;
-
-   for (i = 0; i < count; i++)
-     {
-        if (protos.atoms[i] == proto)
-          {
-             set = 1;
-             break;
-          }
-     }
-
-   if (on)
-     {
-        if (!set)
-          {
-             Ecore_X_Atom *atoms = NULL;
-
-             atoms = malloc((count + 1) * sizeof(Ecore_X_Atom));
-             if (atoms)
-               {
-                  for (i = 0; i < count; i++)
-                    atoms[i] = protos.atoms[i];
-                  atoms[count] = proto;
-                  xcb_icccm_set_wm_protocols(_ecore_xcb_conn, win, 
-                                             ECORE_X_ATOM_WM_PROTOCOLS,
-                                             count, atoms);
-                  free(atoms);
-               }
-          }
-     }
-   else
-     {
-        if (set)
-          {
-             for (i = 0; i < count; i++)
-               {
-                  if (protos.atoms[i] == proto)
-                    {
-                       int j = 0;
-
-                       for (j = (i + 1); j < count; j++)
-                         protos.atoms[j - 1] = protos.atoms[j];
-                       if (count > 1)
-                         xcb_icccm_set_wm_protocols(_ecore_xcb_conn, win, 
-                                                    ECORE_X_ATOM_WM_PROTOCOLS,
-                                                    count - 1, protos.atoms);
-                       else
-                         ecore_x_window_prop_property_del(win,
-                                                          ECORE_X_ATOM_WM_PROTOCOLS);
-                       break;
-                    }
-               }
-          }
-     }
-
-   xcb_icccm_get_wm_protocols_reply_wipe(&protos);
-}
-
-/**
- * Determines whether a protocol is set for a window.
- * @param win The Window
- * @param protocol The protocol to query
- * @return 1 if the protocol is set, else 0.
- */
-EAPI Eina_Bool
-ecore_x_icccm_protocol_isset(Ecore_X_Window      win,
-                             Ecore_X_WM_Protocol protocol)
-{
-   Ecore_X_Atom proto;
-   Eina_Bool ret = EINA_FALSE;
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_get_wm_protocols_reply_t reply;
-   uint8_t val = 0;
-   unsigned int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (protocol >= ECORE_X_WM_PROTOCOL_NUM) return EINA_FALSE;
-
-   proto = _ecore_xcb_atoms_wm_protocol[protocol];
-   cookie = xcb_icccm_get_wm_protocols_unchecked(_ecore_xcb_conn, win, proto);
-   val = xcb_icccm_get_wm_protocols_reply(_ecore_xcb_conn, cookie, &reply, NULL);
-   if (!val) return EINA_FALSE;
-
-   for (i = 0; i < reply.atoms_len; i++)
-     if (reply.atoms[i] == proto)
-       {
-          ret = EINA_TRUE;
-          break;
-       }
-
-   xcb_icccm_get_wm_protocols_reply_wipe(&reply);
-
-   return ret;
-}
-
-/**
- * Set protocol atoms explicitly
- * @param win The Window
- * @param protos An array of protocol atoms
- * @param num the number of members of the array
- */
-EAPI void
-ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win,
-                                 Ecore_X_Atom  *protos,
-                                 int            num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num > 0)
-     xcb_icccm_set_wm_protocols(_ecore_xcb_conn, win,
-                                ECORE_X_ATOM_WM_PROTOCOLS, num, protos);
-   else
-     ecore_x_window_prop_property_del(win, ECORE_X_ATOM_WM_PROTOCOLS);
-}
-
-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)
-{
-   xcb_size_hints_t hints;
-   xcb_get_property_cookie_t cookie;
-   uint8_t ret = 0;
-   int32_t minw = 0, minh = 0;
-   int32_t maxw = 32767, maxh = 32767;
-   int32_t basew = -1, baseh = -1;
-   int32_t stepx = -1, stepy = -1;
-   double mina = 0.0, maxa = 0.0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (request_pos) *request_pos = EINA_FALSE;
-   if (gravity) *gravity = ECORE_X_GRAVITY_NW;
-   if (min_w) *min_w = minw;
-   if (min_h) *min_h = minh;
-   if (max_w) *max_w = maxw;
-   if (max_h) *max_h = maxh;
-   if (base_w) *base_w = basew;
-   if (base_h) *base_h = baseh;
-   if (step_x) *step_x = stepx;
-   if (step_y) *step_y = stepy;
-   if (min_aspect) *min_aspect = mina;
-   if (max_aspect) *max_aspect = maxa;
-
-   cookie = xcb_icccm_get_wm_normal_hints_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_normal_hints_reply(_ecore_xcb_conn, cookie,
-                                             &hints, NULL);
-   if (!ret) return EINA_FALSE;
-
-   if ((hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION) ||
-       (hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION))
-     {
-        if (request_pos) *request_pos = EINA_TRUE;
-     }
-
-   if (hints.flags & XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY)
-     {
-        if (gravity) *gravity = hints.win_gravity;
-     }
-
-   if (hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE)
-     {
-        minw = hints.min_width;
-        minh = hints.min_height;
-     }
-
-   if (hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE)
-     {
-        maxw = hints.max_width;
-        maxh = hints.max_height;
-        if (maxw < minw) maxw = minw;
-        if (maxh < minh) maxh = minh;
-     }
-
-   if (hints.flags & XCB_ICCCM_SIZE_HINT_BASE_SIZE)
-     {
-        basew = hints.base_width;
-        baseh = hints.base_height;
-        if (basew > minw) minw = basew;
-        if (baseh > minh) minh = baseh;
-     }
-
-   if (hints.flags & XCB_ICCCM_SIZE_HINT_P_RESIZE_INC)
-     {
-        stepx = hints.width_inc;
-        stepy = hints.height_inc;
-        if (stepx < 1) stepx = 1;
-        if (stepy < 1) stepy = 1;
-     }
-
-   if (hints.flags & XCB_ICCCM_SIZE_HINT_P_ASPECT)
-     {
-        if (hints.min_aspect_den > 0)
-          mina = ((double)hints.min_aspect_num) / ((double)hints.min_aspect_den);
-
-        if (hints.max_aspect_den > 0)
-          maxa = ((double)hints.max_aspect_num) / ((double)hints.max_aspect_den);
-     }
-
-   if (min_w) *min_w = minw;
-   if (min_h) *min_h = minh;
-   if (max_w) *max_w = maxw;
-   if (max_h) *max_h = maxh;
-   if (base_w) *base_w = basew;
-   if (base_h) *base_h = baseh;
-   if (step_x) *step_x = stepx;
-   if (step_y) *step_y = stepy;
-   if (min_aspect) *min_aspect = mina;
-   if (max_aspect) *max_aspect = maxa;
-
-   return EINA_TRUE;
-}
-
-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)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_size_hints_t hints;
-   uint8_t ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_icccm_get_wm_normal_hints_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_normal_hints_reply(_ecore_xcb_conn, cookie,
-                                             &hints, NULL);
-   if (!ret) memset(&hints, 0, sizeof(xcb_size_hints_t));
-
-   hints.flags = 0;
-
-   if (request_pos)
-     hints.flags |= XCB_ICCCM_SIZE_HINT_US_POSITION;
-
-   if (gravity != ECORE_X_GRAVITY_NW)
-     xcb_icccm_size_hints_set_win_gravity(&hints, gravity);
-   if ((min_w > 0) || (min_h > 0))
-     xcb_icccm_size_hints_set_min_size(&hints, min_w, min_h);
-   if ((max_w > 0) || (max_h > 0))
-     xcb_icccm_size_hints_set_max_size(&hints, max_w, max_h);
-   if ((base_w > 0) || (base_h > 0))
-     xcb_icccm_size_hints_set_base_size(&hints, base_w, base_h);
-   if ((step_x > 1) || (step_y > 1))
-     xcb_icccm_size_hints_set_resize_inc(&hints, step_x, step_y);
-   if ((min_aspect > 0.0) || (max_aspect > 0.0))
-     xcb_icccm_size_hints_set_aspect(&hints,
-                                     (int32_t)(min_aspect * 10000), 10000,
-                                     (int32_t)(max_aspect * 10000), 10000);
-
-   xcb_icccm_set_wm_normal_hints(_ecore_xcb_conn, win, &hints);
-}
-
-EAPI void
-ecore_x_icccm_move_resize_send(Ecore_X_Window win,
-                               int            x,
-                               int            y,
-                               int            w,
-                               int            h)
-{
-   xcb_configure_notify_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-
-   memset(&ev, 0, sizeof(xcb_configure_notify_event_t));
-
-   ev.response_type = XCB_CONFIGURE_NOTIFY;
-   ev.event = win;
-   ev.window = win;
-   ev.above_sibling = XCB_NONE;
-   ev.x = x;
-   ev.y = y;
-   ev.width = w;
-   ev.height = h;
-   ev.border_width = 0;
-   ev.override_redirect = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_STRUCTURE_NOTIFY, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-/**
- * Get a window client machine string.
- * @param win The window
- * @return The windows client machine string
- *
- * Return the client machine of a window. String must be free'd when done with.
- */
-EAPI char *
-ecore_x_icccm_client_machine_get(Ecore_X_Window win)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_icccm_get_text_property_reply_t prop;
-   uint8_t ret = 0;
-   char *tmp = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_icccm_get_wm_client_machine_unchecked(_ecore_xcb_conn, win);
-   ret = xcb_icccm_get_wm_client_machine_reply(_ecore_xcb_conn, cookie,
-                                               &prop, NULL);
-   if (ret == 0) return NULL;
-
-   tmp = malloc((prop.name_len + 1) * sizeof(char *));
-   if (!tmp)
-     {
-        xcb_icccm_get_text_property_reply_wipe(&prop);
-        return NULL;
-     }
-   memcpy(tmp, prop.name, sizeof(char *) * prop.name_len);
-   tmp[prop.name_len] = '\0';
-
-   xcb_icccm_get_text_property_reply_wipe(&prop);
-
-   return tmp;
-}
-
-EAPI void
-ecore_x_icccm_take_focus_send(Ecore_X_Window win,
-                              Ecore_X_Time   t)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
-                                 XCB_EVENT_MASK_NO_EVENT,
-                                 ECORE_X_ATOM_WM_TAKE_FOCUS, t, 0, 0, 0);
-}
-
-EAPI void
-ecore_x_icccm_save_yourself_send(Ecore_X_Window win,
-                                 Ecore_X_Time   t)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
-                                 XCB_EVENT_MASK_NO_EVENT,
-                                 ECORE_X_ATOM_WM_SAVE_YOURSELF, t, 0, 0, 0);
-}
-
-/**
- * Add a subwindow to the list of windows that need a different colormap installed.
- * @param win The toplevel window
- * @param subwin The subwindow to be added to the colormap windows list
- */
-EAPI void
-ecore_x_icccm_colormap_window_set(Ecore_X_Window win,
-                                  Ecore_X_Window subwin)
-{
-   int num = 0, i = 0;
-   unsigned char *odata = NULL, *data = NULL;
-   Ecore_X_Window *newset = NULL, *oldset = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_WM_COLORMAP_WINDOWS,
-                                         ECORE_X_ATOM_WINDOW, 32, &odata, &num))
-     {
-        if (!(newset = calloc(1, sizeof(Ecore_X_Window)))) return;
-        newset[0] = subwin;
-        num = 1;
-        data = (unsigned char *)newset;
-     }
-   else
-     {
-        if (!(newset = calloc(num + 1, sizeof(Ecore_X_Window)))) return;
-        oldset = (Ecore_X_Window *)odata;
-        for (i = 0; i < num; i++)
-          {
-             if (oldset[i] == subwin)
-               {
-                  if (odata) free(odata);
-                  odata = NULL;
-                  free(newset);
-                  return;
-               }
-             newset[i] = oldset[i];
-          }
-        newset[num++] = subwin;
-        if (odata) free(odata);
-        data = (unsigned char *)newset;
-     }
-   ecore_x_window_prop_property_set(win, ECORE_X_ATOM_WM_COLORMAP_WINDOWS,
-                                    ECORE_X_ATOM_WINDOW, 32, data, num);
-   free(newset);
-}
-
-/**
- * Remove a window from the list of colormap windows.
- * @param win The toplevel window
- * @param subwin The window to be removed from the colormap window list.
- */
-EAPI void
-ecore_x_icccm_colormap_window_unset(Ecore_X_Window win,
-                                    Ecore_X_Window subwin)
-{
-   int num = 0, i = 0, j = 0, k = 0;
-   unsigned char *odata = NULL, *data = NULL;
-   Ecore_X_Window *newset = NULL, *oldset = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_WM_COLORMAP_WINDOWS,
-                                         ECORE_X_ATOM_WINDOW, 32, &odata, &num))
-     return;
-
-   oldset = (Ecore_X_Window *)odata;
-   for (i = 0; i < num; i++)
-     {
-        if (oldset[i] == subwin)
-          {
-             if (num == 1)
-               {
-                  ecore_x_window_prop_property_del(win, ECORE_X_ATOM_WM_COLORMAP_WINDOWS);
-                  if (odata) free(odata);
-                  odata = NULL;
-                  return;
-               }
-             else
-               {
-                  newset = calloc(num - 1, sizeof(Ecore_X_Window));
-                  data = (unsigned char *)newset;
-                  for (j = 0; j < num; ++j)
-                    if (oldset[j] != subwin)
-                      newset[k++] = oldset[j];
-
-                  ecore_x_window_prop_property_set(win, ECORE_X_ATOM_WM_COLORMAP_WINDOWS,
-                                                   ECORE_X_ATOM_WINDOW, 32, data, k);
-                  if (odata) free(odata);
-                  odata = NULL;
-                  free(newset);
-                  return;
-               }
-          }
-     }
-   if (odata) free(odata);
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_image.c b/src/lib/ecore_x/xcb/ecore_xcb_image.c
deleted file mode 100644 (file)
index 7c21781..0000000
+++ /dev/null
@@ -1,782 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <xcb/xcb_event.h>
-#include <xcb/shm.h>
-
-struct _Ecore_X_Image
-{
-   xcb_shm_segment_info_t shminfo;
-   xcb_image_t           *xim;
-   Ecore_X_Visual         vis;
-   int                    depth, w, h;
-   int                    bpl, bpp, rows;
-   unsigned char         *data;
-   Eina_Bool              shm : 1;
-};
-
-/* local function prototypes */
-static void          _ecore_xcb_image_shm_check(void);
-static void          _ecore_xcb_image_shm_create(Ecore_X_Image *im);
-static xcb_format_t *_ecore_xcb_image_find_format(const xcb_setup_t *setup,
-                                                  uint8_t            depth);
-
-/* local variables */
-static int _ecore_xcb_image_shm_can = -1;
-
-EAPI Ecore_X_Image *
-ecore_x_image_new(int            w,
-                  int            h,
-                  Ecore_X_Visual vis,
-                  int            depth)
-{
-   Ecore_X_Image *im;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!(im = calloc(1, sizeof(Ecore_X_Image)))) return NULL;
-   im->w = w;
-   im->h = h;
-   im->vis = vis;
-   im->depth = depth;
-   _ecore_xcb_image_shm_check();
-   im->shm = _ecore_xcb_image_shm_can;
-   return im;
-}
-
-EAPI void
-ecore_x_image_free(Ecore_X_Image *im)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!im) return;
-   if (im->shm)
-     {
-        if (im->xim)
-          {
-             xcb_shm_detach(_ecore_xcb_conn, im->shminfo.shmseg);
-             xcb_image_destroy(im->xim);
-             shmdt(im->shminfo.shmaddr);
-             shmctl(im->shminfo.shmid, IPC_RMID, 0);
-          }
-     }
-   else if (im->xim)
-     {
-        if (im->xim->data) free(im->xim->data);
-        im->xim->data = NULL;
-        xcb_image_destroy(im->xim);
-     }
-
-   free(im);
-//   ecore_x_flush();
-}
-
-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)
-{
-   Eina_Bool ret = EINA_TRUE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (im->shm)
-     {
-        if (!im->xim) _ecore_xcb_image_shm_create(im);
-        if (!im->xim) return EINA_FALSE;
-
-        if ((sx == 0) && (w == im->w))
-          {
-             im->xim->data = (uint8_t *)im->data + (im->xim->stride * sy) +
-               (sx * im->bpp);
-             im->xim->width = MIN(w, im->w);
-             im->xim->height = MIN(h, im->h);
-
-             ecore_x_grab();
-             if (!xcb_image_shm_get(_ecore_xcb_conn, draw, im->xim,
-                                    im->shminfo, x, y, 0xffffffff))
-               {
-                  DBG("\tImage Shm Get Failed");
-                  ret = EINA_FALSE;
-               }
-             ecore_x_ungrab();
-             ecore_x_sync(); // needed
-          }
-        else
-          {
-             Ecore_X_Image *tim;
-
-             tim = ecore_x_image_new(w, h, im->vis, im->depth);
-             if (tim)
-               {
-                  ret = ecore_x_image_get(tim, draw, x, y, 0, 0, w, h);
-                  if (ret)
-                    {
-                       unsigned char *spixels, *pixels;
-                       int sbpp = 0, sbpl = 0, srows = 0;
-                       int bpp = 0, bpl = 0, rows = 0;
-
-                       spixels =
-                         ecore_x_image_data_get(tim, &sbpl, &srows, &sbpp);
-                       pixels = ecore_x_image_data_get(im, &bpl, &rows, &bpp);
-                       if ((spixels) && (pixels))
-                         {
-                            unsigned char *p, *sp;
-                            int r = 0;
-
-                            p = (pixels + (sy * bpl) + (sx * bpp));
-                            sp = spixels;
-                            for (r = srows; r > 0; r--)
-                              {
-                                 memcpy(p, sp, sbpl);
-                                 p += bpl;
-                                 sp += sbpl;
-                              }
-                         }
-                    }
-                  ecore_x_image_free(tim);
-               }
-          }
-     }
-   else
-     {
-        ret = EINA_FALSE;
-        ecore_x_grab();
-        im->xim =
-          xcb_image_get(_ecore_xcb_conn, draw, x, y, w, h,
-                        0xffffffff, XCB_IMAGE_FORMAT_Z_PIXMAP);
-        if (!im->xim) ret = EINA_FALSE;
-        ecore_x_ungrab();
-        ecore_x_sync(); // needed
-
-        if (im->xim)
-          {
-             im->data = (unsigned char *)im->xim->data;
-             im->bpl = im->xim->stride;
-             im->rows = im->xim->height;
-             if (im->xim->bpp <= 8)
-               im->bpp = 1;
-             else if (im->xim->bpp <= 16)
-               im->bpp = 2;
-             else
-               im->bpp = 4;
-          }
-     }
-
-   return ret;
-}
-
-EAPI void *
-ecore_x_image_data_get(Ecore_X_Image *im,
-                       int           *bpl,
-                       int           *rows,
-                       int           *bpp)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!im) return NULL;
-   if (!im->xim) _ecore_xcb_image_shm_create(im);
-   if (!im->xim) return NULL;
-
-   if (bpl) *bpl = im->bpl;
-   if (rows) *rows = im->rows;
-   if (bpp) *bpp = im->bpp;
-
-   return im->data;
-}
-
-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)
-{
-   Ecore_X_GC tgc = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!gc)
-     {
-        uint32_t mask, values[1];
-
-        tgc = xcb_generate_id(_ecore_xcb_conn);
-        mask = XCB_GC_SUBWINDOW_MODE;
-        values[0] = XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS;
-        xcb_create_gc(_ecore_xcb_conn, tgc, draw, mask, values);
-        gc = tgc;
-     }
-   if (!im->xim) _ecore_xcb_image_shm_create(im);
-   if (im->xim)
-     {
-        if (im->shm)
-          xcb_shm_put_image(_ecore_xcb_conn, draw, gc, im->xim->width,
-                            im->xim->height, sx, sy, w, h, x, y,
-                            im->xim->depth, im->xim->format, 0,
-                            im->shminfo.shmseg,
-                            im->xim->data - im->shminfo.shmaddr);
-//          xcb_image_shm_put(_ecore_xcb_conn, draw, gc, im->xim,
-//                            im->shminfo, sx, sy, x, y, w, h, 0);
-        else
-          xcb_image_put(_ecore_xcb_conn, draw, gc, im->xim, sx, sy, 0);
-     }
-   if (tgc) ecore_x_gc_free(tgc);
-   ecore_x_sync();
-}
-
-EAPI Eina_Bool
-ecore_x_image_is_argb32_get(Ecore_X_Image *im)
-{
-   xcb_visualtype_t *vis;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   vis = (xcb_visualtype_t *)im->vis;
-
-   if (((vis->_class == XCB_VISUAL_CLASS_TRUE_COLOR) ||
-        (vis->_class == XCB_VISUAL_CLASS_DIRECT_COLOR)) &&
-       (im->bpp == 4) &&
-       (vis->red_mask == 0xff0000) &&
-       (vis->green_mask == 0x00ff00) && 
-       (vis->blue_mask == 0x0000ff))
-     {
-        const xcb_setup_t *setup = xcb_get_setup(_ecore_xcb_conn);
-
-        if (!setup) return EINA_FALSE;
-#ifdef WORDS_BIGENDIAN
-        if (setup->image_byte_order == XCB_IMAGE_ORDER_MSB_FIRST) return EINA_TRUE;
-#else
-        if (setup->image_byte_order == XCB_IMAGE_ORDER_LSB_FIRST) return EINA_TRUE;
-#endif
-     }
-
-   return EINA_FALSE;
-}
-
-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)
-{
-   xcb_visualtype_t *vis;
-   uint32_t *cols;
-   int n = 0, nret = 0, i, row, mode = 0;
-   unsigned int pal[256], r, g, b;
-   enum
-   {
-      rgbnone = 0,
-      rgb565,
-      bgr565,
-      rgbx555,
-      rgb888,
-      bgr888,
-      argbx888,
-      abgrx888,
-      rgba888x,
-      bgra888x,
-      argbx666
-   };
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   sbpp *= 8;
-
-   vis = (xcb_visualtype_t *)v;
-   n = vis->colormap_entries;
-   if ((n <= 256) &&
-       ((vis->_class == XCB_VISUAL_CLASS_PSEUDO_COLOR) ||
-        (vis->_class == XCB_VISUAL_CLASS_STATIC_COLOR) ||
-        (vis->_class == XCB_VISUAL_CLASS_GRAY_SCALE) ||
-        (vis->_class == XCB_VISUAL_CLASS_STATIC_GRAY)))
-     {
-        xcb_query_colors_cookie_t cookie;
-        xcb_query_colors_reply_t *reply;
-
-        if (!c)
-          {
-             c = (xcb_colormap_t)((xcb_screen_t *)
-                                  _ecore_xcb_screen)->default_colormap;
-          }
-
-        cols = alloca(n * sizeof(uint32_t));
-        for (i = 0; i < n; i++)
-          cols[i] = i;
-
-        cookie = xcb_query_colors_unchecked(_ecore_xcb_conn, c, n, cols);
-        reply = xcb_query_colors_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             xcb_rgb_iterator_t iter;
-             xcb_rgb_t *ret;
-
-             iter = xcb_query_colors_colors_iterator(reply);
-             ret = xcb_query_colors_colors(reply);
-             if (ret)
-               {
-                  for (i = 0; iter.rem; xcb_rgb_next(&iter), i++)
-                    {
-                       pal[i] = 0xff000000 |
-                         ((iter.data->red >> 8) << 16) |
-                         ((iter.data->green >> 8) << 8) |
-                         ((iter.data->blue >> 8));
-                    }
-                  nret = n;
-               }
-             free(reply);
-          }
-     }
-   else if ((vis->_class == XCB_VISUAL_CLASS_TRUE_COLOR) ||
-            (vis->_class == XCB_VISUAL_CLASS_DIRECT_COLOR))
-     {
-        if (sbpp == 24)
-          {
-             if ((vis->red_mask == 0x00ff0000) &&
-                 (vis->green_mask == 0x0000ff00) &&
-                 (vis->blue_mask == 0x000000ff))
-               mode = rgb888;
-             else if ((vis->red_mask == 0x000000ff) &&
-                      (vis->green_mask == 0x0000ff00) &&
-                      (vis->blue_mask == 0x00ff0000))
-               mode = bgr888;
-             else
-               return EINA_FALSE;
-          }
-        else
-          {
-             if ((vis->red_mask == 0x00ff0000) &&
-                 (vis->green_mask == 0x0000ff00) &&
-                 (vis->blue_mask == 0x000000ff))
-               mode = argbx888;
-             else if ((vis->red_mask == 0x000000ff) &&
-                      (vis->green_mask == 0x0000ff00) &&
-                      (vis->blue_mask == 0x00ff0000))
-               mode = abgrx888;
-             else if ((vis->red_mask == 0xff000000) &&
-                      (vis->green_mask == 0x00ff0000) &&
-                      (vis->blue_mask == 0x0000ff00))
-               mode = rgba888x;
-             else if ((vis->red_mask == 0x0000ff00) &&
-                      (vis->green_mask == 0x00ff0000) &&
-                      (vis->blue_mask == 0xff000000))
-               mode = bgra888x;
-             else if ((vis->red_mask == 0x0003f000) &&
-                      (vis->green_mask == 0x00000fc0) &&
-                      (vis->blue_mask == 0x0000003f))
-               mode = argbx666;
-             else if ((vis->red_mask == 0x0000f800) &&
-                      (vis->green_mask == 0x000007e0) &&
-                      (vis->blue_mask == 0x0000001f))
-               mode = rgb565;
-             else if ((vis->red_mask == 0x0000001f) &&
-                      (vis->green_mask == 0x000007e0) &&
-                      (vis->blue_mask == 0x0000f800))
-               mode = bgr565;
-             else if ((vis->red_mask == 0x00007c00) &&
-                      (vis->green_mask == 0x000003e0) &&
-                      (vis->blue_mask == 0x0000001f))
-               mode = rgbx555;
-             else
-               return EINA_FALSE;
-          }
-     }
-   for (row = 0; row < h; row++)
-     {
-        unsigned char *s8;
-        unsigned short *s16;
-        unsigned int *s32, *dp, *de;
-
-        dp = ((unsigned int *)(((unsigned char *)dst) +
-                               ((dy + row) * dbpl))) + dx;
-        de = dp + w;
-        switch (sbpp)
-          {
-           case 8:
-             s8 = ((unsigned char *)(((unsigned char *)src) +
-                                     ((y + row) * sbpl))) + x;
-             if (nret > 0)
-               {
-                  while (dp < de)
-                    {
-                       *dp = pal[*s8];
-                       s8++; dp++;
-                    }
-               }
-             else
-               return EINA_FALSE;
-             break;
-
-           case 16:
-             s16 = ((unsigned short *)(((unsigned char *)src) +
-                                       ((y + row) * sbpl))) + x;
-             switch (mode)
-               {
-                case rgb565:
-                  while (dp < de)
-                    {
-                       r = (*s16 & 0xf800) << 8;
-                       g = (*s16 & 0x07e0) << 5;
-                       b = (*s16 & 0x001f) << 3;
-                       r |= (r >> 5) & 0xff0000;
-                       g |= (g >> 6) & 0x00ff00;
-                       b |= (b >> 5);
-                       *dp = 0xff000000 | r | g | b;
-                       s16++; dp++;
-                    }
-                  break;
-
-                case bgr565:
-                  while (dp < de)
-                    {
-                       r = (*s16 & 0x001f) << 19;
-                       g = (*s16 & 0x07e0) << 5;
-                       b = (*s16 & 0xf800) >> 8;
-                       r |= (r >> 5) & 0xff0000;
-                       g |= (g >> 6) & 0x00ff00;
-                       b |= (b >> 5);
-                       *dp = 0xff000000 | r | g | b;
-                       s16++; dp++;
-                    }
-                  break;
-
-                case rgbx555:
-                  while (dp < de)
-                    {
-                       r = (*s16 & 0x7c00) << 9;
-                       g = (*s16 & 0x03e0) << 6;
-                       b = (*s16 & 0x001f) << 3;
-                       r |= (r >> 5) & 0xff0000;
-                       g |= (g >> 5) & 0x00ff00;
-                       b |= (b >> 5);
-                       *dp = 0xff000000 | r | g | b;
-                       s16++; dp++;
-                    }
-                  break;
-
-                default:
-                  return EINA_FALSE;
-                  break;
-               }
-             break;
-
-           case 24:
-            s8 = ((unsigned char *)(((unsigned char *)src) + ((y + row) * sbpl))) + (x * (sbpp / 8));
-             switch (mode)
-               {
-                case rgb888:
-                  while (dp < de)
-                    {
-                       *dp = 0xff000000 | (s8[2] << 16) | (s8[1] << 8) | s8[0];
-                       s8 += 3; dp++;
-                    }
-                  break;
-                case bgr888:
-                  while (dp < de)
-                    {
-                       *dp = 0xff000000 | (s8[0] << 16) | (s8[1] << 8) | s8[2];
-                       s8 += 3; dp++;
-                    }
-                  break;
-                default:
-                  return EINA_FALSE;
-                  break;
-               }
-             break;
-             
-           case 32:
-             s32 = ((unsigned int *)(((unsigned char *)src) +
-                                     ((y + row) * sbpl))) + x;
-             switch (mode)
-               {
-                case argbx888:
-                  while (dp < de)
-                    {
-                       *dp = 0xff000000 | *s32;
-                       s32++; dp++;
-                    }
-                  break;
-
-                case abgrx888:
-                  while (dp < de)
-                    {
-                       r = *s32 & 0x000000ff;
-                       g = *s32 & 0x0000ff00;
-                       b = *s32 & 0x00ff0000;
-                       *dp = 0xff000000 | (r << 16) | (g) | (b >> 16);
-                       s32++; dp++;
-                    }
-                  break;
-
-                case rgba888x:
-                  while (dp < de)
-                    {
-                       *dp = 0xff000000 | (*s32 >> 8);
-                       s32++; dp++;
-                    }
-                  break;
-
-                case bgra888x:
-                  while (dp < de)
-                    {
-                       r = *s32 & 0x0000ff00;
-                       g = *s32 & 0x00ff0000;
-                       b = *s32 & 0xff000000;
-                       *dp = 0xff000000 | (r << 8) | (g >> 8) | (b >> 24);
-                       s32++; dp++;
-                    }
-                  break;
-
-                case argbx666:
-                  while (dp < de)
-                    {
-                       r = (*s32 & 0x3f000) << 6;
-                       g = (*s32 & 0x00fc0) << 4;
-                       b = (*s32 & 0x0003f) << 2;
-                       r |= (r >> 6) & 0xff0000;
-                       g |= (g >> 6) & 0x00ff00;
-                       b |= (b >> 6);
-                       *dp = 0xff000000 | r | g | b;
-                       s32++; dp++;
-                    }
-                  break;
-
-                default:
-                  return EINA_FALSE;
-                  break;
-               }
-             break;
-
-           default:
-             return EINA_FALSE;
-             break;
-          }
-     }
-   return EINA_TRUE;
-}
-
-/* local functions */
-static void
-_ecore_xcb_image_shm_check(void)
-{
-//   xcb_shm_query_version_reply_t *reply;
-     xcb_shm_segment_info_t shminfo;
-     xcb_shm_get_image_cookie_t cookie;
-     xcb_shm_get_image_reply_t *ireply;
-     xcb_image_t *img = 0;
-     uint8_t depth = 0;
-
-     if (_ecore_xcb_image_shm_can != -1) return;
-     CHECK_XCB_CONN;
-
-     /* reply =  */
-     /*   xcb_shm_query_version_reply(_ecore_xcb_conn,  */
-     /*                               xcb_shm_query_version(_ecore_xcb_conn), NULL); */
-     /* if (!reply)  */
-     /*   { */
-     /*      _ecore_xcb_image_shm_can = 0; */
-     /*      return; */
-     /*   } */
-
-     /* if ((reply->major_version < 1) ||  */
-     /*     ((reply->major_version == 1) && (reply->minor_version == 0)))  */
-     /*   { */
-     /*      _ecore_xcb_image_shm_can = 0; */
-     /*      free(reply); */
-     /*      return; */
-     /*   } */
-
-     /* free(reply); */
-
-     depth = ((xcb_screen_t *)_ecore_xcb_screen)->root_depth;
-
-     ecore_x_sync(); // needed
-
-     img = _ecore_xcb_image_create_native(1, 1, XCB_IMAGE_FORMAT_Z_PIXMAP,
-                                          depth, NULL, ~0, NULL);
-     if (!img)
-       {
-          _ecore_xcb_image_shm_can = 0;
-          return;
-       }
-
-     shminfo.shmid =
-       shmget(IPC_PRIVATE, img->stride * img->height, (IPC_CREAT | 0600));
-     if (shminfo.shmid == (uint32_t)-1)
-       {
-          xcb_image_destroy(img);
-          _ecore_xcb_image_shm_can = 0;
-          return;
-       }
-
-     shminfo.shmaddr = shmat(shminfo.shmid, 0, 0);
-     img->data = shminfo.shmaddr;
-     if (img->data == (uint8_t *)-1)
-       {
-          xcb_image_destroy(img);
-          _ecore_xcb_image_shm_can = 0;
-          return;
-       }
-
-     shminfo.shmseg = xcb_generate_id(_ecore_xcb_conn);
-     xcb_shm_attach(_ecore_xcb_conn, shminfo.shmseg, shminfo.shmid, 0);
-
-     cookie =
-       xcb_shm_get_image(_ecore_xcb_conn,
-                         ((xcb_screen_t *)_ecore_xcb_screen)->root,
-                         0, 0, img->width, img->height,
-                         0xffffffff, img->format,
-                         shminfo.shmseg, img->data - shminfo.shmaddr);
-
-     ecore_x_sync(); // needed
-
-     ireply = xcb_shm_get_image_reply(_ecore_xcb_conn, cookie, NULL);
-     if (ireply)
-       {
-          _ecore_xcb_image_shm_can = 1;
-          free(ireply);
-       }
-     else
-       _ecore_xcb_image_shm_can = 0;
-
-     xcb_shm_detach(_ecore_xcb_conn, shminfo.shmseg);
-     xcb_image_destroy(img);
-     shmdt(shminfo.shmaddr);
-     shmctl(shminfo.shmid, IPC_RMID, 0);
-}
-
-static void
-_ecore_xcb_image_shm_create(Ecore_X_Image *im)
-{
-   CHECK_XCB_CONN;
-
-   im->xim =
-     _ecore_xcb_image_create_native(im->w, im->h, XCB_IMAGE_FORMAT_Z_PIXMAP,
-                                    im->depth, NULL, ~0, NULL);
-   if (!im->xim) return;
-
-   im->shminfo.shmid = shmget(IPC_PRIVATE, im->xim->size, (IPC_CREAT | 0600));
-   if (im->shminfo.shmid == (uint32_t)-1)
-     {
-        xcb_image_destroy(im->xim);
-        return;
-     }
-
-   im->shminfo.shmaddr = shmat(im->shminfo.shmid, 0, 0);
-   im->xim->data = im->shminfo.shmaddr;
-   if ((!im->xim->data) || (im->xim->data == (uint8_t *)-1))
-     {
-        DBG("Shm Create No Image Data");
-        xcb_image_destroy(im->xim);
-        shmdt(im->shminfo.shmaddr);
-        shmctl(im->shminfo.shmid, IPC_RMID, 0);
-        return;
-     }
-
-   im->shminfo.shmseg = xcb_generate_id(_ecore_xcb_conn);
-   xcb_shm_attach(_ecore_xcb_conn, im->shminfo.shmseg, im->shminfo.shmid, 0);
-
-   im->data = (unsigned char *)im->xim->data;
-   im->bpl = im->xim->stride;
-   im->rows = im->xim->height;
-   if (im->xim->bpp <= 8)
-     im->bpp = 1;
-   else if (im->xim->bpp <= 16)
-     im->bpp = 2;
-   else
-     im->bpp = 4;
-}
-
-xcb_image_t *
-_ecore_xcb_image_create_native(int                w,
-                               int                h,
-                               xcb_image_format_t format,
-                               uint8_t            depth,
-                               void              *base,
-                               uint32_t           bytes,
-                               uint8_t           *data)
-{
-   static uint8_t dpth = 0;
-   static xcb_format_t *fmt = NULL;
-   const xcb_setup_t *setup;
-   xcb_image_format_t xif;
-
-   CHECK_XCB_CONN;
-
-   /* NB: We cannot use xcb_image_create_native as it only creates images
-    * using MSB_FIRST, so this routine recreates that function and uses
-    * the endian-ness of the server setup */
-   setup = xcb_get_setup(_ecore_xcb_conn);
-   xif = format;
-
-   if ((xif == XCB_IMAGE_FORMAT_Z_PIXMAP) && (depth == 1))
-     xif = XCB_IMAGE_FORMAT_XY_PIXMAP;
-
-   if (dpth != depth)
-     {
-        dpth = depth;
-        fmt = _ecore_xcb_image_find_format(setup, depth);
-        if (!fmt) return 0;
-     }
-
-   switch (xif)
-     {
-      case XCB_IMAGE_FORMAT_XY_BITMAP:
-        if (depth != 1) return 0;
-
-      case XCB_IMAGE_FORMAT_XY_PIXMAP:
-      case XCB_IMAGE_FORMAT_Z_PIXMAP:
-        return xcb_image_create(w, h, xif,
-                                fmt->scanline_pad,
-                                fmt->depth, fmt->bits_per_pixel,
-                                setup->bitmap_format_scanline_unit,
-                                setup->image_byte_order,
-                                setup->bitmap_format_bit_order,
-                                base, bytes, data);
-
-      default:
-        break;
-     }
-
-   return 0;
-}
-
-static xcb_format_t *
-_ecore_xcb_image_find_format(const xcb_setup_t *setup,
-                             uint8_t            depth)
-{
-   xcb_format_t *fmt, *fmtend;
-
-   CHECK_XCB_CONN;
-
-   fmt = xcb_setup_pixmap_formats(setup);
-   fmtend = fmt + xcb_setup_pixmap_formats_length(setup);
-   for (; fmt != fmtend; ++fmt)
-     if (fmt->depth == depth)
-       return fmt;
-
-   return 0;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_input.c b/src/lib/ecore_x/xcb/ecore_xcb_input.c
deleted file mode 100644 (file)
index cd9e488..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_XINPUT
-# include <xcb/xinput.h>
-# include <xcb/xcb_event.h>
-#endif
-
-/* FIXME: this is a guess. can't find defines for touch events in xcb libs
- * online */
-/* these are not yet defined in xcb support for xi2 - so manually create */
-#ifndef XCB_INPUT_DEVICE_TOUCH_BEGIN
-#define XCB_INPUT_DEVICE_TOUCH_BEGIN    18
-#endif
-#ifndef XCB_INPUT_DEVICE_TOUCH_END
-#define XCB_INPUT_DEVICE_TOUCH_END      19
-#endif
-#ifndef XCB_INPUT_DEVICE_TOUCH_UPDATE
-#define XCB_INPUT_DEVICE_TOUCH_UPDATE   21
-#endif
-
-#ifndef XCB_INPUT_POINTER_EMULATED_MASK
-#define XCB_INPUT_POINTER_EMULATED_MASK (1 << 16)
-#endif
-
-/* local variables */
-static Eina_Bool _input_avail = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_input = 0;
-
-void
-_ecore_xcb_input_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XINPUT
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_input_id);
-#endif
-}
-
-void
-_ecore_xcb_input_finalize(void)
-{
-#ifdef ECORE_XCB_XINPUT
-   xcb_input_get_extension_version_cookie_t cookie;
-   xcb_input_get_extension_version_reply_t *reply;
-   char buff[128];
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XINPUT
-   cookie =
-     xcb_input_get_extension_version_unchecked(_ecore_xcb_conn, 127, buff);
-   reply =
-     xcb_input_get_extension_version_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        _input_avail = EINA_TRUE;
-        free(reply);
-     }
-
-   if (_input_avail)
-     {
-        const xcb_query_extension_reply_t *ext_reply;
-
-        ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_input_id);
-        if (ext_reply)
-          _ecore_xcb_event_input = ext_reply->first_event;
-     }
-#endif
-}
-
-void
-_ecore_xcb_input_shutdown(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-}
-
-void
-#ifdef ECORE_XCB_XINPUT
-_ecore_xcb_input_handle_event(xcb_generic_event_t *event)
-#else
-_ecore_xcb_input_handle_event(xcb_generic_event_t * event EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XINPUT
-   xcb_ge_event_t *ev;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   /* FIXME: look at xlib ecore_x_xi2.c to copy logic in when i can find an
-    * xcb-input lib to test with */
-#ifdef ECORE_XCB_XINPUT
-   ev = (xcb_ge_event_t *)event;
-   switch (ev->event_type)
-     {
-      case XCB_INPUT_DEVICE_MOTION_NOTIFY:
-          {
-             xcb_input_device_motion_notify_event_t *de;
-             unsigned int child_win = 0;
-
-             de = (xcb_input_device_motion_notify_event_t *)ev->pad1;
-             child_win = (de->child ? de->child : de->event);
-             _ecore_xcb_event_mouse_move(de->time, de->state, de->event_x,
-                                         de->event_y, de->root_x, de->root_y,
-                                         de->event, child_win, de->root,
-                                         de->same_screen, de->device_id,
-                                         1, 1, 1.0, 0.0,
-                                         de->event_x, de->event_y,
-                                         de->root_x, de->root_y);
-          }
-        break;
-
-      case XCB_INPUT_DEVICE_BUTTON_PRESS:
-          {
-             xcb_input_device_button_press_event_t *de;
-             unsigned int child_win = 0;
-
-             de = (xcb_input_device_button_press_event_t *)ev->pad1;
-             child_win = (de->child ? de->child : de->event);
-             _ecore_xcb_event_mouse_button(ECORE_EVENT_MOUSE_BUTTON_DOWN,
-                                           de->time, de->state, de->detail,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y, de->event,
-                                           child_win, de->root,
-                                           de->same_screen, de->device_id,
-                                           1, 1, 1.0, 0.0,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y);
-          }
-        break;
-
-      case XCB_INPUT_DEVICE_BUTTON_RELEASE:
-          {
-             xcb_input_device_button_release_event_t *de;
-             unsigned int child_win = 0;
-
-             de = (xcb_input_device_button_release_event_t *)ev->pad1;
-             child_win = (de->child ? de->child : de->event);
-             _ecore_xcb_event_mouse_button(ECORE_EVENT_MOUSE_BUTTON_UP,
-                                           de->time, de->state, de->detail,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y, de->event,
-                                           child_win, de->root,
-                                           de->same_screen, de->device_id,
-                                           1, 1, 1.0, 0.0,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y);
-          }
-        break;
-
-      case XCB_INPUT_DEVICE_TOUCH_UPDATE:
-          {
-             xcb_input_device_motion_notify_event_t *de;
-             unsigned int child_win = 0;
-
-             de = (xcb_input_device_motion_notify_event_t *)ev->pad1;
-             child_win = (de->child ? de->child : de->event);
-             _ecore_xcb_event_mouse_move(de->time, de->state, de->event_x,
-                                         de->event_y, de->root_x, de->root_y,
-                                         de->event, child_win, de->root,
-                                         de->same_screen, de->device_id,
-                                         1, 1, 1.0, 0.0,
-                                         de->event_x, de->event_y,
-                                         de->root_x, de->root_y);
-          }
-        break;
-
-      case XCB_INPUT_DEVICE_TOUCH_BEGIN:
-          {
-             xcb_input_device_button_press_event_t *de;
-             unsigned int child_win = 0;
-
-             de = (xcb_input_device_button_press_event_t *)ev->pad1;
-             child_win = (de->child ? de->child : de->event);
-             _ecore_xcb_event_mouse_button(ECORE_EVENT_MOUSE_BUTTON_DOWN,
-                                           de->time, de->state, de->detail,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y, de->event,
-                                           child_win, de->root,
-                                           de->same_screen, de->device_id,
-                                           1, 1, 1.0, 0.0,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y);
-          }
-        break;
-
-      case XCB_INPUT_DEVICE_TOUCH_END:
-          {
-             xcb_input_device_button_release_event_t *de;
-             unsigned int child_win = 0;
-
-             de = (xcb_input_device_button_release_event_t *)ev->pad1;
-             child_win = (de->child ? de->child : de->event);
-             _ecore_xcb_event_mouse_button(ECORE_EVENT_MOUSE_BUTTON_UP,
-                                           de->time, de->state, de->detail,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y, de->event,
-                                           child_win, de->root,
-                                           de->same_screen, de->device_id,
-                                           1, 1, 1.0, 0.0,
-                                           de->event_x, de->event_y,
-                                           de->root_x, de->root_y);
-          }
-        break;
-
-      default:
-        break;
-     }
-#endif
-}
-
-EAPI Eina_Bool
-ecore_x_input_multi_select(Ecore_X_Window win)
-{
-   Eina_Bool find = EINA_FALSE;
-#ifdef ECORE_XCB_XINPUT
-   xcb_input_list_input_devices_cookie_t dcookie;
-   xcb_input_list_input_devices_reply_t *dreply;
-   xcb_input_device_info_iterator_t diter;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_input_avail) return EINA_FALSE;
-
-   /* FIXME: i can't seemingly test this! no xcb input lib so can't look and
-    * test and look at types etc. - look at xlib code and copy logic over
-    * when we can */
-#ifdef ECORE_XCB_XINPUT
-   dcookie = xcb_input_list_input_devices_unchecked(_ecore_xcb_conn);
-   dreply =
-     xcb_input_list_input_devices_reply(_ecore_xcb_conn, dcookie, NULL);
-   if (!dreply) return EINA_FALSE;
-
-   diter = xcb_input_list_input_devices_devices_iterator(dreply);
-   while (diter.rem)
-     {
-        xcb_input_device_info_t *dev;
-        const xcb_input_event_class_t iclass[] =
-          {
-             XCB_INPUT_DEVICE_BUTTON_PRESS,
-             XCB_INPUT_DEVICE_BUTTON_RELEASE,
-             XCB_INPUT_DEVICE_MOTION_NOTIFY,
-             XCB_INPUT_DEVICE_TOUCH_BEGIN,
-             XCB_INPUT_DEVICE_TOUCH_END,
-             XCB_INPUT_DEVICE_TOUCH_UPDATE
-          };
-
-        dev = diter.data;
-        if (dev->device_use == XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE)
-          {
-             DBG("Device %d", dev->device_id);
-             DBG("\tType: %d", dev->device_type);
-             DBG("\tNum Classes: %d", dev->num_class_info);
-             DBG("\tUse: %d", dev->device_use);
-
-             xcb_input_select_extension_event(_ecore_xcb_conn, win,
-                                              sizeof(iclass) / sizeof(xcb_input_event_class_t),
-                                              iclass);
-             find = EINA_TRUE;
-          }
-        xcb_input_device_info_next(&diter);
-     }
-   free(dreply);
-#else
-   (void)win;
-#endif
-
-   return find;
-}
-
-EAPI Eina_Bool 
-ecore_x_input_raw_select(Ecore_X_Window win EINA_UNUSED)
-{
-   /* NB: FIXME: This is just a placeholder. XCB does not have XInput2 yet */
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_input_touch_devices_grab(Ecore_X_Window win EINA_UNUSED)
-{
-   /* NB: FIXME: This is just a placeholder. XCB does not have XInput2 yet */
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_input_touch_devices_ungrab(void)
-{
-   /* NB: FIXME: This is just a placeholder. XCB does not have XInput2 yet */
-   return EINA_FALSE;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_keygrab.c b/src/lib/ecore_x/xcb/ecore_xcb_keygrab.c
deleted file mode 100644 (file)
index d4f6782..0000000
+++ /dev/null
@@ -1,442 +0,0 @@
-#include "ecore_xcb_private.h"
-
-//////////////////////////////////////////////////////////////////////////////
-// This api and structure only for the key router and window client side
-// Application do not use this
-
-//this mask is defined by key router.
-//after discussing with keyrouter module, this mask can be changed
-#define GRAB_MASK 0xffff00
-#define OVERRIDE_EXCLUSIVE_GRAB 0xf00000
-#define EXCLUSIVE_GRAB 0x0f0000
-#define TOPMOST_GRAB 0x00f000
-#define SHARED_GRAB 0x000f00
-
-//if _ecore_keyrouter = 0, not yet check keyrouter
-//if _ecore_keyrouter = -1, keyrouter not exist
-//if _ecore_keyrouter = 1, keyrouter exist
-int _ecore_keyrouter = 0;
-
-typedef struct _Ecore_X_Window_Key_Table
-{
-   Ecore_X_Window       win;       //windo ID
-   int                 *key_list;  //list of key
-   unsigned long        key_cnt;   // the number of key
-} Ecore_X_Window_Key_Table;
-
-static Ecore_X_Atom _atom_grab_excl_win = XCB_NONE;
-#define STR_ATOM_GRAB_EXCL_WIN "_GRAB_EXCL_WIN_KEYCODE"
-
-static void
-_keytable_free(Ecore_X_Window_Key_Table *keytable)
-{
-   if (keytable->key_list) free(keytable->key_list);
-   keytable->key_list = NULL;
-   keytable->win = 0;
-   keytable->key_cnt = 0;
-}
-
-static int
-_keytable_property_list_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int **plst)
-{
-   return ecore_x_window_prop_card32_list_get(win, atom, plst);
-}
-
-static Eina_Bool
-_keytable_get(Ecore_X_Window win, Ecore_X_Window_Key_Table *keytable)
-{
-   int ret = 0;
-
-   ret = _keytable_property_list_get(win, ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE,
-                                     (unsigned int **)&(keytable->key_list));
-   if (ret < 0) return EINA_FALSE;
-
-   keytable->key_cnt = ret;
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_keytable_keycode_decode(int encoded, int *keycode, Ecore_X_Win_Keygrab_Mode *grab_mode)
-{
-   int mask = 0;
-
-   *keycode = encoded & (~GRAB_MASK);
-   mask = encoded & GRAB_MASK;
-
-   if (mask == SHARED_GRAB)
-     *grab_mode = ECORE_X_WIN_KEYGRAB_SHARED;
-   else if (mask == TOPMOST_GRAB)
-     *grab_mode = ECORE_X_WIN_KEYGRAB_TOPMOST;
-   else if (mask == EXCLUSIVE_GRAB)
-     *grab_mode = ECORE_X_WIN_KEYGRAB_EXCLUSIVE;
-   else if (mask == OVERRIDE_EXCLUSIVE_GRAB)
-     *grab_mode = ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE;
-   else
-     {
-        *grab_mode = ECORE_X_WIN_KEYGRAB_UNKNOWN;
-        WRN("Keycode decoding failed. Unknown Keygrab mode");
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_keytable_keycode_encode(int keycode, Ecore_X_Win_Keygrab_Mode grab_mode, int *encoded)
-{
-   if ((grab_mode <= ECORE_X_WIN_KEYGRAB_UNKNOWN) ||
-       (grab_mode > ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE))
-     {
-        *encoded = 0;
-        WRN("Keycode encoding failed. Unknown Keygrab mode");
-        return EINA_FALSE;
-     }
-
-   if (grab_mode == ECORE_X_WIN_KEYGRAB_SHARED)
-     *encoded = keycode | SHARED_GRAB;
-   else if (grab_mode == ECORE_X_WIN_KEYGRAB_TOPMOST)
-     *encoded = keycode | TOPMOST_GRAB;
-   else if (grab_mode == ECORE_X_WIN_KEYGRAB_EXCLUSIVE)
-     *encoded = keycode | EXCLUSIVE_GRAB;
-   else if (grab_mode == ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE)
-     *encoded = keycode | OVERRIDE_EXCLUSIVE_GRAB;
-
-   return EINA_TRUE;
-}
-
-static int
-_keytable_key_search(Ecore_X_Window_Key_Table *keytable, int key)
-{
-   int i, code = 0, *list = NULL;
-   unsigned long count;
-
-   code = key & (~GRAB_MASK);
-   count = keytable->key_cnt;
-   list = keytable->key_list;
-
-   for (i = count - 1; i >= 0; i--)
-     if ((list[i] & (~GRAB_MASK)) == code) break;
-
-   return i;
-}
-
-static Eina_Bool
-_keytable_key_add(Ecore_X_Window_Key_Table *keytable, int keycode, Ecore_X_Win_Keygrab_Mode grab_mode)
-{
-   Ecore_X_Window win;
-   unsigned long count;
-   int i = 0, masked = 0;
-
-   win = keytable->win;
-   count = keytable->key_cnt;
-
-   if (!_keytable_keycode_encode(keycode, grab_mode, &masked))
-     return EINA_FALSE;
-
-   if (count == 0)
-     {
-        xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                            ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE,
-                            ECORE_X_ATOM_CARDINAL, 32, 1,
-                            (unsigned char *)&masked);
-        return EINA_TRUE;
-     }
-   else
-     {
-        i = _keytable_key_search(keytable, masked);
-        if (i != -1)
-          {
-             WRN("Key already exists");
-             return EINA_FALSE;
-          }
-        xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_APPEND, win,
-                            ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE,
-                            ECORE_X_ATOM_CARDINAL, 32, 1,
-                            (unsigned char *)&masked);
-        return EINA_TRUE;
-     }
-}
-
-static Eina_Bool
-_keytable_key_del(Ecore_X_Window_Key_Table *keytable, int key, Ecore_X_Atom atom)
-{
-   int i, *new_key_list = NULL;
-   unsigned long count = 0;
-
-   i = _keytable_key_search(keytable, key);
-   if (i == -1)
-     {
-        WRN("Key does not exist in the key table");
-        return EINA_FALSE;
-     }
-
-   keytable->key_cnt--;
-   count = keytable->key_cnt;
-   if (count == 0)
-     {
-        ecore_x_window_prop_property_del(keytable->win, atom);
-        return EINA_TRUE;
-     }
-
-   new_key_list = malloc(count * sizeof(int));
-   if (!new_key_list) return EINA_FALSE;
-
-   if (i > 0)
-     memcpy(new_key_list, keytable->key_list, sizeof(int) * i);
-
-   if (count - i > 0)
-     memcpy(new_key_list + i, keytable->key_list + i + 1,
-            sizeof(int) * (count - i));
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, keytable->win,
-                       atom, ECORE_X_ATOM_CARDINAL, 32, count,
-                       (unsigned char *)new_key_list);
-
-   free(new_key_list);
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_keytable_possible_global_exclusiveness_get(int keycode)
-{
-   Ecore_X_Window_Key_Table keytable;
-   int ret = 0;
-
-   keytable.win = ecore_x_window_root_first_get();
-   keytable.key_list = NULL;
-   keytable.key_cnt = 0;
-
-   if (_atom_grab_excl_win == XCB_NONE)
-     _atom_grab_excl_win = ecore_x_atom_get(STR_ATOM_GRAB_EXCL_WIN);
-
-   ret = _keytable_property_list_get(keytable.win, _atom_grab_excl_win,
-                                     (unsigned int **)&(keytable.key_list));
-   if (ret < 0) return EINA_FALSE;
-
-   keytable.key_cnt = ret;
-   if (keytable.key_cnt == 0)
-     {
-        WRN("There is no keygrab entry in the table");
-        return EINA_TRUE;
-     }
-
-   ret = _keytable_key_search(&keytable, keycode);
-   if (ret != -1)
-     {
-        WRN("Can't search keygrab entry in the table");
-        _keytable_free(&keytable);
-        return EINA_FALSE;
-     }
-
-   _keytable_free(&keytable);
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_keytable_possible_global_exclusiveness_set(int keycode)
-{
-   Ecore_X_Window_Key_Table keytable;
-   int ret = 0;
-
-   keytable.win = ecore_x_window_root_first_get();
-   keytable.key_list = NULL;
-   keytable.key_cnt = 0;
-
-   if (_atom_grab_excl_win == XCB_NONE)
-     _atom_grab_excl_win = ecore_x_atom_get(STR_ATOM_GRAB_EXCL_WIN);
-
-   ret = _keytable_property_list_get(keytable.win, _atom_grab_excl_win,
-                                     (unsigned int **)&(keytable.key_list));
-   if (ret < 0) return EINA_FALSE;
-
-   keytable.key_cnt = ret;
-   if (keytable.key_cnt == 0)
-     {
-        xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE,
-                            keytable.win, _atom_grab_excl_win,
-                            ECORE_X_ATOM_CARDINAL, 32, 1,
-                            (unsigned char *)&keycode);
-        _keytable_free(&keytable);
-        return EINA_TRUE;
-     }
-
-   ret = _keytable_key_search(&keytable, keycode);
-   if (ret != -1)
-     {
-        xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_APPEND,
-                            keytable.win, _atom_grab_excl_win,
-                            ECORE_X_ATOM_CARDINAL, 32, 1,
-                            (unsigned char *)&keycode);
-        _keytable_free(&keytable);
-        return EINA_TRUE;
-     }
-
-   WRN("Key is already grabbed");
-   _keytable_free(&keytable);
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-_keytable_possible_global_exclusiveness_unset(int keycode)
-{
-   Ecore_X_Window_Key_Table keytable;
-   int ret = 0;
-
-   keytable.win = ecore_x_window_root_first_get();
-   keytable.key_list = NULL;
-   keytable.key_cnt = 0;
-
-   if (_atom_grab_excl_win == XCB_NONE)
-     _atom_grab_excl_win = ecore_x_atom_get(STR_ATOM_GRAB_EXCL_WIN);
-
-   ret = _keytable_property_list_get(keytable.win, _atom_grab_excl_win,
-                                     (unsigned int **)&(keytable.key_list));
-   if (ret < 0) return EINA_FALSE;
-
-   keytable.key_cnt = ret;
-
-   ret = _keytable_key_search(&keytable, keycode);
-   if (ret == -1)
-     {
-        WRN("Keygrab already exists");
-        _keytable_free(&keytable);
-        return EINA_FALSE;
-     }
-   else
-     ret = _keytable_key_del(&keytable, keycode, _atom_grab_excl_win);
-
-   _keytable_free(&keytable);
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-_ecore_xcb_window_keygrab_set_internal(Ecore_X_Window win, const char *key, Ecore_X_Win_Keygrab_Mode grab_mode)
-{
-   Ecore_X_Window_Key_Table keytable;
-   xcb_keycode_t keycode = 0;
-   Eina_Bool ret = EINA_FALSE;
-
-   keytable.win = win;
-   keytable.key_list = NULL;
-   keytable.key_cnt = 0;
-
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   if (keycode == XCB_NO_SYMBOL)
-     {
-        WRN("Keycode of key(\"%s\") does not exist", key);
-        return EINA_FALSE;
-     }
-
-   if (grab_mode == ECORE_X_WIN_KEYGRAB_EXCLUSIVE)
-     {
-        if (!_keytable_possible_global_exclusiveness_get(keycode))
-          return EINA_FALSE;
-     }
-
-   if (!_keytable_get(win, &keytable)) return EINA_FALSE;
-
-   ret = _keytable_key_add(&keytable, keycode, grab_mode);
-   if (!ret)
-     {
-        WRN("Key(\"%s\") add failed", key);
-        goto err;
-     }
-
-   if (grab_mode == ECORE_X_WIN_KEYGRAB_EXCLUSIVE)
-     {
-        if (!_keytable_possible_global_exclusiveness_set(keycode))
-          {
-             _keytable_key_del(&keytable, keycode, ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE);
-             WRN("Key(\"%s\") already is grabbed", key);
-             goto err;
-          }
-     }
-
-   _keytable_free(&keytable);
-   return EINA_TRUE;
-
-err:
-   _keytable_free(&keytable);
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-_ecore_xcb_window_keygrab_unset_internal(Ecore_X_Window win, const char *key)
-{
-   Ecore_X_Window_Key_Table keytable;
-   Ecore_X_Win_Keygrab_Mode grab_mode = ECORE_X_WIN_KEYGRAB_UNKNOWN;
-   xcb_keycode_t keycode = 0;
-   int i, masked = 0, decoded = 0;
-   Eina_Bool ret = EINA_FALSE;
-
-   keytable.win = win;
-   keytable.key_list = NULL;
-   keytable.key_cnt = 0;
-
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   if (keycode == XCB_NO_SYMBOL)
-     {
-        WRN("Keycode of key(\"%s\") does not exist", key);
-        return EINA_FALSE;
-     }
-
-   if (!_keytable_get(win, &keytable)) return EINA_FALSE;
-
-   if (keytable.key_cnt <= 0) return EINA_FALSE;
-
-   i = _keytable_key_search(&keytable, keycode);
-   if (i == -1)
-     {
-        WRN("Key(\"%s\") does not exist", key);
-        goto err;
-     }
-
-   masked = keytable.key_list[i];
-
-   ret = _keytable_keycode_decode(masked, &decoded, &grab_mode);
-   if (!ret) goto err;
-
-   ret = _keytable_key_del(&keytable, masked, ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE);
-   if (!ret) goto err;
-
-   if (grab_mode == ECORE_X_WIN_KEYGRAB_EXCLUSIVE)
-     ret = _keytable_possible_global_exclusiveness_unset(keycode);
-
-   _keytable_free(&keytable);
-   return EINA_TRUE;
-
-err:
-   _keytable_free(&keytable);
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_window_keygrab_set(Ecore_X_Window win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_X_Win_Keygrab_Mode grab_mode)
-{
-   if (_ecore_keyrouter == 0)
-     {
-        if (ecore_x_e_keyrouter_get(win))
-          _ecore_keyrouter = 1;
-        else
-          {
-             WRN("Keyrouter is not supported");
-             _ecore_keyrouter = -1;
-          }
-     }
-
-   if (_ecore_keyrouter < 0) return EINA_FALSE;
-
-   return _ecore_xcb_window_keygrab_set_internal(win, key, grab_mode);
-}
-
-EAPI Eina_Bool
-ecore_x_window_keygrab_unset(Ecore_X_Window win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED)
-{
-   if (_ecore_keyrouter != 1)
-     {
-        WRN("Keyrouter is not supported");
-        return EINA_FALSE;
-     }
-
-   return _ecore_xcb_window_keygrab_unset_internal(win, key);
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_keymap.c b/src/lib/ecore_x/xcb/ecore_xcb_keymap.c
deleted file mode 100644 (file)
index 8ec7af1..0000000
+++ /dev/null
@@ -1,534 +0,0 @@
-#include "ecore_xcb_private.h"
-#define NEED_KEYSYM_TABLE
-#define NEED_VTABLE
-#include "ecore_xcb_keysym_table.h"
-#include <xcb/xcb_keysyms.h>
-#include <X11/keysym.h>
-
-/* local function prototypes */
-static int          _ecore_xcb_keymap_mask_get(void        *reply,
-                                               xcb_keysym_t sym);
-static xcb_keysym_t _ecore_xcb_keymap_string_to_keysym(const char *str);
-static int          _ecore_xcb_keymap_translate_key(xcb_keycode_t keycode,
-                                                    unsigned int  modifiers,
-                                                    unsigned int *modifiers_return,
-                                                    xcb_keysym_t *keysym_return);
-static int _ecore_xcb_keymap_translate_keysym(xcb_keysym_t keysym,
-                                              unsigned int modifiers,
-                                              char        *buffer,
-                                              int          bytes);
-
-/* local variables */
-static xcb_key_symbols_t *_ecore_xcb_keysyms;
-static int _ecore_xcb_mode_switch = 0;
-
-/* public variables */
-EAPI int ECORE_X_MODIFIER_SHIFT = 0;
-EAPI int ECORE_X_MODIFIER_CTRL = 0;
-EAPI int ECORE_X_MODIFIER_ALT = 0;
-EAPI int ECORE_X_MODIFIER_WIN = 0;
-EAPI int ECORE_X_MODIFIER_ALTGR = 0;
-EAPI int ECORE_X_LOCK_SCROLL = 0;
-EAPI int ECORE_X_LOCK_NUM = 0;
-EAPI int ECORE_X_LOCK_CAPS = 0;
-EAPI int ECORE_X_LOCK_SHIFT = 0;
-
-void
-_ecore_xcb_keymap_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_keysyms = xcb_key_symbols_alloc(_ecore_xcb_conn);
-}
-
-void
-_ecore_xcb_keymap_finalize(void)
-{
-   xcb_get_modifier_mapping_cookie_t cookie;
-   xcb_get_modifier_mapping_reply_t *reply;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_modifier_mapping_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_modifier_mapping_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply)
-     {
-        xcb_key_symbols_free(_ecore_xcb_keysyms);
-        return;
-     }
-
-   _ecore_xcb_mode_switch = _ecore_xcb_keymap_mask_get(reply, XK_Mode_switch);
-
-   ECORE_X_MODIFIER_SHIFT = _ecore_xcb_keymap_mask_get(reply, XK_Shift_L);
-   ECORE_X_MODIFIER_CTRL = _ecore_xcb_keymap_mask_get(reply, XK_Control_L);
-
-   ECORE_X_MODIFIER_ALT = _ecore_xcb_keymap_mask_get(reply, XK_Alt_L);
-   if (!ECORE_X_MODIFIER_ALT)
-     ECORE_X_MODIFIER_ALT = _ecore_xcb_keymap_mask_get(reply, XK_Meta_L);
-   if (!ECORE_X_MODIFIER_ALT)
-     ECORE_X_MODIFIER_ALT = _ecore_xcb_keymap_mask_get(reply, XK_Super_L);
-
-   ECORE_X_MODIFIER_WIN = _ecore_xcb_keymap_mask_get(reply, XK_Super_L);
-   if (!ECORE_X_MODIFIER_WIN)
-     ECORE_X_MODIFIER_WIN = _ecore_xcb_keymap_mask_get(reply, XK_Meta_L);
-
-   ECORE_X_MODIFIER_ALTGR = _ecore_xcb_keymap_mask_get(reply, XK_Mode_switch);
-
-   if (ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_ALT)
-     ECORE_X_MODIFIER_WIN = 0;
-   if (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_CTRL)
-     ECORE_X_MODIFIER_ALT = 0;
-
-   if (ECORE_X_MODIFIER_ALTGR)
-     {
-        if ((ECORE_X_MODIFIER_ALTGR == ECORE_X_MODIFIER_SHIFT) ||
-            (ECORE_X_MODIFIER_ALTGR == ECORE_X_MODIFIER_CTRL) ||
-            (ECORE_X_MODIFIER_ALTGR == ECORE_X_MODIFIER_ALT) ||
-            (ECORE_X_MODIFIER_ALTGR == ECORE_X_MODIFIER_WIN))
-          {
-             ERR("ALTGR conflicts with other modifiers. IGNORE ALTGR");
-             ECORE_X_MODIFIER_ALTGR = 0;
-          }
-     }
-
-   if (ECORE_X_MODIFIER_ALT)
-     {
-        if ((ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_SHIFT) ||
-            (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_CTRL) ||
-            (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_WIN))
-          {
-             ERR("ALT conflicts with other modifiers. IGNORE ALT");
-             ECORE_X_MODIFIER_ALT = 0;
-          }
-     }
-
-   if (ECORE_X_MODIFIER_WIN)
-     {
-        if ((ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_SHIFT) ||
-            (ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_CTRL))
-          {
-             ERR("WIN conflicts with other modifiers. IGNORE WIN");
-             ECORE_X_MODIFIER_WIN = 0;
-          }
-     }
-
-   if (ECORE_X_MODIFIER_SHIFT)
-     {
-        if ((ECORE_X_MODIFIER_SHIFT == ECORE_X_MODIFIER_CTRL))
-          {
-             ERR("CTRL conflicts with other modifiers. IGNORE CTRL");
-             ECORE_X_MODIFIER_CTRL = 0;
-          }
-     }
-
-   ECORE_X_LOCK_SCROLL = _ecore_xcb_keymap_mask_get(reply, XK_Scroll_Lock);
-   ECORE_X_LOCK_NUM = _ecore_xcb_keymap_mask_get(reply, XK_Num_Lock);
-   ECORE_X_LOCK_CAPS = _ecore_xcb_keymap_mask_get(reply, XK_Caps_Lock);
-   ECORE_X_LOCK_SHIFT = _ecore_xcb_keymap_mask_get(reply, XK_Shift_Lock);
-   free(reply);
-}
-
-void
-_ecore_xcb_modifiers_get(void)
-{
-   _ecore_xcb_keymap_finalize();
-}
-
-void
-_ecore_xcb_keymap_shutdown(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (_ecore_xcb_keysyms) xcb_key_symbols_free(_ecore_xcb_keysyms);
-}
-
-void
-_ecore_xcb_keymap_refresh(xcb_mapping_notify_event_t *event)
-{
-   CHECK_XCB_CONN;
-   xcb_refresh_keyboard_mapping(_ecore_xcb_keysyms, event);
-}
-
-xcb_keysym_t
-_ecore_xcb_keymap_keycode_to_keysym(xcb_keycode_t keycode,
-                                    int           col)
-{
-   xcb_keysym_t key0, key1;
-
-   CHECK_XCB_CONN;
-   if (col & _ecore_xcb_mode_switch)
-     {
-        key0 = xcb_key_symbols_get_keysym(_ecore_xcb_keysyms, keycode, 4);
-        key1 = xcb_key_symbols_get_keysym(_ecore_xcb_keysyms, keycode, 5);
-     }
-   else
-     {
-        key0 = xcb_key_symbols_get_keysym(_ecore_xcb_keysyms, keycode, 0);
-        key1 = xcb_key_symbols_get_keysym(_ecore_xcb_keysyms, keycode, 1);
-     }
-
-   if (key1 == XCB_NO_SYMBOL)
-     key1 = key0;
-
-   if ((col & ECORE_X_LOCK_NUM) &&
-       ((xcb_is_keypad_key(key1)) || (xcb_is_private_keypad_key(key1))))
-     {
-        if ((col & XCB_MOD_MASK_SHIFT) ||
-            ((col & XCB_MOD_MASK_LOCK) && (col & ECORE_X_LOCK_SHIFT)))
-          return key0;
-        else
-          return key1;
-     }
-   else if (!(col & XCB_MOD_MASK_SHIFT) && !(col & XCB_MOD_MASK_LOCK))
-     return key0;
-   else if (!(col & XCB_MOD_MASK_SHIFT) &&
-            (col & XCB_MOD_MASK_LOCK && (col & ECORE_X_LOCK_CAPS)))
-     return key1;
-   else if ((col & XCB_MOD_MASK_SHIFT) &&
-            (col & XCB_MOD_MASK_LOCK) && (col & ECORE_X_LOCK_CAPS))
-     return key0;
-   else if ((col & XCB_MOD_MASK_SHIFT) ||
-            (col & XCB_MOD_MASK_LOCK && (col & ECORE_X_LOCK_SHIFT)))
-     return key1;
-
-   return XCB_NO_SYMBOL;
-}
-
-xcb_keycode_t *
-_ecore_xcb_keymap_keysym_to_keycode(xcb_keysym_t keysym)
-{
-   CHECK_XCB_CONN;
-   return xcb_key_symbols_get_keycode(_ecore_xcb_keysyms, keysym);
-}
-
-char *
-_ecore_xcb_keymap_keysym_to_string(xcb_keysym_t keysym)
-{
-   int i = 0, n = 0, h = 0, idx = 0;
-   const unsigned char *entry;
-   unsigned char val1, val2, val3, val4;
-
-   CHECK_XCB_CONN;
-   if (!keysym) return NULL;
-   if (keysym == XK_VoidSymbol) keysym = 0;
-   if (keysym <= 0x1fffffff)
-     {
-        val1 = (keysym >> 24);
-        val2 = ((keysym >> 16) & 0xff);
-        val3 = ((keysym >> 8) & 0xff);
-        val4 = (keysym & 0xff);
-        i = keysym % VTABLESIZE;
-        h = i + 1;
-        n = VMAXHASH;
-        while ((idx = hashKeysym[i]))
-          {
-             entry = &_ecore_xcb_keytable[idx];
-             if ((entry[0] == val1) && (entry[1] == val2) &&
-                 (entry[2] == val3) && (entry[3] == val4))
-               return (char *)entry + 4;
-             if (!--n) break;
-             i += h;
-             if (i >= VTABLESIZE) i -= VTABLESIZE;
-          }
-     }
-
-   if ((keysym >= 0x01000100) && (keysym <= 0x0110ffff))
-     {
-        xcb_keysym_t val;
-        char *s = NULL;
-        int i = 0;
-
-        val = (keysym & 0xffffff);
-        if (val & 0xff0000)
-          i = 10;
-        else
-          i = 6;
-
-        if (!(s = malloc(i))) return NULL;
-        i--;
-        s[i--] = '\0';
-        for (; i; i--)
-          {
-             val1 = (val & 0xf);
-             val >>= 4;
-             if (val1 < 10)
-               s[i] = '0' + val1;
-             else
-               s[i] = 'A' + val1 - 10;
-          }
-        s[i] = 'U';
-        return s;
-     }
-
-   return NULL;
-}
-
-xcb_keycode_t
-_ecore_xcb_keymap_string_to_keycode(const char *key)
-{
-   if (!strncmp(key, "Keycode-", 8))
-     return atoi(key + 8);
-   else
-     {
-        xcb_keysym_t keysym = XCB_NO_SYMBOL;
-        xcb_keycode_t *keycodes, keycode = 0;
-        int i = 0;
-
-        CHECK_XCB_CONN;
-
-        keysym = _ecore_xcb_keymap_string_to_keysym(key);
-        if (keysym == XCB_NO_SYMBOL) return XCB_NO_SYMBOL;
-
-        keycodes = _ecore_xcb_keymap_keysym_to_keycode(keysym);
-        if (!keycodes) return XCB_NO_SYMBOL;
-
-        while (keycodes[i] != XCB_NO_SYMBOL)
-          {
-             if (keycodes[i] != 0)
-               {
-                  keycode = keycodes[i];
-                  break;
-               }
-             i++;
-          }
-        return keycode;
-     }
-}
-
-int
-_ecore_xcb_keymap_lookup_string(xcb_keycode_t keycode,
-                                int           state,
-                                char         *buffer,
-                                int           bytes,
-                                xcb_keysym_t *sym)
-{
-   unsigned int modifiers = 0;
-   xcb_keysym_t keysym;
-
-   CHECK_XCB_CONN;
-   if (!_ecore_xcb_keymap_translate_key(keycode, state, &modifiers, &keysym))
-     return 0;
-
-   if (sym) *sym = keysym;
-
-   return _ecore_xcb_keymap_translate_keysym(keysym, state, buffer, bytes);
-}
-
-EAPI const char *
-ecore_x_keysym_string_get(int keysym)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_keymap_keysym_to_string(keysym);
-}
-
-EAPI int 
-ecore_x_keysym_keycode_get(const char *keyname)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_keymap_string_to_keycode(keyname);
-}
-
-EAPI unsigned int
-ecore_x_keysym_get(const char *string)
-{
-   return _ecore_xcb_keymap_string_to_keysym(string);
-}
-
-/* local functions */
-static int
-_ecore_xcb_keymap_mask_get(void        *reply,
-                           xcb_keysym_t sym)
-{
-   xcb_get_modifier_mapping_reply_t *rep;
-   xcb_keysym_t sym2;
-   int mask = 0;
-   const int masks[8] =
-   {
-      XCB_MOD_MASK_SHIFT, XCB_MOD_MASK_LOCK, XCB_MOD_MASK_CONTROL,
-      XCB_MOD_MASK_1, XCB_MOD_MASK_2, XCB_MOD_MASK_3, XCB_MOD_MASK_4,
-      XCB_MOD_MASK_5
-   };
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   rep = (xcb_get_modifier_mapping_reply_t *)reply;
-   if ((rep) && (rep->keycodes_per_modifier > 0))
-     {
-        int i = 0;
-        xcb_keycode_t *modmap;
-
-        modmap = xcb_get_modifier_mapping_keycodes(rep);
-        for (i = 0; i < (8 * rep->keycodes_per_modifier); i++)
-          {
-             int j = 0;
-
-             for (j = 0; j < 8; j++)
-               {
-                  sym2 = xcb_key_symbols_get_keysym(_ecore_xcb_keysyms,
-                                                    modmap[i], j);
-                  if (sym2 != 0) break;
-               }
-             if (sym2 == sym) mask = masks[i / rep->keycodes_per_modifier];
-          }
-     }
-   return mask;
-}
-
-static xcb_keysym_t
-_ecore_xcb_keymap_string_to_keysym(const char *str)
-{
-   int i = 0, n = 0, h = 0;
-   unsigned long sig = 0;
-   const char *p = NULL;
-   int c = 0, idx = 0;
-   const unsigned char *entry;
-   unsigned char sig1, sig2;
-   long unsigned int val;
-
-   p = str;
-   while ((c = *p++))
-     sig = (sig << 1) + c;
-
-   i = (sig % KTABLESIZE);
-   h = i + 1;
-   sig1 = (sig >> 8) & 0xff;
-   sig2 = sig & 0xff;
-   n = KMAXHASH;
-
-   while ((idx = hashString[i]))
-     {
-        entry = &_ecore_xcb_keytable[idx];
-        if ((entry[0] == sig1) && (entry[1] == sig2) &&
-            !strcmp(str, (char *)entry + 6))
-          {
-             val = ((entry[2] << 24) | (entry[3] << 16) |
-                    (entry[4] << 8) | (entry[5]));
-             if (!val) val = 0xffffff;
-             return val;
-          }
-        if (!--n) break;
-        i += h;
-        if (i >= KTABLESIZE) i -= KTABLESIZE;
-     }
-
-   if (*str == 'U')
-     {
-        val = 0;
-        for (p = &str[1]; *p; p++)
-          {
-             c = *p;
-             if (('0' <= c) && (c <= '9'))
-               val = (val << 4) + c - '0';
-             else if (('a' <= c) && (c <= 'f'))
-               val = (val << 4) + c - 'a' + 10;
-             else if (('A' <= c) && (c <= 'F'))
-               val = (val << 4) + c - 'A' + 10;
-             else
-               return XCB_NO_SYMBOL;
-             if (val > 0x10ffff) return XCB_NO_SYMBOL;
-          }
-        if ((val < 0x20) || ((val > 0x7e) && (val < 0xa0)))
-          return XCB_NO_SYMBOL;
-        if (val < 0x100) return val;
-        return val | 0x01000000;
-     }
-
-   if ((strlen(str) > 2) && (str[0] == '0') && (str[1] == 'x'))
-     {
-        char *tmp = NULL;
-
-        val = strtoul(str, &tmp, 16);
-        if ((val == ULONG_MAX) || ((tmp) && (*tmp != '\0')))
-          return XCB_NO_SYMBOL;
-        else
-          return val;
-     }
-
-   if (!strncmp(str, "XF86_", 5))
-     {
-        long unsigned int ret;
-        char *tmp;
-
-        tmp = strdup(str);
-        if (!tmp) return XCB_NO_SYMBOL;
-        memmove(&tmp[4], &tmp[5], strlen(str) - 5 + 1);
-        ret = _ecore_xcb_keymap_string_to_keysym(tmp);
-        free(tmp);
-        return ret;
-     }
-
-   return XCB_NO_SYMBOL;
-}
-
-static int
-_ecore_xcb_keymap_translate_key(xcb_keycode_t keycode,
-                                unsigned int  modifiers,
-                                unsigned int *modifiers_return,
-                                xcb_keysym_t *keysym_return)
-{
-   xcb_keysym_t sym;
-
-   if (!_ecore_xcb_keysyms) return 0;
-
-   sym = _ecore_xcb_keymap_keycode_to_keysym(keycode, modifiers);
-
-   if (modifiers_return)
-     *modifiers_return = ((XCB_MOD_MASK_SHIFT | XCB_MOD_MASK_LOCK) |
-                          _ecore_xcb_mode_switch | ECORE_X_LOCK_NUM);
-   if (keysym_return)
-     *keysym_return = sym;
-
-   return 1;
-}
-
-static int
-_ecore_xcb_keymap_translate_keysym(xcb_keysym_t keysym,
-                                   unsigned int modifiers,
-                                   char        *buffer,
-                                   int          bytes)
-{
-   unsigned long hbytes = 0;
-   unsigned char c;
-
-   if (!keysym) return 0;
-   hbytes = (keysym >> 8);
-
-   if (!(bytes &&
-         ((hbytes == 0) ||
-          ((hbytes == 0xFF) &&
-           (((keysym >= XK_BackSpace) && (keysym <= XK_Clear)) ||
-            (keysym == XK_Return) || (keysym == XK_Escape) ||
-            (keysym == XK_KP_Space) || (keysym == XK_KP_Tab) ||
-            (keysym == XK_KP_Enter) ||
-            ((keysym >= XK_KP_Multiply) && (keysym <= XK_KP_9)) ||
-            (keysym == XK_KP_Equal) || (keysym == XK_Delete))))))
-     return 0;
-
-   if (keysym == XK_KP_Space)
-     c = (XK_space & 0x7F);
-   else if (hbytes == 0xFF)
-     c = (keysym & 0x7F);
-   else
-     c = (keysym & 0xFF);
-
-   if (modifiers & ECORE_X_MODIFIER_CTRL)
-     {
-        if (((c >= '@') && (c < '\177')) || c == ' ')
-          c &= 0x1F;
-        else if (c == '2')
-          c = '\000';
-        else if ((c >= '3') && (c <= '7'))
-          c -= ('3' - '\033');
-        else if (c == '8')
-          c = '\177';
-        else if (c == '/')
-          c = '_' & 0x1F;
-     }
-   buffer[0] = c;
-   return 1;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_mwm.c b/src/lib/ecore_x/xcb/ecore_xcb_mwm.c
deleted file mode 100644 (file)
index 59ab579..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#include "ecore_xcb_private.h"
-//#include "Ecore_X_Atoms.h"
-
-#define ECORE_X_MWM_HINTS_FUNCTIONS   (1 << 0)
-#define ECORE_X_MWM_HINTS_DECORATIONS (1 << 1)
-#define ECORE_X_MWM_HINTS_INPUT_MODE  (1 << 2)
-#define ECORE_X_MWM_HINTS_STATUS      (1 << 3)
-
-typedef struct _mwmhints
-{
-   uint32_t flags;
-   uint32_t functions;
-   uint32_t decorations;
-   int32_t  inputmode;
-   uint32_t status;
-} MWMHints;
-
-/**
- * @defgroup Ecore_X_MWM_Group MWM related functions.
- * @ingroup Ecore_X_Group
- *
- * Functions related to MWM.
- */
-
-/**
- * Sets the borderless flag of a window using MWM.
- *
- * @param win The window.
- * @param borderless The borderless flag.
- *
- * @ingroup Ecore_X_MWM_Group
- */
-EAPI void
-ecore_x_mwm_borderless_set(Ecore_X_Window win,
-                           Eina_Bool      borderless)
-{
-   uint32_t data[5] = { 0, 0, 0, 0, 0 };
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   data[0] = 2;
-   data[2] = !borderless;
-
-   ecore_x_window_prop_property_set(win,
-                                    ECORE_X_ATOM_MOTIF_WM_HINTS,
-                                    ECORE_X_ATOM_MOTIF_WM_HINTS, 32,
-                                    (void *)data, 5);
-}
-
-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)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   MWMHints *mwmhints = NULL;
-   int ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie =
-     xcb_get_property_unchecked(_ecore_xcb_conn, 0, win,
-                                ECORE_X_ATOM_MOTIF_WM_HINTS,
-                                ECORE_X_ATOM_MOTIF_WM_HINTS, 0, UINT_MAX);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-   if ((reply->format != 32) || (reply->value_len == 0))
-     {
-        free(reply);
-        return EINA_FALSE;
-     }
-
-   mwmhints = xcb_get_property_value(reply);
-   if (reply->value_len >= 4)
-     {
-        if (dhint)
-          {
-             if (mwmhints->flags & ECORE_X_MWM_HINTS_DECORATIONS)
-               *dhint = mwmhints->decorations;
-             else
-               *dhint = ECORE_X_MWM_HINT_DECOR_ALL;
-          }
-        if (fhint)
-          {
-             if (mwmhints->flags & ECORE_X_MWM_HINTS_FUNCTIONS)
-               *fhint = mwmhints->functions;
-             else
-               *fhint = ECORE_X_MWM_HINT_FUNC_ALL;
-          }
-        if (ihint)
-          {
-             if (mwmhints->flags & ECORE_X_MWM_HINTS_INPUT_MODE)
-               *ihint = mwmhints->inputmode;
-             else
-               *ihint = ECORE_X_MWM_HINT_INPUT_MODELESS;
-          }
-        ret = EINA_TRUE;
-     }
-   free(reply);
-   return ret;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_netwm.c b/src/lib/ecore_x/xcb/ecore_xcb_netwm.c
deleted file mode 100644 (file)
index 856e27d..0000000
+++ /dev/null
@@ -1,1590 +0,0 @@
-#include "ecore_xcb_private.h"
-
-/* local function prototypes */
-/* static void _ecore_xcb_netwm_startup_info_free(void *data); */
-static Ecore_X_Atom        _ecore_xcb_netwm_window_type_atom_get(Ecore_X_Window_Type type);
-static Ecore_X_Window_Type _ecore_xcb_netwm_window_type_type_get(Ecore_X_Atom atom);
-static Ecore_X_Atom        _ecore_xcb_netwm_window_state_atom_get(Ecore_X_Window_State state);
-static Ecore_X_Atom        _ecore_xcb_netwm_action_atom_get(Ecore_X_Action action);
-
-/* local variables */
-//static Eina_Hash *_startup_info = NULL;
-
-/* local structures */
-typedef struct _Ecore_Xcb_Startup_Info Ecore_Xcb_Startup_Info;
-struct _Ecore_Xcb_Startup_Info
-{
-   Ecore_X_Window win;
-   int            init, size;
-   char          *buffer;
-   int            length;
-
-   /* sequence info fields */
-   char          *id, *name;
-   int            screen;
-   char          *bin, *icon;
-   int            desktop, timestamp;
-   char          *description, *wmclass;
-   int            silent;
-};
-
-EAPI void
-ecore_x_netwm_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-//   _startup_info =
-//     eina_hash_string_superfast_new(_ecore_xcb_netwm_startup_info_free);
-}
-
-EAPI void
-ecore_x_netwm_shutdown(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-//   if (_startup_info) eina_hash_free(_startup_info);
-//   _startup_info = NULL;
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_pid_get(Ecore_X_Window win,
-                      int           *pid)
-{
-   uint32_t tmp;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_PID, &tmp, 1))
-     return EINA_FALSE;
-
-   if (pid) *pid = tmp;
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_pid_set(Ecore_X_Window win,
-                      int            pid)
-{
-   unsigned int tmp;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   tmp = pid;
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_PID, &tmp, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_window_type_get(Ecore_X_Window       win,
-                              Ecore_X_Window_Type *type)
-{
-   Ecore_X_Atom *atoms;
-   int num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (type) *type = ECORE_X_WINDOW_TYPE_NORMAL;
-
-   num =
-     ecore_x_window_prop_atom_list_get(win,
-                                       ECORE_X_ATOM_NET_WM_WINDOW_TYPE, &atoms);
-   if ((type) && (num >= 1) && (atoms))
-     *type = _ecore_xcb_netwm_window_type_type_get(atoms[0]);
-
-   if (atoms) free(atoms);
-
-   if (num >= 1) return EINA_TRUE;
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_netwm_window_type_set(Ecore_X_Window      win,
-                              Ecore_X_Window_Type type)
-{
-   Ecore_X_Atom atom;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   atom = _ecore_xcb_netwm_window_type_atom_get(type);
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_WINDOW_TYPE, &atom, 1);
-}
-
-EAPI int
-ecore_x_netwm_window_types_get(Ecore_X_Window        win,
-                               Ecore_X_Window_Type **types)
-{
-   int num = 0, i = 0;
-   Ecore_X_Atom *atoms = NULL;
-   Ecore_X_Window_Type *atoms2 = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (types) *types = NULL;
-   num =
-     ecore_x_window_prop_atom_list_get(win, ECORE_X_ATOM_NET_WM_WINDOW_TYPE,
-                                       &atoms);
-   if ((num <= 0) || (!atoms))
-     {
-        if (atoms) free(atoms);
-        return 0;
-     }
-
-   atoms2 = malloc(num * sizeof(Ecore_X_Window_Type));
-   if (!atoms2)
-     {
-        if (atoms) free(atoms);
-        return 0;
-     }
-
-   for (i = 0; i < num; i++)
-     atoms2[i] = _ecore_xcb_netwm_window_type_type_get(atoms[i]);
-   if (atoms) free(atoms);
-
-   if (types)
-     *types = atoms2;
-   else
-     free(atoms2);
-
-   return num;
-}
-
-EAPI int
-ecore_x_netwm_name_get(Ecore_X_Window win,
-                       char         **name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (name)
-     *name = ecore_x_window_prop_string_get(win, ECORE_X_ATOM_NET_WM_NAME);
-   return 1;
-}
-
-EAPI void
-ecore_x_netwm_name_set(Ecore_X_Window win,
-                       const char    *name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_NAME, name);
-}
-
-EAPI void
-ecore_x_netwm_opacity_set(Ecore_X_Window win,
-                          unsigned int   opacity)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_WINDOW_OPACITY,
-                                  &opacity, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_opacity_get(Ecore_X_Window win,
-                          unsigned int  *opacity)
-{
-   unsigned int tmp = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_WINDOW_OPACITY,
-                                       &tmp, 1))
-     return EINA_FALSE;
-
-   if (opacity) *opacity = tmp;
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_wm_identify(Ecore_X_Window root,
-                          Ecore_X_Window check,
-                          const char    *wm_name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(check, ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK,
-                                  &check, 1);
-   ecore_x_window_prop_string_set(check, ECORE_X_ATOM_NET_WM_NAME, wm_name);
-   ecore_x_window_prop_string_set(root, ECORE_X_ATOM_NET_WM_NAME, wm_name);
-   ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK,
-                                  &check, 1);
-}
-
-EAPI void
-ecore_x_netwm_supported_set(Ecore_X_Window root,
-                            Ecore_X_Atom  *supported,
-                            int            num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_atom_set(root, ECORE_X_ATOM_NET_SUPPORTED,
-                                supported, num);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_supported_get(Ecore_X_Window root,
-                            Ecore_X_Atom **supported,
-                            int           *num)
-{
-   int num_ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (num) *num = 0;
-   if (supported) *supported = NULL;
-
-   num_ret =
-     ecore_x_window_prop_atom_list_get(root, ECORE_X_ATOM_NET_SUPPORTED,
-                                       supported);
-   if (num_ret <= 0) return EINA_FALSE;
-   if (num) *num = num_ret;
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_desk_count_set(Ecore_X_Window root,
-                             unsigned int   n_desks)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS,
-                                  &n_desks, 1);
-}
-
-EAPI void
-ecore_x_netwm_desk_roots_set(Ecore_X_Window  root,
-                             Ecore_X_Window *vroots,
-                             unsigned int    n_desks)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_VIRTUAL_ROOTS,
-                                  vroots, n_desks);
-}
-
-EAPI void
-ecore_x_netwm_desk_names_set(Ecore_X_Window root,
-                             const char   **names,
-                             unsigned int   n_desks)
-{
-   char ss[32], *buf = NULL, *t = NULL;
-   const char *s;
-   uint32_t len = 0, i, l;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   for (i = 0; i < n_desks; i++)
-     {
-        s = ((names) ? names[i] : NULL);
-        if (!s)
-          {
-             /* Default to "Desk-<number>" */
-              sprintf(ss, "Desk-%d", i);
-              s = ss;
-          }
-
-        l = strlen(s) + 1;
-        t = realloc(buf, len + 1);
-        if (t)
-          {
-             buf = t;
-             memcpy(buf + len, s, l);
-          }
-        len += l;
-     }
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, root,
-                       ECORE_X_ATOM_NET_DESKTOP_NAMES,
-                       ECORE_X_ATOM_UTF8_STRING, 8, len, (const void *)buf);
-//   ecore_x_flush();
-   free(buf);
-}
-
-EAPI void
-ecore_x_netwm_desk_size_set(Ecore_X_Window root,
-                            unsigned int   width,
-                            unsigned int   height)
-{
-   uint32_t size[2];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   size[0] = width;
-   size[1] = height;
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_GEOMETRY,
-                                  size, 2);
-}
-
-EAPI void
-ecore_x_netwm_desk_viewports_set(Ecore_X_Window root,
-                                 unsigned int  *origins,
-                                 unsigned int   n_desks)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_VIEWPORT,
-                                  origins, (2 * n_desks));
-}
-
-EAPI void
-ecore_x_netwm_desk_layout_set(Ecore_X_Window root,
-                              int            orientation,
-                              int            columns,
-                              int            rows,
-                              int            starting_corner)
-{
-   unsigned int layout[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   layout[0] = orientation;
-   layout[1] = columns;
-   layout[2] = rows;
-   layout[3] = starting_corner;
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_LAYOUT,
-                                  layout, 4);
-}
-
-EAPI void
-ecore_x_netwm_desk_workareas_set(Ecore_X_Window root,
-                                 unsigned int  *areas,
-                                 unsigned int   n_desks)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_WORKAREA, areas,
-                                  4 * n_desks);
-}
-
-EAPI unsigned int *
-ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks)
-{
-   int ret;
-   unsigned int *areas = NULL;
-   
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   
-   ret = ecore_x_window_prop_card32_list_get(root, ECORE_X_ATOM_NET_WORKAREA,
-                                             &areas);
-   if (!areas)
-     {
-        if (n_desks) *n_desks = 0;
-        return 0;
-     }
-   if (n_desks) *n_desks = ret / 4;
-   return areas;
-}
-
-EAPI void
-ecore_x_netwm_desk_current_set(Ecore_X_Window root,
-                               unsigned int   desk)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_CURRENT_DESKTOP,
-                                  &desk, 1);
-}
-
-EAPI void
-ecore_x_netwm_showing_desktop_set(Ecore_X_Window root,
-                                  Eina_Bool      on)
-{
-   unsigned int val = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   val = ((on) ? 1 : 0);
-   ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_SHOWING_DESKTOP,
-                                  &val, 1);
-}
-
-EAPI int
-ecore_x_netwm_startup_id_get(Ecore_X_Window win,
-                             char         **id)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (id)
-     {
-        *id =
-          ecore_x_window_prop_string_get(win, ECORE_X_ATOM_NET_STARTUP_ID);
-     }
-
-   return 1;
-}
-
-EAPI void
-ecore_x_netwm_startup_id_set(Ecore_X_Window win,
-                             const char    *id)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_STARTUP_ID, id);
-}
-
-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)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_NET_WM_STATE;
-   ev.data.data32[0] = !!set;
-   ev.data.data32[1] = _ecore_xcb_netwm_window_state_atom_get(s1);
-   ev.data.data32[2] = _ecore_xcb_netwm_window_state_atom_get(s2);
-   /* 1 == normal client, if used in a pager this should be 2 */
-   ev.data.data32[3] = 1;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_netwm_window_state_set(Ecore_X_Window        win,
-                               Ecore_X_Window_State *state,
-                               unsigned int          num)
-{
-   Ecore_X_Atom *set;
-   unsigned int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!num)
-     {
-        ecore_x_window_prop_property_del(win, ECORE_X_ATOM_NET_WM_STATE);
-        return;
-     }
-
-   set = malloc(num * sizeof(Ecore_X_Atom));
-   if (!set) return;
-
-   for (i = 0; i < num; i++)
-     set[i] = _ecore_xcb_netwm_window_state_atom_get(state[i]);
-
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_STATE, set, num);
-   free(set);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_window_state_get(Ecore_X_Window         win,
-                               Ecore_X_Window_State **state,
-                               unsigned int          *num)
-{
-   Ecore_X_Atom *atoms;
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (num) *num = 0;
-   if (state) *state = NULL;
-
-   ret =
-     ecore_x_window_prop_atom_list_get(win, ECORE_X_ATOM_NET_WM_STATE, &atoms);
-
-   if (ret <= 0) return EINA_FALSE;
-
-   if (state)
-     {
-        *state = malloc(ret * sizeof(Ecore_X_Window_State));
-        if (*state)
-          {
-             int i = 0;
-
-             for (i = 0; i < ret; i++)
-               (*state)[i] = _ecore_xcb_netwm_window_state_get(atoms[i]);
-             if (num) *num = ret;
-          }
-     }
-
-   free(atoms);
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_client_active_set(Ecore_X_Window root,
-                                Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(root,
-                                  ECORE_X_ATOM_NET_ACTIVE_WINDOW, &win, 1);
-}
-
-EAPI void
-ecore_x_netwm_client_active_request(Ecore_X_Window root,
-                                    Ecore_X_Window win,
-                                    int            type,
-                                    Ecore_X_Window current_win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_NET_ACTIVE_WINDOW;
-   ev.data.data32[0] = type;
-   ev.data.data32[1] = XCB_CURRENT_TIME;
-   ev.data.data32[2] = current_win;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_netwm_client_list_set(Ecore_X_Window  root,
-                              Ecore_X_Window *p_clients,
-                              unsigned int    n_clients)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_CLIENT_LIST,
-                                  p_clients, n_clients);
-}
-
-EAPI void
-ecore_x_netwm_client_list_stacking_set(Ecore_X_Window  root,
-                                       Ecore_X_Window *p_clients,
-                                       unsigned int    n_clients)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_CLIENT_LIST_STACKING,
-                                  p_clients, n_clients);
-}
-
-EAPI Eina_Bool
-ecore_x_screen_is_composited(int screen)
-{
-   char buff[32];
-   xcb_get_selection_owner_cookie_t ocookie;
-   xcb_get_selection_owner_reply_t *oreply;
-   xcb_intern_atom_cookie_t acookie;
-   xcb_intern_atom_reply_t *areply;
-   Ecore_X_Window win;
-   Ecore_X_Atom atom;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   snprintf(buff, sizeof(buff), "_NET_WM_CM_S%i", screen);
-   acookie = xcb_intern_atom_unchecked(_ecore_xcb_conn, 1, strlen(buff), buff);
-   areply = xcb_intern_atom_reply(_ecore_xcb_conn, acookie, NULL);
-   if (!areply) return EINA_FALSE;
-   atom = areply->atom;
-   free(areply);
-   if (atom == XCB_NONE) return EINA_FALSE;
-   ocookie = xcb_get_selection_owner_unchecked(_ecore_xcb_conn, atom);
-   oreply = xcb_get_selection_owner_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (!oreply) return EINA_FALSE;
-   win = oreply->owner;
-   free(oreply);
-   return (win != XCB_NONE) ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-ecore_x_screen_is_composited_set(int            screen,
-                                 Ecore_X_Window win)
-{
-   Ecore_X_Atom atom;
-   xcb_intern_atom_cookie_t acookie;
-   xcb_intern_atom_reply_t *areply;
-   char buff[32];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   snprintf(buff, sizeof(buff), "_NET_WM_CM_S%i", screen);
-   acookie = xcb_intern_atom_unchecked(_ecore_xcb_conn, 0, strlen(buff), buff);
-   areply = xcb_intern_atom_reply(_ecore_xcb_conn, acookie, NULL);
-   if (!areply) return;
-   atom = areply->atom;
-   free(areply);
-   xcb_set_selection_owner(_ecore_xcb_conn, win, atom,
-                           _ecore_xcb_events_last_time_get());
-}
-
-EAPI void
-ecore_x_netwm_ping_send(Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_WM_PROTOCOLS;
-   ev.data.data32[0] = ECORE_X_ATOM_NET_WM_PING;
-   ev.data.data32[1] = ecore_x_current_time_get();
-   ev.data.data32[2] = win;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_netwm_frame_size_set(Ecore_X_Window win,
-                             int            fl,
-                             int            fr,
-                             int            ft,
-                             int            fb)
-{
-   uint32_t frames[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   frames[0] = fl;
-   frames[1] = fr;
-   frames[2] = ft;
-   frames[3] = fb;
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_FRAME_EXTENTS,
-                                  frames, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_frame_size_get(Ecore_X_Window win,
-                             int           *fl,
-                             int           *fr,
-                             int           *ft,
-                             int           *fb)
-{
-   int ret = 0;
-   unsigned int frames[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_FRAME_EXTENTS,
-                                        frames, 4);
-   if (ret != 4) return EINA_FALSE;
-
-   if (fl) *fl = frames[0];
-   if (fr) *fr = frames[1];
-   if (ft) *ft = frames[2];
-   if (fb) *fb = frames[3];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_sync_request_send(Ecore_X_Window win,
-                                unsigned int   serial)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-
-   /* FIXME: Maybe need XSyncIntToValue ?? */
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_WM_PROTOCOLS;
-   ev.data.data32[0] = ECORE_X_ATOM_NET_WM_SYNC_REQUEST;
-   ev.data.data32[1] = _ecore_xcb_events_last_time_get();
-   ev.data.data32[2] = serial;
-   ev.data.data32[3] = 0;
-   ev.data.data32[4] = 0;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_netwm_desktop_set(Ecore_X_Window win,
-                          unsigned int   desk)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_DESKTOP, &desk, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_desktop_get(Ecore_X_Window win,
-                          unsigned int  *desk)
-{
-   unsigned int tmp = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_DESKTOP,
-                                       &tmp, 1))
-     return EINA_FALSE;
-
-   if (desk) *desk = tmp;
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_desktop_request_send(Ecore_X_Window win,
-                                   Ecore_X_Window root,
-                                   unsigned int   desktop)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_NET_WM_DESKTOP;
-   ev.data.data32[0] = desktop;
-
-   xcb_send_event(_ecore_xcb_conn, 0, root,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_netwm_moveresize_request_send(Ecore_X_Window win,
-                                      int x,
-                                      int y,
-                                      Ecore_X_Netwm_Direction direction,
-                                      unsigned int button)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = ECORE_X_ATOM_NET_WM_MOVERESIZE;
-   ev.data.data32[0] = x;
-   ev.data.data32[1] = y;
-   ev.data.data32[2] = direction;
-   ev.data.data32[3] = button;
-   ev.data.data32[4] = 1;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win,
-                  (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-                   XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
-}
-
-EAPI void
-ecore_x_netwm_handled_icons_set(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_HANDLED_ICONS,
-                                  NULL, 0);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_handled_icons_get(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_HANDLED_ICONS,
-                                       NULL, 0))
-     return EINA_FALSE;
-
-   return EINA_TRUE;
-}
-
-EAPI int
-ecore_x_netwm_icon_name_get(Ecore_X_Window win,
-                            char         **name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (name)
-     {
-        *name =
-          ecore_x_window_prop_string_get(win, ECORE_X_ATOM_NET_WM_ICON_NAME);
-     }
-
-   return 1;
-}
-
-EAPI void
-ecore_x_netwm_icon_name_set(Ecore_X_Window win,
-                            const char    *name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_ICON_NAME, name);
-}
-
-EAPI void
-ecore_x_netwm_icons_set(Ecore_X_Window win,
-                        Ecore_X_Icon *icon,
-                        int num)
-{
-   unsigned int *data, *p, *p2;
-   unsigned int i, size, x, y;
-   
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   size = 0;
-   for (i = 0; i < (unsigned int)num; i++)
-     {
-        size += 2 + (icon[i].width * icon[i].height);
-     }
-   data = malloc(size * sizeof(unsigned int));
-   if (!data) return;
-   p = data;
-   for (i = 0; i < (unsigned int)num; i++)
-     {
-        p[0] = icon[i].width;
-        p[1] = icon[i].height;
-        p += 2;
-        p2 = icon[i].data;
-        for (y = 0; y < icon[i].height; y++)
-          {
-             for (x = 0; x < icon[i].width; x++)
-               {
-                  unsigned int r, g, b, a;
-                  
-                  a = (*p2 >> 24) & 0xff;
-                  r = (*p2 >> 16) & 0xff;
-                  g = (*p2 >> 8 ) & 0xff;
-                  b = (*p2      ) & 0xff;
-                  if ((a > 0) && (a < 255))
-                    {
-                       r = (r * 255) / a;
-                       g = (g * 255) / a;
-                       b = (b * 255) / a;
-                    }
-                  *p = (a << 24) | (r << 16) | (g << 8) | b;
-                  p++;
-                  p2++;
-               }
-          }
-     }
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_ICON,
-                                  data, size);
-   free(data);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_icons_get(Ecore_X_Window win,
-                        Ecore_X_Icon **icon,
-                        int           *num)
-{
-   int num_ret = 0;
-   unsigned int i = 0, len = 0, icons = 0;
-   unsigned int *data, *p, *src;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (num) *num = 0;
-   if (icon) *icon = NULL;
-
-   num_ret =
-     ecore_x_window_prop_card32_list_get(win, ECORE_X_ATOM_NET_WM_ICON, &data);
-
-   if ((num_ret <= 0) || (!data))
-     {
-        if (data) free(data);
-        return EINA_FALSE;
-     }
-   if (num_ret < 2)
-     {
-        if (data) free(data);
-        return EINA_FALSE;
-     }
-
-   icons = 0;
-   p = data;
-   while (p)
-     {
-        len = (p[0] * p[1]);
-        p += (len + 2);
-        if ((p - data) > num_ret)
-          {
-             if (data) free(data);
-             return EINA_FALSE;
-          }
-        icons++;
-        if ((p - data) == num_ret) p = NULL;
-     }
-   if (num) *num = icons;
-   if (!icon)
-     {
-        if (data) free(data);
-        return EINA_TRUE;
-     }
-
-   *icon = malloc(icons * sizeof(Ecore_X_Icon));
-   if (!(*icon))
-     {
-        if (data) free(data);
-        return EINA_FALSE;
-     }
-
-   /* Fetch the icons */
-   p = data;
-   for (i = 0; i < icons; i++)
-     {
-        unsigned int *ps, *pd, *pe;
-
-        len = p[0] * p[1];
-        ((*icon)[i]).width = p[0];
-        ((*icon)[i]).height = p[1];
-        src = &(p[2]);
-        ((*icon)[i]).data = malloc(len * sizeof(unsigned int));
-        if (!((*icon)[i]).data)
-          {
-             while (i)
-               free(((*icon)[--i]).data);
-             free(*icon);
-             free(data);
-             return EINA_FALSE;
-          }
-
-        pd = ((*icon)[i]).data;
-        ps = src;
-        pe = ps + len;
-        for (; ps < pe; ps++)
-          {
-             unsigned int r, g, b, a;
-
-             a = (*ps >> 24) & 0xff;
-             r = (((*ps >> 16) & 0xff) * a) / 255;
-             g = (((*ps >> 8) & 0xff) * a) / 255;
-             b = (((*ps) & 0xff) * a) / 255;
-             *pd = (a << 24) | (r << 16) | (g << 8) | (b);
-             pd++;
-          }
-        p += (len + 2);
-     }
-
-   if (data) free(data);
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_icon_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_NET_WM_ICON_GEOMETRY,
-                                  geom, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_icon_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_NET_WM_ICON_GEOMETRY,
-                                    geom, 4);
-   if (ret != 4) return EINA_FALSE;
-   if (x) *x = geom[0];
-   if (y) *y = geom[1];
-   if (w) *w = geom[2];
-   if (h) *h = geom[3];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_strut_set(Ecore_X_Window win,
-                        int            l,
-                        int            r,
-                        int            t,
-                        int            b)
-{
-   unsigned int strut[4];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   strut[0] = l;
-   strut[1] = r;
-   strut[2] = t;
-   strut[3] = b;
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_STRUT, strut, 4);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_strut_get(Ecore_X_Window win,
-                        int           *l,
-                        int           *r,
-                        int           *t,
-                        int           *b)
-{
-   unsigned int strut[4];
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret =
-     ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_STRUT, strut, 4);
-   if (ret != 4) return EINA_FALSE;
-
-   if (l) *l = strut[0];
-   if (r) *r = strut[1];
-   if (t) *t = strut[2];
-   if (b) *b = strut[3];
-
-   return EINA_TRUE;
-}
-
-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)
-{
-   unsigned int strut[12];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   strut[0] = left;
-   strut[1] = right;
-   strut[2] = top;
-   strut[3] = bottom;
-   strut[4] = left_start_y;
-   strut[5] = left_end_y;
-   strut[6] = right_start_y;
-   strut[7] = right_end_y;
-   strut[8] = top_start_x;
-   strut[9] = top_end_x;
-   strut[10] = bottom_start_x;
-   strut[11] = bottom_end_x;
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_STRUT_PARTIAL,
-                                  strut, 12);
-}
-
-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)
-{
-   unsigned int strut[12];
-   int ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ret =
-     ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_STRUT_PARTIAL,
-                                    strut, 12);
-   if (ret != 12) return EINA_FALSE;
-
-   if (left) *left = strut[0];
-   if (right) *right = strut[1];
-   if (top) *top = strut[2];
-   if (bottom) *bottom = strut[3];
-   if (left_start_y) *left_start_y = strut[4];
-   if (left_end_y) *left_end_y = strut[5];
-   if (right_start_y) *right_start_y = strut[6];
-   if (right_end_y) *right_end_y = strut[7];
-   if (top_start_x) *top_start_x = strut[8];
-   if (top_end_x) *top_end_x = strut[9];
-   if (bottom_start_x) *bottom_start_x = strut[10];
-   if (bottom_end_x) *bottom_end_x = strut[11];
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_user_time_set(Ecore_X_Window win,
-                            unsigned int   t)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_USER_TIME, &t, 1);
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_user_time_get(Ecore_X_Window win,
-                            unsigned int  *t)
-{
-   unsigned int tmp;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_USER_TIME,
-                                       &tmp, 1))
-     return EINA_FALSE;
-
-   if (t) *t = tmp;
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_visible_name_set(Ecore_X_Window win,
-                               const char    *name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_VISIBLE_NAME,
-                                  name);
-}
-
-EAPI int
-ecore_x_netwm_visible_name_get(Ecore_X_Window win,
-                               char         **name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (name)
-     *name = ecore_x_window_prop_string_get(win,
-                                            ECORE_X_ATOM_NET_WM_VISIBLE_NAME);
-   return 1;
-}
-
-EAPI void
-ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win,
-                                    const char    *name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME,
-                                  name);
-}
-
-EAPI int
-ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win,
-                                    char         **name)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (name)
-     {
-        *name =
-          ecore_x_window_prop_string_get(win,
-                                         ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME);
-     }
-
-   return 1;
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_sync_counter_get(Ecore_X_Window        win,
-                               Ecore_X_Sync_Counter *counter)
-{
-   unsigned int tmp;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!ecore_x_window_prop_card32_get(win,
-                                       ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER,
-                                       &tmp, 1))
-     return EINA_FALSE;
-
-   if (counter) *counter = tmp;
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_allowed_action_isset(Ecore_X_Window win,
-                                   Ecore_X_Action action)
-{
-   int num = 0, i = 0;
-   Ecore_X_Atom *atoms, atom;
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   num =
-     ecore_x_window_prop_atom_list_get(win, ECORE_X_ATOM_NET_WM_WINDOW_TYPE,
-                                       &atoms);
-   if (num <= 0) return EINA_FALSE;
-
-   atom = _ecore_xcb_netwm_action_atom_get(action);
-   for (i = 0; i < num; i++)
-     {
-        if (atoms[i] == atom)
-          {
-             ret = EINA_TRUE;
-             break;
-          }
-     }
-
-   if (atoms) free(atoms);
-   return ret;
-}
-
-EAPI Eina_Bool
-ecore_x_netwm_allowed_action_get(Ecore_X_Window   win,
-                                 Ecore_X_Action **action,
-                                 unsigned int    *num)
-{
-   Ecore_X_Atom *atoms;
-   int num_ret = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (num) *num = 0;
-   if (action) *action = NULL;
-
-   num_ret =
-     ecore_x_window_prop_atom_list_get(win, ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS,
-                                       &atoms);
-   if (num_ret <= 0) return EINA_FALSE;
-   if (action)
-     {
-        *action = malloc(num_ret * sizeof(Ecore_X_Action));
-        if (*action)
-          {
-             int i = 0;
-
-             for (i = 0; i < num_ret; i++)
-               (*action)[i] = _ecore_xcb_netwm_action_atom_get(atoms[i]);
-          }
-        if (num) *num = num_ret;
-     }
-   free(atoms);
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_netwm_allowed_action_set(Ecore_X_Window  win,
-                                 Ecore_X_Action *action,
-                                 unsigned int    num)
-{
-   Ecore_X_Atom *set;
-   unsigned int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!num)
-     {
-        ecore_x_window_prop_property_del(win,
-                                         ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS);
-        return;
-     }
-
-   set = malloc(num * sizeof(Ecore_X_Atom));
-   if (!set) return;
-
-   for (i = 0; i < num; i++)
-     set[i] = _ecore_xcb_netwm_action_atom_get(action[i]);
-
-   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS,
-                                set, num);
-   free(set);
-}
-
-/* local functions */
-int
-_ecore_xcb_netwm_startup_info_begin(Ecore_X_Window win EINA_UNUSED,
-                                    uint8_t        data EINA_UNUSED)
-{
-   // TODO: TBD
-     return 1;
-}
-
-int
-_ecore_xcb_netwm_startup_info(Ecore_X_Window win EINA_UNUSED,
-                              uint8_t        data EINA_UNUSED)
-{
-   // TODO: TBD
-     return 1;
-}
-
-/* static void  */
-/* _ecore_xcb_netwm_startup_info_free(void *data)  */
-/* { */
-/*    Ecore_Xcb_Startup_Info *info; */
-
-/*    LOGFN(__FILE__, __LINE__, __FUNCTION__); */
-
-/*    if (!(info = data)) return; */
-/*    if (info->buffer) free(info->buffer); */
-/*    if (info->id) free(info->id); */
-/*    if (info->name) free(info->name); */
-/*    if (info->bin) free(info->bin); */
-/*    if (info->icon) free(info->icon); */
-/*    if (info->description) free(info->description); */
-/*    if (info->wmclass) free(info->wmclass); */
-/*    free(info); */
-/* } */
-
-static Ecore_X_Atom
-_ecore_xcb_netwm_window_type_atom_get(Ecore_X_Window_Type type)
-{
-   switch (type)
-     {
-      case ECORE_X_WINDOW_TYPE_DESKTOP:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP;
-
-      case ECORE_X_WINDOW_TYPE_DOCK:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK;
-
-      case ECORE_X_WINDOW_TYPE_TOOLBAR:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR;
-
-      case ECORE_X_WINDOW_TYPE_MENU:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU;
-
-      case ECORE_X_WINDOW_TYPE_UTILITY:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY;
-
-      case ECORE_X_WINDOW_TYPE_SPLASH:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH;
-
-      case ECORE_X_WINDOW_TYPE_DIALOG:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG;
-
-      case ECORE_X_WINDOW_TYPE_NORMAL:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL;
-
-      case ECORE_X_WINDOW_TYPE_DROPDOWN_MENU:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU;
-
-      case ECORE_X_WINDOW_TYPE_POPUP_MENU:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU;
-
-      case ECORE_X_WINDOW_TYPE_TOOLTIP:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP;
-
-      case ECORE_X_WINDOW_TYPE_NOTIFICATION:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION;
-
-      case ECORE_X_WINDOW_TYPE_COMBO:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO;
-
-      case ECORE_X_WINDOW_TYPE_DND:
-        return ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND;
-
-      default:
-        return 0;
-     }
-}
-
-static Ecore_X_Window_Type
-_ecore_xcb_netwm_window_type_type_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP)
-     return ECORE_X_WINDOW_TYPE_DESKTOP;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK)
-     return ECORE_X_WINDOW_TYPE_DOCK;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR)
-     return ECORE_X_WINDOW_TYPE_TOOLBAR;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU)
-     return ECORE_X_WINDOW_TYPE_MENU;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY)
-     return ECORE_X_WINDOW_TYPE_UTILITY;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH)
-     return ECORE_X_WINDOW_TYPE_SPLASH;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG)
-     return ECORE_X_WINDOW_TYPE_DIALOG;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL)
-     return ECORE_X_WINDOW_TYPE_NORMAL;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU)
-     return ECORE_X_WINDOW_TYPE_DROPDOWN_MENU;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU)
-     return ECORE_X_WINDOW_TYPE_POPUP_MENU;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP)
-     return ECORE_X_WINDOW_TYPE_TOOLTIP;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION)
-     return ECORE_X_WINDOW_TYPE_NOTIFICATION;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO)
-     return ECORE_X_WINDOW_TYPE_COMBO;
-   else if (atom == ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND)
-     return ECORE_X_WINDOW_TYPE_DND;
-   else
-     return ECORE_X_WINDOW_TYPE_UNKNOWN;
-}
-
-static Ecore_X_Atom
-_ecore_xcb_netwm_window_state_atom_get(Ecore_X_Window_State state)
-{
-   switch (state)
-     {
-      case ECORE_X_WINDOW_STATE_MODAL:
-        return ECORE_X_ATOM_NET_WM_STATE_MODAL;
-
-      case ECORE_X_WINDOW_STATE_STICKY:
-        return ECORE_X_ATOM_NET_WM_STATE_STICKY;
-
-      case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
-        return ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT;
-
-      case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
-        return ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ;
-
-      case ECORE_X_WINDOW_STATE_SHADED:
-        return ECORE_X_ATOM_NET_WM_STATE_SHADED;
-
-      case ECORE_X_WINDOW_STATE_SKIP_TASKBAR:
-        return ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR;
-
-      case ECORE_X_WINDOW_STATE_SKIP_PAGER:
-        return ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER;
-
-      case ECORE_X_WINDOW_STATE_HIDDEN:
-        return ECORE_X_ATOM_NET_WM_STATE_HIDDEN;
-
-      case ECORE_X_WINDOW_STATE_FULLSCREEN:
-        return ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN;
-
-      case ECORE_X_WINDOW_STATE_ABOVE:
-        return ECORE_X_ATOM_NET_WM_STATE_ABOVE;
-
-      case ECORE_X_WINDOW_STATE_BELOW:
-        return ECORE_X_ATOM_NET_WM_STATE_BELOW;
-
-      case ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION:
-        return ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION;
-
-      default:
-        return 0;
-     }
-}
-
-Ecore_X_Window_State
-_ecore_xcb_netwm_window_state_get(Ecore_X_Atom atom)
-{
-   if (atom == ECORE_X_ATOM_NET_WM_STATE_MODAL)
-     return ECORE_X_WINDOW_STATE_MODAL;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_STICKY)
-     return ECORE_X_WINDOW_STATE_STICKY;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT)
-     return ECORE_X_WINDOW_STATE_MAXIMIZED_VERT;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ)
-     return ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_SHADED)
-     return ECORE_X_WINDOW_STATE_SHADED;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR)
-     return ECORE_X_WINDOW_STATE_SKIP_TASKBAR;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER)
-     return ECORE_X_WINDOW_STATE_SKIP_PAGER;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_HIDDEN)
-     return ECORE_X_WINDOW_STATE_HIDDEN;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN)
-     return ECORE_X_WINDOW_STATE_FULLSCREEN;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_ABOVE)
-     return ECORE_X_WINDOW_STATE_ABOVE;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_BELOW)
-     return ECORE_X_WINDOW_STATE_BELOW;
-   else if (atom == ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION)
-     return ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION;
-   else
-     return ECORE_X_WINDOW_STATE_UNKNOWN;
-}
-
-static Ecore_X_Atom
-_ecore_xcb_netwm_action_atom_get(Ecore_X_Action action)
-{
-   switch (action)
-     {
-      case ECORE_X_ACTION_MOVE:
-        return ECORE_X_ATOM_NET_WM_ACTION_MOVE;
-
-      case ECORE_X_ACTION_RESIZE:
-        return ECORE_X_ATOM_NET_WM_ACTION_RESIZE;
-
-      case ECORE_X_ACTION_MINIMIZE:
-        return ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE;
-
-      case ECORE_X_ACTION_SHADE:
-        return ECORE_X_ATOM_NET_WM_ACTION_SHADE;
-
-      case ECORE_X_ACTION_STICK:
-        return ECORE_X_ATOM_NET_WM_ACTION_STICK;
-
-      case ECORE_X_ACTION_MAXIMIZE_HORZ:
-        return ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ;
-
-      case ECORE_X_ACTION_MAXIMIZE_VERT:
-        return ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT;
-
-      case ECORE_X_ACTION_FULLSCREEN:
-        return ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN;
-
-      case ECORE_X_ACTION_CHANGE_DESKTOP:
-        return ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP;
-
-      case ECORE_X_ACTION_CLOSE:
-        return ECORE_X_ATOM_NET_WM_ACTION_CLOSE;
-
-      case ECORE_X_ACTION_ABOVE:
-        return ECORE_X_ATOM_NET_WM_ACTION_ABOVE;
-
-      case ECORE_X_ACTION_BELOW:
-        return ECORE_X_ATOM_NET_WM_ACTION_BELOW;
-
-      default:
-        return 0;
-     }
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_pixmap.c b/src/lib/ecore_x/xcb/ecore_xcb_pixmap.c
deleted file mode 100644 (file)
index 0c04a2a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#include "ecore_xcb_private.h"
-
-/**
- * @defgroup Ecore_X_Pixmap_Group X Pixmap Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that operate on pixmaps.
- */
-
-/**
- * Creates a new pixmap.
- * @param   win Window used to determine which screen of the display the
- *              pixmap should be created on.  If 0, the default root window
- *              is used.
- * @param   w   Width of the new pixmap.
- * @param   h   Height of the new pixmap.
- * @param   dep Depth of the pixmap.  If 0, the default depth of the default
- *              screen is used.
- * @return  New pixmap.
- * @ingroup Ecore_X_Pixmap_Group
- */
-EAPI Ecore_X_Pixmap
-ecore_x_pixmap_new(Ecore_X_Window win,
-                   int            w,
-                   int            h,
-                   int            dep)
-{
-   Ecore_X_Pixmap pmap;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (win == 0) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   if (dep == 0) dep = ((xcb_screen_t *)_ecore_xcb_screen)->root_depth;
-
-   pmap = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_pixmap(_ecore_xcb_conn, dep, pmap, win, w, h);
-
-//   ecore_x_flush();
-   return pmap;
-}
-
-/**
- * Deletes the reference to the given pixmap.
- *
- * If no other clients have a reference to the given pixmap, the server
- * will destroy it.
- *
- * @param   pmap The given pixmap.
- * @ingroup Ecore_X_Pixmap_Group
- */
-EAPI void
-ecore_x_pixmap_free(Ecore_X_Pixmap pmap)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_free_pixmap(_ecore_xcb_conn, pmap);
-//   ecore_x_flush();
-}
-
-/**
- * Pastes a rectangular area of the given pixmap onto the given drawable.
- * @param   pmap The given pixmap.
- * @param   dest The given drawable.
- * @param   gc   The graphics context which governs which operation will
- *               be used to paste the area onto the drawable.
- * @param   sx   The X position of the area on the pixmap.
- * @param   sy   The Y position of the area on the pixmap.
- * @param   w    The width of the area.
- * @param   h    The height of the area.
- * @param   dx   The X position at which to paste the area on @p dest.
- * @param   dy   The Y position at which to paste the area on @p dest.
- * @ingroup Ecore_X_Pixmap_Group
- */
-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)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_copy_area(_ecore_xcb_conn, pmap, dest, gc, sx, sy, dx, dy, w, h);
-//   ecore_x_flush();
-}
-
-/**
- * Retrieves the size of the given pixmap.
- * @param   pmap The given pixmap.
- * @param   x    Pointer to an integer in which to store the X position.
- * @param   y    Pointer to an integer in which to store the Y position.
- * @param   w    Pointer to an integer in which to store the width.
- * @param   h    Pointer to an integer in which to store the height.
- * @ingroup Ecore_X_Pixmap_Group
- */
-EAPI void
-ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap,
-                            int           *x,
-                            int           *y,
-                            int           *w,
-                            int           *h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (pmap)
-     ecore_x_drawable_geometry_get(pmap, x, y, w, h);
-}
-
-/**
- * Retrieves the depth of the given pixmap.
- * @param   pmap The given pixmap.
- * @return  The depth of the pixmap.
- * @ingroup Ecore_X_Pixmap_Group
- */
-EAPI int
-ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_drawable_depth_get(pmap);
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_present.c b/src/lib/ecore_x/xcb/ecore_xcb_present.c
deleted file mode 100644 (file)
index f722fb4..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-#include "ecore_xcb_private.h"
-# ifdef ECORE_XCB_XPRESENT
-#  include <xcb/present.h>
-# endif
-
-/* local variables */
-static Eina_Bool _xpresent_avail = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_xpresent = -1;
-
-void
-_ecore_xcb_xpresent_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XPRESENT
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_present_id);
-#endif
-}
-
-void
-_ecore_xcb_xpresent_finalize(void)
-{
-#ifdef ECORE_XCB_XPRESENT
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XPRESENT
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_present_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_present_query_version_cookie_t cookie;
-        xcb_present_query_version_reply_t *reply;
-
-        cookie =
-          xcb_present_query_version_unchecked(_ecore_xcb_conn,
-                                             XCB_PRESENT_MAJOR_VERSION,
-                                             XCB_PRESENT_MINOR_VERSION);
-        reply = xcb_present_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-                _xpresent_avail = EINA_TRUE;
-                free(reply);
-          }
-
-        if (_xpresent_avail)
-          _ecore_xcb_event_xpresent = ext_reply->first_event;
-     }
-#endif
-}
-
-#ifdef ECORE_XCB_XPRESENT
-#define SET(X) e->X = ev->X
-
-static void
-_present_configure(xcb_present_configure_notify_event_t *ev)
-{
-   Ecore_X_Event_Present_Configure *e;
-
-   e = calloc(1, sizeof(Ecore_X_Event_Present_Configure));
-   if (!e) return;
-
-   e->win = ev->window;
-   SET(x), SET(y);
-   SET(width), SET(height);
-   SET(off_x), SET(off_y);
-   SET(pixmap_width), SET(pixmap_height);
-   SET(pixmap_flags);
-
-   ecore_event_add(ECORE_X_EVENT_PRESENT_CONFIGURE, e, NULL, NULL);
-}
-
-static void
-_present_complete(xcb_present_complete_notify_event_t *ev)
-{
-   unsigned int mode[] =
-   {
-    [XCB_PRESENT_COMPLETE_MODE_COPY] = ECORE_X_PRESENT_COMPLETE_MODE_COPY,
-    [XCB_PRESENT_COMPLETE_MODE_FLIP] = ECORE_X_PRESENT_COMPLETE_MODE_FLIP,
-    [XCB_PRESENT_COMPLETE_MODE_SKIP] = ECORE_X_PRESENT_COMPLETE_MODE_SKIP,
-   };
-   Ecore_X_Event_Present_Complete *e;
-
-   e = calloc(1, sizeof(Ecore_X_Event_Present_Complete));
-   if (!e) return;
-
-   e->win = ev->window;
-   SET(serial);
-   SET(ust), SET(msc);
-   e->kind = (ev->kind == XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC);
-   e->mode = mode[ev->mode];
-   ecore_event_add(ECORE_X_EVENT_PRESENT_COMPLETE, e, NULL, NULL);
-}
-
-static void
-_present_idle(xcb_present_idle_notify_event_t *ev)
-{
-   Ecore_X_Event_Present_Idle *e;
-
-   e = calloc(1, sizeof(Ecore_X_Event_Present_Idle));
-   if (!e) return;
-
-   e->win = ev->window;
-   SET(serial);
-   SET(pixmap);
-   SET(idle_fence);
-   ecore_event_add(ECORE_X_EVENT_PRESENT_IDLE, e, NULL, NULL);
-}
-#undef SET
-
-void
-_ecore_xcb_event_handle_present_event(xcb_ge_event_t *ev)
-{
-   switch (ev->event_type)
-     {
-      case XCB_PRESENT_EVENT_CONFIGURE_NOTIFY:
-        _present_configure((xcb_present_configure_notify_event_t*)(long)ev->pad1);
-        break;
-      case XCB_PRESENT_EVENT_COMPLETE_NOTIFY:
-        _present_complete((xcb_present_complete_notify_event_t*)(long)ev->pad1);
-        break;
-      case XCB_PRESENT_EVENT_IDLE_NOTIFY:
-        _present_idle((xcb_present_idle_notify_event_t*)(long)ev->pad1);
-        break;
-      default: break;
-     }
-}
-#endif
-
-
-EAPI void
-ecore_x_present_select_events(Ecore_X_Window win, unsigned int events)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-#ifdef ECORE_XCB_XPRESENT
-   CHECK_XCB_CONN;
-   xcb_present_select_input(_ecore_xcb_conn, _ecore_xcb_event_xpresent, win, events);
-#else
-   (void)win;
-   (void)events;
-#endif
-}
-
-EAPI void
-ecore_x_present_notify_msc(Ecore_X_Window win, unsigned int serial, unsigned long long target_msc, unsigned long long divisor, unsigned long long remainder)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-#ifdef ECORE_XCB_XPRESENT
-   CHECK_XCB_CONN;
-   xcb_present_notify_msc(_ecore_xcb_conn, win, serial, target_msc, divisor, remainder);
-#else
-   (void)win;
-   (void)serial;
-   (void)target_msc;
-   (void)divisor;
-   (void)remainder;
-#endif
-}
-
-EAPI void
-ecore_x_present_pixmap(Ecore_X_Window win, Ecore_X_Pixmap pixmap, unsigned int serial, Ecore_X_Region valid,
-                       Ecore_X_Region update, int x_off, int y_off, Ecore_X_Randr_Crtc target_crtc,
-                       Ecore_X_Sync_Fence wait_fence, Ecore_X_Sync_Fence idle_fence, unsigned int options,
-                       unsigned long long target_msc, unsigned long long divisor, unsigned long long remainder,
-                       Ecore_X_Present *notifies, int num_notifies)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-#ifdef ECORE_XCB_XPRESENT
-   CHECK_XCB_CONN;
-   xcb_present_pixmap(_ecore_xcb_conn, win, pixmap, serial, valid, update,
-                  x_off, y_off, target_crtc, wait_fence, idle_fence, options, target_msc,
-                  divisor, remainder, num_notifies, (xcb_present_notify_t*)notifies);
-#else
-   (void)win;
-   (void)pixmap;
-   (void)serial;
-   (void)valid;
-   (void)update;
-   (void)x_off;
-   (void)y_off;
-   (void)target_crtc;
-   (void)wait_fence;
-   (void)idle_fence;
-   (void)options;
-   (void)target_msc;
-   (void)divisor;
-   (void)remainder;
-   (void)notifies;
-   (void)num_notifies;
-#endif
-}
-
-EAPI Eina_Bool
-ecore_x_present_exists(void)
-{
-   return _xpresent_avail;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_private.h b/src/lib/ecore_x/xcb/ecore_xcb_private.h
deleted file mode 100644 (file)
index f56ecac..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-#ifndef __ECORE_XCB_PRIVATE_H__
-# define __ECORE_XCB_PRIVATE_H__
-
-//# define LOGFNS 1
-
-# ifdef HAVE_CONFIG_H
-#  include "config.h"
-# endif
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-
-# include <unistd.h> // included for close & gethostname functions
-
-/* generic xcb includes */
-# include <xcb/xcb.h>
-# include <xcb/bigreq.h>
-# include <xcb/shm.h>
-# include <xcb/xcb_image.h>
-
-/* EFL includes */
-# include "Ecore.h"
-# include "Ecore_Input.h"
-# include "Ecore_X.h"
-
-/* logging */
-extern int _ecore_xcb_log_dom;
-
-# ifdef ECORE_XCB_DEFAULT_LOG_COLOR
-#  undef ECORE_XCB_DEFAULT_LOG_COLOR
-# endif
-# define ECORE_XCB_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
-
-# ifdef ERR
-#  undef ERR
-# endif
-# define ERR(...) EINA_LOG_DOM_ERR(_ecore_xcb_log_dom, __VA_ARGS__)
-
-# ifdef DBG
-#  undef DBG
-# endif
-# define DBG(...) EINA_LOG_DOM_DBG(_ecore_xcb_log_dom, __VA_ARGS__)
-
-# ifdef INF
-#  undef INF
-# endif
-# define INF(...) EINA_LOG_DOM_INFO(_ecore_xcb_log_dom, __VA_ARGS__)
-
-# ifdef WRN
-#  undef WRN
-# endif
-# define WRN(...) EINA_LOG_DOM_WARN(_ecore_xcb_log_dom, __VA_ARGS__)
-
-# ifdef CRI
-#  undef CRI
-# endif
-# define CRI(...)          EINA_LOG_DOM_CRIT(_ecore_xcb_log_dom, __VA_ARGS__)
-
-# ifdef LOGFNS
-#  include <stdio.h>
-#  define LOGFN(fl, ln, fn) printf("-ECORE-XCB: %25s: %5i - %s\n", fl, ln, fn);
-# else
-#  define LOGFN(fl, ln, fn)
-# endif
-
-# ifndef MAXHOSTNAMELEN
-#  define MAXHOSTNAMELEN 256
-# endif
-
-#define CHECK_XCB_CONN                              \
-  {                                                 \
-     if (!_ecore_xcb_conn || xcb_connection_has_error(_ecore_xcb_conn)) \
-       {                                            \
-          DBG("XCB Connection Has Error !!");       \
-          _ecore_xcb_io_error_handle(NULL);         \
-       }                                            \
-  }
-
-/* enums */
-typedef enum _Ecore_Xcb_Encoding_Style Ecore_Xcb_Encoding_Style;
-
-enum _Ecore_Xcb_Encoding_Style
-{
-   XcbStringStyle,
-   XcbCompoundTextStyle,
-   XcbTextStyle,
-   XcbStdICCTextStyle,
-   XcbUTF8StringStyle
-};
-
-/* structures */
-typedef struct _Ecore_X_DND_Source          Ecore_X_DND_Source;
-typedef struct _Ecore_X_DND_Target          Ecore_X_DND_Target;
-typedef struct _Ecore_X_Selection_Intern    Ecore_X_Selection_Intern;
-typedef struct _Ecore_X_Selection_Converter Ecore_X_Selection_Converter;
-typedef struct _Ecore_X_Selection_Parser    Ecore_X_Selection_Parser;
-typedef struct _Ecore_Xcb_Textproperty      Ecore_Xcb_Textproperty;
-
-struct _Ecore_X_DND_Source
-{
-   int            version;
-   Ecore_X_Window win, dest;
-
-   enum
-   {
-      ECORE_X_DND_SOURCE_IDLE,
-      ECORE_X_DND_SOURCE_DRAGGING,
-      ECORE_X_DND_SOURCE_DROPPED,
-      ECORE_X_DND_SOURCE_CONVERTING
-   } state;
-
-   struct
-   {
-      short          x, y;
-      unsigned short width, height;
-   } rectangle;
-
-   struct
-   {
-      Ecore_X_Window window;
-      int            x, y;
-   } prev;
-
-   Ecore_X_Time time;
-
-   Ecore_X_Atom action, accepted_action;
-
-   int          will_accept, suppress;
-   int          await_status;
-};
-
-struct _Ecore_X_DND_Target
-{
-   int            version;
-   Ecore_X_Window win, source;
-
-   enum
-   {
-      ECORE_X_DND_TARGET_IDLE,
-      ECORE_X_DND_TARGET_ENTERED
-   } state;
-
-   struct
-   {
-      int x, y;
-   } pos;
-
-   Ecore_X_Time time;
-
-   Ecore_X_Atom action, accepted_action;
-   int          will_accept;
-};
-
-struct _Ecore_X_Selection_Intern
-{
-   Ecore_X_Window win;
-   Ecore_X_Atom   selection;
-   unsigned char *data;
-   int            length;
-   Ecore_X_Time   time;
-};
-
-struct _Ecore_X_Selection_Converter
-{
-   Ecore_X_Atom                 target;
-   Eina_Bool                    (*convert)(char *target,
-                                           void *data,
-                                           int size,
-                                           void **data_ret,
-                                           int *size_ret,
-                                           Ecore_X_Atom *type,
-                                           int *size_type);
-   Ecore_X_Selection_Converter *next;
-};
-
-struct _Ecore_X_Selection_Parser
-{
-   char                     *target;
-   void                     *(*parse)(const char *target, void *data, int size, int format);
-   Ecore_X_Selection_Parser *next;
-};
-
-struct _Ecore_Xcb_Textproperty
-{
-   char        *value;
-   Ecore_X_Atom encoding;
-   unsigned int format, nitems;
-};
-
-/* external variables */
-extern Ecore_X_Connection *_ecore_xcb_conn;
-extern Ecore_X_Screen *_ecore_xcb_screen;
-extern double _ecore_xcb_double_click_time;
-extern int16_t _ecore_xcb_event_last_root_x;
-extern int16_t _ecore_xcb_event_last_root_y;
-
-/* external variables for extension events */
-extern int _ecore_xcb_event_damage;
-extern int _ecore_xcb_event_randr;
-extern int _ecore_xcb_event_screensaver;
-extern int _ecore_xcb_event_shape;
-extern int _ecore_xcb_event_sync;
-extern int _ecore_xcb_event_xfixes;
-extern int _ecore_xcb_event_input;
-extern int _ecore_xcb_event_gesture;
-
-extern Ecore_X_Atom _ecore_xcb_atoms_wm_protocol[ECORE_X_WM_PROTOCOL_NUM];
-
-extern int _ecore_xcb_button_grabs_num;
-extern int _ecore_xcb_key_grabs_num;
-extern Ecore_X_Window *_ecore_xcb_button_grabs;
-extern Ecore_X_Window *_ecore_xcb_key_grabs;
-extern Eina_Bool (*_ecore_xcb_window_grab_replay_func)(void *data,
-                                                       int type,
-                                                       void *event);
-extern void *_ecore_xcb_window_grab_replay_data;
-
-/* private function prototypes */
-void _ecore_xcb_error_handler_init(void);
-void _ecore_xcb_error_handler_shutdown(void);
-
-void _ecore_xcb_atoms_init(void);
-void _ecore_xcb_atoms_finalize(void);
-
-void _ecore_xcb_extensions_init(void);
-void _ecore_xcb_extensions_finalize(void);
-
-void _ecore_xcb_shape_init(void);
-void _ecore_xcb_shape_finalize(void);
-
-void _ecore_xcb_screensaver_init(void);
-void _ecore_xcb_screensaver_finalize(void);
-
-void _ecore_xcb_sync_init(void);
-void _ecore_xcb_sync_finalize(void);
-void _ecore_xcb_sync_magic_send(int val,
-                                Ecore_X_Window win);
-
-void                _ecore_xcb_render_init(void);
-void                _ecore_xcb_render_finalize(void);
-Eina_Bool           _ecore_xcb_render_argb_get(void);
-Eina_Bool           _ecore_xcb_render_anim_get(void);
-Eina_Bool           _ecore_xcb_render_avail_get(void);
-
-Eina_Bool           _ecore_xcb_render_visual_supports_alpha(Ecore_X_Visual visual);
-uint32_t            _ecore_xcb_render_find_visual_id(int type,
-                                                     Eina_Bool check_alpha);
-Ecore_X_Visual     *_ecore_xcb_render_visual_get(int visual_id);
-
-void                _ecore_xcb_randr_init(void);
-void                _ecore_xcb_randr_finalize(void);
-
-void _ecore_xcb_gesture_init(void);
-void _ecore_xcb_gesture_finalize(void);
-void _ecore_xcb_gesture_shutdown(void);
-
-void                _ecore_xcb_xfixes_init(void);
-void                _ecore_xcb_xfixes_finalize(void);
-Eina_Bool           _ecore_xcb_xfixes_avail_get(void);
-
-void                _ecore_xcb_damage_init(void);
-void                _ecore_xcb_damage_finalize(void);
-
-void                _ecore_xcb_composite_init(void);
-void                _ecore_xcb_composite_finalize(void);
-
-void                _ecore_xcb_present_init(void);
-void                _ecore_xcb_present_finalize(void);
-void                _ecore_xcb_event_handle_present_event(xcb_ge_event_t *ev);
-extern int _ecore_xcb_event_xpresent;
-
-void                _ecore_xcb_dpms_init(void);
-void                _ecore_xcb_dpms_finalize(void);
-
-void                _ecore_xcb_cursor_init(void);
-void                _ecore_xcb_cursor_finalize(void);
-
-void                _ecore_xcb_xinerama_init(void);
-void                _ecore_xcb_xinerama_finalize(void);
-
-void                _ecore_xcb_dnd_init(void);
-void                _ecore_xcb_dnd_shutdown(void);
-Ecore_X_DND_Source *_ecore_xcb_dnd_source_get(void);
-Ecore_X_DND_Target *_ecore_xcb_dnd_target_get(void);
-void                _ecore_xcb_dnd_drag(Ecore_X_Window root,
-                                        int x,
-                                        int y);
-
-void  _ecore_xcb_selection_init(void);
-void  _ecore_xcb_selection_shutdown(void);
-void *_ecore_xcb_selection_parse(const char *target,
-                                 void *data,
-                                 int size,
-                                 int format);
-char                     *_ecore_xcb_selection_target_get(Ecore_X_Atom target);
-Ecore_X_Selection_Intern *_ecore_xcb_selection_get(Ecore_X_Atom selection);
-
-# ifdef HAVE_ICONV
-Eina_Bool _ecore_xcb_utf8_textlist_to_textproperty(char **list,
-                                                   int count,
-                                                   Ecore_Xcb_Encoding_Style style,
-                                                   Ecore_Xcb_Textproperty *ret);
-# endif
-Eina_Bool _ecore_xcb_mb_textlist_to_textproperty(char **list,
-                                                 int count,
-                                                 Ecore_Xcb_Encoding_Style style,
-                                                 Ecore_Xcb_Textproperty *ret);
-Eina_Bool _ecore_xcb_textlist_to_textproperty(const char *type,
-                                              char **list,
-                                              int count,
-                                              Ecore_Xcb_Encoding_Style style,
-                                              Ecore_Xcb_Textproperty *ret);
-
-# ifdef HAVE_ICONV
-Eina_Bool _ecore_xcb_utf8_textproperty_to_textlist(const Ecore_Xcb_Textproperty *text_prop,
-                                                   char ***list_ret,
-                                                   int *count_ret);
-# endif
-Eina_Bool _ecore_xcb_mb_textproperty_to_textlist(const Ecore_Xcb_Textproperty *text_prop,
-                                                 char ***list_ret,
-                                                 int *count_ret);
-Eina_Bool _ecore_xcb_textproperty_to_textlist(const Ecore_Xcb_Textproperty *text_prop,
-                                              const char *type,
-                                              char ***list_ret,
-                                              int *count_ret);
-
-void         _ecore_xcb_events_init(void);
-void         _ecore_xcb_events_shutdown(void);
-void         _ecore_xcb_events_handle(xcb_generic_event_t *ev);
-Ecore_X_Time _ecore_xcb_events_last_time_get(void);
-unsigned int _ecore_xcb_events_modifiers_get(unsigned int state);
-void         _ecore_xcb_event_mouse_move(uint16_t timestamp,
-                                         uint16_t modifiers,
-                                         int16_t x,
-                                         int16_t y,
-                                         int16_t root_x,
-                                         int16_t root_y,
-                                         xcb_window_t event_win,
-                                         xcb_window_t win,
-                                         xcb_window_t root_win,
-                                         uint8_t same_screen,
-                                         int dev,
-                                         double radx,
-                                         double rady,
-                                         double pressure,
-                                         double angle,
-                                         int16_t mx,
-                                         int16_t my,
-                                         int16_t mrx,
-                                         int16_t mry);
-Ecore_Event_Mouse_Button *_ecore_xcb_event_mouse_button(int event,
-                                                        uint16_t timestamp,
-                                                        uint16_t modifiers,
-                                                        xcb_button_t buttons,
-                                                        int16_t x,
-                                                        int16_t y,
-                                                        int16_t root_x,
-                                                        int16_t root_y,
-                                                        xcb_window_t event_win,
-                                                        xcb_window_t win,
-                                                        xcb_window_t root_win,
-                                                        uint8_t same_screen,
-                                                        int dev,
-                                                        double radx,
-                                                        double rady,
-                                                        double pressure,
-                                                        double angle,
-                                                        int16_t mx,
-                                                        int16_t my,
-                                                        int16_t mrx,
-                                                        int16_t mry);
-
-void           _ecore_xcb_keymap_init(void);
-void           _ecore_xcb_keymap_finalize(void);
-void           _ecore_xcb_keymap_shutdown(void);
-void           _ecore_xcb_keymap_refresh(xcb_mapping_notify_event_t *event);
-xcb_keysym_t   _ecore_xcb_keymap_keycode_to_keysym(xcb_keycode_t keycode,
-                                                   int col);
-xcb_keycode_t *_ecore_xcb_keymap_keysym_to_keycode(xcb_keysym_t keysym);
-char          *_ecore_xcb_keymap_keysym_to_string(xcb_keysym_t keysym);
-xcb_keycode_t  _ecore_xcb_keymap_string_to_keycode(const char *key);
-int            _ecore_xcb_keymap_lookup_string(xcb_keycode_t keycode,
-                                               int state,
-                                               char *buffer,
-                                               int bytes,
-                                               xcb_keysym_t *sym);
-
-void _ecore_xcb_input_init(void);
-void _ecore_xcb_input_finalize(void);
-void _ecore_xcb_input_shutdown(void);
-# ifdef ECORE_XCB_XINPUT
-void _ecore_xcb_input_handle_event(xcb_generic_event_t *event);
-# else
-void _ecore_xcb_input_handle_event(xcb_generic_event_t *event);
-# endif
-
-void           _ecore_xcb_dri_init(void);
-void           _ecore_xcb_dri_finalize(void);
-
-void           _ecore_xcb_xtest_init(void);
-void           _ecore_xcb_xtest_finalize(void);
-
-Ecore_X_Window _ecore_xcb_window_root_of_screen_get(int screen);
-void           _ecore_xcb_window_prop_string_utf8_set(Ecore_X_Window win,
-                                                      Ecore_X_Atom atom,
-                                                      const char *str);
-Ecore_X_Visual _ecore_xcb_window_visual_get(Ecore_X_Window win);
-void           _ecore_xcb_window_button_grab_remove(Ecore_X_Window win);
-void           _ecore_xcb_window_key_grab_remove(Ecore_X_Window win);
-void           _ecore_xcb_window_grab_allow_events(Ecore_X_Window event_win,
-                                                   Ecore_X_Window child_win,
-                                                   int type,
-                                                   void *event,
-                                                   Ecore_X_Time timestamp);
-
-int                  _ecore_xcb_netwm_startup_info_begin(Ecore_X_Window win,
-                                                         uint8_t data);
-int                  _ecore_xcb_netwm_startup_info(Ecore_X_Window win,
-                                                   uint8_t data);
-Ecore_X_Window_State _ecore_xcb_netwm_window_state_get(Ecore_X_Atom atom);
-
-int                  _ecore_xcb_error_handle(xcb_generic_error_t *err);
-int                  _ecore_xcb_io_error_handle(xcb_generic_error_t *err);
-
-xcb_image_t         *_ecore_xcb_image_create_native(int w,
-                                                    int h,
-                                                    xcb_image_format_t format,
-                                                    uint8_t depth,
-                                                    void *base,
-                                                    uint32_t bytes,
-                                                    uint8_t *data);
-
-void  _ecore_xcb_xdefaults_init(void);
-void  _ecore_xcb_xdefaults_shutdown(void);
-char *_ecore_xcb_xdefaults_string_get(const char *prog,
-                                      const char *param);
-int   _ecore_xcb_xdefaults_int_get(const char *prog,
-                                   const char *param);
-
-void _ecore_xcb_modifiers_get(void);
-
-#endif
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_randr.c b/src/lib/ecore_x/xcb/ecore_xcb_randr.c
deleted file mode 100644 (file)
index 74ae2f8..0000000
+++ /dev/null
@@ -1,4323 +0,0 @@
-/* TODO: List of missing functions
- *
- * ecore_x_randr_edid_display_aspect_ratio_preferred_get
- * ecore_x_randr_edid_display_aspect_ratios_get
- * ecore_x_randr_edid_display_colorscheme_get
- * ecore_x_randr_edid_display_type_digital_get
- * ecore_x_randr_edid_display_interface_type_get
- * ecore_x_randr_output_subpixel_order_get
- * ecore_x_randr_output_wired_clones_get
- * ecore_x_randr_output_compatibility_list_get
- * ecore_x_randr_output_signal_formats_get
- * ecore_x_randr_output_signal_format_set
- * ecore_x_randr_output_signal_properties_get
- * ecore_x_randr_output_connector_number_get
- * ecore_x_randr_output_connector_type_get
- * ecore_x_randr_crtc_panning_area_get
- * ecore_x_randr_crtc_panning_area_set
- * ecore_x_randr_crtc_tracking_area_get
- * ecore_x_randr_crtc_tracking_area_set
- * ecore_x_randr_crtc_border_area_get
- * ecore_x_randr_crtc_border_area_set
- */
-
-#include "ecore_xcb_private.h"
-# ifdef ECORE_XCB_RANDR
-#  include <xcb/randr.h>
-# endif
-
-#define Ecore_X_Randr_None  0
-#define Ecore_X_Randr_Unset -1
-
-#define RANDR_1_1           ((1 << 16) | 1)
-#define RANDR_1_2           ((1 << 16) | 2)
-#define RANDR_1_3           ((1 << 16) | 3)
-#define RANDR_1_4           ((1 << 16) | 4)
-
-#define RANDR_CHECK_1_1_RET(ret) if (_randr_version < RANDR_1_1) return ret
-#define RANDR_CHECK_1_2_RET(ret) if (_randr_version < RANDR_1_2) return ret
-#define RANDR_CHECK_1_3_RET(ret) if (_randr_version < RANDR_1_3) return ret
-#define RANDR_CHECK_1_4_RET(ret) if (_randr_version < RANDR_1_4) return ret
-
-#define ECORE_X_RANDR_EDID_VERSION_13 ((1 << 8) | 3)
-#define _ECORE_X_RANDR_EDID_OFFSET_VERSION_MAJOR 0x12
-#define _ECORE_X_RANDR_EDID_OFFSET_VERSION_MINOR 0x13
-#define _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK 0x36
-#define _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_TYPE 3
-#define _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_CONTENT 5
-#define _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX 13
-#define _ECORE_X_RANDR_EDID_MANUFACTURER 0x08
-
-#define _ECORE_X_RANDR_EDID_FOR_EACH_DESCRIPTOR_BLOCK(edid, block) \
-  for (block = edid + _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK; block <= (edid + _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK + (3 * 18)); block += 18)
-
-#define _ECORE_X_RANDR_EDID_FOR_EACH_NON_PIXEL_DESCRIPTOR_BLOCK(edid, block) \
-  _ECORE_X_RANDR_EDID_FOR_EACH_DESCRIPTOR_BLOCK(edid, block)                 \
-  if ((block[0] == 0) && (block[1] == 0))
-
-#ifdef ECORE_XCB_RANDR
-# define RANDR_VALIDATE_ROOT(screen, root) \
-  ((screen = _ecore_xcb_randr_root_to_screen(root)) != -1)
-#endif
-
-/* local function prototypes */
-static Eina_Bool                                       _ecore_xcb_randr_output_validate(Ecore_X_Window       root,
-                                                                                        Ecore_X_Randr_Output output);
-static Eina_Bool                                       _ecore_xcb_randr_crtc_validate(Ecore_X_Window     root,
-                                                                                      Ecore_X_Randr_Crtc crtc);
-static Eina_Bool                                       _ecore_xcb_randr_root_validate(Ecore_X_Window root);
-static int                                             _ecore_xcb_randr_root_to_screen(Ecore_X_Window root);
-#ifdef ECORE_XCB_RANDR
-static xcb_randr_get_screen_resources_reply_t         *_ecore_xcb_randr_12_get_resources(Ecore_X_Window win);
-static xcb_randr_get_screen_resources_current_reply_t *_ecore_xcb_randr_13_get_resources(Ecore_X_Window win);
-#endif
-static xcb_timestamp_t                                 _ecore_xcb_randr_12_get_resource_timestamp(Ecore_X_Window win);
-static xcb_timestamp_t                                 _ecore_xcb_randr_13_get_resource_timestamp(Ecore_X_Window win);
-
-static Ecore_X_Randr_Mode                             *_ecore_xcb_randr_12_output_modes_get(Ecore_X_Window       root,
-                                                                                            Ecore_X_Randr_Output output,
-                                                                                            int                 *num,
-                                                                                            int                 *npreferred);
-static Ecore_X_Randr_Mode *_ecore_xcb_randr_13_output_modes_get(Ecore_X_Window       root,
-                                                                Ecore_X_Randr_Output output,
-                                                                int                 *num,
-                                                                int                 *npreferred);
-static Ecore_X_Randr_Mode_Info  *_ecore_xcb_randr_12_mode_info_get(Ecore_X_Window     root,
-                                                                   Ecore_X_Randr_Mode mode);
-static Ecore_X_Randr_Mode_Info  *_ecore_xcb_randr_13_mode_info_get(Ecore_X_Window     root,
-                                                                   Ecore_X_Randr_Mode mode);
-static Ecore_X_Randr_Mode_Info **_ecore_xcb_randr_12_modes_info_get(Ecore_X_Window root,
-                                                                    int           *num);
-static Ecore_X_Randr_Mode_Info **_ecore_xcb_randr_13_modes_info_get(Ecore_X_Window root,
-                                                                    int           *num);
-static void                      _ecore_xcb_randr_12_mode_size_get(Ecore_X_Window     root,
-                                                                   Ecore_X_Randr_Mode mode,
-                                                                   int               *w,
-                                                                   int               *h);
-static void _ecore_xcb_randr_13_mode_size_get(Ecore_X_Window     root,
-                                              Ecore_X_Randr_Mode mode,
-                                              int               *w,
-                                              int               *h);
-static Ecore_X_Randr_Output *_ecore_xcb_randr_12_output_clones_get(Ecore_X_Window       root,
-                                                                   Ecore_X_Randr_Output output,
-                                                                   int                 *num);
-static Ecore_X_Randr_Output *_ecore_xcb_randr_13_output_clones_get(Ecore_X_Window       root,
-                                                                   Ecore_X_Randr_Output output,
-                                                                   int                 *num);
-static Ecore_X_Randr_Crtc *_ecore_xcb_randr_12_output_possible_crtcs_get(Ecore_X_Window       root,
-                                                                         Ecore_X_Randr_Output output,
-                                                                         int                 *num);
-static Ecore_X_Randr_Crtc *_ecore_xcb_randr_13_output_possible_crtcs_get(Ecore_X_Window       root,
-                                                                         Ecore_X_Randr_Output output,
-                                                                         int                 *num);
-static char *_ecore_xcb_randr_12_output_name_get(Ecore_X_Window       root,
-                                                 Ecore_X_Randr_Output output,
-                                                 int                 *len);
-static char *_ecore_xcb_randr_13_output_name_get(Ecore_X_Window       root,
-                                                 Ecore_X_Randr_Output output,
-                                                 int                 *len);
-static Ecore_X_Randr_Connection_Status _ecore_xcb_randr_12_output_connection_status_get(Ecore_X_Window       root,
-                                                                                        Ecore_X_Randr_Output output);
-static Ecore_X_Randr_Connection_Status _ecore_xcb_randr_13_output_connection_status_get(Ecore_X_Window       root,
-                                                                                        Ecore_X_Randr_Output output);
-static Ecore_X_Randr_Output           *_ecore_xcb_randr_12_outputs_get(Ecore_X_Window root,
-                                                                       int           *num);
-static Ecore_X_Randr_Output           *_ecore_xcb_randr_13_outputs_get(Ecore_X_Window root,
-                                                                       int           *num);
-static Ecore_X_Randr_Crtc              _ecore_xcb_randr_12_output_crtc_get(Ecore_X_Window       root,
-                                                                           Ecore_X_Randr_Output output);
-static Ecore_X_Randr_Crtc              _ecore_xcb_randr_13_output_crtc_get(Ecore_X_Window       root,
-                                                                           Ecore_X_Randr_Output output);
-
-/* local variables */
-static Eina_Bool _randr_avail = EINA_FALSE;
-static int _randr_version = -1;
-
-/* external variables */
-int _ecore_xcb_event_randr = -1;
-
-void
-_ecore_xcb_randr_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_RANDR
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_randr_id);
-#endif
-}
-
-void
-_ecore_xcb_randr_finalize(void)
-{
-#ifdef ECORE_XCB_RANDR
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_RANDR
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_randr_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_randr_query_version_cookie_t cookie;
-        xcb_randr_query_version_reply_t *reply;
-
-        cookie =
-          xcb_randr_query_version_unchecked(_ecore_xcb_conn,
-                                            XCB_RANDR_MAJOR_VERSION,
-                                            XCB_RANDR_MINOR_VERSION);
-        reply = xcb_randr_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             if ((reply->major_version >= XCB_RANDR_MAJOR_VERSION) &&
-                 (reply->minor_version >= XCB_RANDR_MINOR_VERSION))
-               _randr_avail = EINA_TRUE;
-
-             _randr_version =
-               ((reply->major_version << 16) | reply->minor_version);
-
-             free(reply);
-          }
-
-        if (_randr_avail)
-          _ecore_xcb_event_randr = ext_reply->first_event;
-     }
-#endif
-}
-
-static Eina_Bool
-#ifdef ECORE_XCB_RANDR
-_ecore_xcb_randr_root_validate(Ecore_X_Window root)
-#else
-_ecore_xcb_randr_root_validate(Ecore_X_Window root EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Randr_Screen scr = -1;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_RANDR
-   if ((root) && RANDR_VALIDATE_ROOT(scr, root))
-     return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
-static int
-_ecore_xcb_randr_root_to_screen(Ecore_X_Window root)
-{
-   int count = 0, num = 0;
-
-   CHECK_XCB_CONN;
-
-   count = xcb_setup_roots_length(xcb_get_setup(_ecore_xcb_conn));
-   for (num = 0; num < count; num++)
-     if (_ecore_xcb_window_root_of_screen_get(num) == root)
-       return num;
-
-   return -1;
-}
-
-/* public functions */
-
-/*
- * @brief Query whether RandR is available or not.
- *
- * @return @c EINA_TRUE if extension is available, @c EINA_FALSE otherwise.
- */
-EAPI Eina_Bool
-ecore_x_randr_query(void)
-{
-   return _randr_avail;
-}
-
-/*
- * @return version of the RandRR extension supported by the server or,
- * in case RandRR extension is not available, Ecore_X_Randr_Unset (=-1).
- * bit version information: 31   MAJOR   16 | 15   MINOR   0
- */
-EAPI int
-ecore_x_randr_version_get(void)
-{
-   return _randr_version;
-}
-
-/**
- * @brief This function returns the current config timestamp from 
- * XRRScreenConfiguration.
- * 
- * @param root root window to query screen configuration from
- * 
- * @returns The screen configuration timestamp
- * 
- * @since 1.8
- */
-EAPI Ecore_X_Time 
-ecore_x_randr_config_timestamp_get(Ecore_X_Window root)
-{
-   Ecore_X_Time timestamp = 0;
-
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        timestamp = (Ecore_X_Time)reply->config_timestamp;
-        free(reply);
-     }
-#endif
-
-   return timestamp;
-}
-
-/*
- * @param root window which's primary output will be queried
- */
-EAPI Ecore_X_Randr_Orientation
-ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root)
-{
-   int ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        ret = reply->rotations;
-        free(reply);
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @param root window which's primary output will be queried
- * @return the current orientation of the root window's screen primary output
- */
-EAPI Ecore_X_Randr_Orientation
-ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root)
-{
-   int ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        ret = reply->rotation;
-        free(reply);
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @brief Sets a given screen's primary output's orientation.
- *
- * @param root Window which's screen's primary output will be queried.
- * @param orientation Orientation which should be set for the root window's
- * screen primary output.
- * @return @c EINA_TRUE if the primary output's orientation could be
- * successfully altered.
- */
-EAPI Eina_Bool
-ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window            root,
-                                                    Ecore_X_Randr_Orientation orientation)
-{
-   int ret = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        xcb_randr_set_screen_config_cookie_t scookie;
-        xcb_randr_set_screen_config_reply_t *sreply;
-
-        scookie =
-          xcb_randr_set_screen_config_unchecked(_ecore_xcb_conn, root,
-                                                XCB_CURRENT_TIME,
-                                                reply->config_timestamp,
-                                                reply->sizeID, orientation,
-                                                reply->rate);
-        sreply =
-          xcb_randr_set_screen_config_reply(_ecore_xcb_conn, scookie, NULL);
-        if (!sreply)
-          ret = EINA_FALSE;
-        else
-          {
-             ret = (sreply->status == XCB_RANDR_SET_CONFIG_SUCCESS) ?
-               EINA_TRUE : EINA_FALSE;
-             free(sreply);
-          }
-        free(reply);
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @brief gets a screen's primary output's possible sizes
- * @param root window which's primary output will be queried
- * @param num number of sizes reported as supported by the screen's primary output
- * @return an array of sizes reported as supported by the screen's primary output or - if query failed - NULL
- */
-EAPI Ecore_X_Randr_Screen_Size_MM *
-ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root,
-                                              int           *num)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-   Ecore_X_Randr_Screen_Size_MM *ret = NULL;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        int len = 0, i = 0;
-        xcb_randr_screen_size_t *sizes;
-
-        len = xcb_randr_get_screen_info_sizes_length(reply);
-        sizes = xcb_randr_get_screen_info_sizes(reply);
-        if ((!sizes) || (len <= 0))
-          {
-             free(reply);
-             return NULL;
-          }
-        if (num) *num = len;
-        ret = calloc(len, sizeof(Ecore_X_Randr_Screen_Size_MM));
-        if (!ret)
-          {
-             free(reply);
-             return NULL;
-          }
-        for (i = 0; i < len; i++)
-          {
-             ret[i].width = sizes[i].width;
-             ret[i].height = sizes[i].height;
-             ret[i].width_mm = sizes[i].mwidth;
-             ret[i].height_mm = sizes[i].mheight;
-          }
-
-        free(reply);
-     }
-
-   return ret;
-#else
-   return NULL;
-#endif
-}
-
-/*
- * @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)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        int len = 0, idx = 0;
-        xcb_randr_screen_size_t *sizes;
-
-        len = xcb_randr_get_screen_info_sizes_length(reply);
-        sizes = xcb_randr_get_screen_info_sizes(reply);
-        if ((!sizes) || (len <= 0))
-          {
-             free(reply);
-             return;
-          }
-        idx = reply->sizeID;
-        if ((idx < len) && (idx >= 0))
-          {
-             if (w) *w = sizes[idx].width;
-             if (h) *h = sizes[idx].height;
-             if (w_mm) *w_mm = sizes[idx].mwidth;
-             if (h_mm) *h_mm = sizes[idx].mheight;
-             if (size_index) *size_index = idx;
-          }
-
-        free(reply);
-     }
-#endif
-}
-
-/*
- * @brief Sets a given screen's primary output size, but disables all other
- * outputs at the same time.
- *
- * @param root Window which's primary output will be queried.
- * @param size_index Within the list of sizes reported as supported by the root
- * window's screen primary output.
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure due to e.g.
- * invalid times.
- */
-EAPI Eina_Bool
-ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root,
-                                             int            size_index)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if (!((size_index >= 0) && (_ecore_xcb_randr_root_validate(root))))
-     return EINA_FALSE;
-
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        int len = 0;
-
-        len = xcb_randr_get_screen_info_sizes_length(reply);
-        if (len <= 0)
-          {
-             free(reply);
-             return EINA_FALSE;
-          }
-        if ((size_index < len) && (size_index >= 0))
-          {
-             xcb_randr_set_screen_config_cookie_t scookie;
-             xcb_randr_set_screen_config_reply_t *sreply;
-
-             scookie =
-               xcb_randr_set_screen_config_unchecked(_ecore_xcb_conn, root,
-                                                     XCB_CURRENT_TIME,
-                                                     reply->config_timestamp,
-                                                     size_index,
-                                                     reply->rotation,
-                                                     reply->rate);
-             sreply =
-               xcb_randr_set_screen_config_reply(_ecore_xcb_conn,
-                                                 scookie, NULL);
-             if (!sreply)
-               ret = EINA_FALSE;
-             else
-               {
-                  ret = (sreply->status == XCB_RANDR_SET_CONFIG_SUCCESS) ?
-                    EINA_TRUE : EINA_FALSE;
-                  free(sreply);
-               }
-          }
-
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-/*
- * @param root window which's primary output will be queried
- * @return currently used refresh rate or - if request failed or RandRR is not available - 0.0
- */
-EAPI Ecore_X_Randr_Refresh_Rate
-ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-   Ecore_X_Randr_Refresh_Rate ret = 0.0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if (!_ecore_xcb_randr_root_validate(root)) return ret;
-
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        ret = reply->rate;
-        free(reply);
-     }
-
-   return ret;
-#else
-   return 0.0;
-#endif
-}
-
-/*
- * @param root window which's primary output will be queried
- * @param size_index referencing the size to query valid refresh rates for
- * @return currently used refresh rate or - if request failed or RandRR is not available - NULL
- */
-EAPI Ecore_X_Randr_Refresh_Rate *
-ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root,
-                                                      int            size_index,
-                                                      int           *num)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-   Ecore_X_Randr_Refresh_Rate *ret = NULL;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if (!_ecore_xcb_randr_root_validate(root)) return ret;
-
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        int len = 0;
-
-        len = xcb_randr_get_screen_info_rates_length(reply);
-        if (num) *num = len;
-
-        ret = malloc(sizeof(Ecore_X_Randr_Refresh_Rate) * len);
-        if (ret)
-          {
-             xcb_randr_refresh_rates_iterator_t iter;
-             int i = 0;
-
-             iter = xcb_randr_get_screen_info_rates_iterator(reply);
-             while (i++ < size_index)
-               xcb_randr_refresh_rates_next(&iter);
-
-             memcpy(ret, xcb_randr_refresh_rates_rates(iter.data),
-                    sizeof(Ecore_X_Randr_Refresh_Rate) * len);
-          }
-        free(reply);
-     }
-
-   return ret;
-#else
-   return NULL;
-#endif
-}
-
-/*
- * @brief Sets the current primary output's refresh rate.
- *
- * @param root Window which's primary output will be queried.
- * @param size_index Referencing the size to be set.
- * @param rate The refresh rate to be set.
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
- */
-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)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_info_cookie_t cookie;
-   xcb_randr_get_screen_info_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if (_randr_version < RANDR_1_1) return EINA_FALSE;
-
-   cookie = xcb_randr_get_screen_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        xcb_randr_set_screen_config_cookie_t scookie;
-        xcb_randr_set_screen_config_reply_t *sreply;
-
-        scookie =
-          xcb_randr_set_screen_config_unchecked(_ecore_xcb_conn, root,
-                                                XCB_CURRENT_TIME,
-                                                reply->config_timestamp,
-                                                size_index,
-                                                reply->rotation, rate);
-        sreply =
-          xcb_randr_set_screen_config_reply(_ecore_xcb_conn,
-                                            scookie, NULL);
-        if (!sreply)
-          ret = EINA_FALSE;
-        else
-          {
-             ret = (sreply->status == XCB_RANDR_SET_CONFIG_SUCCESS) ?
-               EINA_TRUE : EINA_FALSE;
-             free(sreply);
-          }
-        free(reply);
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @brief Free detailed mode information. The pointer handed in will be set to
- * @c NULL after freeing the memory.
- *
- * @param mode_info The mode information that should be freed.
- */
-EAPI void
-ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   RANDR_CHECK_1_2_RET();
-
-   if (!mode_info) return;
-
-   if (mode_info->name) free(mode_info->name);
-   free(mode_info);
-}
-
-/*
- * @param root window which's screen should be queried
- * @return Ecore_X_Randr_Ouptut_Id or - if query failed or none is set - Ecore_X_Randr_None
- */
-EAPI Ecore_X_Randr_Output
-ecore_x_randr_primary_output_get(Ecore_X_Window root)
-{
-   Ecore_X_Randr_Output ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_output_primary_cookie_t cookie;
-   xcb_randr_get_output_primary_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_3_RET(Ecore_X_Randr_None);
-
-   if (!_ecore_xcb_randr_root_validate(root))
-     return Ecore_X_Randr_None;
-
-   cookie = xcb_randr_get_output_primary_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_output_primary_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        ret = reply->output;
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-/*
- * @param root window which's screen should be queried
- * @param output that should be set as given root window's screen primary output
- */
-EAPI void
-ecore_x_randr_primary_output_set(Ecore_X_Window       root,
-                                 Ecore_X_Randr_Output output)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_3_RET();
-
-   if ((output) && (_ecore_xcb_randr_root_validate(root)))
-     xcb_randr_set_output_primary(_ecore_xcb_conn, root, output);
-#endif
-}
-
-EAPI Ecore_X_Randr_Mode *
-ecore_x_randr_output_modes_get(Ecore_X_Window       root,
-                               Ecore_X_Randr_Output output,
-                               int                 *num,
-                               int                 *npreferred)
-{
-   Ecore_X_Randr_Mode *modes = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (_randr_version >= RANDR_1_3)
-     {
-        modes =
-          _ecore_xcb_randr_13_output_modes_get(root, output, num, npreferred);
-     }
-   else if (_randr_version == RANDR_1_2)
-     {
-        modes =
-          _ecore_xcb_randr_12_output_modes_get(root, output, num, npreferred);
-     }
-#endif
-
-   return modes;
-}
-
-EAPI Eina_Bool 
-ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None))
-     return EINA_FALSE;
-
-   xcb_randr_add_output_mode(_ecore_xcb_conn, output, mode);
-   return EINA_TRUE;
-#endif
-   return EINA_FALSE;
-}
-
-/*
- * @brief get detailed information for a given mode id
- * @param root window which's screen's ressources are queried
- * @param mode the XID which identifies the mode of interest
- * @return mode's detailed information
- */
-EAPI Ecore_X_Randr_Mode_Info *
-ecore_x_randr_mode_info_get(Ecore_X_Window     root,
-                            Ecore_X_Randr_Mode mode)
-{
-   Ecore_X_Randr_Mode_Info *ret = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (!_ecore_xcb_randr_root_validate(root)) return NULL;
-
-   if (_randr_version >= RANDR_1_3)
-     ret = _ecore_xcb_randr_13_mode_info_get(root, mode);
-   else if (_randr_version == RANDR_1_2)
-     ret = _ecore_xcb_randr_12_mode_info_get(root, mode);
-#endif
-   return ret;
-}
-
-/*
- * @brief add a mode to a display
- * @param root window to which's screen's ressources are added
- * @param mode_info
- * @return Ecore_X_Randr_Mode of the added mode. Ecore_X_Randr_None if mode
- * adding failed.
- * @since 1.2.0
- */
-EAPI Ecore_X_Randr_Mode 
-ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info)
-{
-   Ecore_X_Randr_Mode mode = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_create_mode_cookie_t cookie;
-   xcb_randr_create_mode_reply_t *reply;
-   xcb_randr_mode_info_t info;
-   int namelen = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (!mode_info) return Ecore_X_Randr_None;
-   if (!_ecore_xcb_randr_root_validate(root)) return Ecore_X_Randr_None;
-
-   namelen = strlen(mode_info->name);
-
-   memset(&info, 0, sizeof(info));
-   info.width = mode_info->width;
-   info.height = mode_info->height;
-   info.dot_clock = mode_info->dotClock;
-   info.hsync_start = mode_info->hSyncStart;
-   info.hsync_end = mode_info->hSyncEnd;
-   info.htotal = mode_info->hTotal;
-   info.hskew = mode_info->hSkew;
-   info.vsync_start = mode_info->vSyncStart;
-   info.vsync_end = mode_info->vSyncEnd;
-   info.vtotal = mode_info->vTotal;
-   info.mode_flags = mode_info->modeFlags;
-   info.name_len = namelen;
-
-   cookie = 
-     xcb_randr_create_mode_unchecked(_ecore_xcb_conn, root, info, 
-                                     namelen, mode_info->name);
-   reply = xcb_randr_create_mode_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        mode = mode_info->xid;
-        free(reply);
-     }
-#endif
-   return mode;
-}
-
-/*
- * @brief get detailed information for all modes related to a root window's screen
- * @param root window which's screen's ressources are queried
- * @param num number of modes returned
- * @return modes' information
- */
-EAPI Ecore_X_Randr_Mode_Info **
-ecore_x_randr_modes_info_get(Ecore_X_Window root,
-                             int           *num)
-{
-   Ecore_X_Randr_Mode_Info **ret = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num) *num = 0;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (!_ecore_xcb_randr_root_validate(root)) return NULL;
-
-   if (_randr_version >= RANDR_1_3)
-     ret = _ecore_xcb_randr_13_modes_info_get(root, num);
-   else if (_randr_version == RANDR_1_2)
-     ret = _ecore_xcb_randr_12_modes_info_get(root, num);
-#endif
-   return ret;
-}
-
-/**
- * @brief Gets the width and hight of a given mode.
- *
- * @param root Window which's screen's ressources are queried.
- * @param mode The mode which's size is to be looked up.
- * @param w Width of given mode in px.
- * @param h Height of given mode in px.
- */
-EAPI void
-ecore_x_randr_mode_size_get(Ecore_X_Window     root,
-                            Ecore_X_Randr_Mode mode,
-                            int               *w,
-                            int               *h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-
-   if (mode == Ecore_X_Randr_None) return;
-
-   if (_randr_version >= RANDR_1_3)
-     _ecore_xcb_randr_13_mode_size_get(root, mode, w, h);
-   else if (_randr_version == RANDR_1_2)
-     _ecore_xcb_randr_12_mode_size_get(root, mode, w, h);
-#endif
-}
-
-/**
- * @brief Gets the EDID information of an attached output if available.
- * Note that this information is not to be compared using ordinary string
- * comparison functions, since it includes 0-bytes.
- *
- * @param root Window this information should be queried from.
- * @param output The XID of the output.
- * @param length Length of the byte-array. If @c NULL, request will fail.
- * @return EDID information of the output.
- */
-EAPI unsigned char *
-ecore_x_randr_output_edid_get(Ecore_X_Window       root,
-                              Ecore_X_Randr_Output output,
-                              unsigned long       *length)
-{
-   unsigned char *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_output_property_cookie_t cookie;
-   xcb_randr_get_output_property_reply_t *reply;
-   Ecore_X_Atom atom;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if ((!length) || (!_ecore_xcb_randr_output_validate(root, output)))
-     return NULL;
-
-   atom = ecore_x_atom_get("EDID");
-   cookie =
-     xcb_randr_get_output_property_unchecked(_ecore_xcb_conn, output, atom,
-                                             XCB_GET_PROPERTY_TYPE_ANY,
-                                             0, 100, 0, 0);
-   reply =
-     xcb_randr_get_output_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        if ((reply->type == XCB_ATOM_INTEGER) && (reply->format == 8))
-          {
-             if (length) *length = reply->num_items;
-             if ((ret = malloc(reply->num_items * sizeof(unsigned char))))
-               {
-                  memcpy(ret, xcb_randr_get_output_property_data(reply),
-                         (reply->num_items * sizeof(unsigned char)));
-               }
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-/**
- * @brief Gets the outputs which might be used simultaneously on the same CRTC.
- *
- * @param root Window that this information should be queried for.
- * @param output The output which's clones we concern.
- * @param num Number of possible clones.
- * @return The existing outputs, @c NULL otherwise.
- */
-EAPI Ecore_X_Randr_Output *
-ecore_x_randr_output_clones_get(Ecore_X_Window       root,
-                                Ecore_X_Randr_Output output,
-                                int                 *num)
-{
-   Ecore_X_Randr_Output *outputs = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (output == Ecore_X_Randr_None) return NULL;
-
-   if (_randr_version >= RANDR_1_3)
-     outputs = _ecore_xcb_randr_13_output_clones_get(root, output, num);
-   else if (_randr_version == RANDR_1_2)
-     outputs = _ecore_xcb_randr_12_output_clones_get(root, output, num);
-#endif
-   return outputs;
-}
-
-EAPI Ecore_X_Randr_Crtc *
-ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window       root,
-                                        Ecore_X_Randr_Output output,
-                                        int                 *num)
-{
-   Ecore_X_Randr_Crtc *crtcs = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (output == Ecore_X_Randr_None) return NULL;
-
-   if (_randr_version >= RANDR_1_3)
-     crtcs = _ecore_xcb_randr_13_output_possible_crtcs_get(root, output, num);
-   else if (_randr_version == RANDR_1_2)
-     crtcs = _ecore_xcb_randr_12_output_possible_crtcs_get(root, output, num);
-#endif
-   return crtcs;
-}
-
-/**
- * @brief gets the given output's name as reported by X
- * @param root the window which's screen will be queried
- * @param output The output name given to be reported.
- * @param len length of returned c-string.
- * @return name of the output as reported by X
- */
-EAPI char *
-ecore_x_randr_output_name_get(Ecore_X_Window       root,
-                              Ecore_X_Randr_Output output,
-                              int                 *len)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (output == Ecore_X_Randr_None) return NULL;
-
-   if (_randr_version >= RANDR_1_3)
-     return _ecore_xcb_randr_13_output_name_get(root, output, len);
-   else if (_randr_version == RANDR_1_2)
-     return _ecore_xcb_randr_12_output_name_get(root, output, len);
-#endif
-
-   return NULL;
-}
-
-EAPI Ecore_X_Randr_Connection_Status
-ecore_x_randr_output_connection_status_get(Ecore_X_Window       root,
-                                           Ecore_X_Randr_Output output)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN);
-
-   if (output == Ecore_X_Randr_None)
-     return ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN;
-
-   if (_randr_version >= RANDR_1_3)
-     return _ecore_xcb_randr_13_output_connection_status_get(root, output);
-   else if (_randr_version == RANDR_1_2)
-     return _ecore_xcb_randr_12_output_connection_status_get(root, output);
-#endif
-
-   return ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN;
-}
-
-EAPI Ecore_X_Randr_Output *
-ecore_x_randr_outputs_get(Ecore_X_Window root,
-                          int           *num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (_randr_version >= RANDR_1_3)
-     return _ecore_xcb_randr_13_outputs_get(root, num);
-   else if (_randr_version == RANDR_1_2)
-     return _ecore_xcb_randr_12_outputs_get(root, num);
-#endif
-
-   return NULL;
-}
-
-EAPI Ecore_X_Randr_Crtc
-ecore_x_randr_output_crtc_get(Ecore_X_Window       root,
-                              Ecore_X_Randr_Output output)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(Ecore_X_Randr_None);
-
-   if (output == Ecore_X_Randr_None) return Ecore_X_Randr_None;
-
-   if (_randr_version >= RANDR_1_3)
-     return _ecore_xcb_randr_13_output_crtc_get(root, output);
-   else if (_randr_version == RANDR_1_2)
-     return _ecore_xcb_randr_12_output_crtc_get(root, output);
-#endif
-
-   return Ecore_X_Randr_None;
-}
-
-EAPI Eina_Bool
-ecore_x_randr_output_crtc_set(Ecore_X_Window root EINA_UNUSED, Ecore_X_Randr_Output output EINA_UNUSED, const Ecore_X_Randr_Crtc crtc EINA_UNUSED)
-{
-   /* TODO */
-   return EINA_FALSE;
-}
-
-EAPI void 
-ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w_mm, int *h_mm)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_output_info_cookie_t ocookie;
-   xcb_randr_get_output_info_reply_t *oreply;
-   xcb_timestamp_t timestamp = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (w_mm) *w_mm = 0;
-   if (h_mm) *h_mm = 0;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-
-   if ((output != Ecore_X_Randr_None) && (_randr_version >= RANDR_1_3))
-     {
-        xcb_randr_get_screen_resources_current_reply_t *reply;
-
-        reply = _ecore_xcb_randr_13_get_resources(root);
-        timestamp = reply->config_timestamp;
-        free(reply);
-     }
-   else if ((output != Ecore_X_Randr_None) && (_randr_version == RANDR_1_2))
-     {
-        xcb_randr_get_screen_resources_reply_t *reply;
-
-        reply = _ecore_xcb_randr_12_get_resources(root);
-        timestamp = reply->config_timestamp;
-        free(reply);
-     }
-
-   ocookie =
-     xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output, timestamp);
-   oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        if (w_mm) *w_mm = oreply->mm_width;
-        if (h_mm) *h_mm = oreply->mm_height;
-        free(oreply);
-     }
-#endif
-}
-
-/**
- * @brief Sets the demanded parameters for a given CRTC. Note that the CRTC is
- * auto enabled in it's preferred mode, when it was disabled before.
- *
- * @param root The root window which's default display will be queried.
- * @param crtc The CRTC which's configuration should be altered.
- * @param outputs An array of outputs, that should display this CRTC's content.
- * @param noutputs Number of outputs in the array of outputs. If set to
- * Ecore_X_Randr_Unset, current outputs and number of outputs will be used. If
- * set to Ecore_X_Randr_None, CRTC will be disabled.
- * @param x New x coordinate. If <0 (e.g. Ecore_X_Randr_Unset) the current x
- * coordinate will be assumed.
- * @param y New y coordinate. If <0 (e.g. Ecore_X_Randr_Unset) the current y
- * coordinate will be assumed.
- * @param mode The new mode to be set. If Ecore_X_Randr_None is passed, the
- * CRTC will be disabled. If Ecore_X_Randr_Unset is passed, the current mode is
- * assumed.
- * @param orientation The new orientation to be set. If Ecore_X_Randr_Unset is
- * used, the current mode is assumed.
- * @return @c EINA_TRUE if the configuration alteration was successful,
- * @c EINA_FALSE otherwise.
- */
-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)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ccookie;
-   xcb_randr_get_crtc_info_reply_t *creply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return ret;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ccookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   creply =
-     xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ccookie, NULL);
-   if (creply)
-     {
-        xcb_randr_set_crtc_config_cookie_t scookie;
-        xcb_randr_set_crtc_config_reply_t *sreply;
-
-        if ((mode == Ecore_X_Randr_None) ||
-            (noutputs == Ecore_X_Randr_None))
-          {
-             outputs = NULL;
-             noutputs = 0;
-          }
-        else if (noutputs == (int)Ecore_X_Randr_Unset)
-          {
-             outputs = xcb_randr_get_crtc_info_outputs(creply);
-             noutputs = creply->num_outputs;
-          }
-        if ((int)mode == Ecore_X_Randr_Unset) mode = creply->mode;
-        if (x < 0) x = creply->x;
-        if (y < 0) y = creply->y;
-        if ((int)orientation == Ecore_X_Randr_Unset)
-          orientation = creply->rotation;
-
-        scookie =
-          xcb_randr_set_crtc_config_unchecked(_ecore_xcb_conn,
-                                              crtc, XCB_CURRENT_TIME, stamp,
-                                              x, y, mode, orientation,
-                                              noutputs, outputs);
-        sreply =
-          xcb_randr_set_crtc_config_reply(_ecore_xcb_conn, scookie, NULL);
-        if (sreply)
-          {
-             ret = (sreply->status == XCB_RANDR_SET_CONFIG_SUCCESS) ?
-               EINA_TRUE : EINA_FALSE;
-             free(sreply);
-          }
-        free(creply);
-     }
-#endif
-
-   return ret;
-}
-
-/**
- * @brief Sets a mode for a CRTC and the outputs attached to it.
- *
- * @param root The window's screen to be queried
- * @param crtc The CRTC which shall be set
- * @param outputs Array of outputs which have to be compatible with the mode. If
- * @c NULL CRTC will be disabled.
- * @param noutputs Number of outputs in array to be used. Use
- * Ecore_X_Randr_Unset (or @c -1) to use currently used outputs.
- * @param mode XID of the mode to be set. If set to @c 0 the CRTC will be
- * disabled. If set to @c -1 the call will fail.
- * @return @c EINA_TRUE if mode setting was successful, @c EINA_FALSE
- * otherwise.
- */
-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)
-{
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if ((int)mode == Ecore_X_Randr_Unset) return ret;
-   ret =
-     ecore_x_randr_crtc_settings_set(root, crtc, outputs, noutputs,
-                                     Ecore_X_Randr_Unset, Ecore_X_Randr_Unset,
-                                     mode, Ecore_X_Randr_Unset);
-#endif
-
-   return ret;
-}
-
-/**
- * @brief Get the current set mode of a given CRTC
- * @param root the window's screen to be queried
- * @param crtc the CRTC which's should be queried
- * @return currently set mode or - in case parameters are invalid -
- * Ecore_X_Randr_Unset
- */
-EAPI Ecore_X_Randr_Mode
-ecore_x_randr_crtc_mode_get(Ecore_X_Window     root,
-                            Ecore_X_Randr_Crtc crtc)
-{
-   Ecore_X_Randr_Mode ret = Ecore_X_Randr_Unset;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ocookie;
-   xcb_randr_get_crtc_info_reply_t *oreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(Ecore_X_Randr_Unset);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return ret;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   oreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        ret = oreply->mode;
-        free(oreply);
-     }
-#endif
-
-   return ret;
-}
-
-EAPI Ecore_X_Randr_Orientation
-ecore_x_randr_crtc_orientation_get(Ecore_X_Window     root,
-                                   Ecore_X_Randr_Crtc crtc)
-{
-   Ecore_X_Randr_Orientation ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ocookie;
-   xcb_randr_get_crtc_info_reply_t *oreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(Ecore_X_Randr_None);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return ret;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   oreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        ret = oreply->rotation;
-        free(oreply);
-     }
-#endif
-
-   return ret;
-}
-
-EAPI Eina_Bool
-ecore_x_randr_crtc_orientation_set(Ecore_X_Window            root,
-                                   Ecore_X_Randr_Crtc        crtc,
-                                   Ecore_X_Randr_Orientation orientation)
-{
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (orientation != Ecore_X_Randr_None)
-     {
-        ret =
-          ecore_x_randr_crtc_settings_set(root, crtc, NULL,
-                                          Ecore_X_Randr_Unset, Ecore_X_Randr_Unset,
-                                          Ecore_X_Randr_Unset, Ecore_X_Randr_Unset,
-                                          orientation);
-     }
-#endif
-   return ret;
-}
-
-EAPI Ecore_X_Randr_Orientation
-ecore_x_randr_crtc_orientations_get(Ecore_X_Window     root,
-                                    Ecore_X_Randr_Crtc crtc)
-{
-   Ecore_X_Randr_Orientation ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ocookie;
-   xcb_randr_get_crtc_info_reply_t *oreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(Ecore_X_Randr_None);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return ret;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   oreply =
-     xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        ret = oreply->rotations;
-        free(oreply);
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @brief get a CRTC's possible outputs.
- * @param root the root window which's screen will be queried
- * @param num number of possible outputs referenced by given CRTC
- */
-EAPI Ecore_X_Randr_Output *
-ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window     root,
-                                        Ecore_X_Randr_Crtc crtc,
-                                        int               *num)
-{
-   Ecore_X_Randr_Output *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ocookie;
-   xcb_randr_get_crtc_info_reply_t *oreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return ret;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   oreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        if (num) *num = oreply->num_possible_outputs;
-        ret = malloc(sizeof(Ecore_X_Randr_Output) *
-                     oreply->num_possible_outputs);
-        if (ret)
-          {
-             memcpy(ret, xcb_randr_get_crtc_info_possible(oreply),
-                    sizeof(Ecore_X_Randr_Output) *
-                    oreply->num_possible_outputs);
-          }
-        free(oreply);
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @brief get all known CRTCs related to a root window's screen
- * @param root window which's screen's ressources are queried
- * @param num number of CRTCs returned
- * @return CRTC IDs
- */
-EAPI Ecore_X_Randr_Crtc *
-ecore_x_randr_crtcs_get(Ecore_X_Window root,
-                        int           *num)
-{
-   Ecore_X_Randr_Crtc *ret = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (_randr_version >= RANDR_1_3)
-     {
-        xcb_randr_get_screen_resources_current_reply_t *reply;
-
-        reply = _ecore_xcb_randr_13_get_resources(root);
-        if (reply)
-          {
-             if (num) *num = reply->num_crtcs;
-             ret = malloc(sizeof(Ecore_X_Randr_Crtc) * reply->num_crtcs);
-             if (ret)
-               memcpy(ret, xcb_randr_get_screen_resources_current_crtcs(reply),
-                      sizeof(Ecore_X_Randr_Crtc) * reply->num_crtcs);
-             free(reply);
-          }
-     }
-   else if (_randr_version == RANDR_1_2)
-     {
-        xcb_randr_get_screen_resources_reply_t *reply;
-
-        reply = _ecore_xcb_randr_12_get_resources(root);
-        if (reply)
-          {
-             if (num) *num = reply->num_crtcs;
-             ret = malloc(sizeof(Ecore_X_Randr_Crtc) * reply->num_crtcs);
-             if (ret)
-               memcpy(ret, xcb_randr_get_screen_resources_crtcs(reply),
-                      sizeof(Ecore_X_Randr_Crtc) * reply->num_crtcs);
-             free(reply);
-          }
-     }
-#endif
-
-   return ret;
-}
-
-/*
- * @deprecated bad naming. Use ecore_x_randr_window_crtcs_get instead.
- * @brief Get the CRTCs, which display a certain window.
- *
- * @param window Window the displaying CRTCs shall be found for.
- * @param num The number of CRTCs displaying the window.
- * @return Array of CRTCs that display a certain window. @c NULL if no CRTCs
- * was found that displays the specified window.
- */
-EAPI Ecore_X_Randr_Crtc *
-ecore_x_randr_current_crtc_get(Ecore_X_Window window,
-                                 int           *num)
-{
-   return ecore_x_randr_window_crtcs_get(window, num);
-}
-
-/*
- * @brief Get the CRTCs, which display a certain window.
- *
- * @param window Window the displaying crtcs shall be found for.
- * @param num The number of crtcs displaying the window.
- * @return Array of crtcs that display a certain window. @c NULL if no crtcs
- * was found that displays the specified window.
- * @since 1.2.0
- */
-EAPI Ecore_X_Randr_Crtc *
-ecore_x_randr_window_crtcs_get(Ecore_X_Window window,
-                               int *num)
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Window root;
-   Eina_Rectangle w_geo, c_geo;
-   Ecore_X_Randr_Crtc *crtcs, *ret = NULL;
-   Ecore_X_Randr_Mode mode;
-   int ncrtcs, i, nret = 0;
-   xcb_translate_coordinates_cookie_t cookie;
-   xcb_translate_coordinates_reply_t *trans;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   ecore_x_window_geometry_get(window, &w_geo.x, &w_geo.y, &w_geo.w, &w_geo.h);
-
-   root = ecore_x_window_root_get(window);
-   crtcs = ecore_x_randr_crtcs_get(root, &ncrtcs);
-   if (!crtcs) goto _ecore_x_randr_window_crtcs_get_fail;
-
-   /* now get window RELATIVE to root window - thats what matters. */
-   cookie = xcb_translate_coordinates(_ecore_xcb_conn, window, root, 0, 0);
-   trans = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
-   w_geo.x = trans->dst_x;
-   w_geo.y = trans->dst_y;
-   free(trans);
-
-   ret = calloc(1, ncrtcs * sizeof(Ecore_X_Randr_Crtc));
-   if (!ret)
-     {
-        free(crtcs);
-        goto _ecore_x_randr_window_crtcs_get_fail;
-     }
-   for (i = 0, nret = 0; i < ncrtcs; i++)
-     {
-        /* if crtc is not enabled, don't bother about it any further */
-         mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]);
-         if (mode == Ecore_X_Randr_None) continue;
-
-         ecore_x_randr_crtc_geometry_get(root, crtcs[i], &c_geo.x, &c_geo.y,
-                                         &c_geo.w, &c_geo.h);
-         if (eina_rectangles_intersect(&w_geo, &c_geo))
-           {
-              ret[nret] = crtcs[i];
-              nret++;
-           }
-     }
-   free(crtcs);
-
-   if (num) *num = nret;
-   return ret;
-
-_ecore_x_randr_window_crtcs_get_fail:
-#endif
-   if (num) *num = 0;
-   return NULL;
-}
-
-/*
- * @brief get a CRTC's outputs.
- * @param root the root window which's screen will be queried
- * @param num number of outputs referenced by given CRTC
- */
-EAPI Ecore_X_Randr_Output *
-ecore_x_randr_crtc_outputs_get(Ecore_X_Window     root,
-                               Ecore_X_Randr_Crtc crtc,
-                               int               *num)
-{
-   Ecore_X_Randr_Output *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ocookie;
-   xcb_randr_get_crtc_info_reply_t *oreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return ret;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   oreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        if (num) *num = oreply->num_outputs;
-        ret = malloc(sizeof(Ecore_X_Randr_Output) * oreply->num_outputs);
-        if (ret)
-          memcpy(ret, xcb_randr_get_crtc_info_outputs(oreply),
-                 sizeof(Ecore_X_Randr_Output) * oreply->num_outputs);
-        free(oreply);
-     }
-#endif
-
-   return ret;
-}
-
-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)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_cookie_t ocookie;
-   xcb_randr_get_crtc_info_reply_t *oreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc, stamp);
-   oreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        if (x) *x = oreply->x;
-        if (y) *y = oreply->y;
-        if (w) *w = oreply->width;
-        if (h) *h = oreply->height;
-        free(oreply);
-     }
-#endif
-}
-
-/**
- * @brief Sets a CRTC relative to another one.
- *
- * @param root The window on which CRTC's position will be set.
- * @param crtc_r1 The CRTC to be positioned.
- * @param crtc_r2 The CRTC the position should be relative to.
- * @param policy The relation between the crtcs.
- * @param alignment In case CRTCs size differ, aligns CRTC1 accordingly at
- * CRTC2's borders.
- * @return @c EINA_TRUE if crtc could be successfully positioned, @c EINA_FALSE
- * if repositioning failed or if position of new crtc would be out of given
- * screen's min/max bounds.
- */
-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)
-{
-#ifdef ECORE_XCB_RANDR
-   Eina_Rectangle r1, r2;
-   int w_max = 0, h_max = 0, cw = 0, ch = 0, xn = -1, yn = -1;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if ((ecore_x_randr_crtc_mode_get(root, crtc_r1) == 0) ||
-       (ecore_x_randr_crtc_mode_get(root, crtc_r2) == 0))
-     return EINA_FALSE;
-
-   if ((!_ecore_xcb_randr_crtc_validate(root, crtc_r1) ||
-        (!(crtc_r1 != crtc_r2) && (!_ecore_xcb_randr_crtc_validate(root, crtc_r2)))))
-     return EINA_FALSE;
-
-   ecore_x_randr_crtc_geometry_get(root, crtc_r1, &r1.x, &r1.y, &r1.w, &r1.h);
-   ecore_x_randr_crtc_geometry_get(root, crtc_r2, &r2.x, &r2.y, &r2.w, &r2.h);
-   ecore_x_randr_screen_size_range_get(root, NULL, NULL, &w_max, &h_max);
-   ecore_x_randr_screen_current_size_get(root, &cw, &ch, NULL, NULL);
-
-   switch (policy)
-     {
-      case ECORE_X_RANDR_OUTPUT_POLICY_RIGHT:
-        xn = (r2.x + r2.w);
-        if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE)
-          yn = -1;
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL)
-          yn = ((int)(((double)r2.h / 2.0) + (double)r2.y - ((double)r1.h / 2.0)));
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR)
-          yn = ((int)((double)ch / 2.0) - ((double)r1.h / 2.0));
-        break;
-
-      case ECORE_X_RANDR_OUTPUT_POLICY_LEFT:
-        xn = (r2.x - r1.w);
-        if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE)
-          yn = -1;
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL)
-          yn = ((int)(((double)r2.h / 2.0) + (double)r2.y - ((double)r1.h / 2.0)));
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR)
-          yn = ((int)((double)ch / 2.0) - ((double)r1.h / 2.0));
-        break;
-
-      case ECORE_X_RANDR_OUTPUT_POLICY_BELOW:
-        yn = (r2.y + r2.h);
-        if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE)
-          xn = -1;
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL)
-          xn = ((int)((((double)r2.x + (double)r2.w) / 2.0) - ((double)r1.w / 2.0)));
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR)
-          xn = ((int)((double)cw / 2.0));
-        break;
-
-      case ECORE_X_RANDR_OUTPUT_POLICY_ABOVE:
-        yn = (r2.y - r1.h);
-        if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE)
-          xn = -1;
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL)
-          xn = ((int)((((double)r2.x + (double)r2.w) / 2.0) - ((double)r1.w / 2.0)));
-        else if (alignment == ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR)
-          xn = ((int)((double)cw / 2.0));
-        break;
-
-      case ECORE_X_RANDR_OUTPUT_POLICY_CLONE:
-        return ecore_x_randr_crtc_pos_set(root, crtc_r1, r2.x, r2.y);
-        break;
-
-      case ECORE_X_RANDR_OUTPUT_POLICY_NONE:
-        break;
-      default:
-        return EINA_FALSE;
-     }
-
-   if ((xn == r1.x) && (yn == r1.x)) return EINA_TRUE;
-   if (((yn + r1.h) > h_max) || ((xn + r1.w) > w_max))
-     return EINA_FALSE;
-
-   return ecore_x_randr_crtc_pos_set(root, crtc_r1, xn, yn);
-#endif
-
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_randr_move_all_crtcs_but(Ecore_X_Window            root,
-                                 const Ecore_X_Randr_Crtc *not_moved,
-                                 int                       num,
-                                 int                       dx,
-                                 int                       dy)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Randr_Crtc *crtcs = NULL, *move = NULL;
-   int i = 0, j = 0, k = 0, n = 0, total = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if ((num <= 0) || (!not_moved) || (!_ecore_xcb_randr_root_validate(root)))
-     return EINA_FALSE;
-
-   crtcs = ecore_x_randr_crtcs_get(root, &total);
-   n = (total - num);
-   move = malloc(sizeof(Ecore_X_Randr_Crtc) * n);
-   if (move)
-     {
-        for (i = 0, k = 0; (i < total) && (k < n); i++)
-          {
-             for (j = 0; j < num; j++)
-               if (crtcs[i] == not_moved[j]) break;
-             if (j == num)
-               move[k++] = crtcs[i];
-          }
-        ret = ecore_x_randr_move_crtcs(root, move, n, dx, dy);
-        free(move);
-        free(crtcs);
-     }
-#endif
-
-   return ret;
-}
-
-EAPI void
-ecore_x_randr_crtc_pos_get(Ecore_X_Window     root,
-                           Ecore_X_Randr_Crtc crtc,
-                           int               *x,
-                           int               *y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-
-   ecore_x_randr_crtc_geometry_get(root, crtc, x, y, NULL, NULL);
-#endif
-}
-
-/*
- * @brief Sets the position of given CRTC within root window's screen.
- *
- * @param root The window's screen to be queried.
- * @param crtc The CRTC which's position within the mentioned screen is to be
- * altered.
- * @param x Position on the x-axis (0 == left) of the screen. if x < 0 current
- * value will be kept.
- * @param y Position on the y-ayis (0 == top) of the screen. if y < 0, current
- * value will be kept.
- * @return @c EINA_TRUE if position could be successfully be altered.
- */
-EAPI Eina_Bool
-ecore_x_randr_crtc_pos_set(Ecore_X_Window     root,
-                           Ecore_X_Randr_Crtc crtc,
-                           int                x,
-                           int                y)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_RANDR
-   int w = 0, h = 0, nw = 0, nh = 0;
-   Eina_Rectangle rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   ecore_x_randr_crtc_geometry_get(root, crtc,
-                                   &rect.x, &rect.y, &rect.w, &rect.h);
-   ecore_x_randr_screen_current_size_get(root, &w, &h, NULL, NULL);
-   if (x < 0) x = rect.x;
-   if (y < 0) y = rect.y;
-   if ((x + rect.w) > w)
-     nw = (x + rect.w);
-   if ((y + rect.h) > h)
-     nh = (y + rect.h);
-
-   if ((nw != 0) || (nh != 0))
-     {
-        if (!ecore_x_randr_screen_current_size_set(root, nw, nh, 0, 0))
-          return EINA_FALSE;
-     }
-
-   ret = ecore_x_randr_crtc_settings_set(root, crtc, NULL, -1, x, y, -1, -1);
-#endif
-
-   return ret;
-}
-
-EAPI Eina_Bool
-ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root EINA_UNUSED, Ecore_X_Randr_Crtc crtc, const int x, const int y, const int w, const int h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_4_RET(EINA_FALSE);
-
-   Eina_Bool ret = EINA_FALSE;
-   xcb_randr_get_panning_cookie_t get_cookie;
-   xcb_randr_get_panning_reply_t *get_reply;
-
-   get_cookie = xcb_randr_get_panning_unchecked(_ecore_xcb_conn, crtc);
-   get_reply = xcb_randr_get_panning_reply(_ecore_xcb_conn, get_cookie, NULL);
-   if (get_reply)
-     {
-        xcb_randr_set_panning_cookie_t set_cookie;
-        xcb_randr_set_panning_reply_t *set_reply;
-
-        set_cookie =
-          xcb_randr_set_panning_unchecked(_ecore_xcb_conn, crtc,
-                                          XCB_CURRENT_TIME,
-                                          x, y, w, h,
-                                          get_reply->track_left,
-                                          get_reply->track_top,
-                                          get_reply->track_width,
-                                          get_reply->track_height,
-                                          get_reply->border_left,
-                                          get_reply->border_top,
-                                          get_reply->border_right,
-                                          get_reply->border_bottom);
-        set_reply =
-          xcb_randr_set_panning_reply(_ecore_xcb_conn, set_cookie, NULL);
-        if (!set_reply)
-          ret = EINA_FALSE;
-        else
-          {
-             if (set_reply->status == XCB_RANDR_SET_CONFIG_SUCCESS)
-               ret = EINA_TRUE;
-
-             free(set_reply);
-          }
-
-        free(get_reply);
-     }
-
-   return ret;
-#endif
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_randr_crtc_size_get(Ecore_X_Window     root,
-                            Ecore_X_Randr_Crtc crtc,
-                            int               *w,
-                            int               *h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-   ecore_x_randr_crtc_geometry_get(root, crtc, NULL, NULL, w, h);
-#endif
-}
-
-EAPI Eina_Bool 
-ecore_x_randr_crtc_clone_set(Ecore_X_Window root, Ecore_X_Randr_Crtc original, Ecore_X_Randr_Crtc cln)
-{
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (_randr_version >= RANDR_1_3)
-     {
-        xcb_randr_get_screen_resources_current_reply_t *reply;
-        xcb_timestamp_t stamp = 0;
-
-        reply = _ecore_xcb_randr_13_get_resources(root);
-        if (reply)
-          {
-             xcb_randr_get_crtc_info_cookie_t rcookie;
-             xcb_randr_get_crtc_info_reply_t *rreply;
-
-             if (_randr_version >= RANDR_1_3)
-               stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-             else if (_randr_version == RANDR_1_2)
-               stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-             rcookie =
-               xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, original,
-                                                 stamp);
-
-             rreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn,
-                                                    rcookie, NULL);
-             if (rreply)
-               {
-                  int ox = 0, oy = 0;
-                  Ecore_X_Randr_Orientation orient = 0;
-                  Ecore_X_Randr_Mode mode = -1;
-
-                  ox = rreply->x;
-                  oy = rreply->y;
-                  orient = rreply->rotation;
-                  mode = rreply->mode;
-
-                  free(rreply);
-
-                  ret = ecore_x_randr_crtc_settings_set(root, cln, NULL, -1, 
-                                                        ox, oy, mode, orient);
-               }
-
-             free(reply);
-          }
-     }
-#endif
-
-   return ret;
-}
-
-EAPI Ecore_X_Randr_Crtc_Info *
-ecore_x_randr_crtc_info_get(Ecore_X_Window root, const Ecore_X_Randr_Crtc crtc)
-{
-   Ecore_X_Randr_Crtc_Info *ret = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(NULL);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return NULL;
-
-   if (_randr_version >= RANDR_1_3)
-     {
-        xcb_randr_get_screen_resources_current_reply_t *reply;
-        xcb_timestamp_t stamp = 0;
-
-        reply = _ecore_xcb_randr_13_get_resources(root);
-        if (reply)
-          {
-             xcb_randr_get_crtc_info_cookie_t rcookie;
-             xcb_randr_get_crtc_info_reply_t *rreply;
-
-             if (_randr_version >= RANDR_1_3)
-               stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-             else if (_randr_version == RANDR_1_2)
-               stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-             rcookie =
-               xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtc,
-                                                 stamp);
-
-             rreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn,
-                                                    rcookie, NULL);
-             if (rreply)
-               {
-                  if ((ret = malloc(sizeof(Ecore_X_Randr_Crtc_Info))))
-                    {
-                       ret->timestamp = rreply->timestamp;
-                       ret->x = rreply->x;
-                       ret->y = rreply->y;
-                       ret->width = rreply->width;
-                       ret->height = rreply->height;
-                       ret->mode = rreply->mode;
-                       ret->rotation = rreply->rotation;
-                       ret->noutput = 
-                         xcb_randr_get_crtc_info_outputs_length(rreply);
-                       ret->npossible = 
-                         xcb_randr_get_crtc_info_possible_length(rreply);
-
-                       if ((ret->outputs = 
-                            malloc(ret->noutput * sizeof(Ecore_X_Randr_Output))))
-                         {
-                            xcb_randr_output_t *outs;
-                            int i = 0;
-
-                            outs = xcb_randr_get_crtc_info_outputs(rreply);
-                            for (i = 0; i < ret->noutput; i++)
-                              ret->outputs[i] = outs[i];
-                         }
-
-                       if ((ret->possible = 
-                            malloc(ret->npossible * sizeof(Ecore_X_Randr_Output))))
-                         {
-                            xcb_randr_output_t *outs;
-                            int i = 0;
-
-                            outs = xcb_randr_get_crtc_info_possible(rreply);
-                            for (i = 0; i < ret->npossible; i++)
-                              ret->possible[i] = outs[i];
-                         }
-                    }
-                  free(rreply);
-               }
-
-             free(reply);
-          }
-     }
-#endif
-
-   return ret;
-}
-
-EAPI void 
-ecore_x_randr_crtc_info_free(Ecore_X_Randr_Crtc_Info *info)
-{
-#ifdef ECORE_XCB_RANDR
-   if (_randr_version >= RANDR_1_2)
-     {
-        if (info)
-          {
-             if (info->outputs) free(info->outputs);
-             if (info->possible) free(info->possible);
-             free(info);
-          }
-     }
-#endif
-}
-
-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)
-{
-   Ecore_X_Randr_Refresh_Rate ret = 0.0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(0.0);
-
-   if (!_ecore_xcb_randr_crtc_validate(root, crtc)) return 0.0;
-
-   if (_randr_version >= RANDR_1_3)
-     {
-        xcb_randr_get_screen_resources_current_reply_t *reply;
-
-        reply = _ecore_xcb_randr_13_get_resources(root);
-        if (reply)
-          {
-             xcb_randr_mode_info_iterator_t miter;
-
-             miter =
-               xcb_randr_get_screen_resources_current_modes_iterator(reply);
-             while (miter.rem)
-               {
-                  xcb_randr_mode_info_t *minfo;
-
-                  minfo = miter.data;
-                  if (minfo->id == mode)
-                    {
-                       if ((minfo->htotal) && (minfo->vtotal))
-                         {
-                            ret = ((double)minfo->dot_clock /
-                                   ((double)minfo->htotal *
-                                    (double)minfo->vtotal));
-                         }
-                       break;
-                    }
-                  xcb_randr_mode_info_next(&miter);
-               }
-             free(reply);
-          }
-     }
-   else if (_randr_version == RANDR_1_2)
-     {
-        xcb_randr_get_screen_resources_reply_t *reply;
-
-        reply = _ecore_xcb_randr_12_get_resources(root);
-        if (reply)
-          {
-             xcb_randr_mode_info_iterator_t miter;
-
-             miter = xcb_randr_get_screen_resources_modes_iterator(reply);
-             while (miter.rem)
-               {
-                  xcb_randr_mode_info_t *minfo;
-
-                  minfo = miter.data;
-                  if (minfo->id == mode)
-                    {
-                       if ((minfo->htotal) && (minfo->vtotal))
-                         {
-                            ret = ((double)minfo->dot_clock /
-                                   ((double)minfo->htotal *
-                                    (double)minfo->vtotal));
-                         }
-                       break;
-                    }
-                  xcb_randr_mode_info_next(&miter);
-               }
-             free(reply);
-          }
-     }
-#endif
-   return ret;
-}
-
-/*
- * @brief Move given CRTCs belonging to the given root window's screen dx/dy
- * pixels relative to their current position. The screen size will be
- * automatically adjusted if necessary and possible.
- *
- * @param root Window which's screen's resources are used.
- * @param crtcs List of CRTCs to be moved.
- * @param ncrtc Number of CRTCs in array.
- * @param dx Amount of pixels the CRTCs should be moved in x direction.
- * @param dy Amount of pixels the CRTCs should be moved in y direction.
- * @return @c EINA_TRUE if all crtcs could be moved successfully.
- */
-EAPI Eina_Bool
-ecore_x_randr_move_crtcs(Ecore_X_Window            root,
-                         const Ecore_X_Randr_Crtc *crtcs,
-                         int                       num,
-                         int                       dx,
-                         int                       dy)
-{
-   Eina_Bool ret = EINA_TRUE;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_crtc_info_reply_t *oreply[num];
-   int i = 0, cw = 0, ch = 0;
-   int mw = 0, mh = 0, nw = 0, nh = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (!_ecore_xcb_randr_root_validate(root)) return EINA_FALSE;
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   ecore_x_randr_screen_size_range_get(root, NULL, NULL, &mw, &mh);
-   ecore_x_randr_screen_current_size_get(root, &cw, &ch, NULL, NULL);
-   nw = cw;
-   nh = ch;
-
-   for (i = 0; i < num; i++)
-     {
-        xcb_randr_get_crtc_info_cookie_t ocookie;
-
-        ocookie =
-          xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtcs[i],
-                                            stamp);
-        oreply[i] = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn,
-                                                  ocookie, NULL);
-        if (oreply[i])
-          {
-             if (((oreply[i]->x + dx) < 0) ||
-                 ((oreply[i]->y + dy) < 0) ||
-                 ((oreply[i]->x + oreply[i]->width + dx) > mw) ||
-                 ((oreply[i]->y + oreply[i]->height + dy) > mh))
-               {
-                  continue;
-               }
-             nw = MAX((int)(oreply[i]->x + oreply[i]->width + dx), nw);
-             nh = MAX((int)(oreply[i]->y + oreply[i]->height + dy), nh);
-          }
-     }
-
-   if ((nw > cw) || (nh > ch))
-     {
-        if (!ecore_x_randr_screen_current_size_set(root, nw, nh, -1, -1))
-          {
-             for (i = 0; i < num; i++)
-               if (oreply[i]) free(oreply[i]);
-
-             return EINA_FALSE;
-          }
-     }
-
-   for (i = 0; ((i < num) && (oreply[i])); i++)
-     {
-        if (!oreply[i]) continue;
-        if (!ecore_x_randr_crtc_settings_set(root, crtcs[i], NULL, -1,
-                                             (oreply[i]->x + dx),
-                                             (oreply[i]->y + dy),
-                                             oreply[i]->mode,
-                                             oreply[i]->rotation))
-          {
-             ret = EINA_FALSE;
-             break;
-          }
-     }
-
-   if (i < num)
-     {
-        while (i-- >= 0)
-          {
-             if (oreply[i])
-               ecore_x_randr_crtc_settings_set(root, crtcs[i], NULL, -1,
-                                               (oreply[i]->x - dx),
-                                               (oreply[i]->y - dy),
-                                               oreply[i]->mode,
-                                               oreply[i]->rotation);
-          }
-     }
-
-   for (i = 0; i < num; i++)
-     if (oreply[i]) free(oreply[i]);
-#endif
-
-   return ret;
-}
-
-/**
- * @brief enable event selection. This enables basic interaction with
- * output/crtc events and requires RRandR >= 1.2.
- * @param win select this window's properties for RandRR events
- * @param on enable/disable selecting
- */
-EAPI void
-ecore_x_randr_events_select(Ecore_X_Window win,
-                            Eina_Bool      on)
-{
-#ifdef ECORE_XCB_RANDR
-   uint16_t mask = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if (on)
-     {
-        mask = XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE;
-        if (_randr_version >= ((1 << 16) | 2))
-          {
-             mask |= (XCB_RANDR_NOTIFY_MASK_CRTC_CHANGE |
-                      XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE |
-                      XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY);
-          }
-     }
-
-   xcb_randr_select_input(_ecore_xcb_conn, win, mask);
-#endif
-}
-
-/**
- * @brief removes unused screen space. The most upper left CRTC is set to 0x0
- * and all other CRTCs dx,dy respectively.
- * @param root the window's screen which will be reset.
- */
-EAPI void
-ecore_x_randr_screen_reset(Ecore_X_Window root)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   Ecore_X_Randr_Crtc *crtcs = NULL;
-   int total = 0, i = 0, w = 0, h = 0;
-   int dx = 100000, dy = 100000, num = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if (!_ecore_xcb_randr_root_validate(root)) return;
-   crtcs = ecore_x_randr_crtcs_get(root, &total);
-
-   if (_randr_version >= RANDR_1_3)
-     stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-   else if (_randr_version == RANDR_1_2)
-     stamp = _ecore_xcb_randr_12_get_resource_timestamp(root);
-
-   /* I hate declaring variables inside code like this, but we need the
-    * value of 'total' before we can */
-   Ecore_X_Randr_Crtc enabled[total];
-
-   for (i = 0; i < total; i++)
-     {
-        xcb_randr_get_crtc_info_cookie_t ocookie;
-        xcb_randr_get_crtc_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_crtc_info_unchecked(_ecore_xcb_conn, crtcs[i], stamp);
-        oreply = xcb_randr_get_crtc_info_reply(_ecore_xcb_conn,
-                                               ocookie, NULL);
-        if (!oreply) continue;
-        if ((oreply->mode <= 0) || (oreply->num_outputs == 0))
-          {
-             free(oreply);
-             continue;
-          }
-
-        enabled[num++] = crtcs[i];
-        if ((int)(oreply->x + oreply->width) > w)
-          w = (oreply->x + oreply->width);
-        if ((int)(oreply->y + oreply->height) > h)
-          h = (oreply->y + oreply->height);
-
-        if (oreply->x < dx) dx = oreply->x;
-        if (oreply->y < dy) dy = oreply->y;
-
-        free(oreply);
-     }
-   free(crtcs);
-
-   if ((dx > 0) || (dy > 0))
-     {
-        if (ecore_x_randr_move_crtcs(root, enabled, num, -dx, -dy))
-          {
-             w -= dx;
-             h -= dy;
-          }
-     }
-
-   ecore_x_randr_screen_current_size_set(root, w, h, -1, -1);
-#endif
-}
-
-/*
- * @param root window which's screen will be queried
- * @param wmin minimum width the screen can be set to
- * @param hmin minimum height the screen can be set to
- * @param wmax maximum width the screen can be set to
- * @param hmax maximum height the screen can be set to
- */
-EAPI void
-ecore_x_randr_screen_size_range_get(Ecore_X_Window root,
-                                    int           *minw,
-                                    int           *minh,
-                                    int           *maxw,
-                                    int           *maxh)
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_size_range_cookie_t cookie;
-   xcb_randr_get_screen_size_range_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-
-   cookie = xcb_randr_get_screen_size_range_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_randr_get_screen_size_range_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        if (minw) *minw = reply->min_width;
-        if (minh) *minh = reply->min_height;
-        if (maxw) *maxw = reply->max_width;
-        if (maxh) *maxh = reply->max_height;
-        free(reply);
-     }
-#endif
-}
-
-EAPI void
-ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Randr_Output *outputs;
-   int i = 0, ret = 0;
-
-   RANDR_CHECK_1_3_RET();
-
-   outputs = _ecore_xcb_randr_13_outputs_get(root, &ret);
-   for (i = 0; i < ret; i++)
-     ecore_x_randr_output_backlight_level_set(root, outputs[i], level);
-#endif
-}
-
-/*
- * @param w width of screen in px
- * @param h height of screen in px
- */
-EAPI void
-ecore_x_randr_screen_current_size_get(Ecore_X_Window root,
-                                      int           *w,
-                                      int           *h,
-                                      int           *w_mm,
-                                      int           *h_mm)
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Randr_Screen scr = 0;
-   xcb_screen_t *s;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET();
-
-   if (!RANDR_VALIDATE_ROOT(scr, root)) return;
-
-   s = ecore_x_screen_get(scr);
-   if (w) *w = s->width_in_pixels;
-   if (h) *h = s->height_in_pixels;
-   if (w_mm) *w_mm = s->width_in_millimeters;
-   if (h_mm) *h_mm = s->height_in_millimeters;
-#endif
-}
-
-/*
- * @param root Window which's screen's size should be set. If invalid (e.g. 
- * @c NULL) no action is taken.
- * @param w Width in px the screen should be set to. If out of valid
- * boundaries, current value is assumed.
- * @param h Height in px the screen should be set to. If out of valid
- * boundaries, current value is assumed.
- * @param w_mm Width in mm the screen should be set to. If @c 0, current
- * aspect is assumed.
- * @param h_mm Height in mm the screen should be set to. If @c 0, current
- * aspect is assumed.
- * @return @c EINA_TRUE if request was successfully sent or screen is already
- * in requested size, @c EINA_FALSE if parameters are invalid.
- */
-EAPI Eina_Bool
-ecore_x_randr_screen_current_size_set(Ecore_X_Window root,
-                                      int            w,
-                                      int            h,
-                                      int            w_mm,
-                                      int            h_mm)
-{
-   Eina_Bool ret = EINA_TRUE;
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Randr_Screen scr;
-   int wc = 0, hc = 0, w_mm_c = 0, h_mm_c = 0;
-   int mw = 0, mh = 0, xw = 0, xh = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (!RANDR_VALIDATE_ROOT(scr, root)) return EINA_FALSE;
-   ecore_x_randr_screen_current_size_get(root, &wc, &hc, &w_mm_c, &h_mm_c);
-   if ((w == wc) && (h == hc) && (w_mm == w_mm_c) && (h_mm == h_mm_c))
-     return EINA_TRUE;
-   ecore_x_randr_screen_size_range_get(root, &mw, &mh, &xw, &xh);
-   if (((w != 1) && ((w < mw) || (w > xw))) ||
-       ((h != -1) && ((h < mh) || (h > xh)))) return EINA_FALSE;
-
-   if (w <= 0)
-     w = ((xcb_screen_t *)_ecore_xcb_screen)->width_in_pixels;
-   if (h <= 0)
-     h = ((xcb_screen_t *)_ecore_xcb_screen)->height_in_pixels;
-
-   /* NB: Hmmmm, xlib version divides w_mm by width ... that seems wrong */
-   if (w_mm <= 0)
-     w_mm = ((xcb_screen_t *)_ecore_xcb_screen)->width_in_millimeters;
-   if (h_mm <= 0)
-     h_mm = ((xcb_screen_t *)_ecore_xcb_screen)->height_in_millimeters;
-
-   xcb_randr_set_screen_size(_ecore_xcb_conn, root, w, h, w_mm, h_mm);
-#endif
-
-   return ret;
-}
-
-/*
- * @deprecated bad naming. Use ecore_x_randr_window_outputs_get instead.
- * @brief Get the outputs, which display a certain window.
- *
- * @param window Window the displaying outputs shall be found for.
- * @param num The number of outputs displaying the window.
- * @return Array of outputs that display a certain window. @c NULL if no
- * outputs was found that displays the specified window.
- */
-
-Ecore_X_Randr_Output *
-ecore_x_randr_current_output_get(Ecore_X_Window window,
-                                 int *num)
-{
-   return ecore_x_randr_window_outputs_get(window, num);
-}
-
-/*
- * @brief Get the outputs, which display a certain window.
- *
- * @param window Window the displaying outputs shall be found for.
- * @param num The number of outputs displaying the window.
- * @return Array of outputs that display a certain window. @c NULL if no
- * outputs was found that displays the specified window.
- */
-EAPI Ecore_X_Randr_Output *
-ecore_x_randr_window_outputs_get(Ecore_X_Window window,
-                                 int           *num)
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Window root;
-   Ecore_X_Randr_Crtc *crtcs;
-   Ecore_X_Randr_Output *outputs, *ret = NULL, *tret;
-   int ncrtcs, noutputs, i, nret = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num) *num = 0;
-
-#ifdef ECORE_XCB_RANDR
-   if (_randr_version < RANDR_1_2) goto _ecore_x_randr_current_output_get_fail;
-
-   root = ecore_x_window_root_get(window);
-   if (!(crtcs = ecore_x_randr_window_crtcs_get(window, &ncrtcs)))
-     goto _ecore_x_randr_current_output_get_fail;
-
-   for (i = 0, nret = 0; i < ncrtcs; i++)
-     {
-
-        outputs = ecore_x_randr_crtc_outputs_get(root, crtcs[i],
-              &noutputs);
-        if (outputs)
-          {
-             if (noutputs > 0)
-               {
-                  tret = realloc(ret, ((nret + noutputs) * sizeof(Ecore_X_Randr_Output)));
-                  if (!tret) goto _ecore_x_randr_current_output_get_fail_free;
-                  ret = tret;
-                  memcpy(&ret[nret], outputs, (noutputs * sizeof(Ecore_X_Randr_Output)));
-                  nret += noutputs;
-               }
-             free(outputs);
-             outputs = NULL;
-          }
-     }
-   free(crtcs);
-
-   if (num)
-     *num = nret;
-
-   return ret;
-
-_ecore_x_randr_current_output_get_fail_free:
-   free(outputs);
-   free(crtcs);
-   free(ret);
-_ecore_x_randr_current_output_get_fail:
-#endif
-   if (num) *num = 0;
-   return NULL;
-}
-
-/*
- * @brief get the backlight level of the given output
- * @param root window which's screen should be queried
- * @param output from which the backlight level should be retrieved
- * @return the backlight level
- */
-EAPI double
-ecore_x_randr_output_backlight_level_get(Ecore_X_Window       root,
-                                         Ecore_X_Randr_Output output)
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Atom _backlight;
-   xcb_intern_atom_cookie_t acookie;
-   xcb_intern_atom_reply_t *areply;
-   xcb_randr_get_output_property_cookie_t cookie;
-   xcb_randr_get_output_property_reply_t *reply;
-   xcb_randr_query_output_property_cookie_t qcookie;
-   xcb_randr_query_output_property_reply_t *qreply;
-   double dvalue;
-   long value, max, min;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(-1);
-
-   acookie =
-     xcb_intern_atom_unchecked(_ecore_xcb_conn, 1,
-                               strlen("Backlight"), "Backlight");
-   areply = xcb_intern_atom_reply(_ecore_xcb_conn, acookie, NULL);
-
-   if (!areply)
-     {
-        ERR("Backlight property is not suppported on this server or driver");
-        return -1;
-     }
-   else
-     {
-        _backlight = areply->atom;
-        free(areply);
-     }
-
-   if (!_ecore_xcb_randr_output_validate(root, output))
-     {
-        ERR("Invalid output");
-        return -1;
-     }
-
-   cookie =
-     xcb_randr_get_output_property_unchecked(_ecore_xcb_conn,
-                                             output, _backlight,
-                                             XCB_ATOM_NONE, 0, 4, 0, 0);
-   reply =
-     xcb_randr_get_output_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply)
-     {
-        WRN("Backlight not supported on this output");
-        return -1;
-     }
-
-   if ((reply->format != 32) || (reply->num_items != 1) ||
-       (reply->type != XCB_ATOM_INTEGER))
-     {
-        free(reply);
-        return -1;
-     }
-
-   value = *((long *)xcb_randr_get_output_property_data(reply));
-   free (reply);
-
-   /* I have the current value of the backlight */
-   /* Now retrieve the min and max intensities of the output */
-   qcookie =
-     xcb_randr_query_output_property_unchecked(_ecore_xcb_conn,
-                                               output, _backlight);
-   qreply =
-     xcb_randr_query_output_property_reply(_ecore_xcb_conn, qcookie, NULL);
-   if (qreply)
-     {
-        dvalue = -1;
-        if ((qreply->range) &&
-            (xcb_randr_query_output_property_valid_values_length(qreply) == 2))
-          {
-             int32_t *vals;
-
-             vals = xcb_randr_query_output_property_valid_values(qreply);
-             /* finally convert the current value in the interval [0..1] */
-             min = vals[0];
-             max = vals[1];
-             dvalue = ((double)(value - min)) / ((double)(max - min));
-          }
-        free(qreply);
-        return dvalue;
-     }
-#endif
-   return -1;
-}
-
-/*
- * @brief Set the backlight level of a given output.
- *
- * @param root Window which's screen should be queried.
- * @param output That should be set.
- * @param level For which the backlight should be set.
- * @return @c EINA_TRUE in case of success.
- */
-EAPI Eina_Bool
-ecore_x_randr_output_backlight_level_set(Ecore_X_Window       root,
-                                         Ecore_X_Randr_Output output,
-                                         double               level)
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Atom _backlight;
-   xcb_intern_atom_cookie_t acookie;
-   xcb_intern_atom_reply_t *areply;
-   xcb_randr_query_output_property_cookie_t qcookie;
-   xcb_randr_query_output_property_reply_t *qreply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if ((level < 0) || (level > 1))
-     {
-        ERR("Backlight level should be between 0 and 1");
-        return EINA_FALSE;
-     }
-
-   if (!_ecore_xcb_randr_output_validate(root, output))
-     {
-        ERR("Wrong output value");
-        return EINA_FALSE;
-     }
-
-   acookie =
-     xcb_intern_atom_unchecked(_ecore_xcb_conn, 1,
-                               strlen("Backlight"), "Backlight");
-   areply = xcb_intern_atom_reply(_ecore_xcb_conn, acookie, NULL);
-   if (!areply)
-     {
-        WRN("Backlight property is not suppported on this server or driver");
-        return EINA_FALSE;
-     }
-   else
-     {
-        _backlight = areply->atom;
-        free(areply);
-     }
-
-   qcookie =
-     xcb_randr_query_output_property_unchecked(_ecore_xcb_conn,
-                                               output, _backlight);
-   qreply =
-     xcb_randr_query_output_property_reply(_ecore_xcb_conn, qcookie, NULL);
-   if (qreply)
-     {
-        if ((qreply->range) && (qreply->length == 2))
-          {
-             int32_t *vals;
-             double min, max, tmp;
-             long n;
-
-             vals = xcb_randr_query_output_property_valid_values(qreply);
-             min = vals[0];
-             max = vals[1];
-             tmp = (level * (max - min)) + min;
-             n = tmp;
-             if (n > max) n = max;
-             if (n < min) n = min;
-             xcb_randr_change_output_property(_ecore_xcb_conn, output,
-                                              _backlight, XCB_ATOM_INTEGER,
-                                              32, XCB_PROP_MODE_REPLACE,
-                                              1, (unsigned char *)&n);
-             ecore_x_flush(); // needed
-          }
-
-        free(qreply);
-        return EINA_TRUE;
-     }
-#endif
-   return EINA_FALSE;
-}
-
-/*
- * @brief Check if a backlight is available.
- *
- * @return Whether a backlight is available.
- */
-EAPI Eina_Bool 
-ecore_x_randr_output_backlight_available(void) 
-{
-#ifdef ECORE_XCB_RANDR
-   xcb_intern_atom_cookie_t acookie;
-   xcb_intern_atom_reply_t *areply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   acookie =
-     xcb_intern_atom_unchecked(_ecore_xcb_conn, 1,
-                               strlen("Backlight"), "Backlight");
-   areply = xcb_intern_atom_reply(_ecore_xcb_conn, acookie, NULL);
-
-   if (!areply)
-     {
-        ERR("Backlight property is not suppported on this server or driver");
-        return EINA_FALSE;
-     }
-   else
-     {
-        free(areply);
-        return EINA_TRUE;
-     }
-#endif
-   return EINA_FALSE;
-}
-
-EAPI int
-ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length)
-{
-   if ((edid_length > _ECORE_X_RANDR_EDID_OFFSET_VERSION_MINOR) &&
-       (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
-     return (edid[_ECORE_X_RANDR_EDID_OFFSET_VERSION_MAJOR] << 8) |
-            edid[_ECORE_X_RANDR_EDID_OFFSET_VERSION_MINOR];
-   return ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
-}
-
-EAPI char *
-ecore_x_randr_edid_display_name_get(unsigned char *edid, unsigned long edid_length) 
-{
-   unsigned char *block = NULL;
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return NULL;
-
-   _ECORE_X_RANDR_EDID_FOR_EACH_NON_PIXEL_DESCRIPTOR_BLOCK(edid, block)
-     {
-        if (block[_ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_TYPE] == 0xfc)
-          {
-             char *name, *p;
-             const char *edid_name;
-
-             edid_name = (const char *)block + 
-               _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_CONTENT;
-             name = 
-               malloc(_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX + 1);
-             if (!name) return NULL;
-
-             strncpy(name, edid_name, 
-                     _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
-             name[_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX] = 0;
-             for (p = name; *p; p++)
-               if ((*p < ' ') || (*p > '~')) *p = 0;
-
-             return name;
-          }
-     }
-   return NULL;
-}
-
-EAPI char *
-ecore_x_randr_edid_display_ascii_get(unsigned char *edid, unsigned long edid_length) 
-{
-#ifdef ECORE_XCB_RANDR
-   unsigned char *block = NULL;
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return NULL;
-
-   _ECORE_X_RANDR_EDID_FOR_EACH_NON_PIXEL_DESCRIPTOR_BLOCK(edid, block)
-     {
-        if (block[_ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_TYPE] == 0xfe)
-          {
-             char *ascii = NULL, *p = NULL;
-             const char *edid_ascii;
-
-             edid_ascii = (const char *)block + 5;
-
-             if (!(ascii = malloc(14))) return NULL;
-             strncpy(ascii, edid_ascii, 13);
-             ascii[13] = 0;
-             for (p = ascii; *p; p++)
-               if ((*p < ' ') || (*p > '~')) *p = 0;
-
-             return ascii;
-          }
-     }
-#endif
-   return NULL;
-}
-
-EAPI char *
-ecore_x_randr_edid_display_serial_get(unsigned char *edid, unsigned long edid_length) 
-{
-#ifdef ECORE_XCB_RANDR
-   unsigned char *block = NULL;
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return NULL;
-
-   _ECORE_X_RANDR_EDID_FOR_EACH_NON_PIXEL_DESCRIPTOR_BLOCK(edid, block)
-     {
-        if (block[_ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_TYPE] == 0xff)
-          {
-             char *serial = NULL, *p = NULL;
-             const char *edid_serial;
-
-             edid_serial = (const char *)block + 5;
-
-             if (!(serial = malloc(14))) return NULL;
-             strncpy(serial, edid_serial, 13);
-             serial[13] = 0;
-             for (p = serial; *p; p++)
-               if ((*p < ' ') || (*p > '~')) *p = 0;
-
-             return serial;
-          }
-     }
-#endif
-   return NULL;
-}
-
-EAPI Ecore_X_Randr_Edid_Display_Interface_Type
-ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, unsigned long edid_length)
-{
-#ifdef ECORE_XCB_RANDR
-   Ecore_X_Randr_Edid_Display_Interface_Type type;
-   int version = 0;
-
-   type = ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return type;
-
-   type = (edid[0x14] & 0x0f);
-   if (type > ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DISPLAY_PORT)
-     type = ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
-
-   return type;
-#endif
-   return 0;
-}
-
-EAPI Eina_Bool
-ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_length)
-{
-   const unsigned char header[] =
-     { 
-        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 
-     };
-
-   if ((!edid) || (edid_length < 8)) return EINA_FALSE;
-   if (!memcmp(edid, header, 8)) return EINA_TRUE;
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   unsigned char *iter = NULL;
-   char sum = 0;
-   int i = 0, version = 0;
-
-   if (edid_length < 128) return EINA_FALSE;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return EINA_FALSE;
-
-   for (i = 0; i < 128; i++)
-     sum += edid[i];
-
-   if (sum) return EINA_FALSE;
-
-   for (iter = edid; iter < (edid + edid_length); iter += 128)
-     {
-        if (iter[0] == 0x02)
-          {
-             for (i = 0, sum = 0; i < 128; i++)
-               sum += iter[i];
-          }
-     }
-
-   if (sum) return EINA_FALSE;
-   return EINA_TRUE;
-#else
-   return EINA_FALSE;
-#endif
-}
-
-EAPI char *
-ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if ((edid_length > _ECORE_X_RANDR_EDID_MANUFACTURER + 1) &&
-       (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
-     {
-        unsigned char *x;
-        char *name;
-
-        name = malloc(sizeof(char) * 4);
-        if (!name) return NULL;
-
-        x = (edid + _ECORE_X_RANDR_EDID_MANUFACTURER);
-        name[0] = ((x[0] & 0x7c) >> 2) + '@';
-        name[1] = ((x[0] & 0x03) << 3) + ((x[1] & 0xe0) >> 5) + '@';
-        name[2] = (x[1] & 0x1f) + '@';
-        name[3] = 0;
-
-        return name;
-     }
-#endif
-   return NULL;
-}
-
-EAPI int
-ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if ((edid_length > _ECORE_X_RANDR_EDID_MANUFACTURER + 1) &&
-       (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
-     return (int)(edid[0x0a] + (edid[0x0b] << 8));
-#endif
-   return ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
-}
-
-EAPI int
-ecore_x_randr_edid_model_get(unsigned char *edid, unsigned long edid_length)
-{
-   return ecore_x_randr_edid_manufacturer_model_get(edid, edid_length);
-}
-
-EAPI int 
-ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   if ((edid_length > _ECORE_X_RANDR_EDID_MANUFACTURER + 1) &&
-       (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
-     return (int)(edid[0x0c] + (edid[0x0d] << 8) + 
-                  (edid[0x0e] << 16) + (edid[0x0f] << 24));
-#endif
-   return ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
-}
-
-EAPI Eina_Bool 
-ecore_x_randr_edid_dpms_available_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return EINA_FALSE;
-
-   return !!(edid[0x18] & 0xE0);
-#else
-   return EINA_FALSE;
-#endif
-}
-
-EAPI Eina_Bool 
-ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return EINA_FALSE;
-
-   if (edid[0x18] & 0xE0) return !!(edid[0x18] & 0x80);
-#endif
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool 
-ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return EINA_FALSE;
-
-   if (edid[0x18] & 0xE0) return !!(edid[0x18] & 0x40);
-#endif
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool 
-ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, unsigned long edid_length)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   int version = 0;
-
-   version = ecore_x_randr_edid_version_get(edid, edid_length);
-   if (version < ECORE_X_RANDR_EDID_VERSION_13) return EINA_FALSE;
-
-   if (edid[0x18] & 0xE0) return !!(edid[0x18] & 0x20);
-#endif
-   return EINA_FALSE;
-}
-
-/* local functions */
-static Eina_Bool
-_ecore_xcb_randr_output_validate(Ecore_X_Window       root,
-                                 Ecore_X_Randr_Output output)
-{
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if ((output) && (_ecore_xcb_randr_root_validate(root)))
-     {
-        if (_randr_version >= RANDR_1_3)
-          {
-             xcb_randr_get_screen_resources_current_reply_t *reply;
-
-             reply = _ecore_xcb_randr_13_get_resources(root);
-             if (reply)
-               {
-                  int len = 0, i = 0;
-                  xcb_randr_output_t *outputs;
-
-                  len =
-                    xcb_randr_get_screen_resources_current_outputs_length(reply);
-                  outputs =
-                    xcb_randr_get_screen_resources_current_outputs(reply);
-                  for (i = 0; i < len; i++)
-                    {
-                       if (outputs[i] == output)
-                         {
-                            ret = EINA_TRUE;
-                            break;
-                         }
-                    }
-                  free(reply);
-               }
-          }
-        else if (_randr_version == RANDR_1_2)
-          {
-             xcb_randr_get_screen_resources_reply_t *reply;
-
-             reply = _ecore_xcb_randr_12_get_resources(root);
-             if (reply)
-               {
-                  int len = 0, i = 0;
-                  xcb_randr_output_t *outputs;
-
-                  len = xcb_randr_get_screen_resources_outputs_length(reply);
-                  outputs = xcb_randr_get_screen_resources_outputs(reply);
-                  for (i = 0; i < len; i++)
-                    {
-                       if (outputs[i] == output)
-                         {
-                            ret = EINA_TRUE;
-                            break;
-                         }
-                    }
-                  free(reply);
-               }
-          }
-     }
-#endif
-   return ret;
-}
-
-/**
- * @brief Validates a CRTC for a given root window's screen.
- *
- * @param root The window which's default display will be queried.
- * @param crtc The CRTC to be validated.
- * @return In case it is found @c EINA_TRUE will be returned, else
- * @c EINA_FALSE is returned.
- */
-static Eina_Bool
-_ecore_xcb_randr_crtc_validate(Ecore_X_Window     root,
-                               Ecore_X_Randr_Crtc crtc)
-{
-   Eina_Bool ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RANDR
-   RANDR_CHECK_1_2_RET(EINA_FALSE);
-
-   if (((int)crtc == Ecore_X_Randr_None) || ((int)crtc == Ecore_X_Randr_Unset))
-     return ret;
-
-   if ((crtc) && (_ecore_xcb_randr_root_validate(root)))
-     {
-        if (_randr_version >= RANDR_1_3)
-          {
-             xcb_randr_get_screen_resources_current_reply_t *reply;
-
-             reply = _ecore_xcb_randr_13_get_resources(root);
-             if (reply)
-               {
-                  int i = 0;
-                  xcb_randr_crtc_t *crtcs;
-
-                  crtcs = xcb_randr_get_screen_resources_current_crtcs(reply);
-                  for (i = 0; i < reply->num_crtcs; i++)
-                    {
-                       if (crtcs[i] == crtc)
-                         {
-                            ret = EINA_TRUE;
-                            break;
-                         }
-                    }
-                  free(reply);
-               }
-          }
-        else if (_randr_version == RANDR_1_2)
-          {
-             xcb_randr_get_screen_resources_reply_t *reply;
-
-             reply = _ecore_xcb_randr_12_get_resources(root);
-             if (reply)
-               {
-                  int i = 0;
-                  xcb_randr_crtc_t *crtcs;
-
-                  crtcs = xcb_randr_get_screen_resources_crtcs(reply);
-                  for (i = 0; i < reply->num_crtcs; i++)
-                    {
-                       if (crtcs[i] == crtc)
-                         {
-                            ret = EINA_TRUE;
-                            break;
-                         }
-                    }
-                  free(reply);
-               }
-          }
-     }
-#endif
-
-   return ret;
-}
-
-static Ecore_X_Randr_Mode *
-_ecore_xcb_randr_12_output_modes_get(Ecore_X_Window       root,
-                                     Ecore_X_Randr_Output output,
-                                     int                 *num,
-                                     int                 *npreferred)
-{
-   Ecore_X_Randr_Mode *modes = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             if (num) *num = oreply->num_modes;
-             if (npreferred) *npreferred = oreply->num_preferred;
-
-             modes = malloc(sizeof(Ecore_X_Randr_Mode) *
-                            oreply->num_modes);
-             if (modes)
-               {
-                  xcb_randr_mode_t *rmodes;
-                  int len = 0;
-
-                  len = xcb_randr_get_output_info_modes_length(oreply);
-                  rmodes = xcb_randr_get_output_info_modes(oreply);
-                  memcpy(modes, rmodes, sizeof(Ecore_X_Randr_Mode) * len);
-               }
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return modes;
-}
-
-static Ecore_X_Randr_Mode *
-_ecore_xcb_randr_13_output_modes_get(Ecore_X_Window       root,
-                                     Ecore_X_Randr_Output output,
-                                     int                 *num,
-                                     int                 *npreferred)
-{
-   Ecore_X_Randr_Mode *modes = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_timestamp_t stamp = 0;
-   xcb_randr_get_output_info_cookie_t ocookie;
-   xcb_randr_get_output_info_reply_t *oreply;
-
-   stamp = _ecore_xcb_randr_13_get_resource_timestamp(root);
-
-   ocookie =
-     xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output, stamp);
-   oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn, ocookie, NULL);
-   if (oreply)
-     {
-        if (num) *num = oreply->num_modes;
-        if (npreferred) *npreferred = oreply->num_preferred;
-
-        modes = malloc(sizeof(Ecore_X_Randr_Mode) * oreply->num_modes);
-        if (modes)
-          {
-             xcb_randr_mode_t *rmodes;
-             int len = 0;
-
-             len = xcb_randr_get_output_info_modes_length(oreply);
-             rmodes = xcb_randr_get_output_info_modes(oreply);
-             memcpy(modes, rmodes, sizeof(Ecore_X_Randr_Mode) * len);
-          }
-        free(oreply);
-     }
-#endif
-   return modes;
-}
-
-static Ecore_X_Randr_Mode_Info *
-_ecore_xcb_randr_12_mode_info_get(Ecore_X_Window     root,
-                                  Ecore_X_Randr_Mode mode)
-{
-   Ecore_X_Randr_Mode_Info *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        if ((ret = malloc(sizeof(Ecore_X_Randr_Mode_Info))))
-          {
-             uint8_t *nbuf;
-             xcb_randr_mode_info_iterator_t miter;
-
-             nbuf = xcb_randr_get_screen_resources_names(reply);
-             miter = xcb_randr_get_screen_resources_modes_iterator(reply);
-             while (miter.rem)
-               {
-                  xcb_randr_mode_info_t *minfo;
-
-                  minfo = miter.data;
-                  nbuf += minfo->name_len;
-
-                  if (minfo->id == mode)
-                    {
-                       ret->xid = minfo->id;
-                       ret->width = minfo->width;
-                       ret->height = minfo->height;
-                       ret->dotClock = minfo->dot_clock;
-                       ret->hSyncStart = minfo->hsync_start;
-                       ret->hSyncEnd = minfo->hsync_end;
-                       ret->hTotal = minfo->htotal;
-                       ret->vSyncStart = minfo->vsync_start;
-                       ret->vSyncEnd = minfo->vsync_end;
-                       ret->vTotal = minfo->vtotal;
-                       ret->modeFlags = minfo->mode_flags;
-
-                       ret->name = NULL;
-                       ret->nameLength = minfo->name_len;
-                       if (ret->nameLength > 0)
-                         {
-                            ret->name = malloc(ret->nameLength + 1);
-                            if (ret->name)
-                              memcpy(ret->name, nbuf, ret->nameLength + 1);
-                         }
-
-                       break;
-                    }
-                  xcb_randr_mode_info_next(&miter);
-               }
-          }
-
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Mode_Info *
-_ecore_xcb_randr_13_mode_info_get(Ecore_X_Window     root,
-                                  Ecore_X_Randr_Mode mode)
-{
-   Ecore_X_Randr_Mode_Info *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        if ((ret = malloc(sizeof(Ecore_X_Randr_Mode_Info))))
-          {
-             uint8_t *nbuf;
-             xcb_randr_mode_info_iterator_t miter;
-
-             nbuf = xcb_randr_get_screen_resources_current_names(reply);
-             miter =
-               xcb_randr_get_screen_resources_current_modes_iterator(reply);
-             while (miter.rem)
-               {
-                  xcb_randr_mode_info_t *minfo;
-
-                  minfo = miter.data;
-                  nbuf += minfo->name_len;
-
-                  if (minfo->id == mode)
-                    {
-                       ret->xid = minfo->id;
-                       ret->width = minfo->width;
-                       ret->height = minfo->height;
-                       ret->dotClock = minfo->dot_clock;
-                       ret->hSyncStart = minfo->hsync_start;
-                       ret->hSyncEnd = minfo->hsync_end;
-                       ret->hTotal = minfo->htotal;
-                       ret->vSyncStart = minfo->vsync_start;
-                       ret->vSyncEnd = minfo->vsync_end;
-                       ret->vTotal = minfo->vtotal;
-                       ret->modeFlags = minfo->mode_flags;
-
-                       ret->name = NULL;
-                       ret->nameLength = minfo->name_len;
-                       if (ret->nameLength > 0)
-                         {
-                            ret->name = malloc(ret->nameLength + 1);
-                            if (ret->name)
-                              memcpy(ret->name, nbuf, ret->nameLength + 1);
-                         }
-
-                       break;
-                    }
-                  xcb_randr_mode_info_next(&miter);
-               }
-          }
-
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Mode_Info **
-_ecore_xcb_randr_12_modes_info_get(Ecore_X_Window root,
-                                   int           *num)
-{
-   Ecore_X_Randr_Mode_Info **ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        if (num) *num = reply->num_modes;
-        ret = malloc(sizeof(Ecore_X_Randr_Mode_Info *) * reply->num_modes);
-        if (ret)
-          {
-             xcb_randr_mode_info_iterator_t miter;
-             int i = 0;
-             uint8_t *nbuf;
-
-             nbuf = xcb_randr_get_screen_resources_names(reply);
-             miter = xcb_randr_get_screen_resources_modes_iterator(reply);
-             while (miter.rem)
-               {
-                  xcb_randr_mode_info_t *minfo;
-
-                  minfo = miter.data;
-                  nbuf += minfo->name_len;
-                  if ((ret[i] = malloc(sizeof(Ecore_X_Randr_Mode_Info))))
-                    {
-                       ret[i]->xid = minfo->id;
-                       ret[i]->width = minfo->width;
-                       ret[i]->height = minfo->height;
-                       ret[i]->dotClock = minfo->dot_clock;
-                       ret[i]->hSyncStart = minfo->hsync_start;
-                       ret[i]->hSyncEnd = minfo->hsync_end;
-                       ret[i]->hTotal = minfo->htotal;
-                       ret[i]->vSyncStart = minfo->vsync_start;
-                       ret[i]->vSyncEnd = minfo->vsync_end;
-                       ret[i]->vTotal = minfo->vtotal;
-                       ret[i]->modeFlags = minfo->mode_flags;
-
-                       ret[i]->name = NULL;
-                       ret[i]->nameLength = minfo->name_len;
-                       if (ret[i]->nameLength > 0)
-                         {
-                            ret[i]->name = malloc(ret[i]->nameLength + 1);
-                            if (ret[i]->name)
-                              memcpy(ret[i]->name, nbuf,
-                                     ret[i]->nameLength + 1);
-                         }
-                    }
-                  else
-                    {
-                       while (i > 0)
-                         free(ret[--i]);
-                       free(ret);
-                       ret = NULL;
-                       break;
-                    }
-                  i++;
-                  xcb_randr_mode_info_next(&miter);
-               }
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Mode_Info **
-_ecore_xcb_randr_13_modes_info_get(Ecore_X_Window root,
-                                   int           *num)
-{
-   Ecore_X_Randr_Mode_Info **ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        if (num) *num = reply->num_modes;
-        ret = malloc(sizeof(Ecore_X_Randr_Mode_Info *) * reply->num_modes);
-        if (ret)
-          {
-             xcb_randr_mode_info_iterator_t miter;
-             int i = 0;
-             uint8_t *nbuf;
-
-             nbuf = xcb_randr_get_screen_resources_current_names(reply);
-             miter =
-               xcb_randr_get_screen_resources_current_modes_iterator(reply);
-             while (miter.rem)
-               {
-                  xcb_randr_mode_info_t *minfo;
-
-                  minfo = miter.data;
-                  nbuf += minfo->name_len;
-                  if ((ret[i] = malloc(sizeof(Ecore_X_Randr_Mode_Info))))
-                    {
-                       ret[i]->xid = minfo->id;
-                       ret[i]->width = minfo->width;
-                       ret[i]->height = minfo->height;
-                       ret[i]->dotClock = minfo->dot_clock;
-                       ret[i]->hSyncStart = minfo->hsync_start;
-                       ret[i]->hSyncEnd = minfo->hsync_end;
-                       ret[i]->hTotal = minfo->htotal;
-                       ret[i]->vSyncStart = minfo->vsync_start;
-                       ret[i]->vSyncEnd = minfo->vsync_end;
-                       ret[i]->vTotal = minfo->vtotal;
-                       ret[i]->modeFlags = minfo->mode_flags;
-
-                       ret[i]->name = NULL;
-                       ret[i]->nameLength = minfo->name_len;
-                       if (ret[i]->nameLength > 0)
-                         {
-                            ret[i]->name = malloc(ret[i]->nameLength + 1);
-                            if (ret[i]->name)
-                              memcpy(ret[i]->name, nbuf,
-                                     ret[i]->nameLength + 1);
-                         }
-                    }
-                  else
-                    {
-                       while (i > 0)
-                         free(ret[--i]);
-                       free(ret);
-                       ret = NULL;
-                       break;
-                    }
-                  i++;
-                  xcb_randr_mode_info_next(&miter);
-               }
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static void
-_ecore_xcb_randr_12_mode_size_get(Ecore_X_Window     root,
-                                  Ecore_X_Randr_Mode mode,
-                                  int               *w,
-                                  int               *h)
-{
-   if (w) *w = 0;
-   if (h) *h = 0;
-
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_mode_info_iterator_t miter;
-
-        miter = xcb_randr_get_screen_resources_modes_iterator(reply);
-        while (miter.rem)
-          {
-             xcb_randr_mode_info_t *minfo;
-
-             minfo = miter.data;
-             if (minfo->id == mode)
-               {
-                  if (w) *w = minfo->width;
-                  if (h) *h = minfo->height;
-                  break;
-               }
-             xcb_randr_mode_info_next(&miter);
-          }
-        free(reply);
-     }
-#endif
-}
-
-static void
-_ecore_xcb_randr_13_mode_size_get(Ecore_X_Window     root,
-                                  Ecore_X_Randr_Mode mode,
-                                  int               *w,
-                                  int               *h)
-{
-   if (w) *w = 0;
-   if (h) *h = 0;
-
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_mode_info_iterator_t miter;
-
-        miter = xcb_randr_get_screen_resources_current_modes_iterator(reply);
-        while (miter.rem)
-          {
-             xcb_randr_mode_info_t *minfo;
-
-             minfo = miter.data;
-             if (minfo->id == mode)
-               {
-                  if (w) *w = minfo->width;
-                  if (h) *h = minfo->height;
-                  break;
-               }
-             xcb_randr_mode_info_next(&miter);
-          }
-        free(reply);
-     }
-#endif
-}
-
-static Ecore_X_Randr_Output *
-_ecore_xcb_randr_12_output_clones_get(Ecore_X_Window       root,
-                                      Ecore_X_Randr_Output output,
-                                      int                 *num)
-{
-   Ecore_X_Randr_Output *outputs = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             if (num) *num = oreply->num_clones;
-
-             outputs =
-               malloc(sizeof(Ecore_X_Randr_Output) * oreply->num_clones);
-             if (outputs)
-               {
-                  memcpy(outputs, xcb_randr_get_output_info_clones(oreply),
-                         sizeof(Ecore_X_Randr_Output) * oreply->num_clones);
-               }
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return outputs;
-}
-
-static Ecore_X_Randr_Output *
-_ecore_xcb_randr_13_output_clones_get(Ecore_X_Window       root,
-                                      Ecore_X_Randr_Output output,
-                                      int                 *num)
-{
-   Ecore_X_Randr_Output *outputs = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             if (num) *num = oreply->num_clones;
-
-             outputs =
-               malloc(sizeof(Ecore_X_Randr_Output) * oreply->num_clones);
-             if (outputs)
-               {
-                  memcpy(outputs, xcb_randr_get_output_info_clones(oreply),
-                         sizeof(Ecore_X_Randr_Output) * oreply->num_clones);
-               }
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return outputs;
-}
-
-static Ecore_X_Randr_Crtc *
-_ecore_xcb_randr_12_output_possible_crtcs_get(Ecore_X_Window       root,
-                                              Ecore_X_Randr_Output output,
-                                              int                 *num)
-{
-   Ecore_X_Randr_Crtc *crtcs = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             if (num) *num = oreply->num_crtcs;
-
-             crtcs = malloc(sizeof(Ecore_X_Randr_Crtc) * oreply->num_crtcs);
-             if (crtcs)
-               {
-                  memcpy(crtcs, xcb_randr_get_output_info_crtcs(oreply),
-                         sizeof(Ecore_X_Randr_Crtc) * oreply->num_crtcs);
-               }
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return crtcs;
-}
-
-static Ecore_X_Randr_Crtc *
-_ecore_xcb_randr_13_output_possible_crtcs_get(Ecore_X_Window       root,
-                                              Ecore_X_Randr_Output output,
-                                              int                 *num)
-{
-   Ecore_X_Randr_Crtc *crtcs = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             if (num) *num = oreply->num_crtcs;
-
-             crtcs = malloc(sizeof(Ecore_X_Randr_Crtc) * oreply->num_crtcs);
-             if (crtcs)
-               {
-                  memcpy(crtcs, xcb_randr_get_output_info_crtcs(oreply),
-                         sizeof(Ecore_X_Randr_Crtc) * oreply->num_crtcs);
-               }
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return crtcs;
-}
-
-static char *
-_ecore_xcb_randr_12_output_name_get(Ecore_X_Window       root,
-                                    Ecore_X_Randr_Output output,
-                                    int                 *len)
-{
-   char *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             uint8_t *nbuf;
-
-             nbuf = xcb_randr_get_output_info_name(oreply);
-
-             if (len) *len = oreply->name_len;
-             if (oreply->name_len > 0)
-               {
-                  ret = malloc(oreply->name_len + 1);
-                  if (ret)
-                    {
-                       memcpy(ret, nbuf, oreply->name_len + 1);
-                       ret[oreply->name_len] = '\0';
-                    }
-               }
-
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static char *
-_ecore_xcb_randr_13_output_name_get(Ecore_X_Window       root,
-                                    Ecore_X_Randr_Output output,
-                                    int                 *len)
-{
-   char *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             uint8_t *nbuf;
-
-             nbuf = xcb_randr_get_output_info_name(oreply);
-
-             if (len) *len = oreply->name_len;
-             if (oreply->name_len > 0)
-               {
-                  ret = malloc(oreply->name_len + 1);
-                  if (ret)
-                    {
-                       memcpy(ret, nbuf, oreply->name_len + 1);
-                       ret[oreply->name_len] = '\0';
-                    }
-               }
-
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Connection_Status
-_ecore_xcb_randr_12_output_connection_status_get(Ecore_X_Window       root,
-                                                 Ecore_X_Randr_Output output)
-{
-   Ecore_X_Randr_Connection_Status ret = ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             ret = oreply->connection;
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Connection_Status
-_ecore_xcb_randr_13_output_connection_status_get(Ecore_X_Window       root,
-                                                 Ecore_X_Randr_Output output)
-{
-   Ecore_X_Randr_Connection_Status ret = ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             ret = oreply->connection;
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Output *
-_ecore_xcb_randr_12_outputs_get(Ecore_X_Window root,
-                                int           *num)
-{
-   Ecore_X_Randr_Output *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        if (num) *num = reply->num_outputs;
-        ret = malloc(sizeof(Ecore_X_Randr_Output) * reply->num_outputs);
-        if (ret)
-          memcpy(ret, xcb_randr_get_screen_resources_outputs(reply),
-                 sizeof(Ecore_X_Randr_Output) * reply->num_outputs);
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Output *
-_ecore_xcb_randr_13_outputs_get(Ecore_X_Window root,
-                                int           *num)
-{
-   Ecore_X_Randr_Output *ret = NULL;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        if (num) *num = reply->num_outputs;
-        ret = malloc(sizeof(Ecore_X_Randr_Output) * reply->num_outputs);
-        if (ret)
-          memcpy(ret, xcb_randr_get_screen_resources_current_outputs(reply),
-                 sizeof(Ecore_X_Randr_Output) * reply->num_outputs);
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Crtc
-_ecore_xcb_randr_12_output_crtc_get(Ecore_X_Window       root,
-                                    Ecore_X_Randr_Output output)
-{
-   Ecore_X_Randr_Crtc ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             ret = oreply->crtc;
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static Ecore_X_Randr_Crtc
-_ecore_xcb_randr_13_output_crtc_get(Ecore_X_Window       root,
-                                    Ecore_X_Randr_Output output)
-{
-   Ecore_X_Randr_Crtc ret = Ecore_X_Randr_None;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(root);
-   if (reply)
-     {
-        xcb_randr_get_output_info_cookie_t ocookie;
-        xcb_randr_get_output_info_reply_t *oreply;
-
-        ocookie =
-          xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output,
-                                              reply->config_timestamp);
-        oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn,
-                                                 ocookie, NULL);
-        if (oreply)
-          {
-             ret = oreply->crtc;
-             free(oreply);
-          }
-        free(reply);
-     }
-#endif
-   return ret;
-}
-
-static xcb_randr_get_screen_resources_reply_t *
-_ecore_xcb_randr_12_get_resources(Ecore_X_Window win)
-{
-   xcb_randr_get_screen_resources_cookie_t cookie;
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   cookie = xcb_randr_get_screen_resources_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_randr_get_screen_resources_reply(_ecore_xcb_conn, cookie, NULL);
-   return reply;
-}
-
-static xcb_randr_get_screen_resources_current_reply_t *
-_ecore_xcb_randr_13_get_resources(Ecore_X_Window win)
-{
-   xcb_randr_get_screen_resources_current_cookie_t cookie;
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   cookie =
-     xcb_randr_get_screen_resources_current_unchecked(_ecore_xcb_conn, win);
-   reply =
-     xcb_randr_get_screen_resources_current_reply(_ecore_xcb_conn,
-                                                  cookie, NULL);
-   return reply;
-}
-
-static xcb_timestamp_t
-_ecore_xcb_randr_12_get_resource_timestamp(Ecore_X_Window win)
-{
-   xcb_timestamp_t stamp = 0;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_reply_t *reply;
-
-   reply = _ecore_xcb_randr_12_get_resources(win);
-   stamp = reply->config_timestamp;
-   free(reply);
-#endif
-   return stamp;
-}
-
-static xcb_timestamp_t
-_ecore_xcb_randr_13_get_resource_timestamp(Ecore_X_Window win)
-{
-   xcb_timestamp_t stamp = 0;
-#ifdef ECORE_XCB_RANDR
-   xcb_randr_get_screen_resources_current_reply_t *reply;
-
-   reply = _ecore_xcb_randr_13_get_resources(win);
-   stamp = reply->config_timestamp;
-   free(reply);
-#endif
-   return stamp;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_region.c b/src/lib/ecore_x/xcb/ecore_xcb_region.c
deleted file mode 100644 (file)
index a221d8f..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <pixman.h>
-
-/*
- * [ ] XPolygonRegion
- * [ ] XShrinkRegion
- * [ ] XClipBox
- * [ ] XXorRegion
- */
-
-EAPI Ecore_X_XRegion *
-ecore_x_xregion_new()
-{
-   pixman_region16_t *region;
-
-   region = (pixman_region16_t *)malloc(sizeof(pixman_region16_t));
-   if (!region) return NULL;
-
-   pixman_region_init(region);
-
-   return (Ecore_X_XRegion *)region;
-}
-
-EAPI void
-ecore_x_xregion_free(Ecore_X_XRegion *region)
-{
-   if (!region) return;
-
-   pixman_region_fini(region);
-   free(region);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_set(Ecore_X_XRegion *region,
-                    Ecore_X_GC       gc)
-{
-   xcb_rectangle_t *rects;
-   pixman_box16_t *boxes;
-   int num = 0, i = 0;
-
-   CHECK_XCB_CONN;
-
-   if (!region) return EINA_FALSE;
-
-   boxes = pixman_region_rectangles((pixman_region16_t *)region, &num);
-   if ((!boxes) || (num == 0)) return EINA_FALSE;
-
-   rects = (xcb_rectangle_t *)malloc(sizeof(xcb_rectangle_t) * num);
-   if (!rects) return EINA_FALSE;
-
-   for (i = 0; i < num; i++)
-     {
-        rects[i].x = boxes[i].x1;
-        rects[i].y = boxes[i].y1;
-        rects[i].width = boxes[i].x2 - boxes[i].x1 + 1;
-        rects[i].height = boxes[i].y2 - boxes[i].y1 + 1;
-     }
-
-   xcb_set_clip_rectangles(_ecore_xcb_conn, XCB_CLIP_ORDERING_YX_BANDED,
-                           gc, 0, 0, num, rects);
-
-//   ecore_x_flush();
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_xregion_translate(Ecore_X_XRegion *region,
-                          int              x,
-                          int              y)
-{
-   if (!region) return;
-
-   pixman_region_translate((pixman_region16_t *)region, x, y);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_intersect(Ecore_X_XRegion *dst,
-                          Ecore_X_XRegion *r1,
-                          Ecore_X_XRegion *r2)
-{
-   return pixman_region_intersect((pixman_region16_t *)dst,
-                                  (pixman_region16_t *)r1,
-                                  (pixman_region16_t *)r2);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_union(Ecore_X_XRegion *dst,
-                      Ecore_X_XRegion *r1,
-                      Ecore_X_XRegion *r2)
-{
-   return pixman_region_union((pixman_region16_t *)dst,
-                              (pixman_region16_t *)r1,
-                              (pixman_region16_t *)r2);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_union_rect(Ecore_X_XRegion   *dst,
-                           Ecore_X_XRegion   *src,
-                           Ecore_X_Rectangle *rect)
-{
-   return pixman_region_union_rect((pixman_region16_t *)dst,
-                                   (pixman_region16_t *)src,
-                                   rect->x, rect->y, rect->width, rect->height);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_subtract(Ecore_X_XRegion *dst,
-                         Ecore_X_XRegion *rm,
-                         Ecore_X_XRegion *rs)
-{
-   return pixman_region_subtract((pixman_region16_t *)dst,
-                                 (pixman_region16_t *)rm,
-                                 (pixman_region16_t *)rs);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_is_empty(Ecore_X_XRegion *region)
-{
-   if (!region) return EINA_TRUE;
-
-   return !pixman_region_not_empty((pixman_region16_t *)region);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_is_equal(Ecore_X_XRegion *r1,
-                         Ecore_X_XRegion *r2)
-{
-   if ((!r1) || (!r2)) return EINA_FALSE;
-
-   return pixman_region_equal((pixman_region16_t *)r1,
-                              (pixman_region16_t *)r2);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_point_contain(Ecore_X_XRegion *region,
-                              int              x,
-                              int              y)
-{
-   if (!region) return EINA_FALSE;
-
-   return pixman_region_contains_point((pixman_region16_t *)region, x, y, NULL);
-}
-
-EAPI Eina_Bool
-ecore_x_xregion_rect_contain(Ecore_X_XRegion   *region,
-                             Ecore_X_Rectangle *rect)
-{
-   pixman_box16_t box;
-
-   if ((!region) || (!rect)) return EINA_FALSE;
-
-   box.x1 = rect->x;
-   box.y1 = rect->y;
-   box.x2 = rect->x + rect->width - 1;
-   box.y2 = rect->y + rect->height - 1;
-
-   return pixman_region_contains_rectangle((pixman_region16_t *)region, &box);
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_render.c b/src/lib/ecore_x/xcb/ecore_xcb_render.c
deleted file mode 100644 (file)
index f36b4d2..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <ctype.h> // for isupper/tolower
-#ifdef ECORE_XCB_RENDER
-# include <xcb/render.h>
-# include <xcb/xcb_renderutil.h>
-#endif
-
-/* local function prototypes */
-static Eina_Bool _ecore_xcb_render_parse_boolean(char *v);
-
-/* local variables */
-static Eina_Bool _render_avail = EINA_FALSE;
-static Eina_Bool _render_argb = EINA_FALSE;
-static Eina_Bool _render_anim = EINA_FALSE;
-
-void
-_ecore_xcb_render_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_RENDER
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_render_id);
-#endif
-}
-
-void
-_ecore_xcb_render_finalize(void)
-{
-#ifdef ECORE_XCB_RENDER
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_RENDER
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_render_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_render_query_version_cookie_t cookie;
-        xcb_render_query_version_reply_t *reply;
-
-        cookie =
-          xcb_render_query_version_unchecked(_ecore_xcb_conn,
-                                             XCB_RENDER_MAJOR_VERSION,
-                                             XCB_RENDER_MINOR_VERSION);
-        reply = xcb_render_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-//        if ((reply->major_version >= XCB_RENDER_MAJOR_VERSION) &&
-               if (reply->minor_version >= XCB_RENDER_MINOR_VERSION)
-                 {
-                    char *v = NULL;
-
-                    _render_avail = EINA_TRUE;
-                    _ecore_xcb_xdefaults_init();
-                    if ((reply->major_version > 0) || (reply->minor_version >= 5))
-                      {
-                         _render_argb = EINA_TRUE;
-                         v = getenv("XCURSOR_CORE");
-                         if (!v)
-                           v = _ecore_xcb_xdefaults_string_get("Xcursor", "core");
-                         if ((v) && (_ecore_xcb_render_parse_boolean(v)))
-                           _render_argb = EINA_FALSE;
-                      }
-                    if ((_render_argb) &&
-                        ((reply->major_version > 0) || (reply->minor_version >= 8)))
-                      {
-                         _render_anim = EINA_TRUE;
-                         v = getenv("XCURSOR_ANIM");
-                         if (!v)
-                           v = _ecore_xcb_xdefaults_string_get("Xcursor", "anim");
-                         if ((v) && (_ecore_xcb_render_parse_boolean(v)))
-                           _render_anim = EINA_FALSE;
-                      }
-                    _ecore_xcb_xdefaults_shutdown();
-                 }
-          }
-        free(reply);
-     }
-#endif
-}
-
-Eina_Bool
-_ecore_xcb_render_avail_get(void)
-{
-   return _render_avail;
-}
-
-Eina_Bool
-_ecore_xcb_render_argb_get(void)
-{
-   return _render_argb;
-}
-
-Eina_Bool
-_ecore_xcb_render_anim_get(void)
-{
-   return _render_anim;
-}
-
-Eina_Bool
-_ecore_xcb_render_visual_supports_alpha(Ecore_X_Visual visual)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef ECORE_XCB_RENDER
-   const xcb_render_query_pict_formats_reply_t *reply;
-   xcb_render_pictvisual_t *vis;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!visual) return EINA_FALSE;
-   if (!_render_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_RENDER
-   reply = xcb_render_util_query_formats(_ecore_xcb_conn);
-   if (!reply) return EINA_FALSE;
-
-   vis =
-     xcb_render_util_find_visual_format(reply,
-                                        ((xcb_visualtype_t *)visual)->visual_id);
-   if (vis)
-     {
-        xcb_render_pictforminfo_t temp;
-        xcb_render_pictforminfo_t *format;
-
-        temp.id = vis->format;
-        format =
-          xcb_render_util_find_format(reply, XCB_PICT_FORMAT_ID, &temp, 0);
-
-        if ((format->type == XCB_RENDER_PICT_TYPE_DIRECT) &&
-            (format->direct.alpha_mask))
-          ret = EINA_TRUE;
-     }
-
-#endif
-
-   return ret;
-}
-
-uint32_t
-_ecore_xcb_render_find_visual_id(int       type,
-                                 Eina_Bool check_alpha)
-{
-#ifdef ECORE_XCB_RENDER
-   const xcb_render_query_pict_formats_reply_t *reply;
-   xcb_render_pictvisual_t *visual = NULL;
-   xcb_render_pictscreen_iterator_t screens;
-   xcb_render_pictdepth_iterator_t depths;
-   xcb_render_pictvisual_iterator_t visuals;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_render_avail) return 0;
-
-#ifdef ECORE_XCB_RENDER
-   reply = xcb_render_util_query_formats(_ecore_xcb_conn);
-   if (!reply) return 0;
-
-   for (screens = xcb_render_query_pict_formats_screens_iterator(reply);
-        screens.rem; xcb_render_pictscreen_next(&screens))
-     {
-        for (depths = xcb_render_pictscreen_depths_iterator(screens.data);
-             depths.rem; xcb_render_pictdepth_next(&depths))
-          {
-             for (visuals = xcb_render_pictdepth_visuals_iterator(depths.data);
-                  visuals.rem; xcb_render_pictvisual_next(&visuals))
-               {
-                  xcb_render_pictforminfo_t temp;
-                  xcb_render_pictforminfo_t *format;
-
-                  visual = visuals.data;
-                  temp.id = visual->format;
-
-                  format =
-                    xcb_render_util_find_format(reply, XCB_PICT_FORMAT_ID,
-                                                &temp, 0);
-                  if (!format) continue;
-                  if (format->type == type)
-                    {
-                       if (check_alpha)
-                         {
-                            if (format->direct.alpha_mask)
-                              return visual->visual;
-                         }
-                       else
-                         return visual->visual;
-                    }
-               }
-          }
-     }
-#endif
-
-   return 0;
-}
-
-/* local function prototypes */
-static Eina_Bool
-_ecore_xcb_render_parse_boolean(char *v)
-{
-   char c;
-
-   c = *v;
-   if (isupper((int)c))
-     c = tolower(c);
-   if ((c == 't') || (c == 'y') || (c == '1'))
-     return EINA_TRUE;
-   if ((c == 'f') || (c == 'n') || (c == '0'))
-     return EINA_FALSE;
-   if (c == 'o')
-     {
-        char d;
-
-        d = v[1];
-        if (isupper((int)d))
-          d = tolower(d);
-        if (d == 'n') return EINA_TRUE;
-        if (d == 'f') return EINA_FALSE;
-     }
-   return EINA_FALSE;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_screensaver.c b/src/lib/ecore_x/xcb/ecore_xcb_screensaver.c
deleted file mode 100644 (file)
index 2a6dadc..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-#include "ecore_xcb_private.h"
-# ifdef ECORE_XCB_SCREENSAVER
-#  include <xcb/screensaver.h>
-# endif
-
-/* local variables */
-static Eina_Bool _screensaver_avail = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_screensaver = -1;
-
-void
-_ecore_xcb_screensaver_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_screensaver_id);
-#endif
-}
-
-void
-_ecore_xcb_screensaver_finalize(void)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_SCREENSAVER
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_screensaver_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_screensaver_query_version_cookie_t cookie;
-        xcb_screensaver_query_version_reply_t *reply;
-
-        cookie =
-          xcb_screensaver_query_version_unchecked(_ecore_xcb_conn,
-                                                  XCB_SCREENSAVER_MAJOR_VERSION,
-                                                  XCB_SCREENSAVER_MINOR_VERSION);
-        reply =
-          xcb_screensaver_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             if ((reply->server_major_version >= XCB_SCREENSAVER_MAJOR_VERSION) &&
-                 (reply->server_minor_version >= XCB_SCREENSAVER_MINOR_VERSION))
-               _screensaver_avail = EINA_TRUE;
-
-             free(reply);
-          }
-
-        if (_screensaver_avail)
-          _ecore_xcb_event_screensaver = ext_reply->first_event;
-     }
-#endif
-}
-
-EAPI int
-ecore_x_screensaver_idle_time_get(void)
-{
-   int ret = 0;
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_screensaver_query_info_cookie_t cookie;
-   xcb_screensaver_query_info_reply_t *reply;
-   Ecore_X_Window root;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return 0;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   cookie = xcb_screensaver_query_info_unchecked(_ecore_xcb_conn, root);
-   reply = xcb_screensaver_query_info_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   ret = (reply->ms_until_server / 1000);
-   free(reply);
-#endif
-
-   return ret;
-}
-
-EAPI void
-ecore_x_screensaver_set(int timeout,
-                        int interval,
-                        int prefer_blanking,
-                        int allow_exposures)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_set_screen_saver(_ecore_xcb_conn,
-                        timeout, interval, prefer_blanking, allow_exposures);
-#endif
-}
-
-EAPI void
-ecore_x_screensaver_timeout_set(int timeout)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-   uint16_t pint;
-   uint8_t pblank, pexpo;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   pint = reply->interval;
-   pblank = reply->prefer_blanking;
-   pexpo = reply->allow_exposures;
-   free(reply);
-   xcb_set_screen_saver(_ecore_xcb_conn, timeout, pint, pblank, pexpo);
-#endif
-}
-
-EAPI int
-ecore_x_screensaver_timeout_get(void)
-{
-   int timeout = 0;
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return 0;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   timeout = reply->timeout;
-   free(reply);
-#endif
-
-   return timeout;
-}
-
-EAPI void
-ecore_x_screensaver_blank_set(int blank)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-   uint16_t pint, pto;
-   uint8_t pexpo;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   pto = reply->timeout;
-   pint = reply->interval;
-   pexpo = reply->allow_exposures;
-   free(reply);
-   xcb_set_screen_saver(_ecore_xcb_conn, pto, pint, blank, pexpo);
-#endif
-}
-
-EAPI int
-ecore_x_screensaver_blank_get(void)
-{
-   int blank = 0;
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return 0;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   blank = reply->prefer_blanking;
-   free(reply);
-#endif
-
-   return blank;
-}
-
-EAPI void
-ecore_x_screensaver_expose_set(int expose)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-   uint16_t pint, pto;
-   uint8_t pblank;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   pto = reply->timeout;
-   pint = reply->interval;
-   pblank = reply->prefer_blanking;
-   free(reply);
-   xcb_set_screen_saver(_ecore_xcb_conn, pto, pint, pblank, expose);
-#endif
-}
-
-EAPI int
-ecore_x_screensaver_expose_get(void)
-{
-   int expose = 0;
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return 0;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   expose = reply->allow_exposures;
-   free(reply);
-#endif
-
-   return expose;
-}
-
-EAPI void
-ecore_x_screensaver_interval_set(int interval)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-   uint16_t pto;
-   uint8_t pblank, pexpose;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   pto = reply->timeout;
-   pblank = reply->prefer_blanking;
-   pexpose = reply->allow_exposures;
-   free(reply);
-   xcb_set_screen_saver(_ecore_xcb_conn, pto, interval, pblank, pexpose);
-#endif
-}
-
-EAPI int
-ecore_x_screensaver_interval_get(void)
-{
-   int interval = 0;
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_get_screen_saver_cookie_t cookie;
-   xcb_get_screen_saver_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return 0;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   cookie = xcb_get_screen_saver_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_screen_saver_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   interval = reply->interval;
-   free(reply);
-#endif
-
-   return interval;
-}
-
-EAPI void
-ecore_x_screensaver_event_listen_set(Eina_Bool on)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   Ecore_X_Window root;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_screensaver_avail) return;
-
-#ifdef ECORE_XCB_SCREENSAVER
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   if (on)
-     xcb_screensaver_select_input(_ecore_xcb_conn, root,
-                                  XCB_SCREENSAVER_EVENT_NOTIFY_MASK | 
-                                  XCB_SCREENSAVER_EVENT_CYCLE_MASK);
-   else
-     xcb_screensaver_select_input(_ecore_xcb_conn, root, 0);
-#endif
-}
-
-EAPI Eina_Bool
-ecore_x_screensaver_event_available_get(void)
-{
-   return _screensaver_avail;
-}
-
-EAPI Eina_Bool
-ecore_x_screensaver_custom_blanking_enable(void)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   uint32_t mask_list[9];
-   
-   xcb_screensaver_set_attributes_checked
-     (_ecore_xcb_conn,
-         ((xcb_screen_t *)_ecore_xcb_screen)->root,
-         -9999, -9999, 1, 1, 0,
-         XCB_WINDOW_CLASS_INPUT_ONLY,
-         XCB_COPY_FROM_PARENT, XCB_COPY_FROM_PARENT,
-         0, mask_list);
-   return EINA_TRUE;
-#else
-   return EINA_FALSE;
-#endif
-}
-
-EAPI Eina_Bool
-ecore_x_screensaver_custom_blanking_disable(void)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_screensaver_unset_attributes_checked
-     (_ecore_xcb_conn,
-         ((xcb_screen_t *)_ecore_xcb_screen)->root);
-   return EINA_TRUE;
-#else
-   return EINA_FALSE;
-#endif
-}
-
-EINA_DEPRECATED EAPI void
-ecore_x_screensaver_supend(void)
-{
-   ecore_x_screensaver_suspend();
-}
-
-EAPI void 
-ecore_x_screensaver_suspend(void)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_screensaver_suspend(_ecore_xcb_conn, 1);
-#endif
-}
-
-EAPI void
-ecore_x_screensaver_resume(void)
-{
-#ifdef ECORE_XCB_SCREENSAVER
-   xcb_screensaver_suspend(_ecore_xcb_conn, 0);
-#endif
-}
-
-EAPI void
-ecore_x_screensaver_reset(void)
-{
-   ecore_x_dpms_enabled_set(0);
-}
-
-EAPI void
-ecore_x_screensaver_activate(void)
-{
-   ecore_x_dpms_enabled_set(1);
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_selection.c b/src/lib/ecore_x/xcb/ecore_xcb_selection.c
deleted file mode 100644 (file)
index c8922d0..0000000
+++ /dev/null
@@ -1,1111 +0,0 @@
-#include "ecore_xcb_private.h"
-//#include "Ecore_X_Atoms.h"
-
-#define ECORE_XCB_SELECTION_DATA(x) ((Ecore_X_Selection_Data *)(x))
-
-/* local function prototypes */
-static void *_ecore_xcb_selection_parser_text(const char *target EINA_UNUSED,
-                                              void       *data,
-                                              int         size,
-                                              int         format EINA_UNUSED);
-static void *_ecore_xcb_selection_parser_xmozurl(const char *target EINA_UNUSED,
-                                              void       *data,
-                                              int         size,
-                                              int         format EINA_UNUSED);
-static void *_ecore_xcb_selection_parser_files(const char *target,
-                                               void       *data,
-                                               int         size,
-                                               int         format EINA_UNUSED);
-static void *_ecore_xcb_selection_parser_targets(const char *target EINA_UNUSED,
-                                                 void       *data,
-                                                 int         size,
-                                                 int         format EINA_UNUSED);
-
-//static int _ecore_xcb_selection_data_free(void *data);
-static int       _ecore_xcb_selection_data_text_free(void *data);
-static int       _ecore_xcb_selection_data_targets_free(void *data);
-static int       _ecore_xcb_selection_data_files_free(void *data);
-static int       _ecore_xcb_selection_data_default_free(void *data);
-static Eina_Bool _ecore_xcb_selection_set(Ecore_X_Window win,
-                                          const void    *data,
-                                          int            size,
-                                          Ecore_X_Atom   selection);
-static void _ecore_xcb_selection_request(Ecore_X_Window win,
-                                         Ecore_X_Atom   selection,
-                                         const char    *target);
-static Ecore_X_Atom _ecore_xcb_selection_target_atom_get(const char *target);
-
-/* local variables */
-static Ecore_X_Selection_Intern _selections[4];
-static Ecore_X_Selection_Converter *_converters = NULL;
-static Ecore_X_Selection_Parser *_parsers = NULL;
-
-/* local functions */
-void
-_ecore_xcb_selection_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   memset(_selections, 0, sizeof(_selections));
-
-   /* init converters */
-   ecore_x_selection_converter_atom_add(ECORE_X_ATOM_TEXT,
-                                        ecore_x_selection_converter_text);
-   ecore_x_selection_converter_atom_add(ECORE_X_ATOM_UTF8_STRING,
-                                        ecore_x_selection_converter_text);
-   ecore_x_selection_converter_atom_add(ECORE_X_ATOM_COMPOUND_TEXT,
-                                        ecore_x_selection_converter_text);
-   ecore_x_selection_converter_atom_add(ECORE_X_ATOM_STRING,
-                                        ecore_x_selection_converter_text);
-
-   /* init parsers */
-   ecore_x_selection_parser_add("text/plain",
-                                _ecore_xcb_selection_parser_text);
-   ecore_x_selection_parser_add(ECORE_X_SELECTION_TARGET_UTF8_STRING,
-                                _ecore_xcb_selection_parser_text);
-   ecore_x_selection_parser_add("text/uri-list",
-                                _ecore_xcb_selection_parser_files);
-   ecore_x_selection_parser_add("text/x-moz-url",
-                                _ecore_xcb_selection_parser_xmozurl);
-   ecore_x_selection_parser_add("_NETSCAPE_URL",
-                                _ecore_xcb_selection_parser_files);
-   ecore_x_selection_parser_add(ECORE_X_SELECTION_TARGET_TARGETS,
-                                _ecore_xcb_selection_parser_targets);
-}
-
-void
-_ecore_xcb_selection_shutdown(void)
-{
-   Ecore_X_Selection_Converter *cnv;
-   Ecore_X_Selection_Parser *prs;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   /* free selection converters */
-   cnv = _converters;
-   while (cnv)
-     {
-        Ecore_X_Selection_Converter *tmp;
-
-        tmp = cnv->next;
-        free(cnv);
-        cnv = tmp;
-     }
-   _converters = NULL;
-
-   /* free parsers */
-   prs = _parsers;
-   while (prs)
-     {
-        Ecore_X_Selection_Parser *tmp;
-
-        tmp = prs;
-        prs = prs->next;
-        free(tmp->target);
-        free(tmp);
-     }
-   _parsers = NULL;
-}
-
-/* public functions */
-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 *type,
-                                                                             int          *size_type))
-{
-   Ecore_X_Selection_Converter *cnv;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   cnv = _converters;
-   if (_converters)
-     {
-        while (1)
-          {
-             if (cnv->target == target)
-               {
-                  cnv->convert = func;
-                  return;
-               }
-             if (cnv->next)
-               cnv = cnv->next;
-             else
-               break;
-          }
-        cnv->next = calloc(1, sizeof(Ecore_X_Selection_Converter));
-        if (!cnv->next) return;
-        cnv = cnv->next;
-     }
-   else
-     {
-        _converters = calloc(1, sizeof(Ecore_X_Selection_Converter));
-        if (!_converters) return;
-        cnv = _converters;
-     }
-   cnv->target = target;
-   cnv->convert = func;
-}
-
-EAPI void
-ecore_x_selection_converter_add(char                                                 *target,
-                                Eina_Bool                                             (*func)(char *target,
-                                                                        void         *data,
-                                                                        int           size,
-                                                                        void        **date_ret,
-                                                                        int          *size_ret,
-                                                                        Ecore_X_Atom *atom_ret,
-                                                                        int          *ret))
-{
-   Ecore_X_Atom atarget;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if ((!func) || (!target)) return;
-   atarget = _ecore_xcb_selection_target_atom_get(target);
-   ecore_x_selection_converter_atom_add(atarget, func);
-}
-
-EAPI void
-ecore_x_selection_converter_del(char *target)
-{
-   Ecore_X_Atom atarget;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!target) return;
-   atarget = _ecore_xcb_selection_target_atom_get(target);
-   ecore_x_selection_converter_atom_del(atarget);
-}
-
-EAPI void
-ecore_x_selection_converter_atom_del(Ecore_X_Atom target)
-{
-   Ecore_X_Selection_Converter *conv, *pconv = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   conv = _converters;
-   while (conv)
-     {
-        if (conv->target == target)
-          {
-             if (pconv)
-               pconv->next = conv->next;
-             else
-               _converters = conv->next;
-             free(conv);
-             return;
-          }
-        pconv = conv;
-        conv = conv->next;
-     }
-}
-
-EAPI void
-ecore_x_selection_parser_add(const char *target,
-                             void *(*func)(const char *target, void *data, int size, int format))
-{
-   Ecore_X_Selection_Parser *prs;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!target) return;
-   prs = _parsers;
-   if (prs)
-     {
-        while (prs->next)
-          {
-             if (!strcmp(prs->target, target))
-               {
-                  prs->parse = func;
-                  return;
-               }
-             prs = prs->next;
-          }
-        prs->next = calloc(1, sizeof(Ecore_X_Selection_Parser));
-        prs = prs->next;
-     }
-   else
-     {
-        _parsers = calloc(1, sizeof(Ecore_X_Selection_Parser));
-        prs = _parsers;
-     }
-   prs->target = strdup(target);
-   prs->parse = func;
-}
-
-EAPI void
-ecore_x_selection_parser_del(const char *target)
-{
-   Ecore_X_Selection_Parser *prs, *pprs = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!target) return;
-
-   prs = _parsers;
-   while (prs)
-     {
-        if (!strcmp(prs->target, target))
-          {
-             if (pprs)
-               pprs->next = prs->next;
-             else
-               _parsers = prs->next;
-             free(prs->target);
-             free(prs);
-             return;
-          }
-        pprs = prs;
-        prs = prs->next;
-     }
-}
-
-/**
- * Claim ownership of the PRIMARY selection and set its data.
- * @param w    The window to which this selection belongs
- * @param data The data associated with the selection
- * @param size The size of the data buffer in bytes
- * @return     Returns 1 if the ownership of the selection was successfully
- *             claimed, or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_primary_set(Ecore_X_Window win,
-                              const void    *data,
-                              int            size)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(win, data, size,
-                                   ECORE_X_ATOM_SELECTION_PRIMARY);
-}
-
-/**
- * Release ownership of the primary selection
- * @return     Returns 1 if the selection was successfully cleared,
- *             or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_primary_clear(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(XCB_NONE, NULL, 0,
-                                   ECORE_X_ATOM_SELECTION_PRIMARY);
-}
-
-EAPI void
-ecore_x_selection_primary_request(Ecore_X_Window win,
-                                  const char    *target)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_selection_request(win, ECORE_X_ATOM_SELECTION_PRIMARY, target);
-}
-
-/**
- * Claim ownership of the SECONDARY selection and set its data.
- * @param w    The window to which this selection belongs
- * @param data The data associated with the selection
- * @param size The size of the data buffer in bytes
- * @return     Returns 1 if the ownership of the selection was successfully
- *             claimed, or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_secondary_set(Ecore_X_Window win,
-                                const void    *data,
-                                int            size)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(win, data, size,
-                                   ECORE_X_ATOM_SELECTION_SECONDARY);
-}
-
-/**
- * Release ownership of the secondary selection
- * @return     Returns 1 if the selection was successfully cleared,
- *             or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_secondary_clear(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(XCB_NONE, NULL, 0,
-                                   ECORE_X_ATOM_SELECTION_SECONDARY);
-}
-
-EAPI void
-ecore_x_selection_secondary_request(Ecore_X_Window win,
-                                    const char    *target)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_selection_request(win, ECORE_X_ATOM_SELECTION_SECONDARY, target);
-}
-
-/**
- * Claim ownership of the XDND selection and set its data.
- * @param w    The window to which this selection belongs
- * @param data The data associated with the selection
- * @param size The size of the data buffer in bytes
- * @return     Returns 1 if the ownership of the selection was successfully
- *             claimed, or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_xdnd_set(Ecore_X_Window win,
-                           const void    *data,
-                           int            size)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(win, data, size,
-                                   ECORE_X_ATOM_SELECTION_XDND);
-}
-
-/**
- * Release ownership of the XDND selection
- * @return     Returns 1 if the selection was successfully cleared,
- *             or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_xdnd_clear(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(XCB_NONE, NULL, 0,
-                                   ECORE_X_ATOM_SELECTION_XDND);
-}
-
-EAPI void
-ecore_x_selection_xdnd_request(Ecore_X_Window win,
-                               const char    *target)
-{
-   Ecore_X_Atom atom;
-   Ecore_X_DND_Target *_target;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   _target = _ecore_xcb_dnd_target_get();
-   atom = _ecore_xcb_selection_target_atom_get(target);
-
-   xcb_convert_selection(_ecore_xcb_conn, win, ECORE_X_ATOM_SELECTION_XDND,
-                         atom, ECORE_X_ATOM_SELECTION_PROP_XDND, _target->time);
-}
-
-/**
- * Claim ownership of the CLIPBOARD selection and set its data.
- * @param w    The window to which this selection belongs
- * @param data The data associated with the selection
- * @param size The size of the data buffer in bytes
- * @return     Returns 1 if the ownership of the selection was successfully
- *             claimed, or 0 if unsuccessful.
- *
- * Get the converted data from a previous CLIPBOARD selection
- * request. The buffer must be freed when done with.
- */
-EAPI Eina_Bool
-ecore_x_selection_clipboard_set(Ecore_X_Window win,
-                                const void    *data,
-                                int            size)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(win, data, size,
-                                   ECORE_X_ATOM_SELECTION_CLIPBOARD);
-}
-
-/**
- * Release ownership of the clipboard selection
- * @return     Returns 1 if the selection was successfully cleared,
- *             or 0 if unsuccessful.
- */
-EAPI Eina_Bool
-ecore_x_selection_clipboard_clear(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_selection_set(XCB_NONE, NULL, 0,
-                                   ECORE_X_ATOM_SELECTION_CLIPBOARD);
-}
-
-EAPI void
-ecore_x_selection_clipboard_request(Ecore_X_Window win,
-                                    const char    *target)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   _ecore_xcb_selection_request(win, ECORE_X_ATOM_SELECTION_CLIPBOARD, target);
-}
-
-EAPI Eina_Bool
-ecore_x_selection_convert(Ecore_X_Atom  selection,
-                          Ecore_X_Atom  target,
-                          void        **data_ret,
-                          int          *size,
-                          Ecore_X_Atom *targtype,
-                          int          *typesize)
-{
-   Ecore_X_Selection_Intern *sel;
-   Ecore_X_Selection_Converter *cnv;
-   void *data = NULL;
-   char *tgt_str;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   sel = _ecore_xcb_selection_get(selection);
-   tgt_str = _ecore_xcb_selection_target_get(target);
-
-   for (cnv = _converters; cnv; cnv = cnv->next)
-     {
-        if (cnv->target == target)
-          {
-             int r;
-
-             r = cnv->convert(tgt_str, sel->data, sel->length, &data, size,
-                              targtype, typesize);
-             free(tgt_str);
-             if (r)
-               {
-                  if (data_ret) *data_ret = data;
-                  return r;
-               }
-             else
-               return EINA_FALSE;
-          }
-     }
-   free(tgt_str);
-
-   return EINA_FALSE;
-}
-
-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   tim)
-{
-   xcb_selection_notify_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   memset(&ev, 0, sizeof(xcb_selection_notify_event_t));
-
-   ev.response_type = XCB_SELECTION_NOTIFY;
-   ev.requestor = requestor;
-   ev.selection = selection;
-   ev.target = target;
-   ev.property = property;
-   ev.time = tim;
-
-   xcb_send_event(_ecore_xcb_conn, 0, requestor,
-                  XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
-//   ecore_x_flush();
-
-   return EINA_TRUE;
-}
-
-EAPI void
-ecore_x_selection_owner_set(Ecore_X_Window win,
-                            Ecore_X_Atom   atom,
-                            Ecore_X_Time   tim)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_set_selection_owner(_ecore_xcb_conn, win, atom, tim);
-}
-
-EAPI Ecore_X_Window
-ecore_x_selection_owner_get(Ecore_X_Atom atom)
-{
-   xcb_get_selection_owner_cookie_t cookie;
-   xcb_get_selection_owner_reply_t *reply;
-   Ecore_X_Window ret;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_selection_owner(_ecore_xcb_conn, atom);
-   reply = xcb_get_selection_owner_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   ret = reply->owner;
-   free(reply);
-   return ret;
-}
-
-void *
-_ecore_xcb_selection_parse(const char *target,
-                           void       *data,
-                           int         size,
-                           int         format)
-{
-   Ecore_X_Selection_Parser *prs;
-   Ecore_X_Selection_Data *sel;
-
-   for (prs = _parsers; prs; prs = prs->next)
-     {
-        if (!strcmp(prs->target, target))
-          {
-             sel = prs->parse(target, data, size, format);
-             if (sel) return sel;
-          }
-     }
-
-   sel = calloc(1, sizeof(Ecore_X_Selection_Data));
-   if (!sel) return NULL;
-   sel->free = _ecore_xcb_selection_data_default_free;
-   sel->length = size;
-   sel->format = format;
-   sel->data = data;
-
-   return sel;
-}
-
-Ecore_X_Selection_Intern *
-_ecore_xcb_selection_get(Ecore_X_Atom selection)
-{
-   if (selection == ECORE_X_ATOM_SELECTION_PRIMARY)
-     return &_selections[0];
-   else if (selection == ECORE_X_ATOM_SELECTION_SECONDARY)
-     return &_selections[1];
-   else if (selection == ECORE_X_ATOM_SELECTION_XDND)
-     return &_selections[2];
-   else if (selection == ECORE_X_ATOM_SELECTION_CLIPBOARD)
-     return &_selections[3];
-   else
-     return NULL;
-}
-
-/* local functions */
-static Eina_Bool
-_ecore_xcb_selection_set(Ecore_X_Window win,
-                         const void    *data,
-                         int            size,
-                         Ecore_X_Atom   selection)
-{
-   xcb_get_selection_owner_cookie_t cookie;
-   xcb_get_selection_owner_reply_t *reply;
-   int in = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_set_selection_owner(_ecore_xcb_conn, win, selection, XCB_CURRENT_TIME);
-
-   cookie = xcb_get_selection_owner(_ecore_xcb_conn, selection);
-   reply = xcb_get_selection_owner_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   if (reply->owner != win)
-     {
-        free(reply);
-        return EINA_FALSE;
-     }
-   free(reply);
-
-   if (selection == ECORE_X_ATOM_SELECTION_PRIMARY)
-     in = 0;
-   else if (selection == ECORE_X_ATOM_SELECTION_SECONDARY)
-     in = 1;
-   else if (selection == ECORE_X_ATOM_SELECTION_XDND)
-     in = 2;
-   else if (selection == ECORE_X_ATOM_SELECTION_CLIPBOARD)
-     in = 3;
-   else
-     return EINA_FALSE;
-
-   if (_selections[in].data)
-     {
-        free(_selections[in].data);
-        memset(&_selections[in], 0, sizeof(Ecore_X_Selection_Intern));
-     }
-
-   if (data)
-     {
-        unsigned char *buff = NULL;
-
-        _selections[in].win = win;
-        _selections[in].selection = selection;
-        _selections[in].length = size;
-        _selections[in].time = _ecore_xcb_events_last_time_get();
-
-        buff = malloc(size);
-        if (!buff) return EINA_FALSE;
-        memcpy(buff, data, size);
-        _selections[in].data = buff;
-     }
-
-   return EINA_TRUE;
-}
-
-static void
-_ecore_xcb_selection_request(Ecore_X_Window win,
-                             Ecore_X_Atom   selection,
-                             const char    *target)
-{
-   Ecore_X_Atom atarget, prop;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (selection == ECORE_X_ATOM_SELECTION_PRIMARY)
-     prop = ECORE_X_ATOM_SELECTION_PROP_PRIMARY;
-   else if (selection == ECORE_X_ATOM_SELECTION_SECONDARY)
-     prop = ECORE_X_ATOM_SELECTION_PROP_SECONDARY;
-   else if (selection == ECORE_X_ATOM_SELECTION_CLIPBOARD)
-     prop = ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD;
-   else
-     return;
-
-   atarget = _ecore_xcb_selection_target_atom_get(target);
-
-   xcb_convert_selection(_ecore_xcb_conn, win, selection, atarget, prop,
-                         XCB_CURRENT_TIME);
-}
-
-EAPI Eina_Bool
-ecore_x_selection_converter_text(char         *target,
-                                 void         *data,
-                                 int           size,
-                                 void        **data_ret,
-                                 int          *size_ret,
-                                 Ecore_X_Atom *type EINA_UNUSED,
-                                 int          *size_type EINA_UNUSED)
-{
-   Ecore_Xcb_Encoding_Style style;
-   Ecore_Xcb_Textproperty ret;
-   char *str;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!data) || (!size)) return EINA_FALSE;
-
-   if (!strcmp(target, ECORE_X_SELECTION_TARGET_TEXT))
-     style = XcbTextStyle;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_COMPOUND_TEXT))
-     style = XcbCompoundTextStyle;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_STRING))
-     style = XcbStringStyle;
-#ifdef HAVE_ICONV
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_UTF8_STRING))
-     style = XcbUTF8StringStyle;
-#endif
-   else
-     return EINA_FALSE;
-
-   str = alloca(size + 1);
-   memcpy(str, data, size);
-   str[size] = '\0';
-
-#ifdef HAVE_ICONV
-   if (_ecore_xcb_utf8_textlist_to_textproperty(&str, 1, style, &ret))
-     {
-        int size = 0;
-
-        size = (strlen((char *)ret.value));
-        *data_ret = malloc(size);
-        if (!*data_ret) return EINA_FALSE;
-        memcpy(*data_ret, ret.value, size);
-        *size_ret = size;
-        if (ret.value) free(ret.value);
-        return EINA_TRUE;
-     }
-#else
-   if (_ecore_xcb_mb_textlist_to_textproperty(&str, 1, style, &ret))
-     {
-        int size = 0;
-
-        size = (strlen((char *)ret.value));
-        *data_ret = malloc(size);
-        if (!*data_ret) return EINA_FALSE;
-        memcpy(*data_ret, ret.value, size);
-        *size_ret = size;
-        if (ret.value) free(ret.value);
-        return EINA_TRUE;
-     }
-#endif
-   else
-     return EINA_TRUE;
-}
-
-static void *
-_ecore_xcb_selection_parser_text(const char *target EINA_UNUSED,
-                                 void       *data,
-                                 int         size,
-                                 int         format EINA_UNUSED)
-{
-   Ecore_X_Selection_Data_Text *sel;
-   unsigned char *_data;
-   void *t;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!(_data = data)) return NULL;
-
-   sel = calloc(1, sizeof(Ecore_X_Selection_Data_Text));
-   if (!sel) return NULL;
-
-   if (_data && _data[size - 1])
-     {
-        size++;
-        t = realloc(_data, size);
-        if (!t)
-          {
-             free(sel);
-             return NULL;
-          }
-        _data = t;
-        _data[size - 1] = 0;
-     }
-   sel->text = (char *)_data;
-   ECORE_XCB_SELECTION_DATA(sel)->length = size;
-   ECORE_XCB_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_TEXT;
-   ECORE_XCB_SELECTION_DATA(sel)->data = _data;
-   ECORE_XCB_SELECTION_DATA(sel)->free = _ecore_xcb_selection_data_text_free;
-   return sel;
-}
-
-static int
-_ecore_xcb_selection_data_xmozurl_free(void *data)
-{
-   Ecore_X_Selection_Data_X_Moz_Url *sel = data;
-   char **buf;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   if (!sel) return 0;
-
-   buf = eina_inarray_nth(sel->links, 0);
-   free(*buf);
-   eina_inarray_free(sel->links);
-   eina_inarray_free(sel->link_names);
-   free(sel);
-   return 1;
-}
-
-static void *
-_ecore_xcb_selection_parser_xmozurl(const char *target EINA_UNUSED,
-                               void *_data,
-                               int size,
-                               int format EINA_UNUSED)
-{
-   Ecore_X_Selection_Data_X_Moz_Url *sel;
-   char *prev, *n, *buf, *data = _data;
-   size_t sz;
-   int num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   buf = eina_str_convert_len("UTF-16LE", "UTF-8", data, size, &sz);
-   if (!buf) return NULL;
-   sel = calloc(1, sizeof(Ecore_X_Selection_Data_X_Moz_Url));
-   if (!sel)
-     goto error_sel;
-
-   sel->links = eina_inarray_new(sizeof(char*), 0);
-   if (!sel->links)
-     goto error_links;
-
-   sel->link_names = eina_inarray_new(sizeof(char*), 0);
-   if (!sel->link_names)
-     goto error_link_names;
-   prev = buf;
-   for (n = memchr(buf, '\n', sz); n; n = memchr(prev, '\n', sz - (prev - buf)))
-     {
-        n[0] = 0;
-        if (num % 2 == 0)
-          eina_inarray_push(sel->links, &prev);
-        else
-          eina_inarray_push(sel->link_names, &prev);
-        num++;
-        prev = n + 1;
-     }
-   eina_inarray_push(sel->link_names, &prev[0]);
-
-   ECORE_XCB_SELECTION_DATA(sel)->length = size;
-   ECORE_XCB_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_X_MOZ_URL;
-   ECORE_XCB_SELECTION_DATA(sel)->data = (void*)data;
-   ECORE_XCB_SELECTION_DATA(sel)->free = _ecore_xcb_selection_data_xmozurl_free;
-   return sel;
-
-error_link_names:
-   eina_inarray_free(sel->links);
-
-error_links:
-   free(sel);
-
-error_sel:
-   free(buf);
-   return NULL;
-}
-
-static void *
-_ecore_xcb_selection_parser_files(const char *target,
-                                  void       *data,
-                                  int         size,
-                                  int         format EINA_UNUSED)
-{
-   Ecore_X_Selection_Data_Files *sel;
-   char *_data, *tmp, *t, **t2;
-   int i = 0, is = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if ((strcmp(target, "text/uri-list")) &&
-       (strcmp(target, "_NETSCAPE_URL"))) return NULL;
-
-   if (!(_data = data)) return NULL;
-
-   sel = calloc(1, sizeof(Ecore_X_Selection_Data_Files));
-   if (!sel) return NULL;
-
-   ECORE_XCB_SELECTION_DATA(sel)->free = _ecore_xcb_selection_data_files_free;
-
-   if (_data && _data[size - 1])
-     {
-        size++;
-        t = realloc(_data, size);
-        if (!t)
-          {
-             free(sel);
-             return NULL;
-          }
-        _data = t;
-        _data[size - 1] = 0;
-     }
-
-   tmp = malloc(size);
-   if (!tmp)
-     {
-        free(sel);
-        return NULL;
-     }
-
-   while ((is < size) && (_data[is]))
-     {
-        if ((i == 0) && (_data[is] == '#'))
-          {
-             for (; ((_data[is]) && (_data[is] != '\n')); is++) ;
-          }
-        else
-          {
-             if ((_data[is] != '\r') && (_data[is] != '\n'))
-               tmp[i++] = _data[is++];
-             else
-               {
-                  while ((_data[is] == '\r') || (_data[is] == '\n'))
-                    is++;
-                  tmp[i] = 0;
-                  sel->num_files++;
-                  t2 = realloc(sel->files, sel->num_files * sizeof(char *));
-                  if (t2)
-                    {
-                       sel->files = t2;
-                       sel->files[sel->num_files - 1] = strdup(tmp);
-                    }
-                  tmp[0] = 0;
-                  i = 0;
-               }
-          }
-     }
-   if (i > 0)
-     {
-        tmp[i] = 0;
-        sel->num_files++;
-        t2 = realloc(sel->files, sel->num_files * sizeof(char *));
-        if (t2)
-          {
-             sel->files = t2;
-             sel->files[sel->num_files - 1] = strdup(tmp);
-          }
-     }
-   if (tmp) free(tmp);
-   if (_data) free(_data);
-
-   ECORE_XCB_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_FILES;
-   ECORE_XCB_SELECTION_DATA(sel)->length = sel->num_files;
-
-   return ECORE_XCB_SELECTION_DATA(sel);
-}
-
-static void *
-_ecore_xcb_selection_parser_targets(const char *target EINA_UNUSED,
-                                    void       *data,
-                                    int         size,
-                                    int         format EINA_UNUSED)
-{
-   Ecore_X_Selection_Data_Targets *sel;
-   int *targets;
-   int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!(targets = data)) return NULL;
-
-   sel = calloc(1, sizeof(Ecore_X_Selection_Data_Targets));
-   if (!sel) return NULL;
-
-   sel->num_targets = (size - 2);
-   sel->targets = malloc((size - 2) * sizeof(char *));
-   if (!sel->targets)
-     {
-        free(sel);
-        return NULL;
-     }
-
-   for (i = 2; i < size; i++)
-     {
-        xcb_get_atom_name_cookie_t cookie;
-        xcb_get_atom_name_reply_t *reply;
-        char *name = NULL;
-        int len = 0;
-
-        cookie = xcb_get_atom_name_unchecked(_ecore_xcb_conn, targets[i]);
-        reply = xcb_get_atom_name_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             len = xcb_get_atom_name_name_length(reply);
-             name = (char *)malloc(sizeof(char) * (len + 1));
-             if (name)
-               {
-                  memcpy(name, xcb_get_atom_name_name(reply), len);
-                  name[len] = '\0';
-                  sel->targets[i - 2] = name;
-               }
-             free(reply);
-          }
-     }
-
-   ECORE_XCB_SELECTION_DATA(sel)->free =
-     _ecore_xcb_selection_data_targets_free;
-   ECORE_XCB_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_TARGETS;
-   ECORE_XCB_SELECTION_DATA(sel)->length = size;
-   ECORE_XCB_SELECTION_DATA(sel)->data = data;
-
-   return sel;
-}
-
-/*
-   static int
-   _ecore_xcb_selection_data_free(void *data)
-   {
-   Ecore_X_Selection_Data *sel;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!(sel = data)) return 0;
-   if (sel->data) free(sel->data);
-   free(sel);
-   return 1;
-   }
- */
-
-static int
-_ecore_xcb_selection_data_text_free(void *data)
-{
-   Ecore_X_Selection_Data_Text *sel;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!(sel = data)) return 0;
-   if (sel->text) free(sel->text);
-   free(sel);
-   return 1;
-}
-
-static int
-_ecore_xcb_selection_data_targets_free(void *data)
-{
-   Ecore_X_Selection_Data_Targets *sel;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!(sel = data)) return 0;
-   if (sel->targets) free(sel->targets);
-   free(ECORE_XCB_SELECTION_DATA(sel)->data);
-   free(sel);
-   return 1;
-}
-
-static int
-_ecore_xcb_selection_data_files_free(void *data)
-{
-   Ecore_X_Selection_Data_Files *sel;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!(sel = data)) return 0;
-   if (sel->files)
-     {
-        int i = 0;
-
-        for (i = 0; i < sel->num_files; i++)
-          if (sel->files[i]) free(sel->files[i]);
-        if (sel->files) free(sel->files);
-     }
-   free(sel);
-   return 0;
-}
-
-static int
-_ecore_xcb_selection_data_default_free(void *data)
-{
-   Ecore_X_Selection_Data *sel;
-
-   if (!(sel = data)) return 1;
-   free(sel->data);
-   free(sel);
-   return 1;
-}
-
-static Ecore_X_Atom
-_ecore_xcb_selection_target_atom_get(const char *target)
-{
-   Ecore_X_Atom x_target;
-
-   if (!strcmp(target, ECORE_X_SELECTION_TARGET_TEXT))
-     x_target = ECORE_X_ATOM_TEXT;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_COMPOUND_TEXT))
-     x_target = ECORE_X_ATOM_COMPOUND_TEXT;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_STRING))
-     x_target = ECORE_X_ATOM_STRING;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_UTF8_STRING))
-     x_target = ECORE_X_ATOM_UTF8_STRING;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_FILENAME))
-     x_target = ECORE_X_ATOM_FILE_NAME;
-   else if (!strcmp(target, ECORE_X_SELECTION_TARGET_X_MOZ_URL))
-     x_target = ECORE_X_ATOM_X_MOZ_URL;
-   else
-     x_target = ecore_x_atom_get(target);
-
-   return x_target;
-}
-
-char *
-_ecore_xcb_selection_target_get(Ecore_X_Atom target)
-{
-   if (target == ECORE_X_ATOM_FILE_NAME)
-     return strdup(ECORE_X_SELECTION_TARGET_FILENAME);
-   else if (target == ECORE_X_ATOM_STRING)
-     return strdup(ECORE_X_SELECTION_TARGET_STRING);
-   else if (target == ECORE_X_ATOM_UTF8_STRING)
-     return strdup(ECORE_X_SELECTION_TARGET_UTF8_STRING);
-   else if (target == ECORE_X_ATOM_TEXT)
-     return strdup(ECORE_X_SELECTION_TARGET_TEXT);
-   else if (target == ECORE_X_ATOM_X_MOZ_URL)
-     return strdup(ECORE_X_SELECTION_TARGET_X_MOZ_URL);
-   else
-     return ecore_x_atom_name_get(target);
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_shape.c b/src/lib/ecore_x/xcb/ecore_xcb_shape.c
deleted file mode 100644 (file)
index 913f199..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_SHAPE
-# include <xcb/shape.h>
-#endif
-
-/* external variables */
-int _ecore_xcb_event_shape = -1;
-
-void
-_ecore_xcb_shape_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_shape_id);
-#endif
-}
-
-void
-_ecore_xcb_shape_finalize(void)
-{
-#ifdef ECORE_XCB_SHAPE
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_SHAPE
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_shape_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_shape_query_version_cookie_t cookie;
-        xcb_shape_query_version_reply_t *reply;
-        Eina_Bool _shape_avail;
-
-        _shape_avail = EINA_FALSE;
-        cookie = xcb_shape_query_version_unchecked(_ecore_xcb_conn);
-        reply = xcb_shape_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             _shape_avail = EINA_TRUE;
-             free(reply);
-          }
-
-        if (_shape_avail)
-          _ecore_xcb_event_shape = ext_reply->first_event;
-     }
-#endif
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_sync.c b/src/lib/ecore_x/xcb/ecore_xcb_sync.c
deleted file mode 100644 (file)
index 75f4e4f..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-#include "ecore_xcb_private.h"
-# ifdef ECORE_XCB_SYNC
-#  include <xcb/sync.h>
-# endif
-
-/* local variables */
-static Eina_Bool _sync_avail = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_sync = -1;
-
-void
-_ecore_xcb_sync_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_SYNC
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_sync_id);
-#endif
-}
-
-void
-_ecore_xcb_sync_finalize(void)
-{
-#ifdef ECORE_XCB_SYNC
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_SYNC
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_sync_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_sync_initialize_cookie_t cookie;
-        xcb_sync_initialize_reply_t *reply;
-
-        cookie =
-          xcb_sync_initialize_unchecked(_ecore_xcb_conn,
-                                        XCB_SYNC_MAJOR_VERSION,
-                                        XCB_SYNC_MINOR_VERSION);
-        reply = xcb_sync_initialize_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             if (reply->major_version >= 3) _sync_avail = EINA_TRUE;
-             free(reply);
-          }
-
-        if (_sync_avail)
-          _ecore_xcb_event_sync = ext_reply->first_event;
-     }
-#endif
-}
-
-void
-_ecore_xcb_sync_magic_send(int            val,
-                           Ecore_X_Window win)
-{
-   xcb_client_message_event_t ev;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   memset(&ev, 0, sizeof(xcb_client_message_event_t));
-   ev.response_type = XCB_CLIENT_MESSAGE;
-   ev.format = 32;
-   ev.window = win;
-   ev.type = 27777;
-   ev.data.data32[0] = 0x7162534;
-   ev.data.data32[1] = (0x10000000 + val);
-   ev.data.data32[2] = win;
-
-   xcb_send_event(_ecore_xcb_conn, 0, win, XCB_EVENT_MASK_NO_EVENT,
-                  (const char *)&ev);
-//   ecore_x_flush();
-}
-
-/* public functions */
-EAPI Ecore_X_Sync_Alarm
-ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter)
-{
-#ifdef ECORE_XCB_SYNC
-   uint32_t list[6], mask;
-   xcb_sync_int64_t init;
-   Ecore_X_Sync_Alarm alarm;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return 0;
-
-#ifdef ECORE_XCB_SYNC
-   init.lo = 0;
-   init.hi = 0;
-   xcb_sync_set_counter(_ecore_xcb_conn, counter, init);
-
-   mask = (XCB_SYNC_CA_COUNTER | XCB_SYNC_CA_VALUE_TYPE |
-           XCB_SYNC_CA_VALUE | XCB_SYNC_CA_TEST_TYPE |
-           XCB_SYNC_CA_DELTA | XCB_SYNC_CA_EVENTS);
-   list[0] = counter;
-   list[1] = XCB_SYNC_VALUETYPE_ABSOLUTE;
-   list[2] = 1;
-   list[3] = XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON;
-   list[4] = 1;
-   list[5] = 1;
-   alarm = xcb_generate_id(_ecore_xcb_conn);
-
-   xcb_sync_create_alarm(_ecore_xcb_conn, alarm, mask, list);
-   ecore_x_sync(); // needed
-
-   return alarm;
-#endif
-   return 0;
-}
-
-EAPI Eina_Bool
-ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!alarm)) return EINA_FALSE;
-
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_destroy_alarm(_ecore_xcb_conn, alarm);
-//   ecore_x_flush();
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter,
-                           unsigned int        *val)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_query_counter_cookie_t cookie;
-   xcb_sync_query_counter_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return EINA_FALSE;
-
-#ifdef ECORE_XCB_SYNC
-   cookie = xcb_sync_query_counter_unchecked(_ecore_xcb_conn, counter);
-   reply = xcb_sync_query_counter_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        if (val) *val = (unsigned int)reply->counter_value.lo;
-        free(reply);
-        return EINA_TRUE;
-     }
-#endif
-   return EINA_FALSE;
-}
-
-EAPI void
-ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter,
-                         int                  by)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_int64_t v;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return;
-
-#ifdef ECORE_XCB_SYNC
-   v.hi = (by < 0) ? ~0 : 0;
-   v.lo = by;
-
-   xcb_sync_change_counter(_ecore_xcb_conn, counter, v);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI void
-ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter,
-                              int                  val)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_query_counter_cookie_t cookie;
-   xcb_sync_query_counter_reply_t *reply;
-   xcb_sync_int64_t v1, v2;
-   xcb_sync_waitcondition_t cond;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return;
-
-#ifdef ECORE_XCB_SYNC
-   cookie = xcb_sync_query_counter_unchecked(_ecore_xcb_conn, counter);
-   reply = xcb_sync_query_counter_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   v1 = reply->counter_value;
-   free(reply);
-
-   v1.hi = (val < 0) ? ~0 : 0;
-   v1.lo = val;
-   v2.hi = ((val + 1) < 0) ? ~0 : 0;
-   v2.lo = (val + 1);
-
-   cond.trigger.counter = counter;
-   cond.trigger.wait_type = XCB_SYNC_VALUETYPE_ABSOLUTE;
-   cond.trigger.wait_value = v1;
-   cond.trigger.test_type = XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON;
-   cond.event_threshold = v2;
-
-   xcb_sync_await(_ecore_xcb_conn, 1, &cond);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI Ecore_X_Sync_Counter
-ecore_x_sync_counter_new(int val)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_counter_t counter;
-   xcb_sync_int64_t v;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_sync_avail) return 0;
-
-#ifdef ECORE_XCB_SYNC
-   v.hi = (val < 0) ? ~0 : 0;
-   v.lo = val;
-
-   counter = xcb_generate_id(_ecore_xcb_conn);
-   xcb_sync_create_counter(_ecore_xcb_conn, counter, v);
-//   ecore_x_flush();
-
-   return counter;
-#endif
-
-   return 0;
-}
-
-EAPI void
-ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return;
-
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_destroy_counter(_ecore_xcb_conn, counter);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI void
-ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter,
-                         int                  val)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_int64_t v;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return;
-
-#ifdef ECORE_XCB_SYNC
-   v.hi = (val < 0) ? ~0 : 0;
-   v.lo = val;
-
-   xcb_sync_set_counter(_ecore_xcb_conn, counter, v);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI void
-ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter,
-                           int                  val_hi,
-                           unsigned int         val_lo)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_int64_t v;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return;
-
-#ifdef ECORE_XCB_SYNC
-   v.hi = val_hi;
-   v.lo = val_lo;
-
-   xcb_sync_set_counter(_ecore_xcb_conn, counter, v);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI Eina_Bool
-ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter,
-                             int                 *val_hi,
-                             unsigned int        *val_lo)
-{
-#ifdef ECORE_XCB_SYNC
-   xcb_sync_query_counter_cookie_t cookie;
-   xcb_sync_query_counter_reply_t *reply;
-   xcb_sync_int64_t value;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if ((!_sync_avail) || (!counter)) return EINA_FALSE;
-
-#ifdef ECORE_XCB_SYNC
-   cookie =
-     xcb_sync_query_counter_unchecked(_ecore_xcb_conn,
-                                      (xcb_sync_counter_t)counter);
-   reply = xcb_sync_query_counter_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-   value = reply->counter_value;
-   free(reply);
-   if (val_hi) *val_hi = (int)value.hi;
-   if (val_lo) *val_lo = (unsigned int)value.lo;
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_textlist.c b/src/lib/ecore_x/xcb/ecore_xcb_textlist.c
deleted file mode 100644 (file)
index 2a5c854..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-#include "ecore_xcb_private.h"
-//#include "Ecore_X_Atoms.h"
-#include <langinfo.h>
-#ifdef HAVE_ICONV
-# include <iconv.h>
-#endif
-#ifndef CODESET
-# define CODESET "INVALID"
-#endif
-
-static int _ecore_xcb_textlist_get_buffer_size(Eina_Bool is_wide,
-                                               void     *list,
-                                               int       count);
-static int   _ecore_xcb_textlist_get_wc_len(wchar_t *wstr);
-static void *_ecore_xcb_textlist_alloc_list(Eina_Bool is_wide,
-                                            int       count,
-                                            int       nitems);
-static void _ecore_xcb_textlist_copy_list(Eina_Bool is_wide,
-                                          void     *text,
-                                          char    **list,
-                                          int       count);
-static wchar_t *_ecore_xcb_textlist_copy_wchar(wchar_t *str1,
-                                               wchar_t *str2);
-static int      _ecore_xcb_textlist_len_wchar(wchar_t *str);
-
-#ifdef HAVE_ICONV
-Eina_Bool
-_ecore_xcb_utf8_textlist_to_textproperty(char                   **list,
-                                         int                      count,
-                                         Ecore_Xcb_Encoding_Style style,
-                                         Ecore_Xcb_Textproperty  *ret)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_textlist_to_textproperty("utf8string", list, count,
-                                              style, ret);
-}
-
-#endif
-
-Eina_Bool
-_ecore_xcb_mb_textlist_to_textproperty(char                   **list,
-                                       int                      count,
-                                       Ecore_Xcb_Encoding_Style style,
-                                       Ecore_Xcb_Textproperty  *ret)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_textlist_to_textproperty("multiByte", list, count,
-                                              style, ret);
-}
-
-/* NB: This Function May Not Be Correct !!!
- * (as I do not know text conversion, locales, etc, etc very well)
- *
- * Portions were ripped from libX11 XTextListToTextProperty
- */
-Eina_Bool
-_ecore_xcb_textlist_to_textproperty(const char              *type,
-                                    char                   **list,
-                                    int                      count,
-                                    Ecore_Xcb_Encoding_Style style,
-                                    Ecore_Xcb_Textproperty  *ret)
-{
-   Eina_Bool is_wide = EINA_FALSE;
-   Ecore_X_Atom encoding;
-   int len = 0, nitems = 0, i = 0;
-   size_t from_left = 0, to_left = 0;
-   int unconv_num = 0, val = 0;
-   char *buff, *to, *value, *from;
-   const char *to_type, *from_type;
-   char **mb = NULL;
-   wchar_t **wc = NULL;
-#ifdef HAVE_ICONV
-   iconv_t conv;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!strcmp("wideChar", type)) is_wide = EINA_TRUE;
-   len = _ecore_xcb_textlist_get_buffer_size(is_wide, list, count);
-   if (!(buff = (char *)malloc(len * sizeof(char)))) return EINA_FALSE;
-   from_type = nl_langinfo(CODESET);
-   switch (style)
-     {
-      case XcbStringStyle:
-      case XcbStdICCTextStyle:
-        encoding = ECORE_X_ATOM_STRING;
-        to_type = nl_langinfo(CODESET);
-//        to_type = "string";
-        break;
-
-      case XcbUTF8StringStyle:
-        encoding = ECORE_X_ATOM_UTF8_STRING;
-        to_type = "UTF-8";
-        break;
-
-      case XcbCompoundTextStyle:
-        encoding = ECORE_X_ATOM_COMPOUND_TEXT;
-        to_type = nl_langinfo(CODESET);
-//        to_type = "compoundText";
-        break;
-
-      case XcbTextStyle:
-        encoding = ECORE_X_ATOM_TEXT;
-        to_type = nl_langinfo(CODESET);
-//        to_type = "multiByte";
-        if (!is_wide)
-          {
-             nitems = 0;
-             mb = (char **)list;
-             to = buff;
-             for (i = 0; ((i < count) && (len > 0)); i++)
-               {
-                  if (*mb) strcpy(to, *mb);
-                  else *to = '\0';
-                  from_left = (*mb ? strlen(*mb) : 0) + 1;
-                  nitems += from_left;
-                  to += from_left;
-                  mb++;
-               }
-             unconv_num = 0;
-             goto done;
-          }
-        break;
-
-      default:
-        free(buff);
-        return EINA_FALSE;
-        break;
-     }
-
-   if (count < 1)
-     {
-        nitems = 0;
-        goto done;
-     }
-
-retry:
-#ifdef HAVE_ICONV
-   conv = iconv_open(to_type, from_type);
-#endif
-
-   if (is_wide)
-     wc = (wchar_t **)list;
-   else
-     mb = (char **)list;
-
-   to = buff;
-   to_left = len;
-   unconv_num = 0;
-   for (i = 1; to_left > 0; i++)
-     {
-        if (is_wide)
-          {
-             from = (char *)*wc;
-             from_left = _ecore_xcb_textlist_get_wc_len(*wc);
-             wc++;
-          }
-        else
-          {
-             from = *mb;
-             from_left = (*mb ? strlen(*mb) : 0);
-             mb++;
-          }
-
-#ifdef HAVE_ICONV
-        val = iconv(conv, &from, &from_left, &to, &to_left);
-#endif
-        if (val < 0) continue;
-        if ((val > 0) && (style == XcbStdICCTextStyle) &&
-            (encoding == ECORE_X_ATOM_STRING))
-          {
-#ifdef HAVE_ICONV
-             iconv_close(conv);
-#endif
-             encoding = ECORE_X_ATOM_COMPOUND_TEXT;
-             goto retry;
-          }
-
-        unconv_num += val;
-        *to++ = '\0';
-        to_left--;
-        if (i >= count) break;
-     }
-
-#ifdef HAVE_ICONV
-   iconv_close(conv);
-#endif
-   nitems = (to - buff);
-
-done:
-   if (nitems <= 0) nitems = 1;
-   if (!(value = (char *)malloc(nitems * sizeof(char))))
-     {
-        free(buff);
-        return EINA_FALSE;
-     }
-   if (nitems == 1)
-     *value = 0;
-   else
-     memcpy(value, buff, nitems);
-   nitems--;
-   free(buff);
-
-   ret->value = value;
-   ret->encoding = encoding;
-   ret->format = 8;
-   ret->nitems = nitems;
-
-   return EINA_TRUE;
-}
-
-#ifdef HAVE_ICONV
-Eina_Bool
-_ecore_xcb_utf8_textproperty_to_textlist(const Ecore_Xcb_Textproperty *text_prop,
-                                         char                       ***list_ret,
-                                         int                          *count_ret)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_textproperty_to_textlist(text_prop, "utf8String",
-                                              list_ret, count_ret);
-}
-
-#endif
-
-Eina_Bool
-_ecore_xcb_mb_textproperty_to_textlist(const Ecore_Xcb_Textproperty *text_prop,
-                                       char                       ***list_ret,
-                                       int                          *count_ret)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return _ecore_xcb_textproperty_to_textlist(text_prop, "multiByte",
-                                              list_ret, count_ret);
-}
-
-Eina_Bool
-_ecore_xcb_textproperty_to_textlist(const Ecore_Xcb_Textproperty *text_prop,
-                                    const char                   *type,
-                                    char                       ***list_ret,
-                                    int                          *count_ret)
-{
-   Eina_Bool is_wide = EINA_FALSE;
-   Eina_Bool do_strcpy = EINA_FALSE;
-   const char *from_type;
-   char *buff, *to, *from;
-   char *lptr, *sptr;
-   int nitems = 0, len = 0, num = 0, ret = 0;
-   size_t from_left = 0, to_left = 0;
-#ifdef HAVE_ICONV
-   iconv_t conv = 0;
-#endif
-
-   *list_ret = NULL;
-   *count_ret = 0;
-   if (!strcmp("wideChar", type)) is_wide = EINA_TRUE;
-
-   nitems = text_prop->nitems;
-   if (nitems <= 0) return EINA_TRUE;
-
-   if (text_prop->format != 8) return EINA_FALSE;
-
-   from_type = nl_langinfo(CODESET);
-   if (text_prop->encoding == ECORE_X_ATOM_UTF8_STRING)
-     from_type = "UTF-8";
-
-   if (is_wide)
-     len = (text_prop->nitems + 1) * sizeof(wchar_t);
-   else
-     {
-        if (!strcmp(type, "utf8String"))
-          len = text_prop->nitems * 6 + 1;
-        else
-          len = text_prop->nitems * MB_CUR_MAX + 1;
-     }
-
-   buff = (char *)malloc(len * sizeof(char));
-   if (!buff) return EINA_FALSE;
-
-   to = buff;
-   to_left = len;
-
-   if (!strcmp(from_type, type))
-     do_strcpy = EINA_TRUE;
-   else
-     {
-#ifdef HAVE_ICONV
-        conv = iconv_open(type, from_type);
-#endif
-        if (!conv)
-          {
-             free(buff);
-             return EINA_FALSE;
-          }
-     }
-
-   lptr = sptr = text_prop->value;
-   num = *count_ret = 0;
-   while (1)
-     {
-        if ((nitems == 0) || (*sptr == 0))
-          {
-             from = lptr;
-             from_left = sptr - lptr;
-             lptr = sptr;
-             if (do_strcpy)
-               {
-                  int l = 0;
-
-                  l = MIN(from_left, to_left);
-                  strncpy(to, from, l);
-                  from += len;
-                  to += len;
-                  from_left -= l;
-                  to_left -= l;
-                  ret = 0;
-               }
-             else
-               ret = iconv(conv, &from, &from_left, &to, &to_left);
-
-             if (ret < 0) continue;
-             num += ret;
-             (*count_ret)++;
-             if (nitems == 0) break;
-             lptr = ++sptr;
-             if (is_wide)
-               {
-                  *((wchar_t *)to) = (wchar_t)0;
-                  to += sizeof(wchar_t);
-                  to_left -= sizeof(wchar_t);
-               }
-             else
-               {
-                  *((char *)to) = '\0';
-                  to++;
-                  to_left--;
-               }
-          }
-        else
-          sptr++;
-
-        nitems--;
-     }
-
-#if HAVE_ICONV
-   if (!do_strcpy) iconv_close(conv);
-#endif
-
-   if (is_wide)
-     {
-        *((wchar_t *)to) = (wchar_t)0;
-        to_left -= sizeof(wchar_t);
-     }
-   else
-     {
-        *((char *)to) = '\0';
-        to_left--;
-     }
-
-   *list_ret =
-     _ecore_xcb_textlist_alloc_list(is_wide, *count_ret, (len - to_left));
-   if (*list_ret)
-     _ecore_xcb_textlist_copy_list(is_wide, buff, *list_ret, *count_ret);
-
-   free(buff);
-
-   return EINA_TRUE;
-}
-
-static int
-_ecore_xcb_textlist_get_buffer_size(Eina_Bool is_wide,
-                                    void     *list,
-                                    int       count)
-{
-   int len = 0;
-   char **mb;
-   wchar_t **wc;
-
-   if (!list) return 0;
-   if (is_wide)
-     {
-        wc = (wchar_t **)list;
-        for (; count-- > 0; wc++)
-          if (*wc) len += _ecore_xcb_textlist_get_wc_len(*wc) + 1;
-        len *= 5;
-     }
-   else
-     {
-        mb = (char **)list;
-        for (; count-- > 0; mb++)
-          if (*mb) len += strlen(*mb) + 1;
-        len *= 3;
-     }
-   len = (len / 2048 + 1) * 2048;
-   return len;
-}
-
-static int
-_ecore_xcb_textlist_get_wc_len(wchar_t *wstr)
-{
-   wchar_t *ptr;
-
-   ptr = wstr;
-   while (*ptr)
-     ptr++;
-
-   return ptr - wstr;
-}
-
-static void *
-_ecore_xcb_textlist_alloc_list(Eina_Bool is_wide,
-                               int       count,
-                               int       nitems)
-{
-   if (is_wide)
-     {
-        wchar_t **list;
-
-        list = (wchar_t **)malloc(count * sizeof(wchar_t *));
-        if (!list) return NULL;
-        *list = (wchar_t *)malloc(nitems * sizeof(wchar_t));
-        if (!*list)
-          {
-             free(list);
-             return NULL;
-          }
-        return *list;
-     }
-   else
-     {
-        char **list;
-
-        list = (char **)malloc(count * sizeof(char *));
-        if (!list) return NULL;
-        *list = (char *)malloc(nitems * sizeof(char));
-        if (!*list)
-          {
-             free(list);
-             return NULL;
-          }
-        return *list;
-     }
-}
-
-static void
-_ecore_xcb_textlist_copy_list(Eina_Bool is_wide,
-                              void     *text,
-                              char    **list,
-                              int       count)
-{
-   int len = 0;
-
-   if (is_wide)
-     {
-        wchar_t *txt, *str, **wlist;
-
-        txt = (wchar_t *)text;
-        wlist = (wchar_t **)list;
-        for (str = *wlist; count > 0; count--, wlist++)
-          {
-             _ecore_xcb_textlist_copy_wchar(str, txt);
-             *wlist = str;
-             len = (_ecore_xcb_textlist_len_wchar(str) + 1);
-             str += len;
-             txt += len;
-          }
-     }
-   else
-     {
-        char *txt, *str, **slist;
-
-        txt = (char *)text;
-        slist = (char **)list;
-        for (str = *slist; count > 0; count--, slist++)
-          {
-             strcpy(str, txt);
-             *slist = str;
-             len = strlen(str) + 1;
-             str += len;
-             txt += len;
-          }
-     }
-}
-
-static wchar_t *
-_ecore_xcb_textlist_copy_wchar(wchar_t *str1,
-                               wchar_t *str2)
-{
-   wchar_t *tmp;
-
-   tmp = str1;
-   while ((*str1++ = *str2++))
-     ;
-   return tmp;
-}
-
-static int
-_ecore_xcb_textlist_len_wchar(wchar_t *str)
-{
-   wchar_t *ptr;
-
-   ptr = str;
-   while (*ptr)
-     ptr++;
-   return ptr - str;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_vsync.c b/src/lib/ecore_x/xcb/ecore_xcb_vsync.c
deleted file mode 100644 (file)
index 7888796..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-#include "ecore_xcb_private.h"
-# include <fcntl.h>
-# include <dlfcn.h>
-# include <X11/Xlib-xcb.h>
-
-#define ECORE_XCB_VSYNC_DRI2      1
-#define DRM_EVENT_CONTEXT_VERSION 2
-
-#ifdef ECORE_XCB_VSYNC_DRI2
-
-/* relevant header bits of dri/drm inlined here to avoid needing external */
-/* headers to build drm */
-typedef unsigned int drm_magic_t;
-
-typedef enum
-{
-   DRM_VBLANK_ABSOLUTE = 0x00000000,
-   DRM_VBLANK_RELATIVE = 0x00000001,
-   DRM_VBLANK_EVENT = 0x04000000,
-   DRM_VBLANK_FLIP = 0x08000000,
-   DRM_VBLANK_NEXTONMISS = 0x10000000,
-   DRM_VBLANK_SECONDARY = 0x20000000,
-   DRM_VBLANK_SIGNAL = 0x40000000
-} drmVBlankSeqType;
-
-typedef struct _drmVBlankReq
-{
-   drmVBlankSeqType type;
-   unsigned int     sequence;
-   unsigned long    signal;
-} drmVBlankReq;
-
-typedef struct _drmVBlankReply
-{
-   drmVBlankSeqType type;
-   unsigned int     sequence;
-   long             tval_sec, tval_usec;
-} drmVBlankReply;
-
-typedef union _drmVBlank
-{
-   drmVBlankReq   request;
-   drmVBlankReply reply;
-} drmVBlank;
-
-typedef struct _drmEventContext
-{
-   int version;
-   void (*vblank_handler)(int          fd,
-                          unsigned int sequence,
-                          unsigned int tv_sec,
-                          unsigned int tv_usec,
-                          void        *user_data);
-   void (*page_flip_handler)(int          fd,
-                             unsigned int sequence,
-                             unsigned int tv_sec,
-                             unsigned int tv_usec,
-                             void        *user_data);
-} drmEventContext;
-
-static int (*sym_drmClose)(int fd) = NULL;
-static int (*sym_drmGetMagic)(int          fd,
-                              drm_magic_t *magic) = NULL;
-static int (*sym_drmWaitVBlank)(int        fd,
-                                drmVBlank *vbl) = NULL;
-static int (*sym_drmHandleEvent)(int              fd,
-                                 drmEventContext *evctx) = NULL;
-
-/* dri */
-static Bool (*sym_DRI2QueryExtension)(Display *display,
-                                      int     *eventBase,
-                                      int     *errorBase) = NULL;
-static Bool (*sym_DRI2QueryVersion)(Display *display,
-                                    int     *major,
-                                    int     *minor) = NULL;
-static Bool (*sym_DRI2Connect)(Display *display,
-                               XID      window,
-                               char   **driverName,
-                               char   **deviceName) = NULL;
-static Bool (*sym_DRI2Authenticate)(Display    *display,
-                                    XID         window,
-                                    drm_magic_t magic) = NULL;
-
-/* local function prototypes */
-static Eina_Bool _ecore_xcb_dri_link(void);
-static Eina_Bool _ecore_xcb_dri_start(void);
-static void      _ecore_xcb_dri_shutdown(void);
-
-static Eina_Bool _ecore_xcb_dri_cb(void             *data EINA_UNUSED,
-                                   Ecore_Fd_Handler *fdh EINA_UNUSED);
-static void      _ecore_xcb_dri_tick_begin(void *data EINA_UNUSED);
-static void      _ecore_xcb_dri_tick_end(void *data EINA_UNUSED);
-static void      _ecore_xcb_dri_tick_schedule(void);
-static void      _ecore_xcb_dri_vblank_handler(int          fd EINA_UNUSED,
-                                               unsigned int frame EINA_UNUSED,
-                                               unsigned int sec EINA_UNUSED,
-                                               unsigned int usec EINA_UNUSED,
-                                               void        *data EINA_UNUSED);
-
-/* local variables */
-static Ecore_X_Window _vsync_root = 0;
-static int _drm_fd = -1;
-static Ecore_Fd_Handler *_drm_fdh = NULL;
-static unsigned int _drm_magic = 0;
-static Eina_Bool _drm_event_busy = EINA_FALSE;
-static void *_drm_lib = NULL;
-static void *_dri_lib = NULL;
-static drmEventContext _drm_evctx;
-#endif
-
-void
-_ecore_xcb_dri_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-}
-
-void
-_ecore_xcb_dri_finalize(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-}
-
-EAPI Eina_Bool
-ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win)
-{
-#ifdef ECORE_XCB_VSYNC_DRI2
-   Ecore_X_Window root;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_VSYNC_DRI2
-   root = ecore_x_window_root_get(win);
-   if (root != _vsync_root)
-     {
-        _vsync_root = root;
-        if (_vsync_root)
-          {
-             if (!_ecore_xcb_dri_link())
-               {
-                  ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_TIMER);
-                  return EINA_FALSE;
-               }
-             _ecore_xcb_dri_shutdown();
-             if (!_ecore_xcb_dri_start())
-               {
-                  _vsync_root = 0;
-                  ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_TIMER);
-                  return EINA_FALSE;
-               }
-             ecore_animator_custom_source_tick_begin_callback_set
-               (_ecore_xcb_dri_tick_begin, NULL);
-             ecore_animator_custom_source_tick_end_callback_set
-               (_ecore_xcb_dri_tick_end, NULL);
-             ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
-          }
-        else
-          {
-             if (_drm_fd >= 0)
-               {
-                  _ecore_xcb_dri_shutdown();
-                  ecore_animator_custom_source_tick_begin_callback_set
-                    (NULL, NULL);
-                  ecore_animator_custom_source_tick_end_callback_set
-                    (NULL, NULL);
-                  ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_TIMER);
-               }
-          }
-     }
-   return EINA_TRUE;
-#else
-   return EINA_FALSE;
-   win = 0;
-#endif
-}
-
-/* local functions */
-#ifdef ECORE_XCB_VSYNC_DRI2
-static Eina_Bool
-_ecore_xcb_dri_link(void)
-{
-   const char *_drm_libs[] =
-   {
-      "libdrm.so.2",
-      "libdrm.so.1",
-      "libdrm.so.0",
-      "libdrm.so",
-      NULL,
-   };
-   const char *_dri_libs[] =
-   {
-      "libdri2.so.2",
-      "libdri2.so.1",
-      "libdri2.so.0",
-      "libdri2.so",
-      "libGL.so.4",
-      "libGL.so.3",
-      "libGL.so.2",
-      "libGL.so.1",
-      "libGL.so.0",
-      "libGL.so",
-      NULL,
-   };
-   int i = 0, fail = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-# define SYM(lib, xx)                           \
-  do {                                          \
-       sym_## xx = dlsym(lib, #xx);             \
-       if (!(sym_## xx)) {                      \
-            fprintf(stderr, "%s\n", dlerror()); \
-            fail = 1;                           \
-         }                                      \
-    } while (0);
-
-   if (_drm_lib) return EINA_TRUE;
-
-   for (i = 0; _drm_libs[i]; i++)
-     {
-        _drm_lib = dlopen(_drm_libs[i], (RTLD_LOCAL | RTLD_LAZY));
-        if (_drm_lib)
-          {
-             fail = 0;
-             SYM(_drm_lib, drmClose);
-             SYM(_drm_lib, drmGetMagic);
-             SYM(_drm_lib, drmWaitVBlank);
-             SYM(_drm_lib, drmHandleEvent);
-             if (fail)
-               {
-                  dlclose(_drm_lib);
-                  _drm_lib = NULL;
-               }
-             else
-               break;
-          }
-     }
-   if (!_drm_lib) return EINA_FALSE;
-   for (i = 0; _dri_libs[i]; i++)
-     {
-        if ((_dri_lib = dlopen(_dri_libs[i], (RTLD_LOCAL | RTLD_LAZY))))
-          {
-             fail = 0;
-             SYM(_dri_lib, DRI2QueryExtension);
-             SYM(_dri_lib, DRI2QueryVersion);
-             SYM(_dri_lib, DRI2Connect);
-             SYM(_dri_lib, DRI2Authenticate);
-             if (fail)
-               {
-                  dlclose(_dri_lib);
-                  _dri_lib = NULL;
-               }
-             else
-               break;
-          }
-     }
-   if (!_dri_lib)
-     {
-        dlclose(_drm_lib);
-        _drm_lib = NULL;
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ecore_xcb_dri_start(void)
-{
-   Ecore_X_Display *disp;
-   int _dri2_event = 0, _dri2_error = 0;
-   int _dri2_major = 0, _dri2_minor = 0;
-   char *device = NULL, *driver = NULL;
-
-   disp = ecore_x_display_get();
-   if (!sym_DRI2QueryExtension(disp, &_dri2_event, &_dri2_error))
-     return 0;
-   if (!sym_DRI2QueryVersion(disp, &_dri2_major, &_dri2_minor))
-     return 0;
-   if (_dri2_major < 2) return 0;
-   if (!sym_DRI2Connect(disp, _vsync_root, &driver, &device))
-     return 0;
-
-   _drm_fd = open(device, O_RDWR);
-   if (_drm_fd < 0) return 0;
-
-   sym_drmGetMagic(_drm_fd, &_drm_magic);
-   if (!sym_DRI2Authenticate(disp, _vsync_root, _drm_magic))
-     {
-        close(_drm_fd);
-        _drm_fd = -1;
-        return EINA_FALSE;
-     }
-
-   memset(&_drm_evctx, 0, sizeof(_drm_evctx));
-   _drm_evctx.version = DRM_EVENT_CONTEXT_VERSION;
-   _drm_evctx.vblank_handler = _ecore_xcb_dri_vblank_handler;
-   _drm_evctx.page_flip_handler = NULL;
-
-   _drm_fdh = ecore_main_fd_handler_add(_drm_fd, ECORE_FD_READ,
-                                        _ecore_xcb_dri_cb, NULL, NULL, NULL);
-   if (!_drm_fdh)
-     {
-        close(_drm_fd);
-        _drm_fd = -1;
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-static void
-_ecore_xcb_dri_shutdown(void)
-{
-   if (_drm_fd >= 0)
-     {
-        close(_drm_fd);
-        _drm_fd = -1;
-     }
-   if (_drm_fdh)
-     {
-        ecore_main_fd_handler_del(_drm_fdh);
-        _drm_fdh = NULL;
-     }
-}
-
-static Eina_Bool
-_ecore_xcb_dri_cb(void             *data EINA_UNUSED,
-                  Ecore_Fd_Handler *fdh EINA_UNUSED)
-{
-   sym_drmHandleEvent(_drm_fd, &_drm_evctx);
-   return ECORE_CALLBACK_RENEW;
-}
-
-static void
-_ecore_xcb_dri_tick_begin(void *data EINA_UNUSED)
-{
-   _drm_event_busy = EINA_TRUE;
-   _ecore_xcb_dri_tick_schedule();
-}
-
-static void
-_ecore_xcb_dri_tick_end(void *data EINA_UNUSED)
-{
-   _drm_event_busy = EINA_FALSE;
-}
-
-static void
-_ecore_xcb_dri_tick_schedule(void)
-{
-   drmVBlank vbl;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   vbl.request.type = (DRM_VBLANK_RELATIVE | DRM_VBLANK_EVENT);
-   vbl.request.sequence = 1;
-   vbl.request.signal = 0;
-
-   sym_drmWaitVBlank(_drm_fd, &vbl);
-}
-
-static void
-_ecore_xcb_dri_vblank_handler(int          fd EINA_UNUSED,
-                              unsigned int frame EINA_UNUSED,
-                              unsigned int sec EINA_UNUSED,
-                              unsigned int usec EINA_UNUSED,
-                              void        *data EINA_UNUSED)
-{
-   ecore_animator_custom_tick();
-   if (_drm_event_busy) _ecore_xcb_dri_tick_schedule();
-}
-
-#endif
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_window.c b/src/lib/ecore_x/xcb/ecore_xcb_window.c
deleted file mode 100644 (file)
index 4b4f308..0000000
+++ /dev/null
@@ -1,2255 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_RENDER
-# include <xcb/render.h>
-#endif
-#ifdef ECORE_XCB_SHAPE
-# include <xcb/shape.h>
-#endif
-
-/* local function prototypes */
-static Ecore_X_Window _ecore_xcb_window_argb_internal_new(Ecore_X_Window parent,
-                                                          int            x,
-                                                          int            y,
-                                                          int            w,
-                                                          int            h,
-                                                          uint8_t        override_redirect,
-                                                          uint8_t        save_under);
-static Ecore_X_Window _ecore_xcb_window_at_xy_get(Ecore_X_Window  base,
-                                                  int             bx,
-                                                  int             by,
-                                                  int             x,
-                                                  int             y,
-                                                  Ecore_X_Window *skip,
-                                                  int             skip_num);
-static int               _ecore_xcb_window_modifiers_get(unsigned int state);
-static xcb_visualtype_t *_ecore_xcb_window_find_visual_by_id(xcb_visualid_t id);
-
-/* local variables */
-static int ignore_num = 0;
-static Ecore_X_Window *ignore_list = NULL;
-
-/* external variables */
-int _ecore_xcb_button_grabs_num = 0;
-int _ecore_xcb_key_grabs_num = 0;
-Ecore_X_Window *_ecore_xcb_button_grabs = NULL;
-Ecore_X_Window *_ecore_xcb_key_grabs = NULL;
-Eina_Bool (*_ecore_xcb_window_grab_replay_func)(void *data,
-                                                int   type,
-                                                void *event);
-void *_ecore_xcb_window_grab_replay_data;
-
-/**
- * @defgroup Ecore_X_Window_Create_Group X Window Creation Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that can be used to create an X window.
- */
-
-EAPI Ecore_X_Window
-ecore_x_window_full_new(Ecore_X_Window parent, int x, int y, int w, int h, Ecore_X_Visual *visual, Ecore_X_Colormap colormap, int depth EINA_UNUSED, Eina_Bool override)
-{
-   Ecore_X_Window win;
-   uint32_t mask, mask_list[10];
-   xcb_visualtype_t *vis;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (parent == 0)
-     parent = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   vis = (xcb_visualtype_t *)visual;
-
-   /* NB: Order here is very important due to xcb_cw_t enum */
-   mask = (XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL | XCB_CW_BIT_GRAVITY |
-           XCB_CW_WIN_GRAVITY | XCB_CW_BACKING_STORE |
-           XCB_CW_OVERRIDE_REDIRECT | XCB_CW_SAVE_UNDER | XCB_CW_EVENT_MASK |
-           XCB_CW_DONT_PROPAGATE | XCB_CW_COLORMAP);
-
-   mask_list[0] = XCB_BACK_PIXMAP_NONE;
-   mask_list[1] = 0;
-   mask_list[2] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[3] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[4] = XCB_BACKING_STORE_NOT_USEFUL;
-   mask_list[5] = override;
-   mask_list[6] = 0;
-   mask_list[7] = (XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE |
-                   XCB_EVENT_MASK_BUTTON_PRESS |
-                   XCB_EVENT_MASK_BUTTON_RELEASE |
-                   XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-                   XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_EXPOSURE |
-                   XCB_EVENT_MASK_VISIBILITY_CHANGE |
-                   XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-                   XCB_EVENT_MASK_FOCUS_CHANGE |
-                   XCB_EVENT_MASK_PROPERTY_CHANGE |
-                   XCB_EVENT_MASK_COLOR_MAP_CHANGE);
-   mask_list[8] = XCB_EVENT_MASK_NO_EVENT;
-   mask_list[9] = colormap;
-
-   win = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_window(_ecore_xcb_conn, XCB_COPY_FROM_PARENT,
-                     win, parent, x, y, w, h, 0,
-                     XCB_WINDOW_CLASS_INPUT_OUTPUT,
-                     vis ? vis->visual_id : XCB_COPY_FROM_PARENT,
-                     mask, mask_list);
-
-   if (parent == ((xcb_screen_t *)_ecore_xcb_screen)->root)
-     ecore_x_window_defaults_set(win);
-
-   return win;
-}
-
-/**
- * Creates a new window.
- * @param   parent The parent window to use.  If @p parent is @c 0, the root
- *                 window of the default display is used.
- * @param   x      X position.
- * @param   y      Y position.
- * @param   w      Width.
- * @param   h      Height.
- * @return  The new window handle.
- * @ingroup Ecore_X_Window_Create_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h)
-{
-   Ecore_X_Window win;
-   uint32_t mask, mask_list[9];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (parent == 0)
-     parent = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   /* NB: Order here is very important due to xcb_cw_t enum */
-   mask = (XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL | XCB_CW_BIT_GRAVITY |
-           XCB_CW_WIN_GRAVITY | XCB_CW_BACKING_STORE |
-           XCB_CW_OVERRIDE_REDIRECT | XCB_CW_SAVE_UNDER | XCB_CW_EVENT_MASK |
-           XCB_CW_DONT_PROPAGATE);
-
-   mask_list[0] = XCB_BACK_PIXMAP_NONE;
-   mask_list[1] = 0;
-   mask_list[2] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[3] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[4] = XCB_BACKING_STORE_NOT_USEFUL;
-   mask_list[5] = 0;
-   mask_list[6] = 0;
-   mask_list[7] = (XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE |
-                   XCB_EVENT_MASK_BUTTON_PRESS |
-                   XCB_EVENT_MASK_BUTTON_RELEASE |
-                   XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-                   XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_EXPOSURE |
-                   XCB_EVENT_MASK_VISIBILITY_CHANGE |
-                   XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-                   XCB_EVENT_MASK_FOCUS_CHANGE |
-                   XCB_EVENT_MASK_PROPERTY_CHANGE |
-                   XCB_EVENT_MASK_COLOR_MAP_CHANGE);
-   mask_list[8] = XCB_EVENT_MASK_NO_EVENT;
-
-   win = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_window(_ecore_xcb_conn, XCB_COPY_FROM_PARENT,
-                     win, parent, x, y, w, h, 0,
-                     XCB_WINDOW_CLASS_INPUT_OUTPUT,
-                     XCB_COPY_FROM_PARENT, mask, mask_list);
-
-   if (parent == ((xcb_screen_t *)_ecore_xcb_screen)->root)
-     ecore_x_window_defaults_set(win);
-
-   return win;
-}
-
-/**
- * Creates a window with the override redirect attribute set to @c True.
- * @param   parent The parent window to use.  If @p parent is @c 0, the root
- *                 window of the default display is used.
- * @param   x      X position.
- * @param   y      Y position.
- * @param   w      Width.
- * @param   h      Height.
- * @return  The new window handle.
- * @ingroup Ecore_X_Window_Create_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h)
-{
-   Ecore_X_Window win;
-   uint32_t mask, mask_list[9];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (parent == 0)
-     parent = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   /* NB: Order here is very important due to xcb_cw_t enum */
-   mask = (XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL | XCB_CW_BIT_GRAVITY |
-           XCB_CW_WIN_GRAVITY | XCB_CW_BACKING_STORE |
-           XCB_CW_OVERRIDE_REDIRECT | XCB_CW_SAVE_UNDER | XCB_CW_EVENT_MASK |
-           XCB_CW_DONT_PROPAGATE);
-
-   mask_list[0] = XCB_BACK_PIXMAP_NONE;
-   mask_list[1] = 0;
-   mask_list[2] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[3] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[4] = XCB_BACKING_STORE_NOT_USEFUL;
-   mask_list[5] = 1;
-   mask_list[6] = 0;
-   mask_list[7] = (XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE |
-                   XCB_EVENT_MASK_BUTTON_PRESS |
-                   XCB_EVENT_MASK_BUTTON_RELEASE |
-                   XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-                   XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_EXPOSURE |
-                   XCB_EVENT_MASK_VISIBILITY_CHANGE |
-                   XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-                   XCB_EVENT_MASK_FOCUS_CHANGE |
-                   XCB_EVENT_MASK_PROPERTY_CHANGE |
-                   XCB_EVENT_MASK_COLOR_MAP_CHANGE);
-   mask_list[8] = XCB_EVENT_MASK_NO_EVENT;
-
-   win = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_window(_ecore_xcb_conn, XCB_COPY_FROM_PARENT,
-                     win, parent, x, y, w, h, 0,
-                     XCB_WINDOW_CLASS_INPUT_OUTPUT,
-                     XCB_COPY_FROM_PARENT, mask, mask_list);
-
-   return win;
-}
-
-/**
- * Creates a new input window.
- * @param   parent The parent window to use.    If @p parent is @c 0, the root
- *                 window of the default display is used.
- * @param   x      X position.
- * @param   y      Y position.
- * @param   w      Width.
- * @param   h      Height.
- * @return  The new window.
- * @ingroup Ecore_X_Window_Create_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h)
-{
-   Ecore_X_Window win;
-   uint32_t mask, mask_list[3];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__)
-   CHECK_XCB_CONN;
-
-   if (parent == 0)
-     parent = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   /* NB: Order here is very important due to xcb_cw_t enum */
-   mask = (XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK |
-           XCB_CW_DONT_PROPAGATE);
-
-   mask_list[0] = 1;
-   mask_list[1] = (XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE |
-                   XCB_EVENT_MASK_BUTTON_PRESS |
-                   XCB_EVENT_MASK_BUTTON_RELEASE |
-                   XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-                   XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_EXPOSURE |
-                   XCB_EVENT_MASK_VISIBILITY_CHANGE |
-                   XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-                   XCB_EVENT_MASK_FOCUS_CHANGE |
-                   XCB_EVENT_MASK_PROPERTY_CHANGE |
-                   XCB_EVENT_MASK_COLOR_MAP_CHANGE);
-   mask_list[2] = XCB_EVENT_MASK_NO_EVENT;
-
-   win = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_window(_ecore_xcb_conn, XCB_COPY_FROM_PARENT,
-                     win, parent, x, y, w, h, 0,
-                     XCB_WINDOW_CLASS_INPUT_ONLY,
-                     XCB_COPY_FROM_PARENT, mask, mask_list);
-
-   return win;
-}
-
-/**
- * Creates a new window.
- * @param   parent The parent window to use.  If @p parent is @c 0, the root
- *                 window of the default display is used.
- * @param   x      X position.
- * @param   y      Y position.
- * @param   w      Width.
- * @param   h      Height.
- * @return  The new window handle.
- * @ingroup Ecore_X_Window_Create_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_manager_argb_new(Ecore_X_Window parent, int x, int y, int w, int h)
-{
-   Ecore_X_Window win = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   win = _ecore_xcb_window_argb_internal_new(parent, x, y, w, h, 1, 0);
-
-   return win;
-}
-
-/**
- * Creates a new window.
- * @param   parent The parent window to use.  If @p parent is @c 0, the root
- *                 window of the default display is used.
- * @param   x      X position.
- * @param   y      Y position.
- * @param   w      Width.
- * @param   h      Height.
- * @return  The new window handle.
- * @ingroup Ecore_X_Window_Create_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_argb_new(Ecore_X_Window parent, int x, int y, int w, int h)
-{
-   Ecore_X_Window win = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   win = _ecore_xcb_window_argb_internal_new(parent, x, y, w, h, 0, 0);
-
-   return win;
-}
-
-/**
- * Creates a window with the override redirect attribute set to @c True.
- * @param   parent The parent window to use.  If @p parent is @c 0, the root
- *                 window of the default display is used.
- * @param   x      X position.
- * @param   y      Y position.
- * @param   w      Width.
- * @param   h      Height.
- * @return  The new window handle.
- * @ingroup Ecore_X_Window_Create_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_override_argb_new(Ecore_X_Window parent, int x, int y, int w, int h)
-{
-   Ecore_X_Window win = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   win = _ecore_xcb_window_argb_internal_new(parent, x, y, w, h, 1, 0);
-
-   return win;
-}
-
-EAPI Ecore_X_Window
-ecore_x_window_permanent_new(Ecore_X_Window parent, Ecore_X_Atom unique_atom)
-{
-   Ecore_X_Window win, win2, realwin = 0;
-   uint32_t mask, mask_list[9];
-   xcb_get_property_reply_t *reply;
-   xcb_get_property_cookie_t cookie;
-   unsigned long ldata, *datap;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!_ecore_xcb_conn) return 0;
-
-   CHECK_XCB_CONN;
-
-   xcb_grab_server(_ecore_xcb_conn);
-   cookie = 
-     xcb_get_property_unchecked(_ecore_xcb_conn, 0, parent, unique_atom,
-                                ECORE_X_ATOM_WINDOW, 0, 0x7fffffff);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        if ((reply->type == ECORE_X_ATOM_WINDOW) && (reply->format == 32) &&
-            (reply->value_len == 1) &&
-            ((datap = (unsigned long *)xcb_get_property_value(reply))))
-          {
-             win = (Ecore_X_Window)(*datap);
-             free(reply);
-             cookie = 
-               xcb_get_property_unchecked(_ecore_xcb_conn, 0, win, unique_atom,
-                                          ECORE_X_ATOM_WINDOW, 0, 0x7fffffff);
-             reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-             if (reply)
-               {
-                  if ((reply->type == ECORE_X_ATOM_WINDOW) && 
-                      (reply->format == 32) && (reply->value_len == 1) &&
-                      ((datap = (unsigned long *)xcb_get_property_value(reply))))
-                    {
-                       win2 = (Ecore_X_Window)(*datap);
-                       free(reply);
-                       if (win2 == win) realwin = win;
-                    }
-                  else free(reply);
-               }
-          }
-        else free(reply);
-     }
-   if (realwin != 0)
-     {
-        xcb_ungrab_server(_ecore_xcb_conn);
-        xcb_flush(_ecore_xcb_conn);
-        return realwin;
-     }
-   mask = (XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL | XCB_CW_BIT_GRAVITY |
-           XCB_CW_WIN_GRAVITY | XCB_CW_BACKING_STORE |
-           XCB_CW_OVERRIDE_REDIRECT | XCB_CW_SAVE_UNDER | XCB_CW_EVENT_MASK |
-           XCB_CW_DONT_PROPAGATE);
-   mask_list[0] = XCB_BACK_PIXMAP_NONE;
-   mask_list[1] = 0;
-   mask_list[2] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[3] = XCB_GRAVITY_NORTH_WEST;
-   mask_list[4] = XCB_BACKING_STORE_NOT_USEFUL;
-   mask_list[5] = 1;
-   mask_list[6] = 0;
-   mask_list[7] = XCB_EVENT_MASK_NO_EVENT;
-   mask_list[8] = XCB_EVENT_MASK_NO_EVENT;
-   win = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_window(_ecore_xcb_conn, XCB_COPY_FROM_PARENT,
-                     win, parent, -77, -77, 7, 7, 0,
-                     XCB_WINDOW_CLASS_INPUT_OUTPUT,
-                     XCB_COPY_FROM_PARENT, mask, mask_list);
-   ldata = (unsigned long)win;
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, 
-                       win, unique_atom,ECORE_X_ATOM_WINDOW, 32, 1, 
-                       (unsigned char *)ldata);
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, 
-                       parent, unique_atom,
-                       ECORE_X_ATOM_WINDOW, 32, 1, (unsigned char *)ldata);
-   xcb_set_close_down_mode(_ecore_xcb_conn, XCB_CLOSE_DOWN_RETAIN_PERMANENT);
-   xcb_ungrab_server(_ecore_xcb_conn);
-   xcb_flush(_ecore_xcb_conn);
-
-   return win;
-}
-
-/**
- * @defgroup Ecore_X_Window_Destroy_Group X Window Destroy Functions
- * @ingroup Ecore_X_Group
- *
- * Functions to destroy X windows.
- */
-
-/**
- * Deletes the given window.
- * @param   win The given window.
- * @ingroup Ecore_X_Window_Destroy_Group
- */
-EAPI void
-ecore_x_window_free(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (win)
-     {
-        /* xcb_destroy_notify_event_t ev; */
-        /* Ecore_X_Window root; */
-
-          /* if (xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).rem == 1) */
-          /*   root = ((xcb_screen_t *)_ecore_xcb_screen)->root; */
-          /* else  */
-          /*   { */
-          /*      xcb_get_geometry_cookie_t cookie; */
-          /*      xcb_get_geometry_reply_t *reply; */
-
-     /*      cookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, win); */
-                 /*      reply = xcb_get_geometry_reply(_ecore_xcb_conn, cookie, NULL); */
-     /*      if (!reply) return; */
-                   /*      root = reply->root; */
-     /*      free(reply); */
-                     /*   } */
-
-     /* memset(&ev, 0, sizeof(xcb_destroy_notify_event_t)); */
-
-                       /* ev.response_type = XCB_DESTROY_NOTIFY; */
-     /* ev.window = win; */
-                         /* ev.event = root; */
-
-     /* xcb_send_event(_ecore_xcb_conn, 0, root,  */
-                           /*                XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |  */
-     /*                XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT,  */
-                             /*                (const char *)&ev); */
-
-        xcb_destroy_window(_ecore_xcb_conn, win);
-//        ecore_x_flush();
-     }
-}
-
-/**
- * Sends a delete request to the given window.
- * @param   win The given window.
- * @ingroup Ecore_X_Window_Destroy_Group
- */
-EAPI void
-ecore_x_window_delete_request_send(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!win) return;
-   ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
-                                 XCB_EVENT_MASK_NO_EVENT,
-                                 ECORE_X_ATOM_WM_DELETE_WINDOW,
-                                 XCB_CURRENT_TIME, 0, 0, 0);
-}
-
-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)
-{
-   uint16_t vmask = 0;
-   uint32_t vlist[7];
-   unsigned int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-
-   if (mask & XCB_CONFIG_WINDOW_X)
-     {
-        vmask |= XCB_CONFIG_WINDOW_X;
-        vlist[i++] = x;
-     }
-   if (mask & XCB_CONFIG_WINDOW_Y)
-     {
-        vmask |= XCB_CONFIG_WINDOW_Y;
-        vlist[i++] = y;
-     }
-   if (mask & XCB_CONFIG_WINDOW_WIDTH)
-     {
-        vmask |= XCB_CONFIG_WINDOW_WIDTH;
-        vlist[i++] = w;
-     }
-   if (mask & XCB_CONFIG_WINDOW_HEIGHT)
-     {
-        vmask |= XCB_CONFIG_WINDOW_HEIGHT;
-        vlist[i++] = h;
-     }
-   if (mask & XCB_CONFIG_WINDOW_BORDER_WIDTH)
-     {
-        vmask |= XCB_CONFIG_WINDOW_BORDER_WIDTH;
-        vlist[i++] = border_width;
-     }
-   if (mask & XCB_CONFIG_WINDOW_SIBLING)
-     {
-        vmask |= XCB_CONFIG_WINDOW_SIBLING;
-        vlist[i++] = sibling;
-     }
-   if (mask & XCB_CONFIG_WINDOW_STACK_MODE)
-     {
-        vmask |= XCB_CONFIG_WINDOW_STACK_MODE;
-        vlist[i++] = stack_mode;
-     }
-
-   xcb_configure_window(_ecore_xcb_conn, win, vmask,
-                        (const uint32_t *)&vlist);
-//   ecore_x_flush();
-}
-
-/**
- * @defgroup Ecore_X_Window_Geometry_Group X Window Geometry Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that change or retrieve the geometry of X windows.
- */
-
-/**
- * Moves a window to the position @p x, @p y.
- *
- * The position is relative to the upper left hand corner of the
- * parent window.
- *
- * @param   win The window to move.
- * @param   x   X position.
- * @param   y   Y position.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_move(Ecore_X_Window win,
-                    int            x,
-                    int            y)
-{
-   uint32_t list[2], mask;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-
-   mask = (XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y);
-   list[0] = x;
-   list[1] = y;
-
-   xcb_configure_window(_ecore_xcb_conn, win, mask,
-                        (const uint32_t *)&list);
-//   ecore_x_flush();
-}
-
-/**
- * Resizes a window.
- * @param   win The window to resize.
- * @param   w   New width of the window.
- * @param   h   New height of the window.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_resize(Ecore_X_Window win,
-                      int            w,
-                      int            h)
-{
-   uint32_t list[2], mask;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-   if (w < 1) w = 1;
-   if (h < 1) h = 1;
-
-   mask = (XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT);
-   list[0] = w;
-   list[1] = h;
-
-   xcb_configure_window(_ecore_xcb_conn, win, mask,
-                        (const uint32_t *)&list);
-//   ecore_x_flush();
-}
-
-/**
- * Moves and resizes a window.
- * @param   win The window to move and resize.
- * @param   x   New X position of the window.
- * @param   y   New Y position of the window.
- * @param   w   New width of the window.
- * @param   h   New height of the window.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_move_resize(Ecore_X_Window win,
-                           int            x,
-                           int            y,
-                           int            w,
-                           int            h)
-{
-   uint32_t list[4], mask;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-   if (w < 1) w = 1;
-   if (h < 1) h = 1;
-
-   mask = (XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y |
-           XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT);
-   list[0] = x;
-   list[1] = y;
-   list[2] = w;
-   list[3] = h;
-
-   xcb_configure_window(_ecore_xcb_conn, win, mask,
-                        (const uint32_t *)&list);
-//   ecore_x_flush();
-}
-
-/**
- * Retrieves the width of the border of the given window.
- * @param   win The given window.
- * @return  Width of the border of @p win.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI int
-ecore_x_window_border_width_get(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!win) return 0;
-   return ecore_x_drawable_border_width_get(win);
-}
-
-/**
- * Sets the width of the border of the given window.
- * @param   win The given window.
- * @param   width The new border width.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_border_width_set(Ecore_X_Window win,
-                                int            border_width)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) return;
-
-   list = border_width;
-
-   xcb_configure_window(_ecore_xcb_conn, win,
-                        XCB_CONFIG_WINDOW_BORDER_WIDTH, &list);
-//   ecore_x_flush();
-}
-
-/**
- * @defgroup Ecore_X_Window_Z_Order_Group X Window Z Order Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that change the Z order of X windows.
- */
-
-/**
- * Raises the given window.
- * @param   win The window to raise.
- * @ingroup Ecore_X_Window_Z_Order_Group
- */
-EAPI void
-ecore_x_window_raise(Ecore_X_Window win)
-{
-   uint32_t list[] = { XCB_STACK_MODE_ABOVE };
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_configure_window(_ecore_xcb_conn, win,
-                        XCB_CONFIG_WINDOW_STACK_MODE, list);
-//   ecore_x_flush();
-}
-
-/**
- * Lowers the given window.
- * @param   win The window to lower.
- * @ingroup Ecore_X_Window_Z_Order_Group
- */
-EAPI void
-ecore_x_window_lower(Ecore_X_Window win)
-{
-   uint32_t list[] = { XCB_STACK_MODE_BELOW };
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_configure_window(_ecore_xcb_conn, win,
-                        XCB_CONFIG_WINDOW_STACK_MODE, list);
-//   ecore_x_flush();
-}
-
-/**
- * Retrieves the depth of the given window.
- * @param  win The given window.
- * @return Depth of the window.
- */
-EAPI int
-ecore_x_window_depth_get(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_drawable_depth_get(win);
-}
-
-/**
- * @defgroup Ecore_X_Window_Properties_Group X Window Property Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that set window properties.
- */
-
-/**
- * Sets the default properties for the given window.
- *
- * The default properties set for the window are @c WM_CLIENT_MACHINE and
- * @c _NET_WM_PID.
- *
- * @param   win The given window.
- * @ingroup Ecore_X_Window_Properties_Group
- */
-EAPI void
-ecore_x_window_defaults_set(Ecore_X_Window win)
-{
-   char buff[MAXHOSTNAMELEN], **argv;
-   int argc;
-   pid_t pid;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   gethostname(buff, MAXHOSTNAMELEN);
-   buff[MAXHOSTNAMELEN - 1] = '\0';
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                       ECORE_X_ATOM_WM_CLIENT_MACHINE, ECORE_X_ATOM_STRING,
-                       8, strlen(buff), buff);
-
-   pid = getpid();
-   ecore_x_netwm_pid_set(win, pid);
-   ecore_x_netwm_window_type_set(win, ECORE_X_WINDOW_TYPE_NORMAL);
-   ecore_app_args_get(&argc, &argv);
-   ecore_x_icccm_command_set(win, argc, argv);
-}
-
-/**
- * @defgroup Ecore_X_Window_Visibility_Group X Window Visibility Functions
- * @ingroup Ecore_X_Group
- *
- * Functions to access and change the visibility of X windows.
- */
-
-/**
- * Shows a window.
- *
- * Synonymous to "mapping" a window in X Window System terminology.
- *
- * @param   win The window to show.
- * @ingroup Ecore_X_Window_Visibility
- */
-EAPI void
-ecore_x_window_show(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (win)
-     xcb_map_window(_ecore_xcb_conn, win);
-}
-
-/**
- * Hides a window.
- *
- * Synonymous to "unmapping" a window in X Window System terminology.
- *
- * @param   win The window to hide.
- * @ingroup Ecore_X_Window_Visibility
- */
-EAPI void
-ecore_x_window_hide(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (win)
-     {
-        xcb_unmap_notify_event_t ev;
-        Ecore_X_Window root;
-
-        if (xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn)).rem == 1)
-          root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-        else
-          {
-             xcb_get_geometry_cookie_t cookie;
-             xcb_get_geometry_reply_t *reply;
-
-             cookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, win);
-             reply = xcb_get_geometry_reply(_ecore_xcb_conn, cookie, NULL);
-             if (!reply) return;
-             root = reply->root;
-             free(reply);
-          }
-
-        xcb_unmap_window(_ecore_xcb_conn, win);
-        memset(&ev, 0, sizeof(xcb_unmap_notify_event_t));
-
-        ev.response_type = XCB_UNMAP_NOTIFY;
-        ev.window = win;
-        ev.event = root;
-        ev.from_configure = 0;
-
-        xcb_send_event(_ecore_xcb_conn, 0, root,
-                       (XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |
-                        XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT),
-                       (const char *)&ev);
-
-//        ecore_x_flush();
-     }
-}
-
-/**
- * @defgroup Ecore_X_Window_Focus_Functions X Window Focus Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that give the focus to an X Window.
- */
-
-/**
- * Sets the focus to the window @p win.
- * @param   win The window to focus.
- * @ingroup Ecore_X_Window_Focus_Functions
- */
-EAPI void
-ecore_x_window_focus(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   xcb_set_input_focus(_ecore_xcb_conn,
-                       XCB_INPUT_FOCUS_PARENT, win, XCB_CURRENT_TIME);
-//   ecore_x_flush();
-}
-
-/**
- * Sets the focus to the given window at a specific time.
- * @param   win The window to focus.
- * @param   t   When to set the focus to the window.
- * @ingroup Ecore_X_Window_Focus_Functions
- */
-EAPI void
-ecore_x_window_focus_at_time(Ecore_X_Window win,
-                             Ecore_X_Time   time EINA_UNUSED)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   xcb_set_input_focus(_ecore_xcb_conn, 
-                       XCB_INPUT_FOCUS_PARENT, win, XCB_CURRENT_TIME);
-//   ecore_x_flush();
-}
-
-/**
- * @defgroup Ecore_X_Window_Parent_Group X Window Parent Functions
- * @ingroup Ecore_X_Group
- *
- * Functions that retrieve or changes the parent window of a window.
- */
-
-/**
- * Moves a window to within another window at a given position.
- * @param   win        The window to reparent.
- * @param   new_parent The new parent window.
- * @param   x          X position within new parent window.
- * @param   y          Y position within new parent window.
- * @ingroup Ecore_X_Window_Parent_Group
- */
-EAPI void
-ecore_x_window_reparent(Ecore_X_Window win,
-                        Ecore_X_Window parent,
-                        int            x,
-                        int            y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (parent == 0)
-     parent = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   xcb_reparent_window(_ecore_xcb_conn, win, parent, x, y);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_pixmap_set(Ecore_X_Window win,
-                          Ecore_X_Pixmap pixmap)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = pixmap;
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_BACK_PIXMAP, &list);
-//   ecore_x_flush();
-}
-
-/**
- * Sets the background color of the given window.
- * @param win   The given window
- * @param r     red value (0...65536, 16 bits)
- * @param g     green value (0...65536, 16 bits)
- * @param b     blue value (0...65536, 16 bits)
- */
-EAPI void
-ecore_x_window_background_color_set(Ecore_X_Window win,
-                                    unsigned short red,
-                                    unsigned short green,
-                                    unsigned short blue)
-{
-   xcb_alloc_color_cookie_t cookie;
-   xcb_alloc_color_reply_t *reply;
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie =
-     xcb_alloc_color_unchecked(_ecore_xcb_conn,
-                               ((xcb_screen_t *)_ecore_xcb_screen)->default_colormap,
-                               red, green, blue);
-   reply = xcb_alloc_color_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return;
-   list = reply->pixel;
-   free(reply);
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_BACK_PIXEL, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_pixel_gravity_set(Ecore_X_Window  win,
-                                 Ecore_X_Gravity gravity)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = gravity;
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_BIT_GRAVITY, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_gravity_set(Ecore_X_Window  win,
-                           Ecore_X_Gravity gravity)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = gravity;
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_WIN_GRAVITY, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_override_set(Ecore_X_Window win,
-                            Eina_Bool      override)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = override;
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_OVERRIDE_REDIRECT, &list);
-//   ecore_x_flush();
-}
-
-/**
- * @brief Show the cursor on a window of type Ecore_X_Window.
- * @param win The window for which the cursor will be showed.
- * @param show Enables the show of the cursor on the window if equals EINA_TRUE, disables if equals EINA_FALSE.
- */
-EAPI void
-ecore_x_window_cursor_show(Ecore_X_Window win,
-                           Eina_Bool      show)
-{
-   uint32_t list = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (!show)
-     {
-        Ecore_X_Cursor cursor;
-        Ecore_X_Pixmap p, m;
-        Ecore_X_GC gc;
-        xcb_point_t point;
-
-        p = xcb_generate_id(_ecore_xcb_conn);
-        xcb_create_pixmap(_ecore_xcb_conn, 1, p, win, 1, 1);
-        m = xcb_generate_id(_ecore_xcb_conn);
-        xcb_create_pixmap(_ecore_xcb_conn, 1, m, win, 1, 1);
-        gc = xcb_generate_id(_ecore_xcb_conn);
-        xcb_create_gc(_ecore_xcb_conn, gc, win, 0, NULL);
-        xcb_change_gc(_ecore_xcb_conn, gc, XCB_GC_FOREGROUND, &list);
-        point.x = 0;
-        point.y = 0;
-        xcb_poly_point(_ecore_xcb_conn, XCB_COORD_MODE_ORIGIN,
-                       win, gc, 1, &point);
-        xcb_free_gc(_ecore_xcb_conn, gc);
-
-        cursor = xcb_generate_id(_ecore_xcb_conn);
-        xcb_create_cursor(_ecore_xcb_conn, cursor,
-                          p, m, 0, 0, 0, 0, 0, 0, 0, 0);
-        list = cursor;
-
-        xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                     XCB_CW_CURSOR, &list);
-
-        xcb_free_cursor(_ecore_xcb_conn, cursor);
-        xcb_free_pixmap(_ecore_xcb_conn, m);
-        xcb_free_pixmap(_ecore_xcb_conn, p);
-     }
-   else
-     {
-        xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                     XCB_CW_CURSOR, &list);
-     }
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_cursor_set(Ecore_X_Window win,
-                          Ecore_X_Cursor cursor)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = cursor;
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win, XCB_CW_CURSOR, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_container_manage(Ecore_X_Window win)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-           XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY);
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_EVENT_MASK, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_client_manage(Ecore_X_Window win)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = (XCB_EVENT_MASK_VISIBILITY_CHANGE |
-           XCB_EVENT_MASK_FOCUS_CHANGE |
-           XCB_EVENT_MASK_PROPERTY_CHANGE |
-           XCB_EVENT_MASK_COLOR_MAP_CHANGE |
-           XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-           XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY);
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_EVENT_MASK, &list);
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_select_input(_ecore_xcb_conn, win, EINA_TRUE);
-#endif
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_sniff(Ecore_X_Window win)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = (XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |
-           XCB_EVENT_MASK_PROPERTY_CHANGE);
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_EVENT_MASK, &list);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_client_sniff(Ecore_X_Window win)
-{
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   list = (XCB_EVENT_MASK_VISIBILITY_CHANGE |
-           XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-           XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |
-           XCB_EVENT_MASK_FOCUS_CHANGE |
-           XCB_EVENT_MASK_PROPERTY_CHANGE |
-           XCB_EVENT_MASK_COLOR_MAP_CHANGE);
-
-   xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                XCB_CW_EVENT_MASK, &list);
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_select_input(_ecore_xcb_conn, win, EINA_TRUE);
-#endif
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_area_clear(Ecore_X_Window win,
-                          int            x,
-                          int            y,
-                          int            w,
-                          int            h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_clear_area(_ecore_xcb_conn, 0, win, x, y, w, h);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_area_expose(Ecore_X_Window win,
-                           int            x,
-                           int            y,
-                           int            w,
-                           int            h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_clear_area(_ecore_xcb_conn, 1, win, x, y, w, h);
-//   ecore_x_flush();
-}
-
-EAPI void
-ecore_x_window_save_set_add(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_change_save_set(_ecore_xcb_conn, XCB_SET_MODE_INSERT, win);
-}
-
-EAPI void
-ecore_x_window_save_set_del(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_change_save_set(_ecore_xcb_conn, XCB_SET_MODE_DELETE, win);
-}
-
-/**
- * gets the window that has focus.
- * @return  The window that has focus.
- * @ingroup Ecore_X_Window_Focus_Functions
- */
-EAPI Ecore_X_Window
-ecore_x_window_focus_get(void)
-{
-   xcb_get_input_focus_cookie_t cookie;
-   xcb_get_input_focus_reply_t *reply;
-   Ecore_X_Window focus = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_input_focus_unchecked(_ecore_xcb_conn);
-   reply = xcb_get_input_focus_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   focus = reply->focus;
-   free(reply);
-   return focus;
-}
-
-EAPI int
-ecore_x_window_argb_get(Ecore_X_Window win)
-{
-   uint8_t ret = 0;
-#ifdef ECORE_XCB_RENDER
-   Ecore_X_Visual visual;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-//   if (!win) return ret;
-
-#ifdef ECORE_XCB_RENDER
-   /* grab the window's visual */
-   visual = _ecore_xcb_window_visual_get(win);
-
-   /* check if this visual supports alpha */
-   ret = _ecore_xcb_render_visual_supports_alpha(visual);
-#endif
-
-   return ret;
-}
-
-EAPI Eina_Bool
-ecore_x_window_manage(Ecore_X_Window win)
-{
-   xcb_get_window_attributes_cookie_t cookie;
-   xcb_get_window_attributes_reply_t *reply;
-   xcb_void_cookie_t change_cookie;
-   xcb_generic_error_t *err;
-   uint32_t list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_window_attributes(_ecore_xcb_conn, win);
-   reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   ecore_x_sync(); // needed
-
-   list = (XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-           XCB_EVENT_MASK_PROPERTY_CHANGE | XCB_EVENT_MASK_RESIZE_REDIRECT |
-           XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
-           XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |
-           XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-           XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE |
-           reply->your_event_mask);
-   free(reply);
-
-   change_cookie = xcb_change_window_attributes(_ecore_xcb_conn, win,
-                                                XCB_CW_EVENT_MASK, &list);
-
-   ecore_x_sync(); // needed
-
-   err = xcb_request_check(_ecore_xcb_conn, change_cookie);
-   if (err)
-     {
-        _ecore_xcb_error_handle(err);
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-}
-
-EAPI Eina_Bool
-ecore_x_window_attributes_get(Ecore_X_Window             win,
-                              Ecore_X_Window_Attributes *att_ret)
-{
-   xcb_get_window_attributes_cookie_t cookie;
-   xcb_get_window_attributes_reply_t *reply;
-   xcb_get_geometry_cookie_t gcookie;
-   xcb_get_geometry_reply_t *greply;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   memset(att_ret, 0, sizeof(Ecore_X_Window_Attributes));
-
-   if (reply->map_state != XCB_MAP_STATE_UNMAPPED)
-     att_ret->visible = EINA_TRUE;
-
-   if (reply->map_state == XCB_MAP_STATE_VIEWABLE)
-     att_ret->viewable = EINA_TRUE;
-
-   if (reply->override_redirect)
-     att_ret->override = EINA_TRUE;
-
-   if (reply->_class == XCB_WINDOW_CLASS_INPUT_ONLY)
-     att_ret->input_only = EINA_TRUE;
-
-   if (reply->save_under)
-     att_ret->save_under = EINA_TRUE;
-
-   att_ret->event_mask.mine = reply->your_event_mask;
-   att_ret->event_mask.all = reply->all_event_masks;
-   att_ret->event_mask.no_propagate = reply->do_not_propagate_mask;
-   att_ret->window_gravity = reply->win_gravity;
-   att_ret->pixel_gravity = reply->bit_gravity;
-   att_ret->colormap = reply->colormap;
-   att_ret->visual = _ecore_xcb_window_find_visual_by_id(reply->visual);
-
-   free(reply);
-
-   gcookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, win);
-   greply = xcb_get_geometry_reply(_ecore_xcb_conn, gcookie, NULL);
-   if (!greply) return EINA_TRUE;
-
-   /* xcb_translate_coordinates_reply_t *trans; */
-   /* xcb_query_tree_cookie_t tcookie; */
-   /* xcb_query_tree_reply_t *treply; */
-
-   /* tcookie = xcb_query_tree(_ecore_xcb_conn, win); */
-   /* treply = xcb_query_tree_reply(_ecore_xcb_conn, tcookie, NULL); */
-
-   /* trans =  */
-   /*   xcb_translate_coordinates_reply(_ecore_xcb_conn,  */
-   /*                                   xcb_translate_coordinates(_ecore_xcb_conn,  */
-   /*                                                             win, treply->parent, greply->x, greply->y), NULL); */
-   /* free(treply); */
-
-   att_ret->root = greply->root;
-   att_ret->depth = greply->depth;
-//   att_ret->x = trans->dst_x;
-//   att_ret->y = trans->dst_y;
-   att_ret->x = greply->x;
-   att_ret->y = greply->y;
-   att_ret->w = greply->width;
-   att_ret->h = greply->height;
-   att_ret->border = greply->border_width;
-
-//   free(trans);
-
-   free(greply);
-   return EINA_TRUE;
-}
-
-/**
- * Retrieves the size of the given window.
- * @param   win The given window.
- * @param   w   Pointer to an integer into which the width is to be stored.
- * @param   h   Pointer to an integer into which the height is to be stored.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_size_get(Ecore_X_Window win,
-                        int           *width,
-                        int           *height)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   ecore_x_drawable_geometry_get(win, NULL, NULL, width, height);
-}
-
-/**
- * Set if a window should be ignored.
- * @param   win The given window.
- * @param   ignore if to ignore
- */
-EAPI void
-ecore_x_window_ignore_set(Ecore_X_Window win,
-                          int            ignore)
-{
-   int i = 0, j = 0, count = 0;
-   Ecore_X_Window *temp = ignore_list;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (ignore)
-     {
-        if (ignore_list)
-          {
-             for (i = 0; i < ignore_num; i++)
-               if (win == ignore_list[i]) return;
-
-             ignore_list =
-               realloc(ignore_list, (ignore_num + 1) * sizeof(Ecore_X_Window));
-             if (!ignore_list)
-               {
-                  ignore_list = temp;
-                  return;
-               }
-
-             ignore_list[ignore_num++] = win;
-          }
-        else
-          {
-             ignore_num = 0;
-             ignore_list = malloc(sizeof(Ecore_X_Window));
-             if (!ignore_list) return;
-             ignore_list[ignore_num++] = win;
-          }
-     }
-   else
-     {
-        if (!ignore_list) return;
-        for (count = ignore_num, i = 0, j = 0; i < count; i++)
-          {
-             if (win != ignore_list[i])
-               ignore_list[j++] = ignore_list[i];
-             else
-               ignore_num--;
-          }
-        if (ignore_num <= 0)
-          {
-             free(ignore_list);
-             ignore_list = NULL;
-             return;
-          }
-
-        ignore_list =
-          realloc(ignore_list, ignore_num * sizeof(Ecore_X_Window));
-        if (!ignore_list)
-           ignore_list = temp;
-     }
-}
-
-/**
- * Get the ignore list
- * @param   num number of windows in the list
- * @return  list of windows to ignore
- */
-EAPI Ecore_X_Window *
-ecore_x_window_ignore_list(int *num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (num) *num = ignore_num;
-   return ignore_list;
-}
-
-/**
- * Get a list of all the root windows on the server.
- *
- * @note   The returned array will need to be freed after use.
- * @param  num_ret Pointer to integer to put number of windows returned in.
- * @return An array of all the root windows.  @c NULL is returned if memory
- *         could not be allocated for the list, or if @p num_ret is @c NULL.
- */
-EAPI Ecore_X_Window *
-ecore_x_window_root_list(int *num_ret)
-{
-   xcb_screen_iterator_t iter;
-   uint8_t i, num;
-   Ecore_X_Window *roots = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!num_ret) return NULL;
-   if (num_ret) *num_ret = 0;
-
-   /* if (xcb_connection_has_error(_ecore_xcb_conn))  */
-   /*   { */
-   /*      DBG("XCB Connection Has Error !!!"); */
-   /*      return NULL; */
-   /*   } */
-
-   num = ecore_x_screen_count_get();
-
-   iter = xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn));
-   if (!(roots = malloc(num * sizeof(Ecore_X_Window)))) return NULL;
-   if (num_ret) *num_ret = num;
-   for (i = 0; iter.rem; xcb_screen_next(&iter), i++)
-     roots[i] = iter.data->root;
-
-   return roots;
-}
-
-EAPI Ecore_X_Window *
-ecore_x_window_children_get(Ecore_X_Window win,
-                            int           *num)
-{
-   xcb_query_tree_cookie_t cookie;
-   xcb_query_tree_reply_t *reply;
-   Ecore_X_Window *windows = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num) *num = 0;
-   cookie = xcb_query_tree_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_query_tree_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-
-   if (num) *num = reply->children_len;
-   if (reply->children_len > 0)
-     {
-        windows = malloc(sizeof(Ecore_X_Window) * reply->children_len);
-        if (windows)
-          {
-             unsigned int i = 0;
-             xcb_window_t *w;
-
-             w = xcb_query_tree_children(reply);
-             for (i = 0; i < reply->children_len; i++)
-               windows[i] = w[i];
-          }
-     }
-
-   free(reply);
-   return windows;
-}
-
-/**
- * Retrieves the root window a given window is on.
- * @param   win The window to get the root window of
- * @return  The root window of @p win
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_root_get(Ecore_X_Window win)
-{
-   xcb_get_geometry_cookie_t gcookie;
-   xcb_get_geometry_reply_t *greply;
-   Ecore_X_Window window = 0;
-
-   /* LOGFN(__FILE__, __LINE__, __FUNCTION__); */
-   CHECK_XCB_CONN;
-
-   gcookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, win);
-   greply = xcb_get_geometry_reply(_ecore_xcb_conn, gcookie, NULL);
-   if (!greply) return 0;
-   window = greply->root;
-   free(greply);
-
-   return window;
-}
-
-EAPI Ecore_X_Window
-ecore_x_window_root_first_get(void)
-{
-   return ((xcb_screen_t *)_ecore_xcb_screen)->root;
-}
-
-/**
- * Retrieves the geometry of the given window.
- *
- * Note that the x & y coordingates are relative to your parent.  In
- * particular for reparenting window managers - relative to you window border.
- * If you want screen coordinates either walk the window tree to the root,
- * else for ecore_evas applications see ecore_evas_geometry_get().  Elementary
- * applications can use elm_win_screen_position_get().
- *
- * @param   win The given window.
- * @param   x   Pointer to an integer in which the X position is to be stored.
- * @param   y   Pointer to an integer in which the Y position is to be stored.
- * @param   w   Pointer to an integer in which the width is to be stored.
- * @param   h   Pointer to an integer in which the height is to be stored.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_geometry_get(Ecore_X_Window win,
-                            int           *x,
-                            int           *y,
-                            int           *w,
-                            int           *h)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-   ecore_x_drawable_geometry_get(win, x, y, w, h);
-}
-
-/**
- * Retrieves the top, visible window at the given location.
- * @param   x The given X position.
- * @param   y The given Y position.
- * @return  The window at that position.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_at_xy_get(int x,
-                         int y)
-{
-   Ecore_X_Window root, win = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   ecore_x_grab();
-   win = _ecore_xcb_window_at_xy_get(root, 0, 0, x, y, NULL, 0);
-   ecore_x_ungrab();
-
-   return win ? win : root;
-}
-
-/**
- * Retrieves the top, visible window at the given location,
- * but skips the windows in the list.
- * @param   x The given X position.
- * @param   y The given Y position.
- * @param   skip The list of windows to be skipped.
- * @param   skip_num The number of windows to be skipped.
- * @return  The window at that position.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_at_xy_with_skip_get(int             x,
-                                   int             y,
-                                   Ecore_X_Window *skip,
-                                   int             skip_num)
-{
-   Ecore_X_Window root, win = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   ecore_x_grab();
-   win = _ecore_xcb_window_at_xy_get(root, 0, 0, x, y, skip, skip_num);
-   ecore_x_ungrab();
-
-   return win ? win : root;
-}
-
-EAPI Ecore_X_Window
-ecore_x_window_at_xy_begin_get(Ecore_X_Window begin,
-                               int            x,
-                               int            y)
-{
-   Ecore_X_Window win = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   ecore_x_grab();
-   win = _ecore_xcb_window_at_xy_get(begin, 0, 0, x, y, NULL, 0);
-   ecore_x_ungrab();
-
-   return win ? win : begin;
-}
-
-/**
- * Retrieves the parent window of the given window.
- * @param   win The given window.
- * @return  The parent window of @p win.
- * @ingroup Ecore_X_Window_Parent_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_parent_get(Ecore_X_Window win)
-{
-   xcb_query_tree_cookie_t cookie;
-   xcb_query_tree_reply_t *reply;
-   Ecore_X_Window window = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-//   if (!win) return 0;
-   cookie = xcb_query_tree(_ecore_xcb_conn, win);
-   reply = xcb_query_tree_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   window = reply->parent;
-   free(reply);
-
-   return window;
-}
-
-/**
- * Finds out whether the given window is currently visible.
- * @param   win The given window.
- * @return  1 if the window is visible, otherwise 0.
- * @ingroup Ecore_X_Window_Visibility_Group
- */
-EAPI int
-ecore_x_window_visible_get(Ecore_X_Window win)
-{
-   xcb_get_window_attributes_cookie_t cookie;
-   xcb_get_window_attributes_reply_t *reply;
-   int ret = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   if (reply->map_state == XCB_MAP_STATE_VIEWABLE)
-     ret = EINA_TRUE;
-
-   free(reply);
-   return ret;
-}
-
-EAPI void
-ecore_x_window_button_grab(Ecore_X_Window     win,
-                           int                button,
-                           Ecore_X_Event_Mask mask,
-                           int                mod,
-                           int                any_mod)
-{
-   int i = 0;
-   uint16_t m, locks[8], ev;
-   uint8_t b;
-   Ecore_X_Window *t;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   b = button;
-   if (b == 0)
-     b = XCB_BUTTON_INDEX_ANY;
-
-   m = _ecore_xcb_window_modifiers_get(mod);
-   if (any_mod) m = XCB_MOD_MASK_ANY;
-
-   locks[0] = 0;
-   locks[1] = ECORE_X_LOCK_CAPS;
-   locks[2] = ECORE_X_LOCK_NUM;
-   locks[3] = ECORE_X_LOCK_SCROLL;
-   locks[4] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM;
-   locks[5] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_SCROLL;
-   locks[6] = ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-   locks[7] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-
-   ev = mask;
-   for (i = 0; i < 8; i++)
-     xcb_grab_button(_ecore_xcb_conn, 0, win, ev,
-                     XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC,
-                     XCB_NONE, XCB_NONE, b, m | locks[i]);
-
-   _ecore_xcb_button_grabs_num++;
-   t = realloc(_ecore_xcb_button_grabs,
-               _ecore_xcb_button_grabs_num * sizeof(Ecore_X_Window));
-   if (!t) return;
-
-   _ecore_xcb_button_grabs = t;
-   _ecore_xcb_button_grabs[_ecore_xcb_button_grabs_num - 1] = win;
-}
-
-EAPI void
-ecore_x_window_button_ungrab(Ecore_X_Window win,
-                             int            button,
-                             int            mod,
-                             int            any_mod)
-{
-   int i = 0;
-   uint16_t m = 0, locks[8];
-   uint8_t b;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   b = button;
-   if (b == 0) b = XCB_BUTTON_INDEX_ANY;
-
-   m = _ecore_xcb_window_modifiers_get(mod);
-   if (any_mod) m = XCB_MOD_MASK_ANY;
-
-   locks[0] = 0;
-   locks[1] = ECORE_X_LOCK_CAPS;
-   locks[2] = ECORE_X_LOCK_NUM;
-   locks[3] = ECORE_X_LOCK_SCROLL;
-   locks[4] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM;
-   locks[5] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_SCROLL;
-   locks[6] = ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-   locks[7] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-
-   for (i = 0; i < 8; i++)
-     xcb_ungrab_button(_ecore_xcb_conn, b, win, m | locks[i]);
-
-   _ecore_xcb_sync_magic_send(1, win);
-}
-
-EAPI void
-ecore_x_window_key_grab(Ecore_X_Window win,
-                        const char    *key,
-                        int            mod,
-                        int            any_mod)
-{
-   xcb_keycode_t keycode = XCB_NO_SYMBOL;
-   uint16_t m = 0, locks[8];
-   int i = 0;
-   Ecore_X_Window *t;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   if (keycode == XCB_NO_SYMBOL) return;
-
-   m = _ecore_xcb_window_modifiers_get(mod);
-   if (any_mod) m = XCB_MOD_MASK_ANY;
-
-   locks[0] = 0;
-   locks[1] = ECORE_X_LOCK_CAPS;
-   locks[2] = ECORE_X_LOCK_NUM;
-   locks[3] = ECORE_X_LOCK_SCROLL;
-   locks[4] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM;
-   locks[5] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_SCROLL;
-   locks[6] = ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-   locks[7] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-
-   for (i = 0; i < 8; i++)
-     xcb_grab_key(_ecore_xcb_conn, 0, win, m | locks[i],
-                  keycode, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
-   _ecore_xcb_key_grabs_num++;
-   t = realloc(_ecore_xcb_key_grabs,
-               _ecore_xcb_key_grabs_num * sizeof(Ecore_X_Window));
-   if (!t) return;
-   _ecore_xcb_key_grabs = t;
-   _ecore_xcb_key_grabs[_ecore_xcb_key_grabs_num - 1] = win;
-}
-
-EAPI void
-ecore_x_window_key_ungrab(Ecore_X_Window win,
-                          const char    *key,
-                          int            mod,
-                          int            any_mod)
-{
-   xcb_keycode_t keycode = XCB_NO_SYMBOL;
-   uint16_t m = 0, locks[8];
-   int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   if (keycode == XCB_NO_SYMBOL) return;
-
-   m = _ecore_xcb_window_modifiers_get(mod);
-   if (any_mod) m = XCB_MOD_MASK_ANY;
-
-   locks[0] = 0;
-   locks[1] = ECORE_X_LOCK_CAPS;
-   locks[2] = ECORE_X_LOCK_NUM;
-   locks[3] = ECORE_X_LOCK_SCROLL;
-   locks[4] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM;
-   locks[5] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_SCROLL;
-   locks[6] = ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-   locks[7] = ECORE_X_LOCK_CAPS | ECORE_X_LOCK_NUM | ECORE_X_LOCK_SCROLL;
-
-   for (i = 0; i < 8; i++)
-     xcb_ungrab_key(_ecore_xcb_conn, keycode, win, m | locks[i]);
-
-   _ecore_xcb_sync_magic_send(2, win);
-}
-
-/* local functions */
-Ecore_X_Window
-_ecore_xcb_window_root_of_screen_get(int screen)
-{
-   xcb_screen_iterator_t iter;
-
-   CHECK_XCB_CONN;
-   iter = xcb_setup_roots_iterator(xcb_get_setup(_ecore_xcb_conn));
-   for (; iter.rem; --screen, xcb_screen_next(&iter))
-     if (screen == 0)
-       {
-          xcb_screen_t *s;
-
-          if ((s = iter.data))
-            return s->root;
-       }
-   return 0;
-}
-
-static Ecore_X_Window
-_ecore_xcb_window_argb_internal_new(Ecore_X_Window parent,
-                                    int            x,
-                                    int            y,
-                                    int            w,
-                                    int            h,
-                                    uint8_t        override_redirect,
-                                    uint8_t        save_under)
-{
-   Ecore_X_Window win = 0;
-#ifdef ECORE_XCB_RENDER
-   uint32_t value_list[10];
-   uint32_t value_mask;
-   uint32_t vis;
-   Ecore_X_Colormap colormap;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_RENDER
-   if (parent == 0)
-     parent = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   vis =
-     _ecore_xcb_render_find_visual_id(XCB_RENDER_PICT_TYPE_DIRECT, EINA_TRUE);
-
-   colormap = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_colormap(_ecore_xcb_conn, XCB_COLORMAP_ALLOC_NONE,
-                       colormap, parent, vis);
-
-   value_mask = (XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL | XCB_CW_BIT_GRAVITY |
-                 XCB_CW_WIN_GRAVITY | XCB_CW_BACKING_STORE |
-                 XCB_CW_OVERRIDE_REDIRECT | XCB_CW_SAVE_UNDER |
-                 XCB_CW_EVENT_MASK | XCB_CW_DONT_PROPAGATE | XCB_CW_COLORMAP);
-
-   value_list[0] = XCB_BACK_PIXMAP_NONE;
-   value_list[1] = 0;
-   value_list[2] = XCB_GRAVITY_NORTH_WEST;
-   value_list[3] = XCB_GRAVITY_NORTH_WEST;
-   value_list[4] = XCB_BACKING_STORE_NOT_USEFUL;
-   value_list[5] = override_redirect;
-   value_list[6] = save_under;
-   value_list[7] = (XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE |
-                    XCB_EVENT_MASK_BUTTON_PRESS |
-                    XCB_EVENT_MASK_BUTTON_RELEASE |
-                    XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW |
-                    XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_EXPOSURE |
-                    XCB_EVENT_MASK_VISIBILITY_CHANGE |
-                    XCB_EVENT_MASK_STRUCTURE_NOTIFY |
-                    XCB_EVENT_MASK_FOCUS_CHANGE |
-                    XCB_EVENT_MASK_PROPERTY_CHANGE |
-                    XCB_EVENT_MASK_COLOR_MAP_CHANGE);
-   value_list[8] = XCB_EVENT_MASK_NO_EVENT;
-   value_list[9] = colormap;
-
-   win = xcb_generate_id(_ecore_xcb_conn);
-   xcb_create_window(_ecore_xcb_conn, 32, win, parent, x, y, w, h, 0,
-                     XCB_WINDOW_CLASS_INPUT_OUTPUT, vis, value_mask,
-                     value_list);
-
-   xcb_free_colormap(_ecore_xcb_conn, colormap);
-
-   if (parent == ((xcb_screen_t *)_ecore_xcb_screen)->root)
-     ecore_x_window_defaults_set(win);
-#endif
-
-   return win;
-}
-
-static Ecore_X_Window
-_ecore_xcb_window_at_xy_get(Ecore_X_Window  base,
-                            int             bx,
-                            int             by,
-                            int             x,
-                            int             y,
-                            Ecore_X_Window *skip,
-                            int             skip_num)
-{
-   xcb_query_tree_cookie_t cookie;
-   xcb_query_tree_reply_t *reply;
-   Ecore_X_Window *windows = NULL;
-   int wx, wy, ww, wh, num, i = 0;
-   Eina_Bool skipit = EINA_FALSE;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!ecore_x_window_visible_get(base)) return 0;
-
-   ecore_x_window_geometry_get(base, &wx, &wy, &ww, &wh);
-   wx += bx;
-   wy += by;
-
-   if (!((x >= wx) && (y >= wy) && (x < (wx + ww)) && (y < (wy + wh))))
-     return 0;
-
-   cookie = xcb_query_tree_unchecked(_ecore_xcb_conn, base);
-   reply = xcb_query_tree_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-
-   num = reply->children_len;
-   windows = xcb_query_tree_children(reply);
-
-   for (i = (num - 1); i >= 0; --i)
-     {
-        skipit = EINA_FALSE;
-
-        if (skip)
-          {
-             int j = 0;
-
-             for (j = 0; j < skip_num; j++)
-               {
-                  if (windows[i] == skip[j])
-                    {
-                       skipit = EINA_TRUE;
-                       goto onward;
-                    }
-               }
-          }
-onward:
-        if (!skipit)
-          {
-             Ecore_X_Window child = 0;
-
-             child =
-               _ecore_xcb_window_at_xy_get(windows[i],
-                                           wx, wy, x, y, skip, skip_num);
-             if (child)
-               {
-                  if (reply) free(reply);
-                  return child;
-               }
-          }
-     }
-
-   if (reply) free(reply);
-   return base;
-}
-
-Ecore_X_Visual
-_ecore_xcb_window_visual_get(Ecore_X_Window win)
-{
-   xcb_get_window_attributes_cookie_t cookie;
-   xcb_get_window_attributes_reply_t *reply;
-   Ecore_X_Visual visual = 0;
-
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_window_attributes(_ecore_xcb_conn, win);
-   reply = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   visual = _ecore_xcb_window_find_visual_by_id(reply->visual);
-   free(reply);
-
-   return visual;
-}
-
-void
-_ecore_xcb_window_button_grab_remove(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (_ecore_xcb_button_grabs_num > 0)
-     {
-        int i = 0, shuffle = 0;
-
-        for (i = 0; i < _ecore_xcb_button_grabs_num; i++)
-          {
-             if (shuffle)
-               _ecore_xcb_button_grabs[i - 1] = _ecore_xcb_button_grabs[i];
-
-             if ((!shuffle) && (_ecore_xcb_button_grabs[i] == win))
-               shuffle = 1;
-          }
-
-        if (shuffle)
-          {
-             Ecore_X_Window *t;
-
-             _ecore_xcb_button_grabs_num--;
-             if (_ecore_xcb_button_grabs_num <= 0)
-               {
-                  free(_ecore_xcb_button_grabs);
-                  _ecore_xcb_button_grabs = NULL;
-                  return;
-               }
-
-             t = realloc(_ecore_xcb_button_grabs,
-                         _ecore_xcb_button_grabs_num * sizeof(Ecore_X_Window));
-             if (!t) return;
-             _ecore_xcb_button_grabs = t;
-          }
-     }
-}
-
-void
-_ecore_xcb_window_key_grab_remove(Ecore_X_Window win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (_ecore_xcb_key_grabs_num > 0)
-     {
-        int i = 0, shuffle = 0;
-
-        for (i = 0; i < _ecore_xcb_key_grabs_num; i++)
-          {
-             if (shuffle)
-               _ecore_xcb_key_grabs[i - 1] = _ecore_xcb_key_grabs[i];
-
-             if ((!shuffle) && (_ecore_xcb_key_grabs[i] == win))
-               shuffle = 1;
-          }
-
-        if (shuffle)
-          {
-             Ecore_X_Window *t;
-
-             _ecore_xcb_key_grabs_num--;
-             if (_ecore_xcb_key_grabs_num <= 0)
-               {
-                  free(_ecore_xcb_key_grabs);
-                  _ecore_xcb_key_grabs = NULL;
-                  return;
-               }
-
-             t = realloc(_ecore_xcb_key_grabs,
-                         _ecore_xcb_key_grabs_num * sizeof(Ecore_X_Window));
-             if (!t) return;
-             _ecore_xcb_key_grabs = t;
-          }
-     }
-}
-
-void
-_ecore_xcb_window_grab_allow_events(Ecore_X_Window event_win,
-                                    Ecore_X_Window child_win,
-                                    int            type,
-                                    void          *event,
-                                    Ecore_X_Time   timestamp)
-{
-   int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   for (i = 0; i < _ecore_xcb_button_grabs_num; i++)
-     {
-        if ((_ecore_xcb_button_grabs[i] == event_win) ||
-            (_ecore_xcb_button_grabs[i] == child_win))
-          {
-             Eina_Bool replay = EINA_FALSE;
-
-             if (_ecore_xcb_window_grab_replay_func)
-               {
-                  replay =
-                    _ecore_xcb_window_grab_replay_func(_ecore_xcb_window_grab_replay_data,
-                                                       type, event);
-               }
-             if (replay)
-               {
-                  xcb_allow_events(_ecore_xcb_conn,
-                                   XCB_ALLOW_REPLAY_POINTER, timestamp);
-               }
-             else
-               {
-                  xcb_allow_events(_ecore_xcb_conn,
-                                   XCB_ALLOW_ASYNC_POINTER, timestamp);
-               }
-             break;
-          }
-     }
-}
-
-static int
-_ecore_xcb_window_modifiers_get(unsigned int state)
-{
-   int xmodifiers = 0;
-
-   if (state & ECORE_EVENT_MODIFIER_SHIFT)
-     xmodifiers |= ECORE_X_MODIFIER_SHIFT;
-   if (state & ECORE_EVENT_MODIFIER_CTRL)
-     xmodifiers |= ECORE_X_MODIFIER_CTRL;
-   if (state & ECORE_EVENT_MODIFIER_ALT)
-     xmodifiers |= ECORE_X_MODIFIER_ALT;
-   if (state & ECORE_EVENT_MODIFIER_WIN)
-     xmodifiers |= ECORE_X_MODIFIER_WIN;
-   if (state & ECORE_EVENT_MODIFIER_ALTGR)
-     xmodifiers |= ECORE_X_MODIFIER_ALTGR;
-   if (state & ECORE_EVENT_LOCK_SCROLL)
-     xmodifiers |= ECORE_X_LOCK_SCROLL;
-   if (state & ECORE_EVENT_LOCK_NUM)
-     xmodifiers |= ECORE_X_LOCK_NUM;
-   if (state & ECORE_EVENT_LOCK_CAPS)
-     xmodifiers |= ECORE_X_LOCK_CAPS;
-   if (state & ECORE_EVENT_LOCK_SHIFT)
-     xmodifiers |= ECORE_X_LOCK_SHIFT;
-
-   return xmodifiers;
-}
-
-static xcb_visualtype_t *
-_ecore_xcb_window_find_visual_by_id(xcb_visualid_t id)
-{
-   xcb_depth_iterator_t diter;
-   xcb_visualtype_iterator_t viter;
-
-   CHECK_XCB_CONN;
-   diter = xcb_screen_allowed_depths_iterator(_ecore_xcb_screen);
-   for (; diter.rem; xcb_depth_next(&diter))
-     {
-        viter = xcb_depth_visuals_iterator(diter.data);
-        for (; viter.rem; xcb_visualtype_next(&viter))
-          {
-             if (viter.data->visual_id == id)
-               return viter.data;
-          }
-     }
-   return 0;
-}
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_window_prop.c b/src/lib/ecore_x/xcb/ecore_xcb_window_prop.c
deleted file mode 100644 (file)
index d3a049b..0000000
+++ /dev/null
@@ -1,689 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <xcb/xcb_icccm.h>
-
-EAPI int
-ecore_x_window_prop_card32_get(Ecore_X_Window win,
-                               Ecore_X_Atom   atom,
-                               unsigned int  *val,
-                               unsigned int   len)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   int num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie = xcb_get_property_unchecked(_ecore_xcb_conn, 0, win, atom,
-                                       ECORE_X_ATOM_CARDINAL, 0, 0x7fffffff);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return -1;
-
-   if ((reply->type != ECORE_X_ATOM_CARDINAL) || (reply->format != 32))
-     num = -1;
-   else if (reply->value_len == 0)
-     num = 0;
-   else
-     {
-        if (reply->value_len < len)
-          len = reply->value_len;
-
-        if (val)
-          {
-             unsigned int i = 0;
-             unsigned char *v;
-
-             v = xcb_get_property_value(reply);
-             for (i = 0; i < len; i++)
-               val[i] = ((uint32_t *)v)[i];
-             num = len;
-          }
-     }
-
-   if (reply) free(reply);
-   return num;
-}
-
-EAPI void
-ecore_x_window_prop_card32_set(Ecore_X_Window win,
-                               Ecore_X_Atom   atom,
-                               unsigned int  *val,
-                               unsigned int   num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#if SIZEOF_INT == SIZEOF_LONG
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win, atom,
-                       ECORE_X_ATOM_CARDINAL, 32, num, (unsigned char *)val);
-//   ecore_x_flush();
-#else
-   long *v2;
-   unsigned int i;
-
-   v2 = malloc(num * sizeof(long));
-   if (!v2) return;
-   for (i = 0; i < num; i++)
-     v2[i] = val[i];
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win, atom,
-                       ECORE_X_ATOM_CARDINAL, 32, num, (unsigned char *)v2);
-   free(v2);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI int
-ecore_x_window_prop_card32_list_get(Ecore_X_Window win,
-                                    Ecore_X_Atom   atom,
-                                    unsigned int **list)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   int num = -1;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (list) *list = NULL;
-
-   cookie = xcb_get_property_unchecked(_ecore_xcb_conn, 0, win, atom,
-                                       XCB_ATOM_CARDINAL, 0, 0x7fffffff);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return -1;
-
-   if ((reply->type != XCB_ATOM_CARDINAL) || (reply->format != 32))
-     num = -1;
-   else if ((reply->value_len == 0) || (!xcb_get_property_value(reply)))
-     num = 0;
-   else
-     {
-        num = reply->value_len;
-        if (list)
-          {
-             unsigned int *val;
-             void *data;
-             int i = 0;
-
-             val = malloc(num * sizeof(unsigned int));
-             if (!val)
-               {
-                  free(reply);
-                  return -1;
-               }
-             data = xcb_get_property_value(reply);
-             for (i = 0; i < num; i++)
-               val[i] = ((uint32_t *)data)[i];
-             *list = val;
-          }
-     }
-
-   free(reply);
-   return num;
-}
-
-EAPI int
-ecore_x_window_prop_atom_get(Ecore_X_Window win,
-                             Ecore_X_Atom   atom,
-                             Ecore_X_Atom  *list,
-                             unsigned int   len)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_window_prop_xid_get(win, atom, ECORE_X_ATOM_ATOM, list, len);
-}
-
-EAPI void
-ecore_x_window_prop_atom_set(Ecore_X_Window win,
-                             Ecore_X_Atom   atom,
-                             Ecore_X_Atom  *list,
-                             unsigned int   num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   /* xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win, atom,  */
-   /*                     ECORE_X_ATOM_ATOM, 32, num, list); */
-   ecore_x_window_prop_xid_set(win, atom, ECORE_X_ATOM_ATOM, list, num);
-}
-
-EAPI void
-ecore_x_window_prop_xid_set(Ecore_X_Window win,
-                            Ecore_X_Atom   atom,
-                            Ecore_X_Atom   type,
-                            Ecore_X_ID    *xids,
-                            unsigned int   num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#if SIZEOF_INT == SIZEOF_LONG
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win, atom,
-                       type, 32, num, (unsigned char *)xids);
-//   ecore_x_flush();
-#else
-   long *v2;
-   unsigned int i;
-
-   v2 = malloc(num * sizeof(long));
-   if (!v2) return;
-   for (i = 0; i < num; i++)
-     v2[i] = xids[i];
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win, atom,
-                       type, 32, num, (unsigned char *)v2);
-   free(v2);
-//   ecore_x_flush();
-#endif
-}
-
-EAPI int
-ecore_x_window_prop_xid_get(Ecore_X_Window win,
-                            Ecore_X_Atom   atom,
-                            Ecore_X_Atom   type,
-                            Ecore_X_ID    *xids,
-                            unsigned int   len)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   int num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   num = len;
-   cookie = xcb_get_property_unchecked(_ecore_xcb_conn, 0, win, atom, type,
-                                       0, 0x7fffffff);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return -1;
-
-   if ((reply->type != type) || (reply->format != 32))
-     num = -1;
-   else if (reply->value_len == 0)
-     num = 0;
-   else
-     {
-        unsigned int i = 0;
-        unsigned char *v;
-
-        if (reply->value_len < len)
-          len = reply->value_len;
-
-        v = xcb_get_property_value(reply);
-        for (i = 0; i < len; i++)
-          xids[i] = ((uint32_t *)v)[i];
-
-        num = len;
-     }
-
-   if (reply) free(reply);
-   return num;
-}
-
-EAPI void
-ecore_x_window_prop_string_set(Ecore_X_Window win,
-                               Ecore_X_Atom   type,
-                               const char    *str)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win, type,
-                       ECORE_X_ATOM_UTF8_STRING, 8, strlen(str), str);
-//   ecore_x_flush();
-}
-
-EAPI char *
-ecore_x_window_prop_string_get(Ecore_X_Window win,
-                               Ecore_X_Atom   type)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   char *str = NULL;
-   int len = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   cookie =
-     xcb_get_property_unchecked(_ecore_xcb_conn, 0,
-                                win ? win : ((xcb_screen_t *)_ecore_xcb_screen)->root,
-                                type, XCB_GET_PROPERTY_TYPE_ANY, 0, 1000000L);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-
-   len = ((reply->value_len * reply->format) / 8);
-   str = (char *)malloc((len + 1) * sizeof(char));
-   memcpy(str, xcb_get_property_value(reply), len);
-   str[len] = '\0';
-
-   if (reply->type != ECORE_X_ATOM_UTF8_STRING)
-     {
-        Ecore_Xcb_Textproperty prop;
-        int count = 0;
-        char **list = NULL;
-        Eina_Bool ret = EINA_FALSE;
-
-        prop.value = strdup(str);
-        prop.nitems = len;
-        prop.encoding = reply->type;
-
-#ifdef HAVE_ICONV
-        ret = _ecore_xcb_utf8_textproperty_to_textlist(&prop, &list, &count);
-#else
-        ret = _ecore_xcb_mb_textproperty_to_textlist(&prop, &list, &count);
-#endif
-        if (ret)
-          {
-             if (count > 0)
-               str = strdup(list[0]);
-             else
-               str = strdup((char *)prop.value);
-
-             if (list) free(list);
-          }
-        else
-          str = strdup((char *)prop.value);
-     }
-
-   free(reply);
-   return str;
-}
-
-EAPI int
-ecore_x_window_prop_window_get(Ecore_X_Window  win,
-                               Ecore_X_Atom    atom,
-                               Ecore_X_Window *list,
-                               unsigned int    len)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_window_prop_xid_get(win, atom, ECORE_X_ATOM_WINDOW, list, len);
-}
-
-EAPI void
-ecore_x_window_prop_window_set(Ecore_X_Window  win,
-                               Ecore_X_Atom    atom,
-                               Ecore_X_Window *list,
-                               unsigned int    num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   ecore_x_window_prop_xid_set(win, atom, ECORE_X_ATOM_WINDOW, list, num);
-}
-
-EAPI int
-ecore_x_window_prop_window_list_get(Ecore_X_Window   win,
-                                    Ecore_X_Atom     atom,
-                                    Ecore_X_Window **plst)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_window_prop_xid_list_get(win, atom, ECORE_X_ATOM_WINDOW, plst);
-}
-
-EAPI Ecore_X_Atom
-ecore_x_window_prop_any_type(void)
-{
-   return XCB_ATOM_ANY;
-}
-
-EAPI void
-ecore_x_window_prop_property_del(Ecore_X_Window win,
-                                 Ecore_X_Atom   property)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   xcb_delete_property(_ecore_xcb_conn, win, property);
-}
-
-EAPI void
-ecore_x_window_prop_property_set(Ecore_X_Window win,
-                                 Ecore_X_Atom   property,
-                                 Ecore_X_Atom   type,
-                                 int            size,
-                                 void          *data,
-                                 int            num)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (win == 0)
-     win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   if (size != 32)
-     {
-        xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                            property, type, size, num, (unsigned char *)data);
-//        ecore_x_flush();
-     }
-   else
-     {
-        uint32_t *dat;
-        int i = 0, *ptr;
-
-        dat = malloc(sizeof(uint32_t) * num);
-        if (dat)
-          {
-             for (ptr = (int *)data, i = 0; i < num; i++)
-               dat[i] = ptr[i];
-             xcb_change_property(_ecore_xcb_conn, XCB_PROP_MODE_REPLACE, win,
-                                 property, type, size, num,
-                                 (unsigned char *)dat);
-             free(dat);
-//             ecore_x_flush();
-          }
-     }
-}
-
-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)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   int format = 0;
-   unsigned int i = 0;
-   void *value;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num) *num = 0;
-
-   if (data)
-     *data = NULL;
-   else
-     return 0;
-
-   if (win == 0)
-     win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   cookie =
-     xcb_get_property_unchecked(_ecore_xcb_conn, 0, win,
-                                property, type, 0, UINT_MAX);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   if ((reply->format != size) || (reply->value_len == 0))
-     {
-        free(reply);
-        return 0;
-     }
-
-   if (!(*data = malloc(reply->value_len * reply->format / 8)))
-     {
-        free(reply);
-        return 0;
-     }
-
-   value = xcb_get_property_value(reply);
-   switch (reply->format)
-     {
-      case 8:
-        for (i = 0; i < reply->value_len; i++)
-          (*data)[i] = ((unsigned char *)value)[i];
-        break;
-
-      case 16:
-        for (i = 0; i < reply->value_len; i++)
-          ((unsigned short *)*data)[i] = ((unsigned short *)value)[i];
-        break;
-
-      case 32:
-        for (i = 0; i < reply->value_len; i++)
-          ((unsigned int *)*data)[i] = ((uint32_t *)value)[i];
-        break;
-     }
-
-   if (num) *num = reply->value_len;
-   format = reply->format;
-   free(reply);
-   return format;
-}
-
-EAPI int
-ecore_x_window_prop_atom_list_get(Ecore_X_Window win,
-                                  Ecore_X_Atom   atom,
-                                  Ecore_X_Atom **list)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   return ecore_x_window_prop_xid_list_get(win, atom, ECORE_X_ATOM_ATOM, list);
-}
-
-EAPI void
-ecore_x_window_prop_atom_list_change(Ecore_X_Window win,
-                                     Ecore_X_Atom   atom,
-                                     Ecore_X_Atom   item,
-                                     int            op)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   ecore_x_window_prop_xid_list_change(win, atom, ECORE_X_ATOM_ATOM, item, op);
-}
-
-EAPI int
-ecore_x_window_prop_xid_list_get(Ecore_X_Window win,
-                                 Ecore_X_Atom   atom,
-                                 Ecore_X_Atom   type,
-                                 Ecore_X_ID   **xids)
-{
-   xcb_get_property_cookie_t cookie;
-   xcb_get_property_reply_t *reply;
-   int num = -1;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (xids) *xids = NULL;
-
-   cookie = xcb_get_property_unchecked(_ecore_xcb_conn, 0, win, atom, type,
-                                       0, 0x7fffffff);
-   reply = xcb_get_property_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return -1;
-
-   if ((reply->type != type) || (reply->format != 32))
-     num = -1;
-   else if ((reply->value_len == 0) || (!xcb_get_property_value(reply)))
-     num = 0;
-   else
-     {
-        Ecore_X_Atom *alst;
-        void *val;
-
-        num = xcb_get_property_value_length(reply);
-        val = xcb_get_property_value(reply);
-        alst = malloc(num * sizeof(Ecore_X_ID));
-        if (alst)
-          {
-             int i = 0;
-
-             for (i = 0; i < num; i++)
-               alst[i] = ((uint32_t *)val)[i];
-             *xids = alst;
-          }
-     }
-
-   free(reply);
-   return num;
-}
-
-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)
-{
-   Ecore_X_ID *lst, *temp;
-   int i = 0, num = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   num = ecore_x_window_prop_xid_list_get(win, atom, type, &lst);
-   if (num < 0) return;
-
-   for (i = 0; i < num; i++)
-     {
-        if (lst[i] == item) break;
-     }
-
-   if (i < num)
-     {
-        if (op == ECORE_X_PROP_LIST_ADD)
-          goto done;
-        num--;
-        for (; i < num; i++)
-          lst[i] = lst[i + 1];
-     }
-   else
-     {
-        if (op == ECORE_X_PROP_LIST_REMOVE)
-          goto done;
-        num++;
-        temp = lst;
-        lst = realloc(lst, num * sizeof(Ecore_X_ID));
-        if (lst)
-           lst[i] = item;
-        else
-           lst = temp;
-     }
-   ecore_x_window_prop_xid_set(win, atom, type, lst, num);
-
-done:
-   if (lst) free(lst);
-}
-
-EAPI Eina_Bool
-ecore_x_window_prop_protocol_isset(Ecore_X_Window      win,
-                                   Ecore_X_WM_Protocol protocol)
-{
-   Eina_Bool ret = EINA_FALSE;
-   Ecore_X_Atom proto;
-   xcb_icccm_get_wm_protocols_reply_t protos;
-   xcb_get_property_cookie_t cookie;
-   uint8_t reply;
-   uint32_t count = 0, i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (protocol >= ECORE_X_WM_PROTOCOL_NUM) return EINA_FALSE;
-
-   proto = _ecore_xcb_atoms_wm_protocol[protocol];
-   cookie = xcb_icccm_get_wm_protocols_unchecked(_ecore_xcb_conn, win,
-                                                 ECORE_X_ATOM_WM_PROTOCOLS);
-   reply = xcb_icccm_get_wm_protocols_reply(_ecore_xcb_conn, cookie,
-                                            &protos, NULL);
-   if (!reply) return EINA_FALSE;
-
-   count = protos.atoms_len;
-   for (i = 0; i < count; i++)
-     {
-        if (protos.atoms[i] == proto)
-          {
-             ret = EINA_TRUE;
-             break;
-          }
-     }
-
-   xcb_icccm_get_wm_protocols_reply_wipe(&protos);
-
-   return ret;
-}
-
-EAPI Ecore_X_WM_Protocol *
-ecore_x_window_prop_protocol_list_get(Ecore_X_Window win,
-                                      int           *num_ret)
-{
-   xcb_icccm_get_wm_protocols_reply_t protos;
-   xcb_get_property_cookie_t cookie;
-   uint8_t reply;
-   uint32_t count = 0, i = 0;
-   Ecore_X_WM_Protocol *prot_ret = NULL;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!num_ret) return NULL;
-
-   *num_ret = 0;
-
-   cookie = xcb_icccm_get_wm_protocols_unchecked(_ecore_xcb_conn, win,
-                                                 ECORE_X_ATOM_WM_PROTOCOLS);
-   reply = xcb_icccm_get_wm_protocols_reply(_ecore_xcb_conn, cookie,
-                                            &protos, NULL);
-   if (!reply) return NULL;
-
-   count = protos.atoms_len;
-   if (count <= 0)
-     {
-        xcb_icccm_get_wm_protocols_reply_wipe(&protos);
-        return NULL;
-     }
-
-   prot_ret = calloc(1, count * sizeof(Ecore_X_WM_Protocol));
-   if (!prot_ret)
-     {
-        xcb_icccm_get_wm_protocols_reply_wipe(&protos);
-        return NULL;
-     }
-
-   for (i = 0; i < count; i++)
-     {
-        Ecore_X_WM_Protocol j;
-
-        prot_ret[i] = -1;
-        for (j = 0; j < ECORE_X_WM_PROTOCOL_NUM; j++)
-          {
-             if (_ecore_xcb_atoms_wm_protocol[j] == protos.atoms[i])
-               prot_ret[i] = j;
-          }
-     }
-
-   if (num_ret) *num_ret = count;
-
-   xcb_icccm_get_wm_protocols_reply_wipe(&protos);
-   return prot_ret;
-}
-
-EAPI Ecore_X_Atom *
-ecore_x_window_prop_list(Ecore_X_Window win,
-                         int           *num)
-{
-   xcb_list_properties_cookie_t cookie;
-   xcb_list_properties_reply_t *reply;
-   xcb_atom_t *atm;
-   Ecore_X_Atom *atoms;
-   int i = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num) *num = 0;
-
-   cookie = xcb_list_properties_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_list_properties_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-
-   atoms = (Ecore_X_Atom *)malloc(reply->atoms_len * sizeof(Ecore_X_Atom));
-   if (!atoms)
-     {
-        free(reply);
-        return NULL;
-     }
-
-   atm = xcb_list_properties_atoms(reply);
-   for (i = 0; i < reply->atoms_len; i++)
-     atoms[i] = atm[i];
-
-   if (num) *num = reply->atoms_len;
-   free(reply);
-
-   return atoms;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_window_shadow.c b/src/lib/ecore_x/xcb/ecore_xcb_window_shadow.c
deleted file mode 100644 (file)
index d46e306..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-#include "ecore_xcb_private.h"
-
-typedef struct _Shadow Shadow;
-struct _Shadow
-{
-   Shadow        *parent, **children;
-   Ecore_X_Window win;
-   int            children_num;
-   short          x, y;
-   unsigned short w, h;
-};
-
-static Eina_Bool _inside_rects(Shadow            *s,
-                               int                x,
-                               int                y,
-                               int                bx,
-                               int                by,
-                               Ecore_X_Rectangle *rects,
-                               int                num);
-
-//static int shadow_count = 0;
-static Shadow **shadow_base = NULL;
-static int shadow_num = 0;
-
-/* FIXME: round trips */
-static Shadow *
-_ecore_x_window_tree_walk(Ecore_X_Window window)
-{
-   Shadow *s, **sl;
-   xcb_get_window_attributes_reply_t *reply_attr;
-   xcb_get_geometry_reply_t *reply_geom;
-   xcb_query_tree_reply_t *reply_tree;
-   xcb_get_window_attributes_cookie_t cookie_attr;
-   xcb_get_geometry_cookie_t cookie_geom;
-   xcb_query_tree_cookie_t cookie_tree;
-   int i, j;
-
-   CHECK_XCB_CONN;
-
-   cookie_attr = xcb_get_window_attributes_unchecked(_ecore_xcb_conn, window);
-   reply_attr = xcb_get_window_attributes_reply(_ecore_xcb_conn, cookie_attr, NULL);
-   if (!reply_attr) return NULL;
-   if (reply_attr->map_state != XCB_MAP_STATE_VIEWABLE)
-     {
-        free(reply_attr);
-        return NULL;
-     }
-
-   free(reply_attr);
-
-   cookie_geom = xcb_get_geometry_unchecked(_ecore_xcb_conn, window);
-   reply_geom = xcb_get_geometry_reply(_ecore_xcb_conn, cookie_geom, NULL);
-   if (!reply_geom) return NULL;
-
-   if (!(s = calloc(1, sizeof(Shadow))))
-     {
-        free(reply_geom);
-        return NULL;
-     }
-
-   s->win = window;
-   s->x = reply_geom->x;
-   s->y = reply_geom->y;
-   s->w = reply_geom->width;
-   s->h = reply_geom->height;
-
-   free(reply_geom);
-
-   cookie_tree = xcb_query_tree_unchecked(_ecore_xcb_conn, window);
-   reply_tree = xcb_query_tree_reply(_ecore_xcb_conn, cookie_tree, NULL);
-   if (reply_tree)
-     {
-        xcb_window_t *list;
-        int num;
-
-        num = xcb_query_tree_children_length(reply_tree);
-        list = xcb_query_tree_children(reply_tree);
-
-        s->children = calloc(1, sizeof(Shadow *) * num);
-        if (s->children)
-          {
-             s->children_num = num;
-             for (i = 0; i < num; i++)
-               {
-                  s->children[i] = _ecore_x_window_tree_walk(list[i]);
-                  if (s->children[i])
-                    s->children[i]->parent = s;
-               }
-             /* compress list down */
-             j = 0;
-             for (i = 0; i < num; i++)
-               {
-                  if (s->children[i])
-                    {
-                       s->children[j] = s->children[i];
-                       j++;
-                    }
-               }
-             if (j == 0)
-               {
-                  free(s->children);
-                  s->children = NULL;
-                  s->children_num = 0;
-               }
-             else
-               {
-                  s->children_num = j;
-                  sl = realloc(s->children, sizeof(Shadow *) * j);
-                  if (sl) s->children = sl;
-               }
-          }
-
-        free(reply_tree);
-     }
-
-   return s;
-}
-
-static void
-_ecore_x_window_tree_shadow_free1(Shadow *s)
-{
-   int i = 0;
-
-   if (!s) return;
-   if (s->children)
-     {
-        for (i = 0; i < s->children_num; i++)
-          {
-             if (s->children[i])
-               _ecore_x_window_tree_shadow_free1(s->children[i]);
-          }
-        free(s->children);
-     }
-
-   free(s);
-}
-
-static void
-_ecore_x_window_tree_shadow_free(void)
-{
-   int i = 0;
-
-   if (!shadow_base) return;
-
-   for (i = 0; i < shadow_num; i++)
-     {
-        if (!shadow_base[i]) continue;
-        _ecore_x_window_tree_shadow_free1(shadow_base[i]);
-     }
-   free(shadow_base);
-   shadow_base = NULL;
-   shadow_num = 0;
-}
-
-static void
-_ecore_x_window_tree_shadow_populate(void)
-{
-   Ecore_X_Window *roots = NULL;
-   int i = 0, num = 0;
-
-   if ((roots = ecore_x_window_root_list(&num)))
-     {
-        shadow_base = calloc(1, sizeof(Shadow *) * num);
-        if (shadow_base)
-          {
-             shadow_num = num;
-             for (i = 0; i < num; i++)
-               shadow_base[i] = _ecore_x_window_tree_walk(roots[i]);
-          }
-
-        free(roots);
-     }
-}
-
-/*
-   static void
-   _ecore_x_window_tree_shadow_start(void)
-   {
-   shadow_count++;
-   if (shadow_count > 1) return;
-   _ecore_x_window_tree_shadow_populate();
-   }
-
-   static void
-   _ecore_x_window_tree_shadow_stop(void)
-   {
-   shadow_count--;
-   if (shadow_count != 0) return;
-   _ecore_x_window_tree_shadow_free();
-   }
- */
-
-Shadow *
-_ecore_x_window_shadow_tree_find_shadow(Shadow        *s,
-                                        Ecore_X_Window win)
-{
-   Shadow *ss;
-   int i = 0;
-
-   if (s->win == win) return s;
-
-   if (s->children)
-     {
-        for (i = 0; i < s->children_num; i++)
-          {
-             if (!s->children[i]) continue;
-
-             if ((ss =
-                    _ecore_x_window_shadow_tree_find_shadow(s->children[i], win)))
-               return ss;
-          }
-     }
-
-   return NULL;
-}
-
-Shadow *
-_ecore_x_window_shadow_tree_find(Ecore_X_Window base)
-{
-   Shadow *s;
-   int i = 0;
-
-   for (i = 0; i < shadow_num; i++)
-     {
-        if (!shadow_base[i]) continue;
-
-        if ((s =
-               _ecore_x_window_shadow_tree_find_shadow(shadow_base[i], base)))
-          return s;
-     }
-   return NULL;
-}
-
-static Ecore_X_Window
-_ecore_x_window_shadow_tree_at_xy_get_shadow(Shadow         *s,
-                                             int             bx,
-                                             int             by,
-                                             int             x,
-                                             int             y,
-                                             Ecore_X_Window *skip,
-                                             int             skip_num)
-{
-   Ecore_X_Window child;
-   Ecore_X_Rectangle *rects;
-   int i = 0, j = 0, wx = 0, wy = 0, num = 0;
-
-   wx = s->x + bx;
-   wy = s->y + by;
-   if (!((x >= wx) && (y >= wy) && (x < (wx + s->w)) && (y < (wy + s->h))))
-     return 0;
-
-   rects = ecore_x_window_shape_rectangles_get(s->win, &num);
-   if (!_inside_rects(s, x, y, bx, by, rects, num)) return 0;
-   num = 0;
-   rects = ecore_x_window_shape_input_rectangles_get(s->win, &num);
-   if (!_inside_rects(s, x, y, bx, by, rects, num)) return 0;
-
-   if (s->children)
-     {
-        int skipit = 0;
-
-        for (i = s->children_num - 1; i >= 0; --i)
-          {
-             if (!s->children[i]) continue;
-
-             skipit = 0;
-             if (skip)
-               {
-                  for (j = 0; j < skip_num; j++)
-                    {
-                       if (s->children[i]->win == skip[j])
-                         {
-                            skipit = 1;
-                            goto onward;
-                         }
-                    }
-               }
-onward:
-             if (!skipit)
-               {
-                  if ((child =
-                         _ecore_x_window_shadow_tree_at_xy_get_shadow(s->children[i], wx, wy, x, y, skip, skip_num)))
-                    return child;
-               }
-          }
-     }
-
-   return s->win;
-}
-
-static Ecore_X_Window
-_ecore_x_window_shadow_tree_at_xy_get(Ecore_X_Window  base,
-                                      int             bx,
-                                      int             by,
-                                      int             x,
-                                      int             y,
-                                      Ecore_X_Window *skip,
-                                      int             skip_num)
-{
-   Shadow *s;
-
-   if (!shadow_base)
-     {
-        _ecore_x_window_tree_shadow_populate();
-        if (!shadow_base) return 0;
-     }
-
-   s = _ecore_x_window_shadow_tree_find(base);
-   if (!s) return 0;
-
-   return _ecore_x_window_shadow_tree_at_xy_get_shadow(s, bx, by, x, y, skip, skip_num);
-}
-
-static Eina_Bool
-_inside_rects(Shadow            *s,
-              int                x,
-              int                y,
-              int                bx,
-              int                by,
-              Ecore_X_Rectangle *rects,
-              int                num)
-{
-   Eina_Bool inside = EINA_FALSE;
-   int i = 0;
-
-   if (!rects) return EINA_FALSE;
-   for (i = 0; i < num; i++)
-     {
-        if ((x >= s->x + bx + rects[i].x) &&
-            (y >= s->y + by + rects[i].y) &&
-            (x < (int)(s->x + bx + rects[i].x + rects[i].width)) &&
-            (y < (int)(s->y + by + rects[i].y + rects[i].height)))
-          {
-             inside = EINA_TRUE;
-             break;
-          }
-     }
-   free(rects);
-   return inside;
-}
-
-/**
- * Retrieves the top, visible window at the given location,
- * but skips the windows in the list. This uses a shadow tree built from the
- * window tree that is only updated the first time
- * ecore_x_window_shadow_tree_at_xy_with_skip_get() is called, or the next time
- * it is called after a  ecore_x_window_shadow_tree_flush()
- * @param   base The base window to start searching from (normally root).
- * @param   x The given X position.
- * @param   y The given Y position.
- * @param   skip The list of windows to be skipped.
- * @param   skip_num The number of windows to be skipped.
- * @return  The window at the desired position.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-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)
-{
-   return _ecore_x_window_shadow_tree_at_xy_get(base, 0, 0, x, y, skip, skip_num);
-}
-
-/**
- * Retrieves the parent window a given window has. This uses the shadow window
- * tree.
- * @param   root The root window of @p win - if 0, this will be automatically determined with extra processing overhead
- * @param   win The window to get the parent window of
- * @return  The parent window of @p win
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI Ecore_X_Window
-ecore_x_window_shadow_parent_get(Ecore_X_Window root EINA_UNUSED,
-                                 Ecore_X_Window win)
-{
-   Shadow *s;
-   int i = 0;
-
-   if (!shadow_base)
-     {
-        _ecore_x_window_tree_shadow_populate();
-        if (!shadow_base) return 0;
-     }
-
-   for (i = 0; i < shadow_num; i++)
-     {
-        if (!shadow_base[i]) continue;
-
-        s = _ecore_x_window_shadow_tree_find_shadow(shadow_base[i], win);
-        if (s)
-          {
-             if (!s->parent) return 0;
-             return s->parent->win;
-          }
-     }
-   return 0;
-}
-
-/**
- * Flushes the window shadow tree so nothing is stored.
- * @ingroup Ecore_X_Window_Geometry_Group
- */
-EAPI void
-ecore_x_window_shadow_tree_flush(void)
-{
-   _ecore_x_window_tree_shadow_free();
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_window_shape.c b/src/lib/ecore_x/xcb/ecore_xcb_window_shape.c
deleted file mode 100644 (file)
index 667457a..0000000
+++ /dev/null
@@ -1,791 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_SHAPE
-# include <xcb/shape.h>
-#endif
-
-/**
- * @defgroup Ecore_X_Window_Shape X Window Shape Functions
- * @ingroup Ecore_X_Group
- *
- * These functions use the shape extension of the X server to change
- * shape of given windows.
- */
-
-/**
- * Sets the input shape of the given window to that given by the pixmap @p mask.
- * @param   win  The given window.
- * @param   mask A 1-bit depth pixmap that provides the new input shape of the
- *               window.
- * @ingroup Ecore_X_Window_Shape
- */
-EAPI void
-ecore_x_window_shape_input_mask_set(Ecore_X_Window win,
-                                    Ecore_X_Pixmap mask)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_mask(_ecore_xcb_conn, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_INPUT,
-                  win, 0, 0, mask);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   mask = 0;
-#endif
-}
-
-/**
- * Sets the shape of the given window to that given by the pixmap @p mask.
- * @param   win  The given window.
- * @param   mask A 2-bit depth pixmap that provides the new shape of the
- *               window.
- * @ingroup Ecore_X_Window_Shape
- */
-EAPI void
-ecore_x_window_shape_mask_set(Ecore_X_Window win,
-                              Ecore_X_Pixmap mask)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_mask(_ecore_xcb_conn, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_BOUNDING,
-                  win, 0, 0, mask);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   mask = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_window_set(Ecore_X_Window win,
-                                Ecore_X_Window shape_win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_BOUNDING,
-                     XCB_SHAPE_SK_BOUNDING, win, 0, 0, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_window_set_xy(Ecore_X_Window win,
-                                   Ecore_X_Window shape_win,
-                                   int            x,
-                                   int            y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_BOUNDING,
-                     XCB_SHAPE_SK_BOUNDING, win, x, y, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-   x = 0;
-   y = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_rectangle_set(Ecore_X_Window win,
-                                   int            x,
-                                   int            y,
-                                   int            w,
-                                   int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_SET,
-                        XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_rectangles_set(Ecore_X_Window     win,
-                                    Ecore_X_Rectangle *rects,
-                                    int                num)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t *rect = NULL;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!rects) return;
-
-#ifdef ECORE_XCB_SHAPE
-   if (num > 0)
-     {
-        int i = 0;
-
-        if (!(rect = malloc(sizeof(xcb_rectangle_t) * num)))
-          return;
-
-        for (i = 0; i < num; i++)
-          {
-             rect[i].x = rects[i].x;
-             rect[i].y = rects[i].y;
-             rect[i].width = rects[i].width;
-             rect[i].height = rects[i].height;
-          }
-     }
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_SET,
-                        XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, num, (xcb_rectangle_t *)rect);
-
-   if (rect) free(rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   num = 0;
-   rects = NULL;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_window_add(Ecore_X_Window win,
-                                Ecore_X_Window shape_win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_UNION,
-                     XCB_SHAPE_SK_BOUNDING, XCB_SHAPE_SK_BOUNDING,
-                     win, 0, 0, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_window_add_xy(Ecore_X_Window win,
-                                   Ecore_X_Window shape_win,
-                                   int            x,
-                                   int            y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_UNION,
-                     XCB_SHAPE_SK_BOUNDING, XCB_SHAPE_SK_BOUNDING,
-                     win, x, y, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-   x = 0;
-   y = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_rectangle_add(Ecore_X_Window win,
-                                   int            x,
-                                   int            y,
-                                   int            w,
-                                   int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_UNION,
-                        XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win,
-                                        int            x,
-                                        int            y,
-                                        int            w,
-                                        int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_SUBTRACT,
-                        XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_rectangle_clip(Ecore_X_Window win,
-                                    int            x,
-                                    int            y,
-                                    int            w,
-                                    int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_INTERSECT,
-                        XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_rectangles_add(Ecore_X_Window     win,
-                                    Ecore_X_Rectangle *rects,
-                                    int                num)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t *rect = NULL;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   if (num > 0)
-     {
-        int i = 0;
-
-        if (!(rect = malloc(sizeof(xcb_rectangle_t) * num)))
-          return;
-
-        for (i = 0; i < num; i++)
-          {
-             rect[i].x = rects[i].x;
-             rect[i].y = rects[i].y;
-             rect[i].width = rects[i].width;
-             rect[i].height = rects[i].height;
-          }
-     }
-
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_UNION,
-                        XCB_SHAPE_SK_BOUNDING, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, num, (xcb_rectangle_t *)&rect);
-
-   if (rect) free(rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   num = 0;
-   rects = NULL;
-#endif
-}
-
-EAPI Ecore_X_Rectangle *
-ecore_x_window_shape_rectangles_get(Ecore_X_Window win,
-                                    int           *num_ret)
-{
-   Ecore_X_Rectangle *rects = NULL;
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_get_rectangles_cookie_t cookie;
-   xcb_shape_get_rectangles_reply_t *reply;
-   xcb_rectangle_t *r;
-   unsigned int i = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num_ret) *num_ret = 0;
-
-#ifdef ECORE_XCB_SHAPE
-   cookie =
-     xcb_shape_get_rectangles(_ecore_xcb_conn, win, XCB_SHAPE_SK_BOUNDING);
-   reply = xcb_shape_get_rectangles_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-   if (num_ret) *num_ret = reply->rectangles_len;
-
-   if (reply->rectangles_len < 1)
-     {
-        free(reply);
-        if (num_ret) *num_ret = 0;
-        return NULL;
-     }
-
-   rects = malloc(sizeof(Ecore_X_Rectangle) * reply->rectangles_len);
-   if (!rects)
-     {
-        free(reply);
-        if (num_ret) *num_ret = 0;
-        return NULL;
-     }
-   r = xcb_shape_get_rectangles_rectangles(reply);
-   for (i = 0; i < reply->rectangles_len; i++)
-     {
-        rects[i].x = r[i].x;
-        rects[i].y = r[i].y;
-        rects[i].width = r[i].width;
-        rects[i].height = r[i].height;
-     }
-
-   free(reply);
-
-   return rects;
-#else
-   return rects;
-   win = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_events_select(Ecore_X_Window win,
-                                   Eina_Bool      on)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_select_input(_ecore_xcb_conn, win, on);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   on = 0;
-#endif
-}
-
-EAPI Ecore_X_Rectangle *
-ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win,
-                                          int           *num_ret)
-{
-   Ecore_X_Rectangle *rects = NULL;
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_get_rectangles_cookie_t cookie;
-   xcb_shape_get_rectangles_reply_t *reply;
-   xcb_rectangle_t *r;
-   unsigned int i = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num_ret) *num_ret = 0;
-
-#ifdef ECORE_XCB_SHAPE
-   cookie =
-     xcb_shape_get_rectangles(_ecore_xcb_conn, win, XCB_SHAPE_SK_INPUT);
-   reply = xcb_shape_get_rectangles_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-   if (num_ret) *num_ret = reply->rectangles_len;
-
-   if (reply->rectangles_len < 1)
-     {
-        free(reply);
-        if (num_ret) *num_ret = 0;
-        return NULL;
-     }
-
-   rects = malloc(sizeof(Ecore_X_Rectangle) * reply->rectangles_len);
-   if (!rects)
-     {
-        free(reply);
-        if (num_ret) *num_ret = 0;
-        return NULL;
-     }
-   r = xcb_shape_get_rectangles_rectangles(reply);
-   for (i = 0; i < reply->rectangles_len; i++)
-     {
-        rects[i].x = r[i].x;
-        rects[i].y = r[i].y;
-        rects[i].width = r[i].width;
-        rects[i].height = r[i].height;
-     }
-
-   free(reply);
-
-   return rects;
-#else
-   xcb_get_geometry_cookie_t cookie;
-   xcb_get_geometry_reply_t *reply;
-
-   if (!(rects = malloc(sizeof(Ecore_X_Rectangle))))
-     return NULL;
-
-   /* get geometry */
-   cookie = xcb_get_geometry_unchecked(_ecore_xcb_conn, win);
-   reply = xcb_get_geometry_reply(_ecore_xcb_conn, cookie, NULL);
-   if (reply)
-     {
-        rects[0].x = reply->x;
-        rects[0].y = reply->y;
-        rects[0].width = reply->width;
-        rects[0].height = reply->height;
-        free(reply);
-     }
-   if (num_ret) *num_ret = 1;
-   return rects;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_rectangles_set(Ecore_X_Window     win,
-                                          Ecore_X_Rectangle *rects,
-                                          int                num)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t *rect = NULL;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!rects) return;
-
-#ifdef ECORE_XCB_SHAPE
-   if (num > 0)
-     {
-        int i = 0;
-
-        if (!(rect = malloc(sizeof(xcb_rectangle_t) * num)))
-          return;
-
-        for (i = 0; i < num; i++)
-          {
-             rect[i].x = rects[i].x;
-             rect[i].y = rects[i].y;
-             rect[i].width = rects[i].width;
-             rect[i].height = rects[i].height;
-          }
-     }
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_SET,
-                        XCB_SHAPE_SK_INPUT, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, num, (xcb_rectangle_t *)rect);
-
-   if (rect) free(rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   num = 0;
-   rects = NULL;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win,
-                                              int            x,
-                                              int            y,
-                                              int            w,
-                                              int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_SUBTRACT,
-                        XCB_SHAPE_SK_INPUT, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win,
-                                         int            x,
-                                         int            y,
-                                         int            w,
-                                         int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_UNION,
-                        XCB_SHAPE_SK_INPUT, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win,
-                                         int            x,
-                                         int            y,
-                                         int            w,
-                                         int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_SET,
-                        XCB_SHAPE_SK_INPUT, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win,
-                                         Ecore_X_Window shape_win,
-                                         int            x,
-                                         int            y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_INPUT,
-                     XCB_SHAPE_SK_INPUT, win, x, y, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-   x = 0;
-   y = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win,
-                                         Ecore_X_Window shape_win,
-                                         int            x,
-                                         int            y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_UNION, XCB_SHAPE_SK_INPUT,
-                     XCB_SHAPE_SK_INPUT, win, x, y, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-   x = 0;
-   y = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_window_set(Ecore_X_Window win,
-                                      Ecore_X_Window shape_win)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   xcb_shape_combine(_ecore_xcb_conn, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_INPUT,
-                     XCB_SHAPE_SK_INPUT, win, 0, 0, shape_win);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   shape_win = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win,
-                                          int            x,
-                                          int            y,
-                                          int            w,
-                                          int            h)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t rect;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   rect.x = x;
-   rect.y = y;
-   rect.width = w;
-   rect.height = h;
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_INTERSECT,
-                        XCB_SHAPE_SK_INPUT, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, 1, &rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   x = 0;
-   y = 0;
-   w = 0;
-   h = 0;
-#endif
-}
-
-EAPI void
-ecore_x_window_shape_input_rectangles_add(Ecore_X_Window     win,
-                                          Ecore_X_Rectangle *rects,
-                                          int                num)
-{
-#ifdef ECORE_XCB_SHAPE
-   xcb_rectangle_t *rect = NULL;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-#ifdef ECORE_XCB_SHAPE
-   if (num > 0)
-     {
-        int i = 0;
-
-        if (!(rect = malloc(sizeof(xcb_rectangle_t) * num)))
-          return;
-
-        for (i = 0; i < num; i++)
-          {
-             rect[i].x = rects[i].x;
-             rect[i].y = rects[i].y;
-             rect[i].width = rects[i].width;
-             rect[i].height = rects[i].height;
-          }
-     }
-
-   xcb_shape_rectangles(_ecore_xcb_conn, XCB_SHAPE_SO_UNION,
-                        XCB_SHAPE_SK_INPUT, XCB_CLIP_ORDERING_UNSORTED,
-                        win, 0, 0, num, (xcb_rectangle_t *)&rect);
-
-   if (rect) free(rect);
-//   ecore_x_flush();
-#else
-   return;
-   win = 0;
-   num = 0;
-   rects = NULL;
-#endif
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_xdefaults.c b/src/lib/ecore_x/xcb/ecore_xcb_xdefaults.c
deleted file mode 100644 (file)
index 30184f3..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#include "ecore_xcb_private.h"
-#include <fnmatch.h>
-#include <sys/types.h>
-#include <pwd.h>
-
-/* local function prototypes */
-static Eina_Bool _ecore_xcb_xdefaults_glob_match(const char *str,
-                                                 const char *glob);
-
-/* local variables */
-static Eina_File *_ecore_xcb_xdefaults_file = NULL;
-static char *_ecore_xcb_xdefaults_data = NULL;
-
-void
-_ecore_xcb_xdefaults_init(void)
-{
-   char buff[PATH_MAX];
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (eina_environment_home_get())
-     snprintf(buff, sizeof(buff), "%s/.Xdefaults", eina_environment_home_get());
-   else return;
-   if ((_ecore_xcb_xdefaults_file = eina_file_open(buff, EINA_FALSE)))
-     {
-        eina_mmap_safety_enabled_set(EINA_TRUE);
-
-        _ecore_xcb_xdefaults_data =
-          eina_file_map_all(_ecore_xcb_xdefaults_file, EINA_FILE_SEQUENTIAL);
-     }
-}
-
-void
-_ecore_xcb_xdefaults_shutdown(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   if (!_ecore_xcb_xdefaults_file) return;
-   if (_ecore_xcb_xdefaults_data)
-     eina_file_map_free(_ecore_xcb_xdefaults_file, _ecore_xcb_xdefaults_data);
-   if (_ecore_xcb_xdefaults_file) eina_file_close(_ecore_xcb_xdefaults_file);
-}
-
-char *
-_ecore_xcb_xdefaults_string_get(const char *prog,
-                                const char *param)
-{
-   char buff[1024], ret[1024];
-   char *str = NULL;
-   char **ea = NULL;
-   unsigned int count = 0, i = 0;
-
-   if ((!_ecore_xcb_xdefaults_data) || (!_ecore_xcb_xdefaults_file))
-     return NULL;
-
-   snprintf(buff, sizeof(buff), "*%s*.*%s*", prog, param);
-
-   str = _ecore_xcb_xdefaults_data;
-   ea = eina_str_split_full(str, "\n", -1, &count);
-   for (i = 0; i < count; i++)
-     {
-        if (_ecore_xcb_xdefaults_glob_match(ea[i], buff))
-          sscanf(ea[i], "%*[^:]:%*[ ]%s", ret);
-     }
-   if ((ea) && (ea[0]))
-     {
-        free(ea[0]);
-        free(ea);
-     }
-
-   return strdup(ret);
-}
-
-int
-_ecore_xcb_xdefaults_int_get(const char *prog,
-                             const char *param)
-{
-   char buff[1024];
-   char *str = NULL;
-   char **ea = NULL;
-   unsigned int count = 0, i = 0;
-   int ret = -1;
-
-   if ((!_ecore_xcb_xdefaults_data) || (!_ecore_xcb_xdefaults_file))
-     return 0;
-
-   snprintf(buff, sizeof(buff), "*%s*.*%s*", prog, param);
-
-   str = _ecore_xcb_xdefaults_data;
-   ea = eina_str_split_full(str, "\n", -1, &count);
-   for (i = 0; i < count; i++)
-     {
-        if (_ecore_xcb_xdefaults_glob_match(ea[i], buff))
-          sscanf(ea[i], "%*[^:]:%*[ ]%d", &ret);
-     }
-   if ((ea) && (ea[0]))
-     {
-        free(ea[0]);
-        free(ea);
-     }
-
-   return ret;
-}
-
-/* local functions */
-static Eina_Bool
-_ecore_xcb_xdefaults_glob_match(const char *str,
-                                const char *glob)
-{
-   if ((!str) || (!glob)) return EINA_FALSE;
-   if (glob[0] == 0)
-     {
-        if (str[0] == 0) return EINA_TRUE;
-        return EINA_FALSE;
-     }
-   if (!strcmp(glob, "*")) return EINA_TRUE;
-   if (!fnmatch(glob, str, 0)) return EINA_TRUE;
-   return EINA_FALSE;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c b/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c
deleted file mode 100644 (file)
index 257c617..0000000
+++ /dev/null
@@ -1,745 +0,0 @@
-#include "ecore_xcb_private.h"
-# ifdef ECORE_XCB_XFIXES
-#  include <xcb/xfixes.h>
-# endif
-
-/* local function prototypes */
-static xcb_rectangle_t   *_ecore_xcb_rect_to_xcb(Ecore_X_Rectangle *rects,
-                                                 int                num);
-static Ecore_X_Rectangle *_ecore_xcb_rect_to_ecore(xcb_rectangle_t *rects,
-                                                   int              num);
-
-/* local variables */
-static Eina_Bool _xfixes_avail = EINA_FALSE;
-
-/* external variables */
-int _ecore_xcb_event_xfixes = -1;
-
-void
-_ecore_xcb_xfixes_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_xfixes_id);
-#endif
-}
-
-void
-_ecore_xcb_xfixes_finalize(void)
-{
-#ifdef ECORE_XCB_XFIXES
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XFIXES
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_xfixes_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_xfixes_query_version_cookie_t cookie;
-        xcb_xfixes_query_version_reply_t *reply;
-
-        cookie =
-          xcb_xfixes_query_version_unchecked(_ecore_xcb_conn,
-                                             XCB_XFIXES_MAJOR_VERSION,
-                                             XCB_XFIXES_MINOR_VERSION);
-        reply = xcb_xfixes_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             /* NB: XFixes Extension >= 3 needed for shape stuff.
-              * for now, I am removing this check so that it matches the
-              * xlib code closer. If the extension version ends up being
-              * that important, then re-enable this */
-
-     /* if (reply->major_version >= 3) */
-                _xfixes_avail = EINA_TRUE;
-                free(reply);
-          }
-
-        if (_xfixes_avail)
-          _ecore_xcb_event_xfixes = ext_reply->first_event;
-     }
-#endif
-}
-
-EAPI Eina_Bool
-ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection)
-{
-#ifdef ECORE_XCB_XFIXES
-   Ecore_X_Window root = 0;
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-   int mask = 0;
-#endif
-
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_XFIXES
-   root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
-
-   mask = (XCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER |
-           XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY |
-           XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE);
-
-   cookie =
-     xcb_xfixes_select_selection_input_checked(_ecore_xcb_conn, root,
-                                               selection, mask);
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        free(err);
-        return EINA_FALSE;
-     }
-
-   return EINA_TRUE;
-#endif
-   return EINA_FALSE;
-}
-
-Eina_Bool
-_ecore_xcb_xfixes_avail_get(void)
-{
-   return _xfixes_avail;
-}
-
-/**
- * @defgroup Ecore_X_Fixes_Group X Fixes Extension Functions
- * @ingroup Ecore_X_Group
- *
- * Functions related to the X Fixes extension.
- */
-
-/**
- * Create a region from rectangles.
- * @param rects The rectangles used to initialize the region.
- * @param num   The number of rectangles.
- * @return      The newly created region.
- *
- * Create a region initialized to the specified list of rectangles
- * @p rects. The rectangles may be specified in any order, their union
- * becomes the region.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI Ecore_X_Region
-ecore_x_region_new(Ecore_X_Rectangle *rects,
-                   int                num)
-{
-   Ecore_X_Region region = 0;
-#ifdef ECORE_XCB_XFIXES
-   xcb_rectangle_t *xrects;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return 0;
-
-#ifdef ECORE_XCB_XFIXES
-   xrects = _ecore_xcb_rect_to_xcb(rects, num);
-   region = xcb_generate_id(_ecore_xcb_conn);
-   xcb_xfixes_create_region(_ecore_xcb_conn, region, num, xrects);
-   free(xrects);
-//   ecore_x_flush();
-#endif
-
-   return region;
-}
-
-/**
- * Create a region from a pixmap.
- * @param bitmap The bitmap used to initialize the region.
- * @return       The newly created region.
- *
- * Creates a region initialized to the set of 'one' pixels in @p bitmap
- * (which must be of depth 1, else Match error).
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI Ecore_X_Region
-ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap)
-{
-   Ecore_X_Region region = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return 0;
-
-#ifdef ECORE_XCB_XFIXES
-   region = xcb_generate_id(_ecore_xcb_conn);
-   xcb_xfixes_create_region_from_bitmap(_ecore_xcb_conn, region, bitmap);
-//   ecore_x_flush();
-#endif
-
-   return region;
-}
-
-/**
- * Create a region from a window.
- * @param win The window used to initialize the region.
- * @param type   The type of the region.
- * @return       The newly created region.
- *
- * Creates a region initialized to the specified @p window region. See
- * the Shape extension for the definition of Bounding and Clip
- * regions.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI Ecore_X_Region
-ecore_x_region_new_from_window(Ecore_X_Window      win,
-                               Ecore_X_Region_Type type)
-{
-   Ecore_X_Region region = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return 0;
-
-#ifdef ECORE_XCB_XFIXES
-   region = xcb_generate_id(_ecore_xcb_conn);
-   xcb_xfixes_create_region_from_window(_ecore_xcb_conn, region, win, type);
-//   ecore_x_flush();
-#endif
-
-   return region;
-}
-
-/**
- * Create a region from a graphic context.
- * @param gc The graphic context used to initialize the region.
- * @return   The newly created region.
- *
- * Creates a region initialized from the clip list of @p gc.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI Ecore_X_Region
-ecore_x_region_new_from_gc(Ecore_X_GC gc)
-{
-   Ecore_X_Region region = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return 0;
-
-#ifdef ECORE_XCB_XFIXES
-   region = xcb_generate_id(_ecore_xcb_conn);
-   xcb_xfixes_create_region_from_gc(_ecore_xcb_conn, region, gc);
-//   ecore_x_flush();
-#endif
-
-   return region;
-}
-
-/**
- * Create a region from a picture.
- * @param picture The picture used to initialize the region.
- * @return        The newly created region.
- *
- * Creates a region initialized from the clip list of @p picture.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI Ecore_X_Region
-ecore_x_region_new_from_picture(Ecore_X_Picture picture)
-{
-   Ecore_X_Region region = 0;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return 0;
-
-#ifdef ECORE_XCB_XFIXES
-   region = xcb_generate_id(_ecore_xcb_conn);
-   xcb_xfixes_create_region_from_picture(_ecore_xcb_conn, region, picture);
-//   ecore_x_flush();
-#endif
-
-   return region;
-}
-
-/**
- * Destroy a region.
- * @param region The region to destroy.
- *
- * Destroy the specified @p region.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_free(Ecore_X_Region region)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_destroy_region(_ecore_xcb_conn, region);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Set the content of a region.
- * @param region The region to destroy.
- * @param rects  The rectangles used to set the region.
- * @param num    The number of rectangles.
- *
- * Replace the current contents of @p region with the region formed
- * by the union of the rectangles @p rects.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_set(Ecore_X_Region     region,
-                   Ecore_X_Rectangle *rects,
-                   int                num)
-{
-#ifdef ECORE_XCB_XFIXES
-   xcb_rectangle_t *xrects;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xrects = _ecore_xcb_rect_to_xcb(rects, num);
-   xcb_xfixes_set_region(_ecore_xcb_conn, region, num, xrects);
-   free(xrects);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Copy the content of a region.
- * @param dest   The destination region.
- * @param source The source region.
- *
- * Replace the contents of @p dest with the contents of @p source.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_copy(Ecore_X_Region dest,
-                    Ecore_X_Region source)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-   // NB: Hmmmm...this may need converting to/fro xcb_rectangle_t
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_copy_region(_ecore_xcb_conn, source, dest);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Make the union of two regions.
- * @param dest    The destination region.
- * @param source1 The first source region.
- * @param source2 The second source region.
- *
- * Replace the contents of @p dest with the union of @p source1 and
- * @p source2.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_combine(Ecore_X_Region dest,
-                       Ecore_X_Region source1,
-                       Ecore_X_Region source2)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_union_region(_ecore_xcb_conn, source1, source2, dest);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Make the intersection of two regions.
- * @param dest    The destination region.
- * @param source1 The first source region.
- * @param source2 The second source region.
- *
- * Replace the contents of @p dest with the intersection of @p source1 and
- * @p source2.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_intersect(Ecore_X_Region dest,
-                         Ecore_X_Region source1,
-                         Ecore_X_Region source2)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_intersect_region(_ecore_xcb_conn, source1, source2, dest);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Make the subtraction of two regions.
- * @param dest    The destination region.
- * @param source1 The first source region.
- * @param source2 The second source region.
- *
- * Replace the contents of @p dest with the subtraction of @p source1 by
- * @p source2.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_subtract(Ecore_X_Region dest,
-                        Ecore_X_Region source1,
-                        Ecore_X_Region source2)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_subtract_region(_ecore_xcb_conn, source1, source2, dest);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Make the subtraction of regions by bounds.
- * @param dest   The destination region.
- * @param bounds The bounds.
- * @param source The source region.
- *
- * The @p source region is subtracted from the region specified by
- * @p bounds.  The result is placed in @p dest, replacing its
- * contents.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_invert(Ecore_X_Region     dest,
-                      Ecore_X_Rectangle *bounds,
-                      Ecore_X_Region     source)
-{
-#ifdef ECORE_XCB_XFIXES
-   xcb_rectangle_t xrects;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xrects.x = bounds->x;
-   xrects.y = bounds->y;
-   xrects.width = bounds->width;
-   xrects.height = bounds->height;
-
-   xcb_xfixes_invert_region(_ecore_xcb_conn, source, xrects, dest);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Translate a region.
- * @param region The region to translate.
- * @param dx     The horizontal translation.
- * @param dy     The vertical translation.
- *
- * The @p region is translated by @p dx and @p dy in place.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_translate(Ecore_X_Region region,
-                         int            dx,
-                         int            dy)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_translate_region(_ecore_xcb_conn, region, dx, dy);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Extent a region.
- * @param dest   The destination region.
- * @param source The source region.
- *
- * The extents of the @p source region are placed in @p dest.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_extents(Ecore_X_Region dest,
-                       Ecore_X_Region source)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_region_extents(_ecore_xcb_conn, source, dest);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Return the rectangles that compose a region.
- * @param  region The region (Unused).
- * @param  num    The number of returned rectangles.
- * @param  bounds The returned bounds of the region.
- * @return        The returned rectangles.
- *
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI Ecore_X_Rectangle *
-ecore_x_region_fetch(Ecore_X_Region     region,
-                     int               *num,
-                     Ecore_X_Rectangle *bounds)
-{
-   Ecore_X_Rectangle extents = { 0, 0, 0, 0 };
-   Ecore_X_Rectangle *rects = NULL;
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_fetch_region_cookie_t cookie;
-   xcb_xfixes_fetch_region_reply_t *reply;
-   xcb_rectangle_t *r;
-   int n = 0;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (num) *num = 0;
-   if (bounds) *bounds = extents;
-   if (!_xfixes_avail) return NULL;
-
-#ifdef ECORE_XCB_XFIXES
-   cookie = xcb_xfixes_fetch_region_unchecked(_ecore_xcb_conn, region);
-   reply = xcb_xfixes_fetch_region_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return NULL;
-
-   r = xcb_xfixes_fetch_region_rectangles(reply);
-   n = xcb_xfixes_fetch_region_rectangles_length(reply);
-   rects = _ecore_xcb_rect_to_ecore(r, n);
-   if (num) *num = n;
-
-   /* rects = (Ecore_X_Rectangle *)malloc(n * sizeof(Ecore_X_Rectangle)); */
-   /* if (!rects)  */
-   /*   { */
-   /*      free(reply); */
-   /*      return NULL; */
-   /*   } */
-
-   /* for (i = 0; i < n; i++)  */
-   /*   { */
-   /*      rects[i].x = r[i].x; */
-   /*      rects[i].y = r[i].y; */
-   /*      rects[i].width = r[i].width; */
-   /*      rects[i].height = r[i].height; */
-   /*   } */
-
-   (*bounds).x = reply->extents.x;
-   (*bounds).y = reply->extents.y;
-   (*bounds).width = reply->extents.width;
-   (*bounds).height = reply->extents.height;
-
-   free(reply);
-#endif
-
-   return rects;
-}
-
-/**
- * Expand a region.
- * @param dest   The destination region.
- * @param source The source region.
- * @param left   The number of pixels to add on the left.
- * @param right  The number of pixels to add on the right.
- * @param top    The number of pixels to add at the top.
- * @param bottom The number of pixels to add at the bottom.
- *
- * Put in @p dest the area specified by expanding each rectangle in
- * the @p source  region by the specified number of pixels to the
- * @p left, @p right, @p top and @p bottom.
- * @ingroup Ecore_X_Fixes_Group
- */
-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)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_expand_region(_ecore_xcb_conn, source, dest, left, right, top, bottom);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Change clip-mask in a graphic context to the specified region.
- * @param region   The region to change.
- * @param gc       The clip-mask graphic context.
- * @param x The horizontal translation.
- * @param y The vertical translation.
- *
- * Changes clip-mask in @p gc to the specified @p region and
- * sets the clip origin with the values of @p x_origin and @p y_origin.
- * Output will be clippped to remain contained within the region. The
- * clip origin is interpreted relative to the origin of whatever
- * destination drawable is specified in a graphics request. The
- * region is interpreted relative to the clip origin. Future changes
- * to region have no effect on the gc clip-mask.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_gc_clip_set(Ecore_X_Region region,
-                           Ecore_X_GC     gc,
-                           int            x,
-                           int            y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_set_gc_clip_region(_ecore_xcb_conn, gc, region, x, y);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Change the shape extension of a window.
- * @param region   The region.
- * @param dest     The window whose shape is changed.
- * @param type     The kind of shape.
- * @param x The horizontal offset.
- * @param y The vertical offset.
- *
- * Set the specified Shape extension region of @p window to @p region,
- * offset by @p x_offset and @p y_offset. Future changes to region
- * have no effect on the window shape.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_window_shape_set(Ecore_X_Region     region,
-                                Ecore_X_Window     dest,
-                                Ecore_X_Shape_Type type,
-                                int                x,
-                                int                y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_set_window_shape_region(_ecore_xcb_conn, dest, type, x, y, region);
-//   ecore_x_flush();
-#endif
-}
-
-/**
- * Change clip-mask in picture to the specified region.
- * @param region   The region.
- * @param picture  The picture.
- * @param x The X coordinate of the origin.
- * @param y The Y coordinate of the origin.
- *
- * Changes clip-mask in picture to the specified @p region
- * and sets the clip origin.  Input and output will be clipped to
- * remain contained within the region.  The clip origin is interpreted
- * relative to the origin of the drawable associated with @p picture.  The
- * region is interpreted relative to the clip origin.  Future changes
- * to region have no effect on the picture clip-mask.
- * @ingroup Ecore_X_Fixes_Group
- */
-EAPI void
-ecore_x_region_picture_clip_set(Ecore_X_Region  region,
-                                Ecore_X_Picture picture,
-                                int             x,
-                                int             y)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xfixes_avail) return;
-
-#ifdef ECORE_XCB_XFIXES
-   xcb_xfixes_set_picture_clip_region(_ecore_xcb_conn, picture, region, x, y);
-//   ecore_x_flush();
-#endif
-}
-
-/* local function prototypes */
-static xcb_rectangle_t *
-_ecore_xcb_rect_to_xcb(Ecore_X_Rectangle *rects,
-                       int                num)
-{
-   xcb_rectangle_t *xrect;
-   int i = 0;
-
-   if (!num) return NULL;
-
-   xrect = malloc(sizeof(xcb_rectangle_t) * num);
-   if (!xrect) return NULL;
-
-   for (i = 0; i < num; i++)
-     {
-        xrect[i].x = rects[i].x;
-        xrect[i].y = rects[i].y;
-        xrect[i].width = rects[i].width;
-        xrect[i].height = rects[i].height;
-     }
-
-   return xrect;
-}
-
-static Ecore_X_Rectangle *
-_ecore_xcb_rect_to_ecore(xcb_rectangle_t *rects,
-                         int              num)
-{
-   Ecore_X_Rectangle *erect;
-   int i = 0;
-
-   if (!num) return NULL;
-
-   erect = malloc(sizeof(Ecore_X_Rectangle) * num);
-   if (!erect) return NULL;
-
-   for (i = 0; i < num; i++)
-     {
-        erect[i].x = rects[i].x;
-        erect[i].y = rects[i].y;
-        erect[i].width = rects[i].width;
-        erect[i].height = rects[i].height;
-     }
-
-   return erect;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_xinerama.c b/src/lib/ecore_x/xcb/ecore_xcb_xinerama.c
deleted file mode 100644 (file)
index 37a2339..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_XINERAMA
-# include <xcb/xinerama.h>
-#endif
-
-/* local variables */
-static Eina_Bool _xinerama_avail = EINA_FALSE;
-static Eina_Bool _xinerama_active = EINA_FALSE;
-
-void
-_ecore_xcb_xinerama_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XINERAMA
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_xinerama_id);
-#endif
-}
-
-void
-_ecore_xcb_xinerama_finalize(void)
-{
-#ifdef ECORE_XCB_XINERAMA
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XINERAMA
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_xinerama_id);
-   if ((ext_reply) && (ext_reply->present))
-     {
-        xcb_xinerama_query_version_cookie_t cookie;
-        xcb_xinerama_query_version_reply_t *reply;
-
-        cookie =
-          xcb_xinerama_query_version_unchecked(_ecore_xcb_conn,
-                                               XCB_XINERAMA_MAJOR_VERSION,
-                                               XCB_XINERAMA_MINOR_VERSION);
-        reply =
-          xcb_xinerama_query_version_reply(_ecore_xcb_conn, cookie, NULL);
-        if (reply)
-          {
-             _xinerama_avail = EINA_TRUE;
-             // NB: Do we need to compare version numbers here ?
-             free(reply);
-          }
-
-        if (_xinerama_avail)
-          {
-             xcb_xinerama_is_active_cookie_t acookie;
-             xcb_xinerama_is_active_reply_t *areply;
-
-             acookie = xcb_xinerama_is_active_unchecked(_ecore_xcb_conn);
-             areply =
-               xcb_xinerama_is_active_reply(_ecore_xcb_conn, acookie, NULL);
-             if (areply)
-               {
-                  _xinerama_active = areply->state;
-                  free(areply);
-               }
-          }
-     }
-#endif
-}
-
-EAPI int
-ecore_x_xinerama_screen_count_get(void)
-{
-   int count = 0;
-#ifdef ECORE_XCB_XINERAMA
-   xcb_xinerama_query_screens_cookie_t cookie;
-   xcb_xinerama_query_screens_reply_t *reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_xinerama_avail) return 0;
-
-#ifdef ECORE_XCB_XINERAMA
-   cookie = xcb_xinerama_query_screens_unchecked(_ecore_xcb_conn);
-   reply =
-     xcb_xinerama_query_screens_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return 0;
-   count = reply->number;
-#endif
-
-   return count;
-}
-
-EAPI Eina_Bool
-ecore_x_xinerama_screen_geometry_get(int  screen,
-                                     int *x,
-                                     int *y,
-                                     int *w,
-                                     int *h)
-{
-#ifdef ECORE_XCB_XINERAMA
-   xcb_xinerama_query_screens_cookie_t cookie;
-   xcb_xinerama_query_screens_reply_t *reply;
-   xcb_xinerama_screen_info_t *info;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (x) *x = 0;
-   if (y) *y = 0;
-   if (w) *w = ((xcb_screen_t *)_ecore_xcb_screen)->width_in_pixels;
-   if (h) *h = ((xcb_screen_t *)_ecore_xcb_screen)->height_in_pixels;
-
-   if (!_xinerama_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_XINERAMA
-   cookie = xcb_xinerama_query_screens_unchecked(_ecore_xcb_conn);
-   reply =
-     xcb_xinerama_query_screens_reply(_ecore_xcb_conn, cookie, NULL);
-   if (!reply) return EINA_FALSE;
-
-   info = xcb_xinerama_query_screens_screen_info(reply);
-   if (!info)
-     {
-        free(reply);
-        return EINA_FALSE;
-     }
-
-   if (x) *x = info[screen].x_org;
-   if (y) *y = info[screen].y_org;
-   if (w) *w = info[screen].width;
-   if (h) *h = info[screen].height;
-
-   free(reply);
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
diff --git a/src/lib/ecore_x/xcb/ecore_xcb_xtest.c b/src/lib/ecore_x/xcb/ecore_xcb_xtest.c
deleted file mode 100644 (file)
index 7f76b2c..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-#include "ecore_xcb_private.h"
-#ifdef ECORE_XCB_XTEST
-# include <xcb/xtest.h>
-# include <X11/keysym.h>
-#endif
-
-/* local variables */
-static Eina_Bool _test_avail = EINA_FALSE;
-
-void
-_ecore_xcb_xtest_init(void)
-{
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XTEST
-   xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_test_id);
-#endif
-}
-
-void
-_ecore_xcb_xtest_finalize(void)
-{
-#ifdef ECORE_XCB_XTEST
-   const xcb_query_extension_reply_t *ext_reply;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-#ifdef ECORE_XCB_XTEST
-   ext_reply = xcb_get_extension_data(_ecore_xcb_conn, &xcb_test_id);
-   if ((ext_reply) && (ext_reply->present))
-     _test_avail = EINA_TRUE;
-#endif
-}
-
-EAPI Eina_Bool
-#ifdef ECORE_XCB_XTEST
-ecore_x_test_fake_key_down(const char *key)
-#else
-ecore_x_test_fake_key_down(const char *key EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XTEST
-   xcb_keycode_t keycode = 0;
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_test_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_XTEST
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   if (keycode == XCB_NO_SYMBOL) return EINA_FALSE;
-
-   cookie =
-     xcb_test_fake_input(_ecore_xcb_conn, XCB_KEY_PRESS,
-                         keycode, XCB_CURRENT_TIME,
-                         ((xcb_screen_t *)_ecore_xcb_screen)->root, 0, 0, 0);
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        free(err);
-        return EINA_FALSE;
-     }
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-#ifdef ECORE_XCB_XTEST
-ecore_x_test_fake_key_up(const char *key)
-#else
-ecore_x_test_fake_key_up(const char *key EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XTEST
-   xcb_keycode_t keycode = 0;
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_test_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_XTEST
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   if (keycode == XCB_NO_SYMBOL) return EINA_FALSE;
-
-   cookie =
-     xcb_test_fake_input(_ecore_xcb_conn, XCB_KEY_RELEASE,
-                         keycode, XCB_CURRENT_TIME,
-                         ((xcb_screen_t *)_ecore_xcb_screen)->root, 0, 0, 0);
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        free(err);
-        return EINA_FALSE;
-     }
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
-
-EAPI Eina_Bool
-#ifdef ECORE_XCB_XTEST
-ecore_x_test_fake_key_press(const char *key)
-#else
-ecore_x_test_fake_key_press(const char *key EINA_UNUSED)
-#endif
-{
-#ifdef ECORE_XCB_XTEST
-   xcb_keycode_t keycode = 0;
-   xcb_keysym_t keysym = 0;
-   xcb_keycode_t shift_code = 0;
-   xcb_void_cookie_t cookie;
-   xcb_generic_error_t *err;
-   Eina_Bool shift = EINA_FALSE;
-#endif
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-   CHECK_XCB_CONN;
-
-   if (!_test_avail) return EINA_FALSE;
-
-#ifdef ECORE_XCB_XTEST
-   keycode = _ecore_xcb_keymap_string_to_keycode(key);
-   keysym = _ecore_xcb_keymap_keycode_to_keysym(keycode, 0);
-   if (keysym == XCB_NO_SYMBOL)
-     {
-        keysym = _ecore_xcb_keymap_keycode_to_keysym(keycode, 1);
-        if (keysym != XCB_NO_SYMBOL)
-          shift = EINA_TRUE;
-     }
-
-   if (shift)
-     {
-        xcb_keycode_t *keycodes;
-        int i = 0;
-
-        keycodes = _ecore_xcb_keymap_keysym_to_keycode(XK_Shift_L);
-        while (keycodes[i] != XCB_NO_SYMBOL)
-          {
-             if (keycodes[i] != 0)
-               {
-                  shift_code = keycodes[i];
-                  break;
-               }
-             i++;
-          }
-     }
-
-   if (shift)
-     {
-        cookie =
-          xcb_test_fake_input(_ecore_xcb_conn, XCB_KEY_PRESS,
-                              shift_code, XCB_CURRENT_TIME,
-                              ((xcb_screen_t *)_ecore_xcb_screen)->root,
-                              0, 0, 0);
-        err = xcb_request_check(_ecore_xcb_conn, cookie);
-        if (err)
-          {
-             free(err);
-             return EINA_FALSE;
-          }
-     }
-
-   cookie =
-     xcb_test_fake_input(_ecore_xcb_conn, XCB_KEY_PRESS,
-                         keycode, XCB_CURRENT_TIME,
-                         ((xcb_screen_t *)_ecore_xcb_screen)->root, 0, 0, 0);
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        free(err);
-        return EINA_FALSE;
-     }
-   cookie =
-     xcb_test_fake_input(_ecore_xcb_conn, XCB_KEY_RELEASE,
-                         keycode, XCB_CURRENT_TIME,
-                         ((xcb_screen_t *)_ecore_xcb_screen)->root, 0, 0, 0);
-   err = xcb_request_check(_ecore_xcb_conn, cookie);
-   if (err)
-     {
-        free(err);
-        return EINA_FALSE;
-     }
-
-   if (shift)
-     {
-        cookie =
-          xcb_test_fake_input(_ecore_xcb_conn, XCB_KEY_RELEASE,
-                              shift_code, XCB_CURRENT_TIME,
-                              ((xcb_screen_t *)_ecore_xcb_screen)->root,
-                              0, 0, 0);
-        err = xcb_request_check(_ecore_xcb_conn, cookie);
-        if (err)
-          {
-             free(err);
-             return EINA_FALSE;
-          }
-     }
-
-   return EINA_TRUE;
-#endif
-
-   return EINA_FALSE;
-}
index d3c2fcd..4750073 100644 (file)
@@ -4101,15 +4101,9 @@ ecore_evas_software_x11_new_internal(const char *disp_name, Ecore_X_Window paren
                redraw_debug = 0;
           }
 
-# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
-        einfo->info.backend = EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB;
-        einfo->info.connection = ecore_x_connection_get();
-        einfo->info.screen = screen;
-# else
         einfo->info.backend = EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB;
         einfo->info.connection = ecore_x_display_get();
         einfo->info.screen = NULL;
-# endif
         einfo->info.drawable = ee->prop.window;
 
         if (argb)
@@ -4309,15 +4303,9 @@ ecore_evas_software_x11_pixmap_new_internal(const char *disp_name, Ecore_X_Windo
                redraw_debug = 0;
           }
 
-# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
-        einfo->info.backend = EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB;
-        einfo->info.connection = ecore_x_connection_get();
-        einfo->info.screen = screen;
-# else
         einfo->info.backend = EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB;
         einfo->info.connection = ecore_x_display_get();
         einfo->info.screen = NULL;
-# endif
 
         if ((argb) && (ee->prop.window))
           {
index 6600c5d..f13e55f 100644 (file)
@@ -3,8 +3,7 @@
 
 typedef enum
 {
-   EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB,
-   EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB
+   EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB
 } Evas_Engine_Info_Software_X11_Backend;
 
 typedef struct _Evas_Engine_Info_Software_X11 Evas_Engine_Info_Software_X11;
index 44ad45e..6ef80b4 100644 (file)
@@ -7,26 +7,13 @@
 #include "Evas_Engine_Software_X11.h"
 #include "evas_engine.h"
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
-# include "evas_xlib_outbuf.h"
-# include "evas_xlib_buffer.h"
-# include "evas_xlib_swapbuf.h"
-# include "evas_xlib_color.h"
-# include "evas_xlib_image.h"
-# include "evas_xlib_dri_image.h"
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-# include "evas_xcb_outbuf.h"
-# include "evas_xcb_color.h"
-# include "evas_xcb_xdefaults.h"
-# include "evas_xcb_image.h"
-# include "evas_xcb_buffer.h"
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+#include "evas_xlib_outbuf.h"
+#include "evas_xlib_buffer.h"
+#include "evas_xlib_swapbuf.h"
+#include "evas_xlib_color.h"
+#include "evas_xlib_image.h"
+#include "evas_xlib_dri_image.h"
 #include "evas_x_egl.h"
-#endif
 
 #include "../software_generic/evas_native_common.h"
 
@@ -60,11 +47,7 @@ struct _Render_Engine
 };
 
 typedef struct _Region_Push_Hook_Ctx {
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
    X_Output_Buffer *changed_pixels;
-#else
-   Xcb_Output_Buffer *changed_pixels;
-#endif
    Outbuf *buf;
    Eina_Spinlock *lock;
    struct {
@@ -97,7 +80,6 @@ _evas_software_x11_region_push_hook_call(void *data)
 
    if (eina_list_data_find(_outbufs, ctx->buf))
      {
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
         ctx->region_push_hook.cb(ctx->region_push_hook.evas, ctx->x, ctx->y,
                                  ctx->changed_pixels->xim->width,
                                  ctx->changed_pixels->xim->height,
@@ -105,15 +87,6 @@ _evas_software_x11_region_push_hook_call(void *data)
         eina_spinlock_take(ctx->lock);
         evas_software_xlib_x_output_buffer_unref(ctx->changed_pixels, 0);
         eina_spinlock_release(ctx->lock);
-#else
-        ctx->region_push_hook.cb(ctx->region_push_hook.evas, ctx->x, ctx->y,
-                                 ctx->changed_pixels->xim->width,
-                                 ctx->changed_pixels->xim->height,
-                                 evas_software_xcb_output_buffer_data(ctx->changed_pixels, NULL));
-        eina_spinlock_take(ctx->lock);
-        evas_software_xcb_output_buffer_unref(ctx->changed_pixels, EINA_FALSE);
-        eina_spinlock_release(ctx->lock);
-#endif
      }
    free(ctx);
 }
@@ -133,84 +106,13 @@ evas_software_x11_region_push_hook_call(Outbuf *buf, int x, int y, void *out_buf
    ctx->y = y;
    ctx->region_push_hook.cb = buf->region_push_hook.cb;
    ctx->region_push_hook.evas = buf->region_push_hook.evas;
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
    ctx->changed_pixels = evas_software_xlib_x_output_buffer_ref(out_buf);
-#else
-   ctx->changed_pixels = evas_software_xcb_output_buffer_ref(out_buf);
-#endif
    ctx->buf = buf;
    ctx->lock = lock;
    ecore_main_loop_thread_safe_call_async(_evas_software_x11_region_push_hook_call,
                                           ctx);
 }
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
-
-/*
-static void *
-_output_egl_setup(int w, int h, int rot, Display *disp, Drawable draw,
-                  Visual *vis, Colormap cmap, int depth, int debug,
-                  int grayscale, int max_colors, Pixmap mask,
-                  int shape_dither, int destination_alpha)
-{
-   Render_Engine *re;
-   void *ptr;
-   int stride = 0;
-   
-   if (depth != 32) return NULL;
-   if (mask) return NULL;
-   if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
-   re->egl.disp = _egl_x_disp_get(disp);
-   if (!re->egl.disp)
-     {
-        free(re);
-        return NULL;
-     }
-   re->egl.config = _egl_x_disp_choose_config(re->egl.disp);
-   if (!re->egl.config)
-     {
-        _egl_x_disp_terminate(re->egl.disp);
-        free(re);
-        return NULL;
-     }
-   re->egl.surface = _egl_x_win_surf_new(re->egl.disp, draw, re->egl.config);
-   if (!re->egl.surface)
-     {
-        _egl_x_disp_terminate(re->egl.disp);
-        free(re);
-        return NULL;
-     }
-   ptr = _egl_x_surf_map(re->egl.disp, re->egl.surface, &stride);
-   if (!ptr)
-     {
-        _egl_x_win_surf_free(re->egl.disp, re->egl.surface);
-        _egl_x_disp_terminate(re->egl.disp);
-        free(re);
-        return NULL;
-     }
-   _egl_x_surf_unmap(re->egl.disp, re->egl.surface);
-   
-   re->ob = 
-     evas_software_egl_outbuf_setup_x(w, h, rot, OUTBUF_DEPTH_INHERIT, disp, 
-                                       draw, vis, cmap, depth, grayscale,
-                                       max_colors, mask, shape_dither,
-                                       destination_alpha);
-   
-   re->tb = evas_common_tilebuf_new(w, h);
-   if (!re->tb)
-     {
-       evas_software_xlib_outbuf_free(re->ob);
-       free(re);
-       return NULL;
-     }
-
-   evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
-   
-   return re;
-   debug = 0;
-}
-*/
-
 static void
 _output_egl_shutdown(Render_Engine *re)
 {
@@ -337,107 +239,14 @@ _output_swapbuf_setup(int w, int h, int rot, Display *disp, Drawable draw,
    free(re);
    return NULL;
 }
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-static void *
-_output_xcb_setup(int w, int h, int rot, xcb_connection_t *conn, 
-                  xcb_screen_t *screen, xcb_drawable_t draw, 
-                  xcb_visualtype_t *vis, xcb_colormap_t cmap, int depth,
-                  int debug, int grayscale, int max_colors, xcb_drawable_t mask,
-                  int shape_dither, int destination_alpha)
-{
-   Render_Engine *re;
-   Outbuf *ob;
-
-   if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
-
-   evas_software_xcb_init();
-   evas_software_xcb_color_init();
-   evas_software_xcb_outbuf_init();
-
-   ob = 
-     evas_software_xcb_outbuf_setup(w, h, rot, OUTBUF_DEPTH_INHERIT, conn,
-                                    screen, draw, vis, cmap, depth,
-                                    grayscale, max_colors, mask,
-                                    shape_dither, destination_alpha);
-   if (!ob) goto on_error;
-
-   /* for updates return 1 big buffer, but only use portions of it, also cache
-    * it and keepit around until an idle_flush */
-
-   /* disable for now - i am hunting down why some expedite tests are slower,
-    * as well as shaped stuff is broken and probable non-32bpp is broken as
-    * convert funcs dont do the right thing
-    *
-    */
-//   re->ob->onebuf = 1;
-
-   evas_software_xcb_outbuf_debug_set(ob, debug);
-
-   if (!evas_render_engine_software_generic_init(&re->generic, ob, NULL,
-                                                 evas_software_xcb_outbuf_rotation_get,
-                                                 evas_software_xcb_outbuf_reconfigure,
-                                                 NULL,
-                                                 NULL,
-                                                 evas_software_xcb_outbuf_new_region_for_update,
-                                                 evas_software_xcb_outbuf_push_updated_region,
-                                                 evas_software_xcb_outbuf_free_region_for_update,
-                                                 evas_software_xcb_outbuf_idle_flush,
-                                                 evas_software_xcb_outbuf_flush,
-                                                 NULL,
-                                                 evas_software_xcb_outbuf_free,
-                                                 w, h))
-     goto on_error;
-   return re;
-
- on_error:
-   if (ob) evas_software_xcb_outbuf_free(ob);
-   free(re);
-   return NULL;
-}
-#endif
 
 static void *
 _best_visual_get(int backend, void *connection, int screen)
 {
    if (!connection) return NULL;
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
    if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
      return DefaultVisual((Display *)connection, screen);
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-   if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
-     {
-        xcb_screen_iterator_t iter_screen;
-        xcb_depth_iterator_t iter_depth;
-        xcb_screen_t *s = NULL;
-
-        iter_screen = 
-          xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)connection));
-        for (; iter_screen.rem; --screen, xcb_screen_next(&iter_screen))
-          if (screen == 0)
-            {
-               s = iter_screen.data;
-               break;
-            }
-
-        iter_depth = xcb_screen_allowed_depths_iterator(s);
-        for (; iter_depth.rem; xcb_depth_next(&iter_depth))
-          {
-             xcb_visualtype_iterator_t iter_vis;
-
-             iter_vis = xcb_depth_visuals_iterator(iter_depth.data);
-             for (; iter_vis.rem; xcb_visualtype_next(&iter_vis))
-               {
-                  if (s->root_visual == iter_vis.data->visual_id)
-                    return iter_vis.data;
-               }
-          }
-     }
-#endif
 
    return NULL;
 }
@@ -447,30 +256,8 @@ _best_colormap_get(int backend, void *connection, int screen)
 {
    if (!connection) return 0;
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
    if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
      return DefaultColormap((Display *)connection, screen);
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-   if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
-     {
-        xcb_screen_iterator_t iter_screen;
-        xcb_screen_t *s = NULL;
-
-        iter_screen = 
-          xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)connection));
-        for (; iter_screen.rem; --screen, xcb_screen_next(&iter_screen))
-          if (screen == 0)
-            {
-               s = iter_screen.data;
-               break;
-            }
-
-        if (s) return s->default_colormap;
-     }
-#endif
-
    return 0;
 }
 
@@ -479,30 +266,8 @@ _best_depth_get(int backend, void *connection, int screen)
 {
    if (!connection) return 0;
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
    if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
      return DefaultDepth((Display *)connection, screen);
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-   if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
-     {
-        xcb_screen_iterator_t iter_screen;
-        xcb_screen_t *s = NULL;
-
-        iter_screen = 
-          xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)connection));
-        for (; iter_screen.rem; --screen, xcb_screen_next(&iter_screen))
-          if (screen == 0)
-            {
-               s = iter_screen.data;
-               break;
-            }
-
-        return s->root_depth;
-     }
-#endif
-
    return 0;
 }
 
@@ -565,7 +330,6 @@ eng_setup(Evas *eo_e, void *in)
         /* if we haven't initialized - init (automatic abort if already done) */
         evas_common_init();
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
         if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
           {
              static int try_swapbuf = -1;
@@ -607,26 +371,6 @@ eng_setup(Evas *eo_e, void *in)
              re->generic.ob->region_push_hook.cb = info->func.region_push_hook;
              re->generic.ob->region_push_hook.evas = eo_e;
           }
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-        if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
-          {
-             re = _output_xcb_setup(e->output.w, e->output.h,
-                                    info->info.rotation, info->info.connection,
-                                    info->info.screen, info->info.drawable,
-                                    info->info.visual, info->info.colormap,
-                                    info->info.depth, info->info.debug,
-                                    info->info.alloc_grayscale,
-                                    info->info.alloc_colors_max,
-                                    info->info.mask, info->info.shape_dither,
-                                    info->info.destination_alpha);
-             re->outbuf_alpha_get = evas_software_xcb_outbuf_alpha_get;
-             re->generic.ob->region_push_hook.cb = info->func.region_push_hook;
-             re->generic.ob->region_push_hook.evas = eo_e;
-          }
-#endif
-
         e->engine.data.output = re;
      }
    else
@@ -639,7 +383,6 @@ eng_setup(Evas *eo_e, void *in)
 
         _outbufs = eina_list_remove(_outbufs, re->generic.ob);
 
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
         if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
           {
              if (re->generic.outbuf_free == evas_software_xlib_swapbuf_free)
@@ -678,30 +421,6 @@ eng_setup(Evas *eo_e, void *in)
                   evas_software_xlib_outbuf_debug_set(ob, info->info.debug);
                }
           }
-#endif
-
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-        if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
-          {
-             ob =
-               evas_software_xcb_outbuf_setup(e->output.w, e->output.h,
-                                              info->info.rotation,
-                                              OUTBUF_DEPTH_INHERIT,
-                                              info->info.connection,
-                                              info->info.screen,
-                                              info->info.drawable,
-                                              info->info.visual,
-                                              info->info.colormap,
-                                              info->info.depth,
-                                              info->info.alloc_grayscale,
-                                              info->info.alloc_colors_max,
-                                              info->info.mask,
-                                              info->info.shape_dither,
-                                              info->info.destination_alpha);
-             evas_software_xcb_outbuf_debug_set(ob, info->info.debug);
-          }
-#endif
-
         if (ob)
           {
              evas_render_engine_software_generic_update(&re->generic, ob, e->output.w, e->output.h);
@@ -733,9 +452,7 @@ eng_output_free(void *data)
      {
         _outbufs = eina_list_remove(_outbufs, re->generic.ob);
         evas_render_engine_software_generic_clean(&re->generic);
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
         _output_egl_shutdown(re);
-#endif
         free(re);
      }
 
@@ -880,16 +597,11 @@ eng_image_native_set(void *data EINA_UNUSED, void *image, void *native)
 
    if (ns->type == EVAS_NATIVE_SURFACE_X11)
      {
-#ifdef BUILD_ENGINE_SOFTWARE_XLIB
         RGBA_Image *ret_im = NULL;
         ret_im = evas_xlib_image_dri_native_set(re->generic.ob, ie, ns);
         if (!ret_im) 
            ret_im = evas_xlib_image_native_set(re->generic.ob, ie, ns);
         return ret_im;
-#endif
-#ifdef BUILD_ENGINE_SOFTWARE_XCB
-        return evas_xcb_image_native_set(re->generic.ob, ie, ns);
-#endif
      }
    else if (ns->type == EVAS_NATIVE_SURFACE_TBM)
      {
index 2be0966..bf1222d 100644 (file)
@@ -4,19 +4,11 @@
 # include <sys/ipc.h>
 # include <sys/shm.h>
 
-# ifdef BUILD_ENGINE_SOFTWARE_XLIB
-#  include <X11/Xlib.h>
-#  include <X11/Xutil.h>
-#  include <X11/Xatom.h>
-#  include <X11/extensions/XShm.h>
-#  include <X11/Xresource.h> // xres - dpi
-# endif
-
-# ifdef BUILD_ENGINE_SOFTWARE_XCB
-#  include <xcb/xcb.h>
-#  include <xcb/shm.h>
-#  include <xcb/xcb_image.h>
-# endif
+# include <X11/Xlib.h>
+# include <X11/Xutil.h>
+# include <X11/Xatom.h>
+# include <X11/extensions/XShm.h>
+# include <X11/Xresource.h> // xres - dpi
 
 #include "../software_generic/Evas_Engine_Software_Generic.h"
 
@@ -60,7 +52,6 @@ struct _Outbuf
         Convert_Pal *pal;
         union 
           {
-# ifdef BUILD_ENGINE_SOFTWARE_XLIB
              struct 
                {
                   Display *disp;
@@ -73,22 +64,6 @@ struct _Outbuf
                   unsigned char swap : 1;
                   unsigned char bit_swap : 1;
                } xlib;
-# endif
-# ifdef BUILD_ENGINE_SOFTWARE_XCB
-             struct 
-               {
-                  xcb_connection_t *conn;
-                  xcb_screen_t *screen;
-                  xcb_window_t win;
-                  xcb_pixmap_t mask;
-                  xcb_visualtype_t *visual;
-                  xcb_colormap_t cmap;
-                  int depth, imdepth, shm;
-                  xcb_gcontext_t gc, gcm;
-                  unsigned char swap : 1;
-                  unsigned char bit_swap : 1;
-               } xcb;
-# endif
           } x11;
         struct 
           {
@@ -121,7 +96,6 @@ struct _Outbuf
 };
 
 void evas_software_xlib_x_init(void);
-void evas_software_xcb_init(void);
 
 void evas_software_x11_region_push_hook_call(Outbuf *buf, int x, int y, void *out_buf, Eina_Spinlock *lock);
 
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_buffer.c b/src/modules/evas/engines/software_x11/evas_xcb_buffer.c
deleted file mode 100644 (file)
index 6dbd579..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_xcb_buffer.h"
-
-/* local function prototypes */
-static void _xcbob_sync(xcb_connection_t *conn);
-static xcb_image_t *_xcbob_create_native(xcb_connection_t *conn, int w, int h, xcb_image_format_t format, uint8_t depth, void *base, uint32_t bytes, uint8_t *data);
-static xcb_format_t *_xcbob_find_format(const xcb_setup_t *setup, uint8_t depth);
-static xcb_visualtype_t *_xcbob_find_visual_by_id(xcb_screen_t *screen, xcb_visualid_t id);
-
-void 
-evas_software_xcb_write_mask_line(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y) 
-{
-   int x, bpl = 0;
-   DATA32 *src_ptr;
-   DATA8 *dst_ptr;
-
-   src_ptr = src;
-   dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
-   dst_ptr = dst_ptr + (bpl * y);
-   w -= 7;
-   if (buf->priv.x11.xcb.bit_swap)
-     {
-       for (x = 0; x < w; x += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[0])) >> 7) << 7) |
-              ((A_VAL(&(src_ptr[1])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[2])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[3])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[4])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[5])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[6])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[7])) >> 7) << 0);
-            src_ptr += 8;
-            dst_ptr++;
-         }
-     }
-   else
-     {
-       for (x = 0; x < w; x += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[0])) >> 7) << 0) |
-              ((A_VAL(&(src_ptr[1])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[2])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[3])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[4])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[5])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[6])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[7])) >> 7) << 7);
-            src_ptr += 8;
-            dst_ptr++;
-         }
-     }
-   w += 7;
-   for (; x < w; x ++)
-     {
-        xcb_image_put_pixel(xcbob->xim, x, y, A_VAL(src_ptr) >> 7);
-        src_ptr++;
-     }
-}
-
-void 
-evas_software_xcb_write_mask_line_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y) 
-{
-   int x, bpl = 0;
-   DATA32 *src_ptr;
-   DATA8 *dst_ptr;
-
-   src_ptr = src + w - 1;
-   dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
-   dst_ptr = dst_ptr + (bpl * y);
-   w -= 7;
-   if (buf->priv.x11.xcb.bit_swap)
-     {
-       for (x = 0; x < w; x += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[ 0])) >> 7) << 7) |
-              ((A_VAL(&(src_ptr[-1])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[-2])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[-3])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[-4])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[-5])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[-6])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[-7])) >> 7) << 0);
-            src_ptr -= 8;
-            dst_ptr++;
-         }
-     }
-   else
-     {
-       for (x = 0; x < w; x += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[ 0])) >> 7) << 0) |
-              ((A_VAL(&(src_ptr[-1])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[-2])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[-3])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[-4])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[-5])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[-6])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[-7])) >> 7) << 7);
-            src_ptr -= 8;
-            dst_ptr++;
-         }
-     }
-   w += 7;
-   for (; x < w; x ++)
-     {
-       xcb_image_put_pixel(xcbob->xim, x, y, A_VAL(src_ptr) >> 7);
-       src_ptr--;
-     }
-}
-
-void 
-evas_software_xcb_write_mask_line_vert(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w) 
-{
-   int yy, bpl = 0;
-   DATA32 *src_ptr;
-   DATA8 *dst_ptr;
-
-   src_ptr = src;
-   dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
-   dst_ptr = dst_ptr + (bpl * y);
-   h -= 7;
-   if (buf->priv.x11.xcb.bit_swap)
-     {
-       for (yy = 0; yy < h; yy += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[0 * w])) >> 7) << 7) |
-              ((A_VAL(&(src_ptr[1 * w])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[2 * w])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[3 * w])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[4 * w])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[5 * w])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[6 * w])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[7 * w])) >> 7) << 0);
-            src_ptr += 8 * w;
-            dst_ptr++;
-         }
-     }
-   else
-     {
-       for (yy = 0; yy < h; yy += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[0 * w])) >> 7) << 0) |
-              ((A_VAL(&(src_ptr[1 * w])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[2 * w])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[3 * w])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[4 * w])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[5 * w])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[6 * w])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[7 * w])) >> 7) << 7);
-            src_ptr += 8 * w;
-            dst_ptr++;
-         }
-     }
-   h += 7;
-   for (; yy < h; yy ++)
-     {
-       xcb_image_put_pixel(xcbob->xim, yy, y, A_VAL(src_ptr) >> 7);
-       src_ptr += w;
-     }
-}
-
-void 
-evas_software_xcb_write_mask_line_vert_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w) 
-{
-   int yy, bpl = 0;
-   DATA32 *src_ptr;
-   DATA8 *dst_ptr;
-
-   src_ptr = src + ((h - 1) * w);
-   dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
-   dst_ptr = dst_ptr + (bpl * y);
-   h -= 7;
-   if (buf->priv.x11.xcb.bit_swap)
-     {
-       for (yy = 0; yy < h; yy += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[ 0 * w])) >> 7) << 7) |
-              ((A_VAL(&(src_ptr[-1 * w])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[-2 * w])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[-3 * w])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[-4 * w])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[-5 * w])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[-6 * w])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[-7 * w])) >> 7) << 0);
-            src_ptr -= 8 * w;
-            dst_ptr++;
-         }
-     }
-   else
-     {
-       for (yy = 0; yy < h; yy += 8)
-         {
-            *dst_ptr =
-              ((A_VAL(&(src_ptr[ 0 * w])) >> 7) << 0) |
-              ((A_VAL(&(src_ptr[-1 * w])) >> 7) << 1) |
-              ((A_VAL(&(src_ptr[-2 * w])) >> 7) << 2) |
-              ((A_VAL(&(src_ptr[-3 * w])) >> 7) << 3) |
-              ((A_VAL(&(src_ptr[-4 * w])) >> 7) << 4) |
-              ((A_VAL(&(src_ptr[-5 * w])) >> 7) << 5) |
-              ((A_VAL(&(src_ptr[-6 * w])) >> 7) << 6) |
-              ((A_VAL(&(src_ptr[-7 * w])) >> 7) << 7);
-            src_ptr -= 8 * w;
-            dst_ptr++;
-         }
-     }
-   h += 7;
-   for (; yy < h; yy ++)
-     {
-       xcb_image_put_pixel(xcbob->xim, yy, y, A_VAL(src_ptr) >> 7);
-       src_ptr -= w;
-     }
-}
-
-Eina_Bool 
-evas_software_xcb_can_do_shm(xcb_connection_t *conn, xcb_screen_t *screen) 
-{
-   const xcb_query_extension_reply_t *reply;
-   static xcb_connection_t *cached_conn = NULL;
-   static int cached_result = 0;
-
-   if (conn == cached_conn) return cached_result;
-   cached_conn = conn;
-
-   reply = xcb_get_extension_data(conn, &xcb_shm_id);
-   if ((reply) && (reply->present)) 
-     {
-        xcb_visualtype_t *visual;
-        Xcb_Output_Buffer *xcbob = NULL;
-
-        visual = _xcbob_find_visual_by_id(screen, screen->root_visual);
-        xcbob = 
-          evas_software_xcb_output_buffer_new(conn, visual, screen->root_depth,
-                                              16, 16, 2, NULL);
-        if (!xcbob)
-          cached_result = 0;
-        else 
-          {
-             evas_software_xcb_output_buffer_unref(xcbob, EINA_TRUE);
-             cached_result = 1;
-          }
-     }
-   else
-     cached_result = 0;
-
-   return cached_result;
-}
-
-Xcb_Output_Buffer *
-evas_software_xcb_output_buffer_new(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, int try_shm, unsigned char *data) 
-{
-   Xcb_Output_Buffer *xcbob = NULL;
-
-   if (!(xcbob = calloc(1, sizeof(Xcb_Output_Buffer))))
-     return NULL;
-
-   xcbob->connection = conn;
-   xcbob->visual = vis;
-   xcbob->xim = NULL;
-   xcbob->shm_info = NULL;
-   xcbob->w = w;
-   xcbob->h = h;
-   xcbob->refcount = 1;
-
-   if (try_shm > 0) 
-     {
-        xcbob->shm_info = malloc(sizeof(xcb_shm_segment_info_t));
-        if (xcbob->shm_info) 
-          {
-             xcbob->shm_info->shmseg = xcb_generate_id(conn);
-             xcbob->xim = 
-               _xcbob_create_native(conn, w, h, XCB_IMAGE_FORMAT_Z_PIXMAP, 
-                                    depth, NULL, ~0, NULL);
-             if (xcbob->xim) 
-               {
-                  xcbob->shm_info->shmid = 
-                    shmget(IPC_PRIVATE, 
-                           xcbob->xim->stride * xcbob->xim->height, 
-                           (IPC_CREAT | 0600));
-                  if (xcbob->shm_info->shmid == (uint32_t)-1) 
-                    {
-                       xcb_image_destroy(xcbob->xim);
-                       free(xcbob->shm_info);
-                       free(xcbob);
-                       return NULL;
-                    }
-                  xcbob->shm_info->shmaddr = xcbob->xim->data = 
-                    shmat(xcbob->shm_info->shmid, 0, 0);
-                  if (xcbob->shm_info->shmaddr != ((void *)-1))
-                    {
-                       /* Sync only needed for testing */
-                       if (try_shm == 2) _xcbob_sync(conn);
-
-#if defined(LIBXEXT_VERSION_LOW)
-                       if (evas_common_frameq_enabled())
-                         xcb_grab_server(conn);
-#endif
-                       xcb_shm_attach(conn, xcbob->shm_info->shmseg, 
-                                      xcbob->shm_info->shmid, 0);
-#if defined(LIBXEXT_VERSION_LOW)
-                       if (evas_common_frameq_enabled()) 
-                         xcb_ungrab_server(conn);
-#endif
-                       if (try_shm == 2) _xcbob_sync(conn);
-
-                       xcbob->bpl = xcbob->xim->stride;
-                       xcbob->psize = (xcbob->bpl * xcbob->h);
-                       return xcbob;
-                    }
-                  shmdt(xcbob->shm_info->shmaddr);
-                  shmctl(xcbob->shm_info->shmid, IPC_RMID, 0);
-               }
-             if (xcbob->xim) xcb_image_destroy(xcbob->xim);
-             xcbob->xim = NULL;
-          }
-        if (xcbob->shm_info) free(xcbob->shm_info);
-        xcbob->shm_info = NULL;
-     }
-
-   if (try_shm > 1) return NULL;
-
-   /* no shm */
-   xcbob->xim = 
-     _xcbob_create_native(conn, w, h, XCB_IMAGE_FORMAT_Z_PIXMAP, 
-                          depth, NULL, ~0, NULL);
-   if (!xcbob->xim) 
-     {
-        free(xcbob);
-        return NULL;
-     }
-
-   xcbob->data = data;
-
-   if (!xcbob->xim->data) 
-     {
-        xcbob->xim->data = malloc(xcbob->xim->stride * xcbob->xim->height);
-        if (!xcbob->xim->data) 
-          {
-             xcb_image_destroy(xcbob->xim);
-             free(xcbob);
-             return NULL;
-          }
-     }
-   xcbob->bpl = xcbob->xim->stride;
-   xcbob->psize = (xcbob->bpl * xcbob->h);
-   return xcbob;
-}
-
-Xcb_Output_Buffer *
-evas_software_xcb_output_buffer_ref(Xcb_Output_Buffer *xcbob)
-{
-   if (xcbob->refcount == UINT_MAX)
-     return NULL;
-   xcbob->refcount++;
-   return xcbob;
-}
-
-void 
-evas_software_xcb_output_buffer_unref(Xcb_Output_Buffer *xcbob, Eina_Bool sync) 
-{
-   if (!xcbob->refcount)
-     return;
-   xcbob->refcount--;
-   if (xcbob->refcount)
-     return;
-   if (xcbob->shm_info) 
-     {
-        if (sync) _xcbob_sync(xcbob->connection);
-        xcb_shm_detach(xcbob->connection, xcbob->shm_info->shmseg);
-        xcb_image_destroy(xcbob->xim);
-        shmdt(xcbob->shm_info->shmaddr);
-        shmctl(xcbob->shm_info->shmid, IPC_RMID, 0);
-        free(xcbob->shm_info);
-     }
-   else 
-     {
-        if (xcbob->data) xcbob->xim->data = NULL;
-//        free(xcbob->xim->data);
-        xcb_image_destroy(xcbob->xim);
-     }
-   free(xcbob);
-}
-
-void 
-evas_software_xcb_output_buffer_paste(Xcb_Output_Buffer *xcbob, xcb_drawable_t drawable, xcb_gcontext_t gc, int x, int y, Eina_Bool sync) 
-{
-   if (xcbob->shm_info) 
-     {
-        xcb_image_shm_put(xcbob->connection, drawable, gc, xcbob->xim, 
-                          *xcbob->shm_info, 0, 0, x, y, xcbob->w, xcbob->h, 0);
-        if (sync) _xcbob_sync(xcbob->connection);
-     }
-   else 
-     xcb_image_put(xcbob->connection, drawable, gc, xcbob->xim, x, y, 0);
-}
-
-DATA8 *
-evas_software_xcb_output_buffer_data(Xcb_Output_Buffer *xcbob, int *bpl_ret) 
-{
-   if (bpl_ret) *bpl_ret = xcbob->xim->stride;
-   return (DATA8 *)xcbob->xim->data;
-}
-
-int 
-evas_software_xcb_output_buffer_depth(Xcb_Output_Buffer *xcbob) 
-{
-   return xcbob->xim->bpp;
-}
-
-int 
-evas_software_xcb_output_buffer_byte_order(Xcb_Output_Buffer *xcbob) 
-{
-   return xcbob->xim->byte_order;
-}
-
-int 
-evas_software_xcb_output_buffer_bit_order(Xcb_Output_Buffer *xcbob) 
-{
-   return xcbob->xim->bit_order;
-}
-
-/* local functions */
-static void 
-_xcbob_sync(xcb_connection_t *conn) 
-{
-   free(xcb_get_input_focus_reply(conn, 
-                                  xcb_get_input_focus_unchecked(conn), NULL));
-}
-
-static xcb_image_t *
-_xcbob_create_native(xcb_connection_t *conn, int w, int h, xcb_image_format_t format, uint8_t depth, void *base, uint32_t bytes, uint8_t *data) 
-{
-   static uint8_t dpth = 0;
-   static xcb_format_t *fmt = NULL;
-   const xcb_setup_t *setup;
-   xcb_image_format_t xif;
-
-   /* NB: We cannot use xcb_image_create_native as it only creates images 
-    * using MSB_FIRST, so this routine recreates that function and uses 
-    * the endian-ness of the server setup */
-   setup = xcb_get_setup(conn);
-   xif = format;
-
-   if ((xif == XCB_IMAGE_FORMAT_Z_PIXMAP) && (depth == 1))
-     xif = XCB_IMAGE_FORMAT_XY_PIXMAP;
-
-   if (dpth != depth) 
-     {
-        dpth = depth;
-        fmt = _xcbob_find_format(setup, depth);
-        if (!fmt) return 0;
-     }
-
-   switch (xif) 
-     {
-      case XCB_IMAGE_FORMAT_XY_BITMAP:
-        if (depth != 1) return 0;
-      case XCB_IMAGE_FORMAT_XY_PIXMAP:
-      case XCB_IMAGE_FORMAT_Z_PIXMAP:
-        return xcb_image_create(w, h, xif, 
-                                fmt->scanline_pad, 
-                                fmt->depth, fmt->bits_per_pixel, 
-                                setup->bitmap_format_scanline_unit, 
-                                setup->image_byte_order, 
-                                setup->bitmap_format_bit_order, 
-                                base, bytes, data);
-      default:
-        break;
-     }
-
-   return 0;
-}
-
-static xcb_format_t *
-_xcbob_find_format(const xcb_setup_t *setup, uint8_t depth) 
-{
-   xcb_format_t *fmt, *fmtend;
-
-   fmt = xcb_setup_pixmap_formats(setup);
-   fmtend = fmt + xcb_setup_pixmap_formats_length(setup);
-   for (; fmt != fmtend; ++fmt)
-     if (fmt->depth == depth) 
-       return fmt;
-
-   return 0;
-}
-
-static xcb_visualtype_t *
-_xcbob_find_visual_by_id(xcb_screen_t *screen, xcb_visualid_t id) 
-{
-   xcb_depth_iterator_t diter;
-   xcb_visualtype_iterator_t viter;
-
-   diter = xcb_screen_allowed_depths_iterator(screen);
-   for (; diter.rem; xcb_depth_next(&diter)) 
-     {
-        viter = xcb_depth_visuals_iterator(diter.data);
-        for (; viter.rem; xcb_visualtype_next(&viter)) 
-          {
-             if (viter.data->visual_id == id)
-               return viter.data;
-          }
-     }
-
-   return 0;
-}
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_buffer.h b/src/modules/evas/engines/software_x11/evas_xcb_buffer.h
deleted file mode 100644 (file)
index 6e73e5a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef EVAS_XCB_BUFFER_H
-# define EVAS_XCB_BUFFER_H
-
-# include "evas_engine.h"
-
-typedef struct _Xcb_Output_Buffer Xcb_Output_Buffer;
-struct _Xcb_Output_Buffer 
-{
-   xcb_connection_t *connection;
-   xcb_visualtype_t *visual;
-   xcb_image_t *xim;
-   xcb_shm_segment_info_t *shm_info;
-   unsigned char *data;
-   int w, h, bpl, psize;
-   unsigned int refcount;
-};
-
-void evas_software_xcb_write_mask_line(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y);
-void evas_software_xcb_write_mask_line_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y);
-void evas_software_xcb_write_mask_line_vert(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w);
-void evas_software_xcb_write_mask_line_vert_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w);
-Eina_Bool evas_software_xcb_can_do_shm(xcb_connection_t *conn, xcb_screen_t *screen);
-Xcb_Output_Buffer *evas_software_xcb_output_buffer_new(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, int try_shm, unsigned char *data);
-void evas_software_xcb_output_buffer_unref(Xcb_Output_Buffer *xcbob, Eina_Bool sync);
-Xcb_Output_Buffer *evas_software_xcb_output_buffer_ref(Xcb_Output_Buffer *xcbob);
-void evas_software_xcb_output_buffer_paste(Xcb_Output_Buffer *xcbob, xcb_drawable_t drawable, xcb_gcontext_t gc, int x, int y, Eina_Bool sync);
-DATA8 *evas_software_xcb_output_buffer_data(Xcb_Output_Buffer *xcbob, int *bpl_ret);
-int evas_software_xcb_output_buffer_depth(Xcb_Output_Buffer *xcbob);
-int evas_software_xcb_output_buffer_byte_order(Xcb_Output_Buffer *xcbob);
-int evas_software_xcb_output_buffer_bit_order(Xcb_Output_Buffer *xcbob);
-
-#endif
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_color.c b/src/modules/evas/engines/software_x11/evas_xcb_color.c
deleted file mode 100644 (file)
index 65c0516..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-#include "evas_common_private.h"
-
-#include "evas_engine.h"
-
-typedef struct _Convert_Pal_Priv Convert_Pal_Priv;
-
-struct _Convert_Pal_Priv
-{
-   xcb_connection_t *conn;
-   xcb_colormap_t    cmap;
-   xcb_visualtype_t *vis;
-};
-
-typedef DATA8 * (*Xcb_Func_Alloc_Colors) (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-
-static Xcb_Func_Alloc_Colors x_color_alloc[PAL_MODE_LAST + 1];
-static int                   x_color_count[PAL_MODE_LAST + 1];
-static Eina_List            *palettes = NULL;
-
-static DATA8 * x_color_alloc_rgb(int nr, int ng, int nb, xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_gray(int ng, xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-
-static DATA8 * x_color_alloc_rgb_332  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_rgb_666  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_rgb_232  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_rgb_222  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_rgb_221  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_rgb_121  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_rgb_111  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_gray_256 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_gray_64  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_gray_16  (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_gray_4   (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-static DATA8 * x_color_alloc_mono     (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
-
-static DATA8 *
-x_color_alloc_rgb(int               nr,
-                 int               ng,
-                 int               nb,
-                 xcb_connection_t *conn,
-                 xcb_colormap_t    cmap,
-                 xcb_visualtype_t *v)
-{
-   int    r, g, b, i;
-   DATA8 *color_lut;
-   int    sig_mask = 0;
-   int    delt = 0;
-
-   for (i = 0; i < v->bits_per_rgb_value; i++) sig_mask |= (0x1 << i);
-   sig_mask <<= (16 - v->bits_per_rgb_value);
-   i = 0;
-   color_lut = malloc((nr) * (ng) * (nb));
-   if (!color_lut) return NULL;
-   delt = 0x0101 * 3;
-   /* FIXME: remove the round-trip ? */
-   for (r = 0; r < (nr); r++)
-     {
-       for (g = 0; g < (ng); g++)
-         {
-            for (b = 0; b < (nb); b++)
-              {
-                 xcb_coloritem_t          xcl;
-                 xcb_coloritem_t          xcl_in;
-                 xcb_alloc_color_reply_t *rep;
-                 int                      val;
-                  int                      dr, dg, db;
-
-                  val = (int)(((r * 255) / ((nr) - 1)));
-                  val = (val << 8) | val;
-                 xcl.red = (uint16_t)(val);
-                 val = (int)(((g * 255) / ((ng) - 1)));
-                  val = (val << 8) | val;
-                 xcl.green = (uint16_t)(val);
-                 val = (int)(((b * 255) / ((nb) - 1)));
-                  val = (val << 8) | val;
-                 xcl.blue = (uint16_t)(val);
-                 xcl_in = xcl;
-                 rep = xcb_alloc_color_reply(conn,
-                                              xcb_alloc_color_unchecked(conn,
-                                                                        cmap,
-                                                                        xcl.red,
-                                                                        xcl.green,
-                                                                        xcl.blue),
-                                              0);
-                  dr = (int)xcl_in.red - (int)xcl.red;
-                  if (dr < 0) dr = -dr;
-                  dg = (int)xcl_in.green - (int)xcl.green;
-                  if (dg < 0) dg = -dg;
-                  db = (int)xcl_in.blue - (int)xcl.blue;
-                  if (db < 0) db = -db;
-/*
-                 printf("ASK [%i]: %04x %04x %04x = %04x %04x %04x | dif = %04x / %04x\n",
-                        ret,
-                        xcl_in.red, xcl_in.green, xcl_in.blue,
-                        xcl.red, xcl.green, xcl.blue,
-                        (dr + dg +db), delt);
- */
-
-                 /* TODO: XAllocColor tries to approach the color */
-                 /* in case the allocation fails */
-                 /* XCB does not that (i think). It should be done */
-                 /* So if rep == NULL, the other following tests */
-                 /* should be always satisfied */
-                 if ((!rep) ||
-                      ((dr + dg + db) > delt)
-                      /*
-                     ((xcl_in.red   & sig_mask) != (xcl.red   & sig_mask)) ||
-                     ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
-                     ((xcl_in.blue  & sig_mask) != (xcl.blue  & sig_mask))
-                      */
-                      )
-                   {
-                      uint32_t pixels[256];
-                      int      j;
-
-                      if (i > 0)
-                        {
-                           for (j = 0; j < i; j++)
-                             pixels[j] = (uint32_t)color_lut[j];
-                           xcb_free_colors(conn, cmap, 0, i, pixels);
-                        }
-                      free(color_lut);
-                      return NULL;
-                   }
-                 color_lut[i] = rep->pixel;
-                 i++;
-                 free(rep);
-              }
-         }
-     }
-   return color_lut;
-}
-
-static DATA8 *
-x_color_alloc_gray(int               ng,
-                  xcb_connection_t *conn,
-                  xcb_colormap_t    cmap,
-                  xcb_visualtype_t *v)
-{
-   int g, i;
-   DATA8 *color_lut;
-   int sig_mask = 0;
-
-   for (i = 0; i < v->bits_per_rgb_value; i++) sig_mask |= (0x1 << i);
-   sig_mask <<= (16 - v->bits_per_rgb_value);
-   i = 0;
-   color_lut = malloc(ng);
-   if (!color_lut) return NULL;
-   /* FIXME: remove the round-trip ? */
-   for (g = 0; g < (ng); g++)
-     {
-       xcb_coloritem_t          xcl;
-       xcb_coloritem_t          xcl_in;
-       int                      val;
-       xcb_alloc_color_reply_t *rep;
-
-       val = (int)(((g * 255) / ((ng) - 1)));
-        val = (val << 8) | val;
-       xcl.red = (uint16_t)(val);
-       xcl.green = (uint16_t)(val);
-       xcl.blue = (uint16_t)(val);
-       xcl_in = xcl;
-       rep = xcb_alloc_color_reply(conn,
-                                    xcb_alloc_color_unchecked(conn,
-                                                              cmap,
-                                                              xcl.red,
-                                                              xcl.green,
-                                                              xcl.blue),
-                                    0);
-       /* FIXME: XAllocColor tries to approach the color */
-       /* in case the allocation fails */
-       /* XCB does not that (i think). It should be done */
-       /* So if rep == NULL, the other following tests */
-       /* should be always satisfied */
-       if ((!rep) ||
-           ((xcl_in.red   & sig_mask) != (xcl.red   & sig_mask)) ||
-           ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
-           ((xcl_in.blue  & sig_mask) != (xcl.blue  & sig_mask)))
-         {
-            uint32_t pixels[256];
-            int      j;
-
-            if (i > 0)
-              {
-                 for (j = 0; j < i; j++)
-                   pixels[j] = (uint32_t) color_lut[j];
-                 xcb_free_colors(conn, cmap, 0, i, pixels);
-              }
-            free(color_lut);
-            return NULL;
-         }
-       color_lut[i] = rep->pixel;
-       i++;
-       free(rep);
-     }
-   return color_lut;
-}
-
-static DATA8 *
-x_color_alloc_rgb_332(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(8, 8, 4, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_rgb_666(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(6, 6, 6, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_rgb_232(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(4, 8, 4, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_rgb_222(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(4, 4, 4, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_rgb_221(xcb_connection_t *conn,
-                      xcb_colormap_t    cmap,
-                      xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(4, 4, 2, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_rgb_121(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(2, 4, 2, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_rgb_111(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_rgb(2, 2, 2, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_gray_256(xcb_connection_t *conn,
-                      xcb_colormap_t    cmap,
-                      xcb_visualtype_t *v)
-{
-   return x_color_alloc_gray(256, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_gray_64(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_gray(64, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_gray_16(xcb_connection_t *conn,
-                     xcb_colormap_t    cmap,
-                     xcb_visualtype_t *v)
-{
-   return x_color_alloc_gray(32, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_gray_4(xcb_connection_t *conn,
-                    xcb_colormap_t    cmap,
-                    xcb_visualtype_t *v)
-{
-   return x_color_alloc_gray(16, conn, cmap, v);
-}
-
-static DATA8 *
-x_color_alloc_mono(xcb_connection_t *conn,
-                  xcb_colormap_t    cmap,
-                  xcb_visualtype_t *v)
-{
-   return x_color_alloc_gray(2, conn, cmap, v);
-}
-
-void
-evas_software_xcb_color_init(void)
-{
-   static int initialised = 0;
-
-   if (initialised) return;
-   x_color_alloc[PAL_MODE_NONE]    = NULL;
-   x_color_count[PAL_MODE_NONE]    = 0;
-
-   x_color_alloc[PAL_MODE_MONO]    = x_color_alloc_mono;
-   x_color_count[PAL_MODE_MONO]    = 2;
-
-   x_color_alloc[PAL_MODE_GRAY4]   = x_color_alloc_gray_4;
-   x_color_count[PAL_MODE_GRAY4]   = 4;
-
-   x_color_alloc[PAL_MODE_GRAY16]  = x_color_alloc_gray_16;
-   x_color_count[PAL_MODE_GRAY16]  = 16;
-
-   x_color_alloc[PAL_MODE_GRAY64]  = x_color_alloc_gray_64;
-   x_color_count[PAL_MODE_GRAY64]  = 64;
-
-   x_color_alloc[PAL_MODE_GRAY256] = x_color_alloc_gray_256;
-   x_color_count[PAL_MODE_GRAY256] = 256;
-
-   x_color_alloc[PAL_MODE_RGB111]  = x_color_alloc_rgb_111;
-   x_color_count[PAL_MODE_RGB111]  = 2 * 2 * 2;
-
-   x_color_alloc[PAL_MODE_RGB121]  = x_color_alloc_rgb_121;
-   x_color_count[PAL_MODE_RGB121]  = 2 * 4 * 2;
-
-   x_color_alloc[PAL_MODE_RGB221]  = x_color_alloc_rgb_221;
-   x_color_count[PAL_MODE_RGB221]  = 4 * 4 * 2;
-
-   x_color_alloc[PAL_MODE_RGB222]  = x_color_alloc_rgb_222;
-   x_color_count[PAL_MODE_RGB222]  = 4 * 4 * 4;
-
-   x_color_alloc[PAL_MODE_RGB232]  = x_color_alloc_rgb_232;
-   x_color_count[PAL_MODE_RGB232]  = 4 * 8 * 4;
-
-   x_color_alloc[PAL_MODE_RGB666]  = x_color_alloc_rgb_666;
-   x_color_count[PAL_MODE_RGB666]  = 6 * 6 * 6;
-
-   x_color_alloc[PAL_MODE_RGB332]  = x_color_alloc_rgb_332;
-   x_color_count[PAL_MODE_RGB332]  = 8 * 8 * 4;
-
-   x_color_alloc[PAL_MODE_LAST]    = NULL;
-   x_color_count[PAL_MODE_LAST]    = 0;
-   initialised = 1;
-}
-
-Convert_Pal *
-evas_software_xcb_color_allocate(xcb_connection_t   *conn,
-                                  xcb_colormap_t      cmap,
-                                  xcb_visualtype_t   *vis,
-                                  Convert_Pal_Mode    colors)
-{
-   Convert_Pal_Priv *palpriv;
-   Convert_Pal      *pal;
-   Convert_Pal_Mode  c;
-   Eina_List        *l;
-
-/*   printf("ALLOC cmap=%i vis=%p\n", cmap, vis);*/
-   EINA_LIST_FOREACH(palettes, l, pal)
-     {
-       palpriv = pal->data;
-       if ((conn == palpriv->conn) &&
-           (vis  == palpriv->vis)  &&
-           (cmap == palpriv->cmap))
-         {
-            pal->references++;
-            return pal;
-         }
-     }
-   pal = calloc(1, sizeof(struct _Convert_Pal));
-   if (!pal) return NULL;
-   for (c = colors; c > PAL_MODE_NONE; c--)
-     {
-       if (x_color_alloc[c])
-         {
-/*          printf("TRY PAL %i\n", c);*/
-            pal->lookup = (x_color_alloc[c])(conn, cmap, vis);
-            if (pal->lookup) break;
-         }
-     }
-   pal->references = 1;
-   pal->colors = c;
-   pal->count = x_color_count[c];
-   palpriv = calloc(1, sizeof(Convert_Pal_Priv));
-   pal->data = palpriv;
-   if (!palpriv)
-     {
-       if (pal->lookup) free(pal->lookup);
-       free(pal);
-       return NULL;
-     }
-   palpriv->conn = conn;
-   palpriv->vis = vis;
-   palpriv->cmap = cmap;
-   if (pal->colors == PAL_MODE_NONE)
-     {
-       if (pal->lookup) free(pal->lookup);
-       free(pal);
-       return NULL;
-     }
-   palettes = eina_list_append(palettes, pal);
-   return pal;
-}
-
-void
-evas_software_xcb_color_deallocate(xcb_connection_t *conn,
-                                    xcb_colormap_t    cmap,
-                                    xcb_visualtype_t *vis EINA_UNUSED,
-                                    Convert_Pal      *pal)
-{
-   uint32_t pixels[256];
-   int      j;
-
-   pal->references--;
-   if (pal->references > 0) return;
-   if (pal->lookup)
-     {
-       for(j = 0; j < pal->count; j++)
-         pixels[j] = (uint32_t) pal->lookup[j];
-       xcb_free_colors(conn, cmap, 0, pal->count, pixels);
-       free(pal->lookup);
-     }
-   free(pal->data);
-   palettes = eina_list_remove(palettes, pal);
-   free(pal);
-}
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_color.h b/src/modules/evas/engines/software_x11/evas_xcb_color.h
deleted file mode 100644 (file)
index 7dcaeaf..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef EVAS_XCB_COLOR_H
-# define EVAS_XCB_COLOR_H
-
-# include "evas_engine.h"
-
-void evas_software_xcb_color_init(void);
-Convert_Pal *evas_software_xcb_color_allocate(xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *vis, Convert_Pal_Mode colors);
-void evas_software_xcb_color_deallocate(xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *vis, Convert_Pal *pal);
-
-#endif
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_image.c b/src/modules/evas/engines/software_x11/evas_xcb_image.c
deleted file mode 100644 (file)
index 3794cb9..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "evas_common_private.h"
-#include "evas_xcb_image.h"
-
-static void 
-_evas_xcb_image_update(void *image, int x, int y, int w, int h)
-{
-   RGBA_Image *im = image;
-   Native *n;
-
-   n = im->native.data;
-
-   if (ecore_x_image_get(n->ns_data.x11.exim, n->ns_data.x11.pixmap, 0, 0, x, y, w, h))
-     {
-        char *pix;
-        int bpl, rows, bpp;
-
-        pix = ecore_x_image_data_get(n->ns_data.x11.exim, &bpl, &rows, &bpp);
-        if (!ecore_x_image_is_argb32_get(n->ns_data.x11.exim))
-          {
-             Ecore_X_Colormap colormap;
-
-             if (!im->image.data)
-               im->image.data = (DATA32 *)malloc(im->cache_entry.w * im->cache_entry.h * sizeof(DATA32));
-             colormap = ecore_x_default_colormap_get(ecore_x_display_get(), ecore_x_default_screen_get());
-             ecore_x_image_to_argb_convert(pix, bpp, bpl, colormap, n->ns_data.x11.visual,
-                                           x, y, w, h, im->image.data, 
-                                           (w * sizeof(int)), 0, 0);
-          }
-        else
-          im->image.data = (DATA32 *)pix;
-     }
-}
-
-static void 
-_native_cb_bind(void *image, int x, int y, int w, int h)
-{
-   RGBA_Image *im = image;
-   Native *n;
-
-   n = im->native.data;
-
-   if ((n) && (n->ns.type == EVAS_NATIVE_SURFACE_X11))
-     _evas_xcb_image_update(image, x, y, w, h);
-}
-
-static void 
-_native_cb_free(void *image)
-{
-   RGBA_Image *im;
-   Native *n;
-
-   im = image;
-   n = im->native.data;
-
-   if (n->ns_data.x11.exim)
-     {
-        ecore_x_image_free(n->ns_data.x11.exim);
-        n->ns_data.x11.exim = NULL;
-     }
-   n->ns_data.x11.visual = NULL;
-
-   im->native.data = NULL;
-   im->native.func.bind = NULL;
-   im->native.func.unbind = NULL;
-   im->native.func.free = NULL;
-   im->image.data = NULL;
-
-   free(n);
-}
-
-void *
-evas_xcb_image_native_set(void *data EINA_UNUSED, void *image, void *native)
-{
-   RGBA_Image *im;
-   Evas_Native_Surface *ns;
-
-   im = image;
-   ns = native;
-   if ((ns) && (ns->type == EVAS_NATIVE_SURFACE_X11))
-     {
-        Native *n = NULL;
-        Ecore_X_Image *exim = NULL;
-        Ecore_X_Visual *vis = NULL;
-        Ecore_X_Pixmap pm = 0;
-        int w, h, depth;
-
-        vis = ns->data.x11.visual;
-        pm = ns->data.x11.pixmap;
-
-        depth = ecore_x_drawable_depth_get(pm);
-        w = im->cache_entry.w;
-        h = im->cache_entry.h;
-
-        n = calloc(1, sizeof(Native));
-        if (!n) return NULL;
-
-        exim = ecore_x_image_new(w, h, vis, depth);
-        if (!exim)
-          {
-             ERR("Failed to create new Ecore_X_Image");
-             free(n);
-             return NULL;
-          }
-
-        memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface));
-        n->ns_data.x11.pixmap = pm;
-        n->ns_data.x11.visual = vis;
-        n->ns_data.x11.exim = exim;
-
-        im->native.data = n;
-        im->native.func.bind = _native_cb_bind;
-        im->native.func.unbind = NULL;
-        im->native.func.free = _native_cb_free;
-
-        _evas_xcb_image_update(image, 0, 0, w, h);
-     }
-
-   return im;
-}
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_image.h b/src/modules/evas/engines/software_x11/evas_xcb_image.h
deleted file mode 100644 (file)
index cfe6c63..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "evas_engine.h"
-#include <Ecore_X.h>
-#include "../software_generic/evas_native_common.h"
-
-void *evas_xcb_image_native_set(void *data, void *image, void *native);
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_main.c b/src/modules/evas/engines/software_x11/evas_xcb_main.c
deleted file mode 100644 (file)
index c255e79..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_engine.h"
-
-void 
-evas_software_xcb_init(void) 
-{
-
-}
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_outbuf.c b/src/modules/evas/engines/software_x11/evas_xcb_outbuf.c
deleted file mode 100644 (file)
index dd8af98..0000000
+++ /dev/null
@@ -1,1310 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <pixman.h>
-
-#ifdef EVAS_CSERVE2
-# include "evas_cs2_private.h"
-#endif
-#include "evas_common_private.h"
-#include "evas_macros.h"
-#include "evas_xcb_outbuf.h"
-#include "evas_xcb_buffer.h"
-#include "evas_xcb_color.h"
-
-/* local structures */
-typedef struct _Outbuf_Region Outbuf_Region;
-struct _Outbuf_Region 
-{
-   Xcb_Output_Buffer *xcbob, *mask;
-   int x, y, w, h;
-};
-
-/* local function prototypes */
-static Xcb_Output_Buffer *_find_xcbob(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, Eina_Bool shm, void *data);
-static void _unfind_xcbob(Xcb_Output_Buffer *xcbob, Eina_Bool sync);
-static void _clear_xcbob(Eina_Bool sync);
-static void _xcbob_sync(xcb_connection_t *conn);
-
-/* local variables */
-static Eina_List *_shmpool = NULL;
-static int _shmsize = 0;
-static int _shmlimit = 0;
-static const unsigned int _shmcountlimit = 32;
-
-static Eina_Spinlock shmpool_lock;
-#define SHMPOOL_LOCK() eina_spinlock_take(&shmpool_lock)
-#define SHMPOOL_UNLOCK() eina_spinlock_release(&shmpool_lock)
-
-void 
-evas_software_xcb_outbuf_init(void) 
-{
-   eina_spinlock_new(&shmpool_lock);
-}
-
-void 
-evas_software_xcb_outbuf_free(Outbuf *buf) 
-{
-   SHMPOOL_LOCK();
-   _shmlimit -= ((buf->w * buf->h * (buf->depth / 8)) * 3) / 2;
-   SHMPOOL_UNLOCK();
-   eina_spinlock_take(&(buf->priv.lock));
-   while (buf->priv.pending_writes) 
-     {
-        RGBA_Image *im = NULL;
-        Outbuf_Region *obr = NULL;
-
-        im = buf->priv.pending_writes->data;
-        buf->priv.pending_writes = 
-          eina_list_remove_list(buf->priv.pending_writes, 
-                                buf->priv.pending_writes);
-        obr = im->extended_info;
-#ifdef EVAS_CSERVE2
-        if (evas_cserve2_use_get())
-          evas_cache2_image_close(&im->cache_entry);
-        else
-#endif
-          evas_cache_image_drop(&im->cache_entry);
-
-        if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
-        if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
-        free(obr);
-     }
-   eina_spinlock_release(&(buf->priv.lock));
-
-   evas_software_xcb_outbuf_idle_flush(buf);
-   evas_software_xcb_outbuf_flush(buf, NULL, NULL, MODE_FULL);
-
-   if (buf->priv.x11.xcb.gc)
-     xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc);
-   if (buf->priv.x11.xcb.gcm)
-     xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gcm);
-   if (buf->priv.pal)
-     evas_software_xcb_color_deallocate(buf->priv.x11.xcb.conn, 
-                                        buf->priv.x11.xcb.cmap, 
-                                        buf->priv.x11.xcb.visual, 
-                                        buf->priv.pal);
-
-   eina_array_flush(&buf->priv.onebuf_regions);
-   eina_spinlock_free(&(buf->priv.lock));
-   free(buf);
-   _clear_xcbob(EINA_TRUE);
-}
-
-Outbuf *
-evas_software_xcb_outbuf_setup(int w, int h, int rot, Outbuf_Depth depth, xcb_connection_t *conn, xcb_screen_t *screen, xcb_drawable_t draw, xcb_visualtype_t *vis, xcb_colormap_t cmap, int xdepth, Eina_Bool grayscale, int max_colors, xcb_drawable_t mask, Eina_Bool shape_dither, Eina_Bool alpha) 
-{
-   Outbuf *buf = NULL;
-   Gfx_Func_Convert func_conv = NULL;
-   Xcb_Output_Buffer *xob;
-   const xcb_setup_t *setup;
-
-   if (!(buf = calloc(1, sizeof(Outbuf)))) 
-     return NULL;
-
-   if (xdepth < 15) rot = 0;
-   
-   setup = xcb_get_setup(conn);
-
-   buf->w = w;
-   buf->h = h;
-   buf->depth = depth;
-   buf->rot = rot;
-   buf->priv.x11.xcb.conn = conn;
-   buf->priv.x11.xcb.screen = screen;
-   buf->priv.x11.xcb.visual = vis;
-   buf->priv.x11.xcb.cmap = cmap;
-   buf->priv.x11.xcb.depth = xdepth;
-   buf->priv.mask_dither = shape_dither;
-   buf->priv.destination_alpha = alpha;
-   buf->priv.x11.xcb.shm = evas_software_xcb_can_do_shm(conn, screen);
-
-   xob = 
-     evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn, 
-                                         buf->priv.x11.xcb.visual, 
-                                         buf->priv.x11.xcb.depth, 
-                                         1, 1, buf->priv.x11.xcb.shm, 
-                                         NULL);
-   if (!xob) buf->priv.x11.xcb.shm = 0;
-   xob = 
-     evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn, 
-                                         buf->priv.x11.xcb.visual, 
-                                         buf->priv.x11.xcb.depth, 
-                                         1, 1, buf->priv.x11.xcb.shm, 
-                                         NULL);
-   if (!xob) 
-     {
-        free(buf);
-        return NULL;
-     }
-   buf->priv.x11.xcb.imdepth = evas_software_xcb_output_buffer_depth(xob);
-   evas_software_xcb_output_buffer_unref(xob, EINA_FALSE);
-   
-   eina_array_step_set(&buf->priv.onebuf_regions, sizeof(Eina_Array), 8);
-
-#ifdef WORDS_BIGENDIAN
-   if (setup->image_byte_order == XCB_IMAGE_ORDER_LSB_FIRST)
-     buf->priv.x11.xcb.swap = EINA_TRUE;
-#else
-   if (setup->image_byte_order == XCB_IMAGE_ORDER_MSB_FIRST)
-     buf->priv.x11.xcb.swap = EINA_TRUE;
-#endif
-   if (setup->bitmap_format_bit_order == XCB_IMAGE_ORDER_MSB_FIRST)
-     buf->priv.x11.xcb.bit_swap = EINA_TRUE;
-
-   if (((vis->_class == XCB_VISUAL_CLASS_TRUE_COLOR) || 
-        (vis->_class == XCB_VISUAL_CLASS_DIRECT_COLOR)) && (xdepth > 8)) 
-     {
-        buf->priv.mask.r = (DATA32)vis->red_mask;
-        buf->priv.mask.g = (DATA32)vis->green_mask;
-        buf->priv.mask.b = (DATA32)vis->blue_mask;
-        if (buf->priv.x11.xcb.swap) 
-          {
-             SWAP32(buf->priv.mask.r);
-             SWAP32(buf->priv.mask.g);
-             SWAP32(buf->priv.mask.b);
-          }
-     }
-   else if ((vis->_class == XCB_VISUAL_CLASS_PSEUDO_COLOR) || 
-            (vis->_class == XCB_VISUAL_CLASS_STATIC_COLOR) || 
-            (vis->_class == XCB_VISUAL_CLASS_GRAY_SCALE) || 
-            (vis->_class == XCB_VISUAL_CLASS_STATIC_GRAY) || 
-            (xdepth <= 8)) 
-     {
-        Convert_Pal_Mode pm = PAL_MODE_RGB332;
-
-        if ((vis->_class == XCB_VISUAL_CLASS_GRAY_SCALE) || 
-            (vis->_class == XCB_VISUAL_CLASS_STATIC_GRAY))
-          grayscale = EINA_TRUE;
-        if (grayscale) 
-          {
-             if (max_colors >= 256)
-               pm = PAL_MODE_GRAY256;
-             else if (max_colors >= 64)
-               pm = PAL_MODE_GRAY64;
-             else if (max_colors >= 16)
-               pm = PAL_MODE_GRAY16;
-             else if (max_colors >= 4)
-               pm = PAL_MODE_GRAY4;
-             else
-               pm = PAL_MODE_MONO;
-          }
-        else 
-          {
-             if (max_colors >= 256)
-               pm = PAL_MODE_RGB332;
-             else if (max_colors >= 216)
-               pm = PAL_MODE_RGB666;
-             else if (max_colors >= 128)
-               pm = PAL_MODE_RGB232;
-             else if (max_colors >= 64)
-               pm = PAL_MODE_RGB222;
-             else if (max_colors >= 32)
-               pm = PAL_MODE_RGB221;
-             else if (max_colors >= 16)
-               pm = PAL_MODE_RGB121;
-             else if (max_colors >= 8)
-               pm = PAL_MODE_RGB111;
-             else if (max_colors >= 4)
-               pm = PAL_MODE_GRAY4;
-             else
-               pm = PAL_MODE_MONO;
-          }
-        /* FIXME: Only allocate once per display & colormap */
-        buf->priv.pal = 
-          evas_software_xcb_color_allocate(conn, cmap, vis, pm);
-        if (!buf->priv.pal) 
-          {
-             free(buf);
-             return NULL;
-          }
-     }
-   if ((buf->rot == 0) || (buf->rot == 180))
-     {
-        w = buf->w;
-        h = buf->h;
-     }
-   else if ((buf->rot == 90) || (buf->rot == 270)) 
-     {
-        w = buf->h;
-        h = buf->w;
-     }
-
-   if (buf->priv.pal) 
-     {
-        func_conv = 
-          evas_common_convert_func_get(0, w, h, xdepth, 
-                                       buf->priv.mask.r, 
-                                       buf->priv.mask.g, 
-                                       buf->priv.mask.b, 
-                                       buf->priv.pal->colors, buf->rot);
-     }
-   else 
-     {
-        func_conv = 
-          evas_common_convert_func_get(0, w, h, xdepth, 
-                                       buf->priv.mask.r, 
-                                       buf->priv.mask.g, 
-                                       buf->priv.mask.b, 
-                                       PAL_MODE_NONE, buf->rot);
-     }
-   if (!func_conv) 
-     {
-        ERR("XCB Engine"
-            " {"
-            "  At depth         %i:"
-            "  RGB format mask: %08x, %08x, %08x"
-            "  Palette mode:    %i"
-            "  Not supported by any compiled in converters!"
-            " }", buf->priv.x11.xcb.depth, buf->priv.mask.r,
-            buf->priv.mask.g, buf->priv.mask.b,
-            buf->priv.pal ? (int)buf->priv.pal->colors : -1);
-     }
-
-   evas_software_xcb_outbuf_drawable_set(buf, draw);
-   evas_software_xcb_outbuf_mask_set(buf, mask);
-   eina_spinlock_new(&(buf->priv.lock));
-
-   SHMPOOL_LOCK();
-   _shmlimit += ((buf->w * buf->h * (buf->depth / 8)) * 3) / 2;
-   SHMPOOL_UNLOCK();
-   return buf;
-}
-
-void *
-evas_software_xcb_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch) 
-{
-   RGBA_Image *im = NULL;
-   Outbuf_Region *obr = NULL;
-   Eina_Bool use_shm = EINA_TRUE;
-   Eina_Bool alpha = EINA_FALSE;
-   int bpl = 0;
-
-   eina_spinlock_take(&(buf->priv.lock));
-   if ((buf->onebuf) && (buf->priv.x11.xcb.shm)) 
-     {
-        Eina_Rectangle *rect;
-
-        RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, buf->w, buf->h);
-
-        if (!(obr = calloc(1, sizeof(Outbuf_Region))))
-          {
-             eina_spinlock_release(&(buf->priv.lock));
-             return NULL;
-          }
-
-        if (!(rect = eina_rectangle_new(x, y, w, h))) 
-          {
-             free(obr);
-             eina_spinlock_release(&(buf->priv.lock));
-             return NULL;
-          }
-
-        if ((eina_array_push(&buf->priv.onebuf_regions, rect)) &&
-            (buf->priv.onebuf))
-          {
-             if (cx) *cx = x;
-             if (cy) *cy = y;
-             if (cw) *cw = w;
-             if (ch) *ch = h;
-             if (!buf->priv.synced) 
-               {
-                  _xcbob_sync(buf->priv.x11.xcb.conn);
-                  buf->priv.synced = EINA_TRUE;
-               }
-             free(obr);
-             eina_spinlock_release(&(buf->priv.lock));
-             return buf->priv.onebuf;
-          }
-        obr->x = 0;
-        obr->y = 0;
-        obr->w = buf->w;
-        obr->h = buf->h;
-        if (cx) *cx = x;
-        if (cy) *cy = y;
-        if (cw) *cw = w;
-        if (ch) *ch = h;
-
-        alpha = ((buf->priv.x11.xcb.mask) || (buf->priv.destination_alpha));
-        use_shm = buf->priv.x11.xcb.shm;
-
-        if ((buf->rot == 0) &&
-            (buf->priv.x11.xcb.imdepth == 32) &&
-            (buf->priv.mask.r == 0xff0000) &&
-            (buf->priv.mask.g == 0x00ff00) &&
-            (buf->priv.mask.b == 0x0000ff))
-          {
-             obr->xcbob = 
-               evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn, 
-                                                   buf->priv.x11.xcb.visual, 
-                                                   buf->priv.x11.xcb.depth, 
-                                                   buf->w, buf->h, use_shm, 
-                                                   NULL);
-             if (!obr->xcbob) 
-               {
-                  free(obr);
-                  eina_spinlock_release(&(buf->priv.lock));
-                  return NULL;
-               }
-#ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               {
-                  im = 
-                    (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(), 
-                                                         buf->w, buf->h, 
-                                                         (DATA32 *)evas_software_xcb_output_buffer_data(obr->xcbob, &bpl), 
-                                                         alpha, EVAS_COLORSPACE_ARGB8888);
-               }
-             else
-#endif
-               {
-                  im = 
-                    (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(), 
-                                                        buf->w, buf->h, 
-                                                        (DATA32 *)evas_software_xcb_output_buffer_data(obr->xcbob, &bpl), 
-                                                        alpha, EVAS_COLORSPACE_ARGB8888);
-               }
-
-             if (!im) 
-               {
-                  evas_software_xcb_output_buffer_unref(obr->xcbob, EINA_FALSE);
-                  free(obr);
-                  eina_spinlock_release(&(buf->priv.lock));
-                  return NULL;
-               }
-             im->extended_info = obr;
-             if (buf->priv.x11.xcb.mask) 
-               {
-                  obr->mask = 
-                    evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn, 
-                                                        buf->priv.x11.xcb.visual, 
-                                                        1, buf->w, buf->h, 
-                                                        use_shm, NULL);
-               }
-          }
-        else 
-          {
-             int bw = 0, bh = 0;
-
-#ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               {
-                  im = 
-                    (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
-               }
-             else
-#endif
-               {
-                  im = 
-                    (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
-               }
-
-             if (!im) 
-               {
-                  free(obr);
-                  eina_spinlock_release(&(buf->priv.lock));
-                  return NULL;
-               }
-             im->cache_entry.flags.alpha |= (alpha ? 1 : 0);
-#ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               evas_cache2_image_surface_alloc(&im->cache_entry, buf->w, buf->h);
-             else
-#endif
-               evas_cache_image_surface_alloc(&im->cache_entry, buf->w, buf->h);
-
-             im->extended_info = obr;
-             if ((buf->rot == 0) || (buf->rot == 180)) 
-               {
-                  bw = buf->w;
-                  bh = buf->h;
-               }
-             else if ((buf->rot == 90) || (buf->rot == 270)) 
-               {
-                  bw = buf->h;
-                  bh = buf->w;
-               }
-             obr->xcbob = 
-               evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn, 
-                                                   buf->priv.x11.xcb.visual, 
-                                                   buf->priv.x11.xcb.depth, 
-                                                   bw, bh, use_shm, NULL);
-             if (!obr->xcbob) 
-               {
-#ifdef EVAS_CSERVE2
-                  if (evas_cserve2_use_get())
-                    evas_cache2_image_close(&im->cache_entry);
-                  else
-#endif
-                    evas_cache_image_drop(&im->cache_entry);
-
-                  free(obr);
-                  eina_spinlock_release(&(buf->priv.lock));
-                  return NULL;
-               }
-             if (buf->priv.x11.xcb.mask) 
-               {
-                  obr->mask = 
-                    evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn, 
-                                                        buf->priv.x11.xcb.visual, 
-                                                        1, bw, bh, use_shm, 
-                                                        NULL);
-               }
-          }
-        /* FIXME: We should be able to remove this memset. */
-        if ((alpha) && (im->image.data)) 
-          {
-             /* FIXME: Faster memset */
-//             memset(im->image.data, 0, (w * h * sizeof(DATA32)));
-          }
-        buf->priv.onebuf = im;
-        eina_spinlock_release(&(buf->priv.lock));
-        return im;
-     }
-
-   if (!(obr = calloc(1, sizeof(Outbuf_Region))))
-     {
-        eina_spinlock_release(&(buf->priv.lock));
-        return NULL;
-     }
-
-   obr->x = x;
-   obr->y = y;
-   obr->w = w;
-   obr->h = h;
-   if (cx) *cx = 0;
-   if (cy) *cy = 0;
-   if (cw) *cw = w;
-   if (ch) *ch = h;
-
-   use_shm = buf->priv.x11.xcb.shm;
-   alpha = ((buf->priv.x11.xcb.mask) || (buf->priv.destination_alpha));
-   if ((buf->rot == 0) &&
-       (buf->priv.x11.xcb.imdepth == 32) &&
-       (buf->priv.mask.r == 0xff0000) && 
-       (buf->priv.mask.g == 0x00ff00) &&
-       (buf->priv.mask.b == 0x0000ff)) 
-     {
-        obr->xcbob = 
-          _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual, 
-                      buf->priv.x11.xcb.depth, w, h, use_shm, NULL);
-        if (!obr->xcbob) 
-          {
-             free(obr);
-             eina_spinlock_release(&(buf->priv.lock));
-             return NULL;
-          }
-#ifdef EVAS_CSERVE2
-        if (evas_cserve2_use_get())
-          {
-             im = 
-               (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(), 
-                                                   w, h, 
-                                                   (DATA32 *)evas_software_xcb_output_buffer_data(obr->xcbob, &bpl), 
-                                                   alpha, EVAS_COLORSPACE_ARGB8888);
-          }
-        else
-#endif
-          {
-             im = 
-               (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(), 
-                                                   w, h, 
-                                                   (DATA32 *)evas_software_xcb_output_buffer_data(obr->xcbob, &bpl), 
-                                                   alpha, EVAS_COLORSPACE_ARGB8888);
-          }
-
-        if (!im) 
-          {
-             _unfind_xcbob(obr->xcbob, EINA_FALSE);
-             free(obr);
-             eina_spinlock_release(&(buf->priv.lock));
-             return NULL;
-          }
-        im->extended_info = obr;
-        if (buf->priv.x11.xcb.mask) 
-          {
-             obr->mask = 
-               _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual, 
-                           1, w, h, use_shm, NULL);
-          }
-     }
-   else 
-     {
-        int bw = 0, bh = 0;
-
-#ifdef EVAS_CSERVE2
-        if (evas_cserve2_use_get())
-          {
-             im = 
-               (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
-          }
-        else
-#endif
-          {
-             im = 
-               (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
-          }
-
-        if (!im) 
-          {
-             free(obr);
-             eina_spinlock_release(&(buf->priv.lock));
-             return NULL;
-          }
-        im->cache_entry.flags.alpha |= (alpha ? 1 : 0);
-#ifdef EVAS_CSERVE2
-        if (evas_cserve2_use_get())
-          evas_cache2_image_surface_alloc(&im->cache_entry, w, h);
-        else
-#endif
-          evas_cache_image_surface_alloc(&im->cache_entry, w, h);
-
-        im->extended_info = obr;
-        if ((buf->rot == 0) || (buf->rot == 180)) 
-          {
-             bw = w;
-             bh = h;
-          }
-        else if ((buf->rot == 90) || (buf->rot == 270)) 
-          {
-             bw = h;
-             bh = w;
-          }
-        obr->xcbob = 
-          _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual, 
-                      buf->priv.x11.xcb.depth, bw, bh, use_shm, NULL);
-        if (!obr->xcbob) 
-          {
-#ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               evas_cache2_image_close(&im->cache_entry);
-             else
-#endif
-               evas_cache_image_drop(&im->cache_entry);
-             free(obr);
-             eina_spinlock_release(&(buf->priv.lock));
-             return NULL;
-          }
-        if (buf->priv.x11.xcb.mask) 
-          {
-             obr->mask = 
-               _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual, 1, 
-                           bw, bh, use_shm, NULL);
-          }
-     }
-   /* FIXME: We should be able to remove this memset. */
-   if (((buf->priv.x11.xcb.mask) || (buf->priv.destination_alpha)) && 
-       (im->image.data)) 
-     {
-        /* FIXME: Faster memset */
-//        memset(im->image.data, 0, (w * h * sizeof(DATA32)));
-     }
-
-   buf->priv.pending_writes = eina_list_append(buf->priv.pending_writes, im);
-
-   eina_spinlock_release(&(buf->priv.lock));
-   return im;
-}
-
-void 
-evas_software_xcb_outbuf_free_region_for_update(Outbuf *buf EINA_UNUSED, RGBA_Image *update EINA_UNUSED) 
-{
-   /* NOOP: Cleaned up on flush */
-}
-
-void 
-evas_software_xcb_outbuf_flush(Outbuf *buf, Tilebuf_Rect *surface_damage EINA_UNUSED, Tilebuf_Rect *buffer_damage EINA_UNUSED, Evas_Render_Mode render_mode EINA_UNUSED)
-{
-   Eina_List *l = NULL;
-   RGBA_Image *im = NULL;
-   Outbuf_Region *obr = NULL;
-
-   eina_spinlock_take(&(buf->priv.lock));
-   if ((buf->priv.onebuf) && (eina_array_count(&buf->priv.onebuf_regions)))
-     {
-        Eina_Array_Iterator it;
-        Eina_Rectangle *rect;
-        unsigned int i = 0;
-        pixman_region16_t tmpr;
-
-        im = buf->priv.onebuf;
-        obr = im->extended_info;
-        pixman_region_init(&tmpr);
-        EINA_ARRAY_ITER_NEXT(&buf->priv.onebuf_regions, i, rect, it)
-          {
-             Eina_Rectangle xr = { 0, 0, 0, 0 };
-
-             /* rect = buf->priv.onebuf_regions->data; */
-             /* buf->priv.onebuf_regions =  */
-             /*   eina_list_remove_list(buf->priv.onebuf_regions,  */
-             /*                         buf->priv.onebuf_regions); */
-             if (buf->rot == 0)
-               {
-                  xr.x = rect->x;
-                  xr.y = rect->y;
-                  xr.w = rect->w;
-                  xr.h = rect->h;
-               }
-             else if (buf->rot == 90)
-               {
-                  xr.x = rect->y;
-                  xr.y = buf->w - rect->x - rect->w;
-                  xr.w = rect->h;
-                  xr.h = rect->w;
-               }
-             else if (buf->rot == 180)
-               {
-                  xr.x = buf->w - rect->x - rect->w;
-                  xr.y = buf->h - rect->y - rect->h;
-                  xr.w = rect->w;
-                  xr.h = rect->h;
-               }
-             else if (buf->rot == 270)
-               {
-                  xr.x = buf->h - rect->y - rect->h;
-                  xr.y = rect->x;
-                  xr.w = rect->h;
-                  xr.h = rect->w;
-               }
-             pixman_region_union_rect(&tmpr, &tmpr, xr.x, xr.y, xr.w, xr.h);
-             if (buf->priv.debug)
-               evas_software_xcb_outbuf_debug_show(buf, buf->priv.x11.xcb.win, 
-                                                   xr.x, xr.y, xr.w, xr.h);
-             eina_rectangle_free(rect);
-          }
-        eina_array_clean(&buf->priv.onebuf_regions);
-        xcb_set_clip_rectangles(buf->priv.x11.xcb.conn, 
-                                XCB_CLIP_ORDERING_YX_BANDED, 
-                                buf->priv.x11.xcb.gc, 0, 0, 
-                                pixman_region_n_rects(&tmpr), 
-                                (const xcb_rectangle_t *)pixman_region_rectangles(&tmpr, NULL));
-        if (obr->xcbob)
-          {
-             evas_software_x11_region_push_hook_call(buf, 0, 0, obr->xcbob,
-                                                     &shmpool_lock);
-             evas_software_xcb_output_buffer_paste(obr->xcbob,
-                                                   buf->priv.x11.xcb.win,
-                                                   buf->priv.x11.xcb.gc, 0, 0, 0);
-          }
-        if (obr->mask) 
-          {
-             xcb_set_clip_rectangles(buf->priv.x11.xcb.conn, 
-                                     XCB_CLIP_ORDERING_YX_BANDED, 
-                                     buf->priv.x11.xcb.gcm, 0, 0, 
-                                     pixman_region_n_rects(&tmpr), 
-                                     (const xcb_rectangle_t *)pixman_region_rectangles(&tmpr, NULL));
-             evas_software_xcb_output_buffer_paste(obr->mask, 
-                                                   buf->priv.x11.xcb.mask, 
-                                                   buf->priv.x11.xcb.gcm, 
-                                                   0, 0, 0);
-          }
-        pixman_region_fini(&tmpr);
-        buf->priv.synced = EINA_FALSE;
-     }
-   else 
-     {
-#if 1
-        _xcbob_sync(buf->priv.x11.xcb.conn);
-        EINA_LIST_FOREACH(buf->priv.pending_writes, l, im) 
-          {
-             obr = im->extended_info;
-             if (buf->priv.debug)
-               evas_software_xcb_outbuf_debug_show(buf, buf->priv.x11.xcb.win, 
-                                                   obr->x, obr->y, obr->w, obr->h);
-             if (obr->xcbob)
-               {
-                  evas_software_x11_region_push_hook_call(buf, obr->x, obr->y,
-                                                          obr->xcbob,
-                                                          &shmpool_lock);
-                  evas_software_xcb_output_buffer_paste(obr->xcbob,
-                                                        buf->priv.x11.xcb.win,
-                                                        buf->priv.x11.xcb.gc,
-                                                        obr->x, obr->y, 0);
-               }
-             if (obr->mask)
-               evas_software_xcb_output_buffer_paste(obr->mask, 
-                                                     buf->priv.x11.xcb.mask, 
-                                                     buf->priv.x11.xcb.gcm, 
-                                                     obr->x, obr->y, 0);
-          }
-        while (buf->priv.prev_pending_writes) 
-          {
-             im = buf->priv.prev_pending_writes->data;
-             buf->priv.prev_pending_writes = 
-               eina_list_remove_list(buf->priv.prev_pending_writes, 
-                                     buf->priv.prev_pending_writes);
-             obr = im->extended_info;
-# ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               evas_cache2_image_close(&im->cache_entry);
-             else
-# endif
-               evas_cache_image_drop(&im->cache_entry);
-
-             if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
-             if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
-             free(obr);
-          }
-        buf->priv.prev_pending_writes = buf->priv.pending_writes;
-        buf->priv.pending_writes = NULL;
-        xcb_flush(buf->priv.x11.xcb.conn);
-#else
-        /* FIXME: Async Push Disabled */
-
-        _xcbob_sync(buf->priv.x11.xcb.conn);
-        while (buf->priv.pending_writes) 
-          {
-             im = eina_list_data_get(buf->priv.pending_writes);
-             buf->priv.pending_writes = 
-               eina_list_remove_list(buf->priv.pending_writes, 
-                                     buf->priv.pending_writes);
-             obr = im->extended_info;
-# ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               evas_cache2_image_close(&im->cache_entry);
-             else
-# endif
-               evas_cache_image_drop(&im->cache_entry);
-             if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
-             if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
-             free(obr);
-# ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               evas_cache2_image_close(&im->cache_entry);
-             else
-# endif
-               evas_cache_image_drop(&im->cache_entry);
-          }
-#endif
-     }
-   eina_spinlock_release(&(buf->priv.lock));
-   evas_common_cpu_end_opt();
-}
-
-void 
-evas_software_xcb_outbuf_idle_flush(Outbuf *buf) 
-{
-   eina_spinlock_release(&(buf->priv.lock));
-   if (buf->priv.onebuf) 
-     {
-        RGBA_Image *im;
-        Outbuf_Region *obr;
-
-        im = buf->priv.onebuf;
-        buf->priv.onebuf = NULL;
-        obr = im->extended_info;
-        if (obr->xcbob)
-          {
-             SHMPOOL_LOCK();
-             evas_software_xcb_output_buffer_unref(obr->xcbob, EINA_FALSE);
-             SHMPOOL_UNLOCK();
-          }
-        if (obr->mask)
-          {
-             SHMPOOL_LOCK();
-             evas_software_xcb_output_buffer_unref(obr->mask, EINA_FALSE);
-             SHMPOOL_UNLOCK();
-          }
-        free(obr);
-# ifdef EVAS_CSERVE2
-        if (evas_cserve2_use_get())
-          evas_cache2_image_close(&im->cache_entry);
-        else
-# endif
-          evas_cache_image_drop(&im->cache_entry);
-     }
-   else 
-     {
-        if (buf->priv.prev_pending_writes)
-          _xcbob_sync(buf->priv.x11.xcb.conn);
-        while (buf->priv.prev_pending_writes) 
-          {
-             RGBA_Image *im;
-             Outbuf_Region *obr;
-
-             im = buf->priv.prev_pending_writes->data;
-             buf->priv.prev_pending_writes = 
-               eina_list_remove_list(buf->priv.prev_pending_writes, 
-                                     buf->priv.prev_pending_writes);
-             obr = im->extended_info;
-# ifdef EVAS_CSERVE2
-             if (evas_cserve2_use_get())
-               evas_cache2_image_close(&im->cache_entry);
-             else
-# endif
-               evas_cache_image_drop(&im->cache_entry);
-             if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
-             if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
-             free(obr);
-          }
-        _clear_xcbob(EINA_FALSE);
-     }
-   eina_spinlock_release(&(buf->priv.lock));
-}
-
-void 
-evas_software_xcb_outbuf_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h) 
-{
-   Gfx_Func_Convert func_conv = NULL;
-   Outbuf_Region *obr = NULL;
-   DATA32 *src_data = NULL;
-   unsigned char *data = NULL;
-   int bpl = 0, yy = 0;
-   int bw = 0, bh = 0;
-
-   eina_spinlock_release(&(buf->priv.lock));
-   obr = update->extended_info;
-   if (!obr->xcbob)
-     {
-        eina_spinlock_release(&(buf->priv.lock));
-        return;
-     }
-
-   if ((buf->rot == 0) || (buf->rot == 180)) 
-     {
-        bw = w;
-        bh = h;
-     }
-   else if ((buf->rot == 90) || (buf->rot == 270)) 
-     {
-        bw = h;
-        bh = w;
-     }
-   if (buf->priv.pal) 
-     {
-        func_conv = 
-          evas_common_convert_func_get(0, bw, bh, buf->depth, buf->priv.mask.r, 
-                                       buf->priv.mask.g, buf->priv.mask.b, 
-                                       buf->priv.pal->colors, buf->rot);
-     }
-   else 
-     {
-        func_conv = 
-          evas_common_convert_func_get(0, bw, bh, buf->depth, buf->priv.mask.r, 
-                                       buf->priv.mask.g, buf->priv.mask.b, 
-                                       PAL_MODE_NONE, buf->rot);
-     }
-   if (!func_conv)
-     {
-        eina_spinlock_release(&(buf->priv.lock));
-        return;
-     }
-
-   if (!(data = evas_software_xcb_output_buffer_data(obr->xcbob, &bpl)))
-     {
-        eina_spinlock_release(&(buf->priv.lock));
-        return;
-     }
-   if (!(src_data = update->image.data))
-     {
-        eina_spinlock_release(&(buf->priv.lock));
-        return;
-     }
-   if (buf->rot == 0) 
-     {
-        obr->x = x;
-        obr->y = y;
-        obr->w = w;
-        obr->h = h;
-     }
-   else if (buf->rot == 90) 
-     {
-        obr->x = y;
-        obr->y = (buf->w - x - w);
-        obr->w = h;
-        obr->h = w;
-     }
-   else if (buf->rot == 180) 
-     {
-        obr->x = (buf->w - x - w);
-        obr->y = (buf->h - y - h);
-        obr->w = w;
-        obr->h = h;
-     }
-   else if (buf->rot == 270) 
-     {
-        obr->x = (buf->h - y - h);
-        obr->y = x;
-        obr->w = h;
-        obr->h = w;
-     }
-   if (buf->onebuf)
-     {
-        src_data += x + (y * update->cache_entry.w);
-        data += (bpl * obr->y) + (obr->x * (buf->depth / 8));
-     }
-   if (data != (unsigned char *)src_data) 
-     {
-        if (buf->priv.pal)
-          {
-             func_conv(src_data, data, update->cache_entry.w - w, 
-                       bpl - obr->w, obr->w, obr->h, x, y,
-                       buf->priv.pal->lookup);
-          }
-        else
-          {
-             int pixelb = evas_software_xcb_output_buffer_depth(obr->xcbob) / 8;
-             int run;
-             int dstjump;
-             
-             if (pixelb == 3)
-               {
-                  run = obr->w * pixelb;
-                  dstjump = bpl - run;
-               }
-             else if ((pixelb == 2) || (pixelb == 4))
-               {
-                  run = obr->w;
-                  dstjump = (bpl / pixelb) - run;
-               }
-             else
-               {
-                  run = obr->w;
-                  dstjump = bpl - run;
-               }
-             func_conv(src_data, data, update->cache_entry.w - w, dstjump,
-                       obr->w, obr->h, x, y, NULL);
-          }
-     }
-#if 1
-#else
-   /* Async Push */
-   if (!((buf->priv.onebuf) && (eina_array_count(&buf->priv.onebuf_regions))))
-     {
-        if (buf->priv.debug)
-          evas_software_xcb_outbuf_debug_show(buf, buf->priv.x11.xcb.win, 
-                                              obr->x, obr->y, obr->w, obr->h);
-        if (obr->xcbob)
-          {
-             evas_software_x11_region_push_hook_call(buf, obr->x, obr->y,
-                                                     obr->xcbob,
-                                                     &shmpool_lock);
-             evas_software_xcb_output_buffer_paste(obr->xcbob,
-                                                   buf->priv.x11.xcb.win,
-                                                   buf->priv.x11.xcb.gc,
-                                                   obr->x, obr->y, 0);
-          }
-     }
-#endif
-   if (obr->mask) 
-     {
-        if (buf->rot == 0) 
-          {
-             for (yy = 0; yy < obr->h; yy++)
-               evas_software_xcb_write_mask_line(buf, obr->mask, 
-                                                 src_data + (yy * obr->w), 
-                                                 obr->w, yy);
-          }
-        else if (buf->rot == 90) 
-          {
-             for (yy = 0; yy < obr->h; yy++)
-               evas_software_xcb_write_mask_line_vert(buf, obr->mask, 
-                                                      src_data + yy, 
-                                                      h, (obr->h - yy - 1), w);
-          }
-        else if (buf->rot == 180) 
-          {
-             for (yy = 0; yy < obr->h; yy++)
-               evas_software_xcb_write_mask_line_rev(buf, obr->mask, 
-                                                     src_data + (yy * obr->w), 
-                                                     obr->w, (obr->h - yy - 1));
-          }
-        else if (buf->rot == 270) 
-          {
-             for (yy = 0; yy < obr->h; yy++)
-               evas_software_xcb_write_mask_line_vert_rev(buf, obr->mask, 
-                                                          src_data + yy, 
-                                                          h, yy, w);
-          }
-#if 1
-#else
-        /* Async Push */
-        if (!((buf->priv.onebuf) && 
-              (eina_array_count(&buf->priv.onebuf_regions))))
-          evas_software_xcb_output_buffer_paste(obr->mask, 
-                                                buf->priv.x11.xcb.mask, 
-                                                buf->priv.x11.xcb.gcm, 
-                                                obr->x, obr->y, 0);
-#endif
-     }
-#if 1
-#else
-   xcb_flush(buf->priv.x11.xcb.conn);
-#endif
-   eina_spinlock_release(&(buf->priv.lock));
-}
-
-void 
-evas_software_xcb_outbuf_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth) 
-{
-   if ((w == buf->w) && (h == buf->h) && (rot == buf->rot) && 
-       (depth == buf->depth)) return;
-   SHMPOOL_LOCK();
-   _shmlimit -= ((buf->w * buf->h * (buf->depth / 8)) * 3) / 2;
-   buf->w = w;
-   buf->h = h;
-   buf->rot = rot;
-   _shmlimit += ((buf->w * buf->h * (buf->depth / 8)) * 3) / 2;
-   SHMPOOL_UNLOCK();
-   evas_software_xcb_outbuf_idle_flush(buf);
-}
-
-int 
-evas_software_xcb_outbuf_width_get(Outbuf *buf) 
-{
-   return buf->w;
-}
-
-int 
-evas_software_xcb_outbuf_height_get(Outbuf *buf) 
-{
-   return buf->h;
-}
-
-Outbuf_Depth 
-evas_software_xcb_outbuf_depth_get(Outbuf *buf) 
-{
-   return buf->depth;
-}
-
-void 
-evas_software_xcb_outbuf_drawable_set(Outbuf *buf, xcb_drawable_t drawable) 
-{
-   if (buf->priv.x11.xcb.win == drawable) return;
-   if (buf->priv.x11.xcb.gc) 
-     {
-        xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc);
-        buf->priv.x11.xcb.gc = 0;
-     }
-   buf->priv.x11.xcb.win = drawable;
-   buf->priv.x11.xcb.gc = xcb_generate_id(buf->priv.x11.xcb.conn);
-   xcb_create_gc(buf->priv.x11.xcb.conn, 
-                 buf->priv.x11.xcb.gc, buf->priv.x11.xcb.win, 0, NULL);
-}
-
-void 
-evas_software_xcb_outbuf_mask_set(Outbuf *buf, xcb_drawable_t mask) 
-{
-   if (buf->priv.x11.xcb.mask == mask) return;
-   if (buf->priv.x11.xcb.gcm) 
-     {
-        xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gcm);
-        buf->priv.x11.xcb.gcm = 0;
-     }
-   buf->priv.x11.xcb.mask = mask;
-   if (buf->priv.x11.xcb.mask) 
-     {
-        buf->priv.x11.xcb.gcm = xcb_generate_id(buf->priv.x11.xcb.conn);
-        xcb_create_gc(buf->priv.x11.xcb.conn, 
-                      buf->priv.x11.xcb.gcm, buf->priv.x11.xcb.mask, 0, NULL);
-     }
-}
-
-int 
-evas_software_xcb_outbuf_rotation_get(Outbuf *buf) 
-{
-   return buf->rot;
-}
-
-void 
-evas_software_xcb_outbuf_rotation_set(Outbuf *buf, int rotation) 
-{
-   buf->rot = rotation;
-}
-
-Eina_Bool 
-evas_software_xcb_outbuf_alpha_get(Outbuf *buf) 
-{
-   return buf->priv.x11.xcb.mask;
-}
-
-void 
-evas_software_xcb_outbuf_debug_set(Outbuf *buf, Eina_Bool debug) 
-{
-   buf->priv.debug = debug;
-}
-
-void 
-evas_software_xcb_outbuf_debug_show(Outbuf *buf, xcb_drawable_t drawable, int x, int y, int w, int h) 
-{
-   int i;
-   xcb_screen_t *screen = NULL;
-   xcb_get_geometry_reply_t *geom;
-   xcb_drawable_t root;
-   xcb_screen_iterator_t si;
-
-   geom = 
-     xcb_get_geometry_reply(buf->priv.x11.xcb.conn, 
-                            xcb_get_geometry_unchecked(buf->priv.x11.xcb.conn, 
-                                                       drawable), 0);
-   root = geom->root;
-   free(geom);
-   geom = 
-     xcb_get_geometry_reply(buf->priv.x11.xcb.conn, 
-                            xcb_get_geometry_unchecked(buf->priv.x11.xcb.conn, 
-                                                       root), 0);
-
-   si = xcb_setup_roots_iterator((xcb_setup_t *)xcb_get_setup(buf->priv.x11.xcb.conn));
-   for (; si.rem; xcb_screen_next(&si))
-     {
-        if (si.data->root == geom->root)
-          {
-             screen = si.data;
-             break;
-          }
-     }
-   free(geom);
-
-   for (i = 0; i < 20; i++)
-     {
-       xcb_rectangle_t rect = { x, y, w, h};
-       uint32_t mask;
-       uint32_t value[2];
-
-       mask = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES;
-       value[0] = screen->black_pixel;
-       value[1] = XCB_EXPOSURES_NOT_ALLOWED;
-       xcb_change_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc, 
-                      mask, value);
-       xcb_poly_fill_rectangle(buf->priv.x11.xcb.conn, drawable, 
-                                buf->priv.x11.xcb.gc, 1, &rect);
-        _xcbob_sync(buf->priv.x11.xcb.conn);
-        _xcbob_sync(buf->priv.x11.xcb.conn);
-
-       mask = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES;
-       value[0] = screen->white_pixel;
-       value[1] = XCB_EXPOSURES_NOT_ALLOWED;
-       xcb_change_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc, 
-                      mask, value);
-       xcb_poly_fill_rectangle(buf->priv.x11.xcb.conn, drawable, 
-                                buf->priv.x11.xcb.gc, 1, &rect);
-        _xcbob_sync(buf->priv.x11.xcb.conn);
-        _xcbob_sync(buf->priv.x11.xcb.conn);
-     }
-}
-
-
-/* local functions */
-static Xcb_Output_Buffer *
-_find_xcbob(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, Eina_Bool shm, void *data) 
-{
-   Eina_List *l = NULL, *xl = NULL;
-   Xcb_Output_Buffer *xcbob = NULL, *xcbob2 = NULL;
-   int lbytes = 0, bpp = 0, sz = 0;
-   int fitness = 0x7fffffff;
-
-   if (!shm)
-     return evas_software_xcb_output_buffer_new(conn, vis, depth, w, h, 
-                                                shm, data);
-
-   if (depth > 1) 
-     {
-        bpp = (depth / 8);
-        if (bpp == 3) bpp = 4;
-        lbytes = ((((w * bpp) + 3) / 4) * 4);
-     }
-   else
-     lbytes = (((w + 63) / 64) * 8);
-
-   sz = (lbytes * h);
-   SHMPOOL_LOCK();
-   EINA_LIST_FOREACH(_shmpool, l, xcbob2) 
-     {
-        int szdif = 0;
-
-        if ((xcbob2->xim->depth != depth) || (xcbob2->visual != vis) || 
-            (xcbob2->connection != conn) || (xcbob2->w != w)) continue;
-        szdif = (xcbob2->psize - sz);
-        if (szdif < 0) continue;
-        if (szdif == 0) 
-          {
-             xcbob = xcbob2;
-             xl = l;
-             goto have_xcbob;
-          }
-        if (szdif < fitness) 
-          {
-             xcbob = xcbob2;
-             xl = l;
-             fitness = szdif;
-          }
-     }
-   if (
-       (fitness > (400 * 400)) ||
-       (!xcbob)
-      )
-     {
-        SHMPOOL_UNLOCK();
-        return evas_software_xcb_output_buffer_new(conn, vis, depth, 
-                                                   w, h, shm, data);
-     }
-
-have_xcbob:
-   _shmpool = eina_list_remove_list(_shmpool, xl);
-   xcbob->w = w;
-   xcbob->h = h;
-//   xcbob->bpl = lbytes;
-   xcbob->xim->width = xcbob->w;
-   xcbob->xim->height = xcbob->h;
-   xcbob->xim->stride = xcbob->bpl;
-   _shmsize -= (xcbob->psize * (xcbob->xim->depth / 8));
-   SHMPOOL_UNLOCK();
-   return xcbob;
-}
-
-static void 
-_unfind_xcbob(Xcb_Output_Buffer *xcbob, Eina_Bool sync) 
-{
-   if (xcbob->shm_info) 
-     {
-        SHMPOOL_LOCK();
-        _shmpool = eina_list_prepend(_shmpool, xcbob);
-        _shmsize += xcbob->psize * xcbob->xim->depth / 8;
-        while ((_shmsize > _shmlimit) || 
-               (eina_list_count(_shmpool) > _shmcountlimit))
-          {
-             Eina_List *xl = NULL;
-
-             if (!(xl = eina_list_last(_shmpool))) 
-               {
-                  _shmsize = 0;
-                  break;
-               }
-             xcbob = xl->data;
-             _shmpool = eina_list_remove_list(_shmpool, xl);
-             _shmsize -= xcbob->psize * xcbob->xim->depth / 8;
-             evas_software_xcb_output_buffer_unref(xcbob, sync);
-          }
-        SHMPOOL_UNLOCK();
-     }
-   else
-     {
-        SHMPOOL_LOCK();
-        evas_software_xcb_output_buffer_unref(xcbob, sync);
-        SHMPOOL_UNLOCK();
-     }
-}
-
-static void 
-_clear_xcbob(Eina_Bool sync) 
-{
-   SHMPOOL_LOCK();
-   while (_shmpool) 
-     {
-        Xcb_Output_Buffer *xcbob;
-        xcbob = _shmpool->data;
-        _shmpool = eina_list_remove_list(_shmpool, _shmpool);
-        evas_software_xcb_output_buffer_unref(xcbob, sync);
-     }
-   _shmsize = 0;
-   SHMPOOL_UNLOCK();
-}
-
-static void 
-_xcbob_sync(xcb_connection_t *conn) 
-{
-   free(xcb_get_input_focus_reply(conn, 
-                                  xcb_get_input_focus_unchecked(conn), NULL));
-}
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_outbuf.h b/src/modules/evas/engines/software_x11/evas_xcb_outbuf.h
deleted file mode 100644 (file)
index ccb266e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef EVAS_XCB_OUTBUF_H
-# define EVAS_XCB_OUTBUF_H
-
-# include "evas_engine.h"
-
-void evas_software_xcb_outbuf_init(void);
-void evas_software_xcb_outbuf_free(Outbuf *buf);
-Outbuf *evas_software_xcb_outbuf_setup(int w, int h, int rot, Outbuf_Depth depth, xcb_connection_t *conn, xcb_screen_t *screen, xcb_drawable_t draw, xcb_visualtype_t *vis, xcb_colormap_t cmap, int xdepth, Eina_Bool grayscale, int max_colors, xcb_drawable_t mask, Eina_Bool shape_dither, Eina_Bool alpha);
-void *evas_software_xcb_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
-void evas_software_xcb_outbuf_free_region_for_update(Outbuf *buf, RGBA_Image *update);
-void evas_software_xcb_outbuf_flush(Outbuf *buf, Tilebuf_Rect *surface_damage, Tilebuf_Rect *buffer_damage, Evas_Render_Mode render_mode);
-void evas_software_xcb_outbuf_idle_flush(Outbuf *buf);
-void evas_software_xcb_outbuf_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
-void evas_software_xcb_outbuf_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth);
-int evas_software_xcb_outbuf_width_get(Outbuf *buf);
-int evas_software_xcb_outbuf_height_get(Outbuf *buf);
-Outbuf_Depth evas_software_xcb_outbuf_depth_get(Outbuf *buf);
-void evas_software_xcb_outbuf_drawable_set(Outbuf *buf, xcb_drawable_t drawable);
-void evas_software_xcb_outbuf_mask_set(Outbuf *buf, xcb_drawable_t mask);
-int evas_software_xcb_outbuf_rotation_get(Outbuf *buf);
-void evas_software_xcb_outbuf_rotation_set(Outbuf *buf, int rotation);
-Eina_Bool evas_software_xcb_outbuf_alpha_get(Outbuf *buf);
-void evas_software_xcb_outbuf_debug_set(Outbuf *buf, Eina_Bool debug);
-void evas_software_xcb_outbuf_debug_show(Outbuf *buf, xcb_drawable_t drawable, int x, int y, int w, int h);
-
-#endif
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_xdefaults.c b/src/modules/evas/engines/software_x11/evas_xcb_xdefaults.c
deleted file mode 100644 (file)
index de0f599..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_xcb_xdefaults.h"
-#include <fnmatch.h>
-
-/* local function prototypes */
-static Eina_Bool _evas_xcb_xdefaults_glob_match(const char *str, const char *glob);
-
-/* local variables */
-static Eina_File *_evas_xcb_xdefaults_file = NULL;
-static char *_evas_xcb_xdefaults_data = NULL;
-
-void 
-_evas_xcb_xdefaults_init(void) 
-{
-   char buff[PATH_MAX];
-
-   snprintf(buff, sizeof(buff), "%s/.Xdefaults", getenv("HOME"));
-   if ((_evas_xcb_xdefaults_file = eina_file_open(buff, EINA_FALSE)))
-     {
-        eina_mmap_safety_enabled_set(EINA_TRUE);
-
-        _evas_xcb_xdefaults_data = 
-          eina_file_map_all(_evas_xcb_xdefaults_file, EINA_FILE_SEQUENTIAL);
-     }
-}
-
-void 
-_evas_xcb_xdefaults_shutdown(void) 
-{
-   if (!_evas_xcb_xdefaults_file) return;
-   if (_evas_xcb_xdefaults_data) 
-     eina_file_map_free(_evas_xcb_xdefaults_file, _evas_xcb_xdefaults_data);
-   if (_evas_xcb_xdefaults_file) eina_file_close(_evas_xcb_xdefaults_file);
-}
-
-char *
-_evas_xcb_xdefaults_string_get(const char *prog, const char *param) 
-{
-   char buff[1024], ret[1024];
-   char *str = NULL;
-   char **ea = NULL;
-   unsigned int count = 0, i = 0;
-
-   if ((!_evas_xcb_xdefaults_data) || (!_evas_xcb_xdefaults_file))
-     return NULL;
-
-   snprintf(buff, sizeof(buff), "*%s*.*%s*", prog, param);
-
-   str = _evas_xcb_xdefaults_data;
-   ea = eina_str_split_full(str, "\n", -1, &count);
-   for (i = 0; i < count; i++) 
-     {
-        if (_evas_xcb_xdefaults_glob_match(ea[i], buff)) 
-          sscanf(ea[i], "%*[^:]:%*[ ]%s", ret);
-     }
-   if ((ea) && (ea[0]))
-     {
-        free(ea[0]);
-        free(ea);
-     }
-
-   return strdup(ret);
-}
-
-int 
-_evas_xcb_xdefaults_int_get(const char *prog, const char *param) 
-{
-   char buff[1024];
-   char *str = NULL;
-   char **ea = NULL;
-   unsigned int count = 0, i = 0;
-   int ret = -1;
-
-   if ((!_evas_xcb_xdefaults_data) || (!_evas_xcb_xdefaults_file))
-     return 0;
-
-   snprintf(buff, sizeof(buff), "*%s*.*%s*", prog, param);
-
-   str = _evas_xcb_xdefaults_data;
-   ea = eina_str_split_full(str, "\n", -1, &count);
-   for (i = 0; i < count; i++) 
-     {
-        if (_evas_xcb_xdefaults_glob_match(ea[i], buff)) 
-          sscanf(ea[i], "%*[^:]:%*[ ]%d", &ret);
-     }
-   if ((ea) && (ea[0]))
-     {
-        free(ea[0]);
-        free(ea);
-     }
-
-   return ret;
-}
-
-/* local functions */
-static Eina_Bool 
-_evas_xcb_xdefaults_glob_match(const char *str, const char *glob) 
-{
-   if ((!str) || (!glob)) return EINA_FALSE;
-   if (glob[0] == 0) 
-     {
-        if (str[0] == 0) return EINA_TRUE;
-        return EINA_FALSE;
-     }
-   if (!strcmp(glob, "*")) return EINA_TRUE;
-   if (!fnmatch(glob, str, 0)) return EINA_TRUE;
-   return EINA_FALSE;
-}
diff --git a/src/modules/evas/engines/software_x11/evas_xcb_xdefaults.h b/src/modules/evas/engines/software_x11/evas_xcb_xdefaults.h
deleted file mode 100644 (file)
index c5f4ab8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef EVAS_XCB_XDEFAULTS_H
-# define EVAS_XCB_XDEFAULTS_H
-
-# include "evas_engine.h"
-
-void _evas_xcb_xdefaults_init(void);
-void _evas_xcb_xdefaults_shutdown(void);
-char *_evas_xcb_xdefaults_string_get(const char *prog, const char *param);
-int _evas_xcb_xdefaults_int_get(const char *prog, const char *param);
-
-#endif
index bb33374..bf7e57f 100644 (file)
@@ -11,7 +11,6 @@
  * with getting X on the server. */
 #undef HAVE_ECORE_X_XLIB
 
-/* TODO: change to HAVE_ECORE_X when xcb implementation is done */
 #ifdef HAVE_ECORE_X_XLIB
 
 #include <Ecore_X.h>
@@ -53,8 +52,6 @@ END_TEST
 
 void ecore_test_ecore_x(TCase *tc EINA_UNUSED)
 {
-
-/* TODO: change to HAVE_ECORE_X when xcb implementation is done */
 #ifdef HAVE_ECORE_X_XLIB
    tcase_add_test(tc, ecore_test_ecore_x_init);
    tcase_add_test(tc, ecore_test_ecore_x_bell);
diff --git a/src/utils/ecore/makekeys.c b/src/utils/ecore/makekeys.c
deleted file mode 100644 (file)
index 87b76c6..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-/* Portions of this code are Copyright 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <X11/keysymdef.h>
-
-#define TBLNUM 4000
-#define MIN_REHASH 15
-#define MATCHES 10
-
-typedef struct _Info Info;
-static struct _Info 
-{
-   char *name;
-   long unsigned int val;
-} info[TBLNUM];
-
-/* local function prototypes */
-static int _parseline(const char *buf, char *key, long unsigned int *val, char *prefix);
-
-/* local variables */
-static int ksnum = 0;
-
-int 
-main(int argc, char **argv) 
-{
-   int max_rehash = 0;
-   unsigned long sig;
-   int i = 0, j = 0, k = 0, l = 0, z = 0;
-   FILE *fptr;
-   char *name = NULL, c;
-   int first = 0, num_found = 0;
-   int best_max_rehash = 0, best_z = 0;
-   long unsigned int val;
-   char key[128], prefix[128];
-   char tab[TBLNUM];
-   unsigned short offsets[TBLNUM] = { 0 };
-   unsigned short indexes[TBLNUM] = { 0 };
-   long unsigned int values[TBLNUM] = { 0 };
-   char buf[1024];
-
-   for (l = 1; l < argc; l++) 
-     {
-        if (!(fptr = fopen(argv[l], "rb")))
-          {
-             fprintf(stderr, "Could not open %s\n", argv[l]);
-             continue;
-          }
-
-        while (fgets(buf, sizeof(buf), fptr)) 
-          {
-             if (!_parseline(buf, key, &val, prefix))
-               continue;
-
-             if (val == XK_VoidSymbol) val = 0;
-             if (val > 0x1fffffff) 
-               {
-                  fprintf(stderr, "Ignoring illegal keysym (%s %lx)\n", 
-                          key, val);
-                  continue;
-               }
-
-             if (!(name = malloc(strlen(prefix) + strlen(key) + 1))) 
-               {
-                  fprintf(stderr, "Makekeys: Out Of Memory !!\n");
-                  exit(EXIT_FAILURE);
-               }
-
-             sprintf(name, "%s%s", prefix, key);
-             info[ksnum].name = name;
-             info[ksnum].val = val;
-             ksnum++;
-             if (ksnum == TBLNUM) 
-               {
-                  fprintf(stderr, "Makekeys: Too Many Keysyms!!\n");
-                  exit(EXIT_FAILURE);
-               }
-          }
-
-        fclose(fptr);
-     }
-
-   printf("/* This file is generated from keysymdef.h. */\n");
-   printf("/* Do Not Edit !! */\n\n");
-
-   best_max_rehash = ksnum;
-   num_found = 0;
-   for (z = ksnum; z < TBLNUM; z++) 
-     {
-        max_rehash = 0;
-        for (name = tab, i = z; --i >= 0;) 
-          *name++ = 0;
-        for (i = 0; i < ksnum; i++) 
-          {
-             name = info[i].name;
-             sig = 0;
-             while ((c = *name++))
-               sig = (sig << 1) + c;
-             first = j = sig % z;
-             for (k = 0; tab[j]; k++) 
-               {
-                  j += (first + 1);
-                  if (j >= z) j -= z;
-                  if (j == first) goto next1;
-               }
-             tab[j] = 1;
-             if (k > max_rehash) max_rehash = k;
-          }
-        if (max_rehash < MIN_REHASH) 
-          {
-             if (max_rehash < best_max_rehash) 
-               {
-                  best_max_rehash = max_rehash;
-                  best_z = z;
-               }
-             num_found++;
-             if (num_found >= MATCHES)
-               break;
-          }
-next1: ;
-     }
-
-   z = best_z;
-   if (z == 0) 
-     {
-        fprintf(stderr, "Makekeys: Failed to find small enough hash !!\n"
-                "Try increasing TBLNUM in makekeys.c\n");
-        exit(EXIT_FAILURE);
-     }
-
-   printf("#ifdef NEED_KEYSYM_TABLE\n");
-   printf("const unsigned char _ecore_xcb_keytable[] = {\n");
-   printf("0,\n");
-   k = 1;
-   for (i = 0; i < ksnum; i++) 
-     {
-        name = info[i].name;
-        sig = 0;
-        while ((c = *name++))
-          sig = (sig << 1) + c;
-        first = j = sig % z;
-        while (offsets[j]) 
-          {
-             j += (first + 1);
-             if (j >= z) j -= z;
-          }
-        offsets[j] = k;
-        indexes[i] = k;
-        val = info[i].val;
-       printf("0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ",
-              (sig >> 8) & 0xff, sig & 0xff,
-              (val >> 24) & 0xff, (val >> 16) & 0xff,
-              (val >> 8) & 0xff, val & 0xff);
-        for (name = info[i].name, k += 7; (c = *name++); k++)
-          printf("'%c',", c);
-        printf((i == (ksnum - 1)) ? "0\n" : "0,\n");
-     }
-
-   printf("};\n\n");
-   printf("#define KTABLESIZE %d\n", z);
-   printf("#define KMAXHASH %d\n", (best_max_rehash + 1));
-   printf("\n");
-   printf("static const unsigned short hashString[KTABLESIZE] = {\n");
-
-   for (i = 0; i < z;) 
-     {
-        printf("0x%.4x", offsets[i]);
-        i++;
-        if (i == z) break;
-        printf((i & 7) ? ", " : ",\n");
-     }
-
-   printf("\n");
-   printf("};\n");
-   printf("#endif\n");
-
-   best_max_rehash = ksnum;
-   num_found = 0;
-   for (z = ksnum; z < TBLNUM; z++) 
-     {
-        max_rehash = 0;
-        for (name = tab, i = z; --i >= 0;) 
-          *name++ = 0;
-        for (i = 0; i < ksnum; i++) 
-          {
-             val = info[i].val;
-             first = j = val % z;
-             for (k = 0; tab[j]; k++) 
-               {
-                  if (values[j] == val) goto skip1;
-                  j += (first + 1);
-                  if (j >= z) j -= z;
-                  if (j == first) goto next2;
-               }
-             tab[j] = 1;
-             values[j] = val;
-             if (k > max_rehash) max_rehash = k;
-skip1: ;
-          }
-        if (max_rehash < MIN_REHASH) 
-          {
-             if (max_rehash < best_max_rehash) 
-               {
-                  best_max_rehash = max_rehash;
-                  best_z = z;
-               }
-             num_found++;
-             if (num_found >= MATCHES) break;
-          }
-next2: ;
-     }
-
-   z = best_z;
-   if (z == 0) 
-     {
-        fprintf(stderr, "Makekeys: Failed to find small enough hash !!\n"
-                "Try increasing TBLNUM in makekeys.c\n");
-        exit(EXIT_FAILURE);
-     }
-   for (i = z; --i >= 0;)
-     offsets[i] = 0;
-
-   for (i = 0; i < ksnum; i++) 
-     {
-        val = info[i].val;
-        first = j = val % z;
-        while (offsets[j]) 
-          {
-             if (values[j] == val) goto skip2;
-             j += (first + 1);
-             if (j >= z) j -= z;
-          }
-        offsets[j] = indexes[i] + 2;
-        values[j] = val;
-skip2: ;
-     }
-
-   printf("\n");
-   printf("#ifdef NEED_VTABLE\n");
-   printf("#define VTABLESIZE %d\n", z);
-   printf("#define VMAXHASH %d\n", best_max_rehash + 1);
-   printf("\n");
-   printf("static const unsigned short hashKeysym[VTABLESIZE] = {\n");
-   for (i = 0; i < z;) 
-     {
-        printf("0x%.4x", offsets[i]);
-        i++;
-        if (i == z) break;
-        printf((i & 7) ? ", " : ",\n");
-     }
-   printf("\n");
-   printf("};\n");
-   printf("#endif\n");
-
-   return 0;
-}
-
-/* local functions */
-static int 
-_parseline(const char *buf, char *key, long unsigned int *val, char *prefix) 
-{
-   int i = 0;
-   char alias[128];
-   char *tmp = NULL, *tmpa = NULL;
-
-   /* try to match XK_foo first */
-   i = sscanf(buf, "#define %127s 0x%lx", key, val);
-   if ((i == 2) && (tmp = strstr(key, "XK_")))
-     {
-        memcpy(prefix, key, (tmp - key));
-        prefix[tmp - key] = '\0';
-        tmp += 3;
-        memmove(key, tmp, strlen(tmp) + 1);
-        return 1;
-     }
-
-   /* try to match an alias */
-   i = sscanf(buf, "#define %127s %127s", key, alias);
-   if (((i == 2) && (tmp = strstr(key, "XK_"))) && 
-       (tmpa = strstr(alias, "XK_"))) 
-     {
-        memcpy(prefix, key, (tmp - key));
-        prefix[tmp - key] = '\0';
-        tmp += 3;
-        memmove(key, tmp, strlen(tmp) + 1);
-        memmove(tmpa, tmpa + 3, strlen(tmpa + 3) + 1);
-
-        for (i = ksnum - 1; i >= 0; i--) 
-          {
-             if (!strcmp(info[i].name, alias)) 
-               {
-                  *val = info[i].val;
-                  return 1;
-               }
-          }
-        fprintf(stderr, "Cannot find matching definition %s for keysym %s%s\n", 
-                alias, prefix, key);
-     }
-
-   return 0;
-}
diff --git a/src/utils/ecore/mkks.sh b/src/utils/ecore/mkks.sh
deleted file mode 100755 (executable)
index 6669242..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-cat $* | awk 'BEGIN { \
-    printf "/*\n * This file is generated from %s.  Do not edit.\n */\n", \
-          "$(INCLUDESRC)/keysymdef.h";\
-} \
-/^#define/ { \
-       len = length($2)-3; \
-       printf("{ \"%s\", %s },\n", substr($2,4,len), $3); \
-}'