[SVN's EFL Migration] ecore in SLP is merged with SVN r55371.
authorDaniel Juyung Seo <juyung.seo@samsung.com>
Mon, 13 Dec 2010 06:47:50 +0000 (15:47 +0900)
committerDaniel Juyung Seo <juyung.seo@samsung.com>
Mon, 13 Dec 2010 06:47:50 +0000 (15:47 +0900)
24 files changed:
COPYING-PLAIN [deleted file]
Makefile.am
configure.ac
ecore-job.pc.in [deleted file]
readme.slp2 [deleted file]
src/lib/ecore/ecore_main.c
src/lib/ecore_con/ecore_con.c
src/lib/ecore_con/ecore_con_ares.c
src/lib/ecore_con/ecore_con_ssl.c
src/lib/ecore_evas/ecore_evas.c
src/lib/ecore_evas/ecore_evas_cocoa.c
src/lib/ecore_evas/ecore_evas_private.h
src/lib/ecore_evas/ecore_evas_sdl.c
src/lib/ecore_evas/ecore_evas_win32.c
src/lib/ecore_evas/ecore_evas_wince.c
src/lib/ecore_evas/ecore_evas_x.c
src/lib/ecore_imf/Ecore_IMF.h
src/lib/ecore_imf/Ecore_IMF_Input_Panel_Key.h
src/lib/ecore_imf/ecore_imf.c
src/lib/ecore_imf/ecore_imf_context.c
src/lib/ecore_imf/ecore_imf_private.h
src/lib/ecore_input_evas/Ecore_Input_Evas.h
src/lib/ecore_input_evas/ecore_input_evas.c
src/lib/ecore_x/xlib/ecore_x_private.h

diff --git a/COPYING-PLAIN b/COPYING-PLAIN
deleted file mode 100644 (file)
index 376875e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-Plain English Copyright Notice
-
-This file is not intended to be the actual License. The reason this file
-exists is that we here are programmers and engineers. We aren't lawyers. We
-provide licenses that we THINK say the right things, but we have our own
-intentions at heart. This is a plain-english explanation of what those
-intentions are, and if you follow them you will be within the "spirit" of
-the license.
-
-The intent is for us to enjoy writing software that is useful to us (the
-AUTHORS) and allow others to use it freely and also benefit from the work we
-put into making it. We don't want to restrict others using it. They should
-not *HAVE* to make the source code of the applications they write that
-simply link to these libraries (be that statically or dynamically), or for
-them to be limited as to what license they choose to use (be it open, closed
-or anything else). But we would like to know you are using these libraries.
-We simply would like to know that it has been useful to someone. This is why
-we ask for acknowledgement of some sort.
-
-You can do what you want with the source of this software - it doesn't
-matter. We still have it here for ourselves and it is open and free to use
-and download and play with. It can't be taken away. We don't really mind what
-you do with the source to your software. We would simply like to know that
-you are using it - especially if it makes it to a commerical product. If you
-simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and
-then make sure you include a paragraph or page in the manual for the product
-with the copyright notice and state that you used this software, we will be
-very happy. If you want to contribute back modifications and fixes you may have
-made we will welcome those too with open arms (generally). If you want help
-with changes needed, ports needed or features to be added, arrangements can
-be easily made with some dialogue.
-
-Carsten Haitzler <raster@rasterman.com>
index 0534d99..498a6ef 100644 (file)
@@ -104,7 +104,7 @@ m4/ecore_check_options.m4 \
 m4/efl_doxygen.m4 \
 m4/efl_path_max.m4 \
 m4/efl_tests.m4 \
-m4/efl_pthread.m4
+m4/efl_threads.m4
 
 
 pkgconfigdir = $(libdir)/pkgconfig
index b45aeda..0955281 100644 (file)
@@ -18,7 +18,7 @@ m4_define([lt_age], v_min)
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 
-AC_INIT([ecore], [v_ver.beta2], [enlightenment-devel@lists.sourceforge.net])
+AC_INIT([ecore], [v_ver.beta3], [enlightenment-devel@lists.sourceforge.net])
 AC_PREREQ([2.52])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
@@ -912,6 +912,7 @@ m4_ifdef([AC_PROG_OBJC], [
 ])
 AC_SUBST(cocoa_ldflags)
 
+want_epoll=yes
 AC_ARG_ENABLE(epoll,
   AC_HELP_STRING([--enable-epoll], [enable or disable epoll support]),
   [want_epoll=$enableval])
diff --git a/ecore-job.pc.in b/ecore-job.pc.in
deleted file mode 100644 (file)
index 83bb7a0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: ecore-job
-Description: E core library, Job module
-@pkgconfig_requires_private@: @requirements_ecore_job@
-Version: @VERSION@
-Libs: -L${libdir} -lecore_job
-Cflags: -I${includedir}
diff --git a/readme.slp2 b/readme.slp2
deleted file mode 100644 (file)
index d978b4b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-EFL:ecore repo for SLP2
index d6f7666..d6de0c7 100644 (file)
@@ -119,10 +119,14 @@ static Eina_List        *fd_handlers_with_prep = NULL;
 static Eina_List        *fd_handlers_with_buffer = NULL;
 static Eina_List        *fd_handlers_to_delete = NULL;
 
+static Eina_List        *fd_handlers_to_call = NULL;
+static Eina_List        *fd_handlers_to_call_current;
+static Eina_List        *fd_handlers_to_call_current_next;
+
 #ifdef _WIN32
 static Ecore_Win32_Handler *win32_handlers = NULL;
 static Ecore_Win32_Handler *win32_handler_current = NULL;
-static int                  win32_handlers_delete_me = 0;
+static Eina_Bool            win32_handlers_delete_me = EINA_FALSE;
 #endif
 
 #ifdef _WIN32
@@ -316,6 +320,7 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
    for (i = 0; i < ret; i++)
      {
         Ecore_Fd_Handler *fdh;
+        Eina_Bool pst, st;
         
         fdh = ev[i].data.ptr;
         if (!ECORE_MAGIC_CHECK(fdh, ECORE_MAGIC_FD_HANDLER))
@@ -329,9 +334,15 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
              ERR("deleted fd in epoll");
              continue;
           }
-        if (ev[i].events & EPOLLIN) fdh->read_active = 1;
-        if (ev[i].events & EPOLLOUT) fdh->write_active = 1;
-        if (ev[i].events & EPOLLERR) fdh->error_active = 1;
+        pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
+        if ((ev[i].events & EPOLLIN) && (!fdh->read_active))
+         st = fdh->read_active = EINA_TRUE;
+        if ((ev[i].events & EPOLLOUT) && (!fdh->write_active))
+         st = fdh->write_active = EINA_TRUE;
+        if ((ev[i].events & EPOLLERR) && (!fdh->error_active))
+         st = fdh->error_active = EINA_TRUE;
+        if (pst != st)
+          fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
      }
 
    return ret;
@@ -342,6 +353,7 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
 static inline int _ecore_main_fdh_poll_mark_active(void)
 {
    Ecore_Fd_Handler *fdh;
+   Eina_Bool pst, st;
    int ret = 0;
 
    /* call the prepare callback for all handlers */
@@ -349,10 +361,16 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
      {
         if (fdh->delete_me)
            continue;
-        
-        if (fdh->gfd.revents & G_IO_IN) fdh->read_active = 1;
-        if (fdh->gfd.revents & G_IO_OUT) fdh->write_active = 1;
-        if (fdh->gfd.revents & G_IO_ERR) fdh->error_active = 1;
+
+        pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
+        if ((fdh->gfd.revents & G_IO_IN) && (!fdh->read_active))
+         st = fdh->read_active = EINA_TRUE;
+        if ((fdh->gfd.revents & G_IO_OUT) && (!fdh->write_active))
+         st = fdh->write_active = EINA_TRUE;
+        if ((fdh->gfd.revents & G_IO_ERR) && (!fdh->error_active))
+         st = fdh->error_active = EINA_TRUE;
+        if (pst != st)
+          fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
         if (fdh->gfd.revents & (G_IO_IN|G_IO_OUT|G_IO_ERR)) ret++;
      }
 
@@ -741,10 +759,10 @@ ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func
         free(fdh);
         return NULL;
      }
-   fdh->read_active = 0;
-   fdh->write_active = 0;
-   fdh->error_active = 0;
-   fdh->delete_me = 0;
+   fdh->read_active = EINA_FALSE;
+   fdh->write_active = EINA_FALSE;
+   fdh->error_active = EINA_FALSE;
+   fdh->delete_me = EINA_FALSE;
    fdh->func = func;
    fdh->data = (void *)data;
    fdh->buf_func = buf_func;
@@ -769,7 +787,7 @@ ecore_main_win32_handler_add(void *h, Ecore_Fd_Win32_Cb func, const void *data)
    if (!wh) return NULL;
    ECORE_MAGIC_SET(wh, ECORE_MAGIC_WIN32_HANDLER);
    wh->h = (HANDLE)h;
-   wh->delete_me = 0;
+   wh->delete_me = EINA_FALSE;
    wh->func = func;
    wh->data = (void *)data;
    win32_handlers = (Ecore_Win32_Handler *)
@@ -811,7 +829,7 @@ ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler)
      /* FIXME: should this return NULL instead? */
      return fd_handler->data;
      
-   fd_handler->delete_me = 1;
+   fd_handler->delete_me = EINA_TRUE;
    _ecore_main_fdh_poll_del(fd_handler);
    fd_handlers_to_delete = eina_list_append(fd_handlers_to_delete, fd_handler);
    if (fd_handler->prep_func && fd_handlers_with_prep)
@@ -831,8 +849,8 @@ ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler)
                          "ecore_main_win32_handler_del");
         return NULL;
      }
-   win32_handler->delete_me = 1;
-   win32_handlers_delete_me = 1;
+   win32_handler->delete_me = EINA_TRUE;
+   win32_handlers_delete_me = EINA_TRUE;
    return win32_handler->data;
 }
 #else
@@ -961,13 +979,15 @@ _ecore_main_shutdown(void)
         free(fdh);
      }
    if (fd_handlers_with_buffer)
-     eina_list_free(fd_handlers_with_buffer);
-   fd_handlers_with_buffer = NULL;
+     fd_handlers_with_buffer = eina_list_free(fd_handlers_with_buffer);
    if (fd_handlers_with_prep)
-     eina_list_free(fd_handlers_with_prep);
-   fd_handlers_with_prep = NULL;
+     fd_handlers_with_prep = eina_list_free(fd_handlers_with_prep);
    if (fd_handlers_to_delete)
-     eina_list_free(fd_handlers_to_delete);
+     fd_handlers_to_delete = eina_list_free(fd_handlers_to_delete);
+   if (fd_handlers_to_call)
+     fd_handlers_to_call = eina_list_free(fd_handlers_to_call);
+  
+   fd_handlers_to_call_current = NULL;
    fd_handlers_to_delete = NULL;
    fd_handler_current = NULL;
 
@@ -982,7 +1002,7 @@ _ecore_main_shutdown(void)
         ECORE_MAGIC_SET(wh, ECORE_MAGIC_NONE);
         free(wh);
      }
-   win32_handlers_delete_me = 0;
+   win32_handlers_delete_me = EINA_FALSE;
    win32_handler_current = NULL;
 #endif
 }
@@ -996,7 +1016,11 @@ _ecore_main_prepare_handlers(void)
    /* call the prepare callback for all handlers with prep functions */
    EINA_LIST_FOREACH_SAFE(fd_handlers_with_prep, l, l2, fdh)
      {
-        if (!fdh) fd_handlers_with_prep = eina_list_remove_list(l, fd_handlers_with_prep);
+        if (!fdh)
+          {
+             fd_handlers_with_prep = eina_list_remove_list(l, fd_handlers_with_prep);
+             continue;
+          }
         if (!fdh->delete_me && fdh->prep_func)
           {
              fdh->references++;
@@ -1100,12 +1124,16 @@ _ecore_main_select(double timeout)
           {
              if (!fdh->delete_me)
                {
-                  if (FD_ISSET(fdh->fd, &rfds))
-                     fdh->read_active = 1;
-                  if (FD_ISSET(fdh->fd, &wfds))
-                     fdh->write_active = 1;
-                  if (FD_ISSET(fdh->fd, &exfds))
-                     fdh->error_active = 1;
+                  Eina_Bool pst, st;
+                  pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
+                  if ((FD_ISSET(fdh->fd, &rfds)) && (!fdh->read_active))
+                   st = fdh->read_active = EINA_TRUE;
+                  if ((FD_ISSET(fdh->fd, &wfds)) && (!fdh->write_active))
+                   st = fdh->write_active = EINA_TRUE;
+                  if ((FD_ISSET(fdh->fd, &exfds)) && (!fdh->error_active))
+                   st = fdh->error_active = EINA_TRUE;
+                  if (pst != st)
+                    fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
                }
           }
 #endif /* HAVE_EPOLL */
@@ -1145,7 +1173,7 @@ _ecore_main_fd_handlers_bads_rem(void)
                        ERR("Fd function err returned 0, remove it");
                        if (!fdh->delete_me)
                          {
-                            fdh->delete_me = 1;
+                            fdh->delete_me = EINA_TRUE;
                             fd_handlers_to_delete = eina_list_append(fd_handlers_to_delete, fdh);
                          }
                        found++;
@@ -1157,7 +1185,7 @@ _ecore_main_fd_handlers_bads_rem(void)
                   ERR("Problematic fd found at %d! setting it for delete", fdh->fd);
                   if (!fdh->delete_me)
                     {
-                       fdh->delete_me = 1;
+                       fdh->delete_me = EINA_TRUE;
                        fd_handlers_to_delete = eina_list_append(fd_handlers_to_delete, fdh);
                     }
 
@@ -1186,7 +1214,11 @@ _ecore_main_fd_handlers_cleanup(void)
    if (!fd_handlers_to_delete) return;
    EINA_LIST_FOREACH_SAFE(fd_handlers_to_delete, l, l2, fdh)
      {
-        if (!fdh) fd_handlers_to_delete = eina_list_remove_list(l, fd_handlers_to_delete);
+        if (!fdh)
+          {
+             fd_handlers_to_delete = eina_list_remove_list(l, fd_handlers_to_delete);
+             continue;
+          }
         /* fdh->delete_me should be set for all fdhs at the start of the list */
         if (fdh->references)
           continue;
@@ -1231,27 +1263,29 @@ _ecore_main_win32_handlers_cleanup(void)
              free(wh);
           }
      }
-   if (!deleted_in_use) win32_handlers_delete_me = 0;
+   if (!deleted_in_use) win32_handlers_delete_me = EINA_FALSE;
 }
 #endif
 
 static void
 _ecore_main_fd_handlers_call(void)
 {
-   if (!fd_handler_current)
+   if (!fd_handlers_to_call_current)
      {
         /* regular main loop, start from head */
-        fd_handler_current = fd_handlers;
+        fd_handlers_to_call_current = fd_handlers_to_call;
+        fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current);
      }
    else
      {
         /* recursive main loop, continue from where we were */
-        fd_handler_current = (Ecore_Fd_Handler *)EINA_INLIST_GET(fd_handler_current)->next;
+        fd_handlers_to_call_current = fd_handlers_to_call_current_next;
+        fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current);
      }
 
-   while (fd_handler_current)
+   while (fd_handlers_to_call_current)
      {
-        Ecore_Fd_Handler *fdh = fd_handler_current;
+        Ecore_Fd_Handler *fdh = fd_handlers_to_call_current->data;
 
         if (!fdh->delete_me)
           {
@@ -1264,21 +1298,22 @@ _ecore_main_fd_handlers_call(void)
                     {
                        if (!fdh->delete_me)
                          {
-                            fdh->delete_me = 1;
+                            fdh->delete_me = EINA_TRUE;
                             fd_handlers_to_delete = eina_list_append(fd_handlers_to_delete, fdh);
                          }
 
                     }
                   fdh->references--;
 
-                  fdh->read_active = 0;
-                  fdh->write_active = 0;
-                  fdh->error_active = 0;
+                  fdh->read_active = EINA_FALSE;
+                  fdh->write_active = EINA_FALSE;
+                  fdh->error_active = EINA_FALSE;
                }
           }
 
-        if (fd_handler_current) /* may have changed in recursive main loops */
-          fd_handler_current = (Ecore_Fd_Handler *)EINA_INLIST_GET(fd_handler_current)->next;
+        fd_handlers_to_call = eina_list_remove_list(fd_handlers_to_call, fd_handlers_to_call_current);
+        fd_handlers_to_call_current = fd_handlers_to_call_current_next;
+        fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current_next);
      }
 }
 
@@ -1292,14 +1327,23 @@ _ecore_main_fd_handlers_buf_call(void)
    ret = 0;
    EINA_LIST_FOREACH_SAFE(fd_handlers_with_buffer, l, l2, fdh)
      {
-        if (!fdh) fd_handlers_with_buffer = eina_list_remove_list(l, fd_handlers_with_buffer);
+        if (!fdh)
+          {
+             fd_handlers_with_buffer = eina_list_remove_list(l, fd_handlers_with_buffer);
+             continue;
+          }
         if ((!fdh->delete_me) && fdh->buf_func)
           {
              fdh->references++;
              if (fdh->buf_func(fdh->buf_data, fdh))
                {
                   ret |= fdh->func(fdh->data, fdh);
-                  fdh->read_active = 1;
+                  if (!fdh->read_active)
+                    {
+                       fdh->read_active = EINA_TRUE;
+                       if ((!fdh->write_active) && (!fdh->error_active))
+                         fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+                    }
                }
              fdh->references--;
           }
@@ -1601,8 +1645,8 @@ _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
                        wh->references++;
                        if (!wh->func(wh->data, wh))
                          {
-                            wh->delete_me = 1;
-                            win32_handlers_delete_me = 1;
+                            wh->delete_me = EINA_TRUE;
+                            win32_handlers_delete_me = EINA_TRUE;
                          }
                        wh->references--;
                     }
index 137a3b7..87453f3 100644 (file)
@@ -1009,10 +1009,6 @@ ecore_con_client_del(Ecore_Con_Client *cl)
         return NULL;
      }
 
-   if (cl->client_addr)
-     free(cl->client_addr);
-   cl->client_addr = NULL;
-
    data = cl->data;
    cl->delete_me = EINA_TRUE;
    if (cl->event_count > 0)
@@ -1261,6 +1257,10 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
    if (cl->fd_handler)
      ecore_main_fd_handler_del(cl->fd_handler);
 
+   if (cl->client_addr)
+     free(cl->client_addr);
+   cl->client_addr = NULL;
+
    if (cl->ip)
      eina_stringshare_del(cl->ip);
    cl->data = NULL;
@@ -1770,7 +1770,7 @@ _ecore_con_svr_tcp_handler(void                        *data,
 
 error:
    close(new_fd);
-   if (cl->fd_handler)
+   if (cl && cl->fd_handler)
      ecore_main_fd_handler_del(cl->fd_handler);
    return ECORE_CALLBACK_RENEW;
 }
index f4c7f8e..64d0aac 100644 (file)
@@ -211,7 +211,7 @@ _ecore_con_info_ares_getnameinfo(Ecore_Con_CAres *arg,
    else
      length = 1;
 
-   arg->result = malloc(sizeof (Ecore_Con_Info) + length);
+   arg->result = malloc(sizeof(Ecore_Con_Info) + length);
    if (!arg->result)
      return EINA_FALSE;
 
@@ -250,7 +250,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
    Ecore_Con_CAres *cares;
    int ai_family = AF_INET6;
 
-   cares = calloc(1, sizeof (Ecore_Con_CAres));
+   cares = calloc(1, sizeof(Ecore_Con_CAres));
    if (!cares)
      return 0;
 
@@ -261,7 +261,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
    if (hints)
      {
         ai_family = hints->ai_family;
-        memcpy(&cares->hints, hints, sizeof (struct addrinfo));
+        memcpy(&cares->hints, hints, sizeof(struct addrinfo));
      }
 
    if (inet_pton(AF_INET, svr->name, &cares->addr.v4) == 1)
@@ -269,7 +269,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
         cares->byaddr = EINA_TRUE;
         cares->isv6 = EINA_FALSE;
         ares_gethostbyaddr(info_channel, &cares->addr.v4,
-                           sizeof (cares->addr.v4),
+                           sizeof(cares->addr.v4),
                            AF_INET,
                            (ares_host_callback)_ecore_con_info_ares_host_cb,
                            cares);
@@ -279,7 +279,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
         cares->byaddr = EINA_TRUE;
         cares->isv6 = EINA_TRUE;
         ares_gethostbyaddr(info_channel, &cares->addr.v6,
-                           sizeof (cares->addr.v6),
+                           sizeof(cares->addr.v6),
                            AF_INET6,
                            (ares_host_callback)_ecore_con_info_ares_host_cb,
                            cares);
@@ -348,21 +348,20 @@ _ecore_con_info_cares_clean(void)
         if (FD_ISSET(i, &writers))
           flags |= ECORE_FD_WRITE;
 
-        if (flags)
-          if (!_ecore_con_info_fds_lookup(i))
-            {
-               ecf = malloc(sizeof (Ecore_Con_FD));
-               if (ecf)
-                 {
-                    ecf->fd = i;
-                    ecf->active = active;
-                    ecf->handler = ecore_main_fd_handler_add(
-                        i, ECORE_FD_WRITE | ECORE_FD_READ,
-                        _ecore_con_info_cares_fd_cb,
-                        NULL, NULL, NULL);
-                    info_fds = eina_list_append(info_fds, ecf);
-                 }
-            }
+        if (flags &&  (!_ecore_con_info_fds_lookup(i)))
+          {
+             ecf = malloc(sizeof(Ecore_Con_FD));
+             if (ecf)
+               {
+                  ecf->fd = i;
+                  ecf->active = active;
+                  ecf->handler = ecore_main_fd_handler_add(
+                      i, ECORE_FD_WRITE | ECORE_FD_READ,
+                      _ecore_con_info_cares_fd_cb,
+                      NULL, NULL, NULL);
+                  info_fds = eina_list_append(info_fds, ecf);
+               }
+          }
      }
 
    info_readers = readers;
@@ -372,7 +371,7 @@ _ecore_con_info_cares_clean(void)
      {
         if (ecf->active != active)
           {
-             ecore_main_fd_handler_del(ecf->handler);
+             if (ecf->handler) ecore_main_fd_handler_del(ecf->handler);
              free(ecf);
              info_fds = eina_list_remove_list(info_fds, l);
           }
@@ -445,7 +444,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
            {
               struct sockaddr_in *addri;
 
-              addrlen = sizeof (struct sockaddr_in);
+              addrlen = sizeof(struct sockaddr_in);
               addri = malloc(addrlen);
 
               if (!addri)
@@ -455,7 +454,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
               addri->sin_port = htons(arg->svr->port);
 
               memcpy(&addri->sin_addr.s_addr,
-                     hostent->h_addr_list[0], sizeof (struct in_addr));
+                     hostent->h_addr_list[0], sizeof(struct in_addr));
 
               addr = (struct sockaddr *)addri;
               break;
@@ -465,7 +464,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
            {
               struct sockaddr_in6 *addri6;
 
-              addrlen = sizeof (struct sockaddr_in6);
+              addrlen = sizeof(struct sockaddr_in6);
               addri6 = malloc(addrlen);
 
               if (!addri6)
@@ -477,7 +476,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
               addri6->sin6_scope_id = 0;
 
               memcpy(&addri6->sin6_addr.s6_addr,
-                     hostent->h_addr_list[0], sizeof (struct in6_addr));
+                     hostent->h_addr_list[0], sizeof(struct in6_addr));
 
               addr = (struct sockaddr *)addri6;
               break;
@@ -503,7 +502,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
                 {
                    struct sockaddr_in6 *addri6;
 
-                   addrlen = sizeof (struct sockaddr_in6);
+                   addrlen = sizeof(struct sockaddr_in6);
                    addri6 = malloc(addrlen);
 
                    if (!addri6)
@@ -515,7 +514,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
                    addri6->sin6_scope_id = 0;
 
                    memcpy(&addri6->sin6_addr.s6_addr,
-                          &arg->addr.v6, sizeof (struct in6_addr));
+                          &arg->addr.v6, sizeof(struct in6_addr));
 
                    addr = (struct sockaddr *)addri6;
                 }
@@ -523,7 +522,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
                 {
                    struct sockaddr_in *addri;
 
-                   addrlen = sizeof (struct sockaddr_in);
+                   addrlen = sizeof(struct sockaddr_in);
                    addri = malloc(addrlen);
 
                    if (!addri)
@@ -533,7 +532,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
                    addri->sin_port = htons(arg->svr->port);
 
                    memcpy(&addri->sin_addr.s_addr,
-                          &arg->addr.v4, sizeof (struct in_addr));
+                          &arg->addr.v4, sizeof(struct in_addr));
 
                    addr = (struct sockaddr *)addri;
                 }
@@ -552,6 +551,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
       case ARES_EBADNAME: /* not a valid internet address */
       case ARES_ENOMEM: /* not enough memory */
       case ARES_EDESTRUCTION: /* request canceled, shuting down */
+      case ARES_ENODATA: /* no data returned */
         goto on_error;
 
       default:
index 047e57d..cf90ec4 100644 (file)
@@ -52,12 +52,14 @@ _gnutls_print_errors(int ret)
      ERR("gnutls returned with error: %s - %s", gnutls_strerror_name(ret), gnutls_strerror(ret));
 }
 
+#ifdef ISCOMFITOR
 static void
 _gnutls_log_func(int         level,
                  const char *str)
 {
    DBG("|<%d>| %s", level, str);
 }
+#endif
 
 static const char *
 SSL_GNUTLS_PRINT_HANDSHAKE_STATUS(gnutls_handshake_description_t status)
@@ -413,9 +415,11 @@ _ecore_con_ssl_init_gnutls(void)
 #endif
    if (gnutls_global_init())
      return ECORE_CON_SSL_ERROR_INIT_FAILED;
+
+#ifdef ISCOMFITOR
    gnutls_global_set_log_level(9);
    gnutls_global_set_log_function(_gnutls_log_func);
-
+#endif
    return ECORE_CON_SSL_ERROR_NONE;
 }
 
@@ -1142,6 +1146,7 @@ _ecore_con_ssl_server_init_openssl(Ecore_Con_Server *svr)
         break;
      }
 
+#ifdef ISCOMFITOR
    {
       /* print session info into DBG */
        SSL_SESSION *s;
@@ -1157,7 +1162,7 @@ _ecore_con_ssl_server_init_openssl(Ecore_Con_Server *svr)
 
        BIO_free(b);
    }
-
+#endif
    if (!svr->verify)
      /* not verifying certificates, so we're done! */
      return ECORE_CON_SSL_ERROR_NONE;
@@ -1384,6 +1389,7 @@ _ecore_con_ssl_client_init_openssl(Ecore_Con_Client *cl)
         break;
      }
 
+#ifdef ISCOMFITOR
    {
       /* print session info into DBG */
        SSL_SESSION *s;
@@ -1399,6 +1405,7 @@ _ecore_con_ssl_client_init_openssl(Ecore_Con_Client *cl)
 
        BIO_free(b);
    }
+#endif
 
    if (!cl->host_server->verify)
      /* not verifying certificates, so we're done! */
index fdd71dc..56e165e 100644 (file)
@@ -2881,6 +2881,152 @@ _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timest
      evas_event_feed_mouse_move(ee->evas, y, ee->w - x - 1, timestamp, NULL);
 }
 
+void
+_ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
+                                     int x, int y, 
+                                     double radius,
+                                     double radius_x, double radius_y,
+                                     double pressure,
+                                     double angle,
+                                     double mx, double my,
+                                     unsigned int timestamp)
+{
+   if (ee->rotation == 0)
+      evas_event_feed_multi_move(ee->evas, device,
+                                 x, y, 
+                                 radius,
+                                 radius_x, radius_y,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 mx, my,
+                                 timestamp, NULL);
+   else if (ee->rotation == 90)
+      evas_event_feed_multi_move(ee->evas, device,
+                                 ee->h - y - 1, x, 
+                                 radius,
+                                 radius_y, radius_x,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 ee->h - my - 1, mx,
+                                 timestamp, NULL);
+   else if (ee->rotation == 180)
+      evas_event_feed_multi_move(ee->evas, device,
+                                 ee->w - x - 1, ee->h - y - 1, 
+                                 radius,
+                                 radius_x, radius_y,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 ee->w - mx - 1, ee->h - my - 1,
+                                 timestamp, NULL);
+   else if (ee->rotation == 270)
+      evas_event_feed_multi_move(ee->evas, device,
+                                 y, ee->w - x - 1,
+                                 radius,
+                                 radius_y, radius_x,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 my, ee->w - mx - 1,
+                                 timestamp, NULL);
+}
+
+void
+_ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
+                                     int x, int y, 
+                                     double radius,
+                                     double radius_x, double radius_y,
+                                     double pressure,
+                                     double angle,
+                                     double mx, double my,
+                                     Evas_Button_Flags flags,
+                                     unsigned int timestamp)
+{
+   if (ee->rotation == 0)
+      evas_event_feed_multi_down(ee->evas, device,
+                                 x, y, 
+                                 radius,
+                                 radius_x, radius_y,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 mx, my,
+                                 flags, timestamp, NULL);
+   else if (ee->rotation == 90)
+      evas_event_feed_multi_down(ee->evas, device,
+                                 ee->h - y - 1, x, 
+                                 radius,
+                                 radius_y, radius_x,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 ee->h - my - 1, mx,
+                                 flags, timestamp, NULL);
+   else if (ee->rotation == 180)
+      evas_event_feed_multi_down(ee->evas, device,
+                                 ee->w - x - 1, ee->h - y - 1, 
+                                 radius,
+                                 radius_x, radius_y,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 ee->w - mx - 1, ee->h - my - 1,
+                                 flags, timestamp, NULL);
+   else if (ee->rotation == 270)
+      evas_event_feed_multi_down(ee->evas, device,
+                                 y, ee->w - x - 1,
+                                 radius,
+                                 radius_y, radius_x,
+                                 pressure, 
+                                 angle - ee->rotation,
+                                 my, ee->w - mx - 1,
+                                 flags, timestamp, NULL);
+}
+
+void
+_ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
+                                   int x, int y, 
+                                   double radius,
+                                   double radius_x, double radius_y,
+                                   double pressure,
+                                   double angle,
+                                   double mx, double my,
+                                   Evas_Button_Flags flags,
+                                   unsigned int timestamp)
+{
+   if (ee->rotation == 0)
+      evas_event_feed_multi_up(ee->evas, device,
+                               x, y, 
+                               radius,
+                               radius_x, radius_y,
+                               pressure, 
+                               angle - ee->rotation,
+                               mx, my,
+                               flags, timestamp, NULL);
+   else if (ee->rotation == 90)
+      evas_event_feed_multi_up(ee->evas, device,
+                               ee->h - y - 1, x, 
+                               radius,
+                               radius_y, radius_x,
+                               pressure, 
+                               angle - ee->rotation,
+                               ee->h - my - 1, mx,
+                               flags, timestamp, NULL);
+   else if (ee->rotation == 180)
+      evas_event_feed_multi_up(ee->evas, device,
+                               ee->w - x - 1, ee->h - y - 1, 
+                               radius,
+                               radius_x, radius_y,
+                               pressure, 
+                               angle - ee->rotation,
+                               ee->w - mx - 1, ee->h - my - 1,
+                               flags, timestamp, NULL);
+   else if (ee->rotation == 270)
+      evas_event_feed_multi_up(ee->evas, device,
+                               y, ee->w - x - 1,
+                               radius,
+                               radius_y, radius_x,
+                               pressure, 
+                               angle - ee->rotation,
+                               my, ee->w - mx - 1,
+                               flags, timestamp, NULL);
+}
+
 /**
  * Get a list of all the ecore_evases.
  * 
@@ -2891,16 +3037,15 @@ _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timest
  * @return A list of ecore_evases.
  */
 EAPI Eina_List *
-ecore_evas_ecore_evas_list_get(void){
+ecore_evas_ecore_evas_list_get(void)
+{
    Ecore_Evas *ee;
    Eina_List *l = NULL;
-
+   
    EINA_INLIST_FOREACH(ecore_evases, ee)
      {
         l = eina_list_append(l, ee);
      }
-
+   
    return l;
 }
-
-
index 21fdd0b..e6fb541 100644 (file)
@@ -366,7 +366,11 @@ ecore_evas_cocoa_new(const char* name, int w, int h)
 
    _ecore_evas_cocoa_init(w, h);
 
-   ecore_event_window_register(0, ee, ee->evas, _ecore_evas_mouse_move_process);
+   ecore_event_window_register(0, ee, ee->evas, 
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
 
    ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_cocoa_engine_func;
 
index a02557b..6344be5 100644 (file)
@@ -380,6 +380,32 @@ void _ecore_evas_register(Ecore_Evas *ee);
 void _ecore_evas_free(Ecore_Evas *ee);
 void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);
 void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp);
+void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
+                                          int x, int y,
+                                          double radius,
+                                          double radius_x, double radius_y,
+                                          double pressure,
+                                          double angle,
+                                          double mx, double my,
+                                          unsigned int timestamp);
+void _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
+                                          int x, int y,
+                                          double radius,
+                                          double radius_x, double radius_y,
+                                          double pressure,
+                                          double angle,
+                                          double mx, double my,
+                                          Evas_Button_Flags flags,
+                                          unsigned int timestamp);
+void _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
+                                        int x, int y,
+                                        double radius,
+                                        double radius_x, double radius_y,
+                                        double pressure,
+                                        double angle,
+                                        double mx, double my,
+                                        Evas_Button_Flags flags,
+                                        unsigned int timestamp);
 
 extern Eina_Bool _ecore_evas_app_comp_sync;
 
index 6c19af3..1d08322 100644 (file)
@@ -427,7 +427,11 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
 
    _ecore_evas_sdl_init(w, h);
 
-   ecore_event_window_register(0, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+   ecore_event_window_register(0, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
 
    SDL_ShowCursor(SDL_DISABLE);
 
index 852c922..6728784 100644 (file)
@@ -1170,7 +1170,11 @@ _ecore_evas_win32_new_internal(int (*_ecore_evas_engine_init)(Ecore_Evas *ee),
 
    ee->engine.func->fn_render = _ecore_evas_win32_render;
    _ecore_evas_register(ee);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
    
    return ee;
 }
index c1de52c..3a2e444 100644 (file)
@@ -820,7 +820,11 @@ ecore_evas_software_wince_new_internal(int                 backend,
 
    ee->engine.func->fn_render = _ecore_evas_wince_render;
    _ecore_evas_register(ee);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
    evas_focus_in(ee->evas);
 
    return ee;
index c9fe041..894f21f 100644 (file)
@@ -1958,7 +1958,11 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
         ecore_x_window_shape_mask_set(ee->prop.window, 0);
         ecore_x_input_multi_select(ee->prop.window);
-        ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
         if (ee->prop.borderless)
           ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
         if (ee->visible) ecore_x_window_show(ee->prop.window);
@@ -2072,7 +2076,11 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
 //        ecore_x_window_shape_mask_set(ee->prop.window, 0);
         ecore_x_input_multi_select(ee->prop.window);
-        ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
         if (ee->prop.borderless)
           ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
         if (ee->visible) ecore_x_window_show(ee->prop.window);
@@ -2162,7 +2170,11 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
         ecore_x_window_shape_mask_set(ee->prop.window, 0);
         ecore_x_input_multi_select(ee->prop.window);
-        ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
         if (ee->prop.borderless)
           ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
         if (ee->visible) ecore_x_window_show(ee->prop.window);
@@ -2245,7 +2257,11 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
         ecore_x_window_shape_mask_set(ee->prop.window, 0);
         ecore_x_input_multi_select(ee->prop.window);
-        ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
         if (ee->prop.borderless)
           ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
         if (ee->visible) ecore_x_window_show(ee->prop.window);
@@ -2334,7 +2350,11 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
         ecore_x_window_shape_mask_set(ee->prop.window, 0);
         ecore_x_input_multi_select(ee->prop.window);
-        ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
         if (ee->prop.borderless)
           ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
         if (ee->visible) ecore_x_window_show(ee->prop.window);
@@ -3326,7 +3346,11 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent,
    ee->engine.func->fn_render = _ecore_evas_x_render;
    _ecore_evas_register(ee);
    ecore_x_input_multi_select(ee->prop.window);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
    return ee;
 }
 #else
@@ -3429,7 +3453,11 @@ ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window wi
         *winp = win;
         ee->engine.x.win_extra = eina_list_append(ee->engine.x.win_extra, winp);
         ecore_x_input_multi_select(win);
-        ecore_event_window_register(win, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(win, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
      }
 }
 #else
@@ -3553,7 +3581,11 @@ ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent,
    ee->engine.func->fn_render = _ecore_evas_x_render;
    _ecore_evas_register(ee);
    ecore_x_input_multi_select(ee->prop.window);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
 # endif /* HAVE_ECORE_X_XCB */
 
    return ee;
@@ -3857,7 +3889,11 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent,
    ee->engine.func->fn_render = _ecore_evas_x_render;
    _ecore_evas_register(ee);
    ecore_x_input_multi_select(ee->prop.window);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
    return ee;
 }
 #else
@@ -4084,7 +4120,11 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent,
    ee->engine.func->fn_render = _ecore_evas_x_render;
    _ecore_evas_register(ee);
    ecore_x_input_multi_select(ee->prop.window);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
    return ee;
 }
 #else
@@ -4187,7 +4227,11 @@ ecore_evas_software_x11_16_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window
         *winp = win;
         ee->engine.x.win_extra = eina_list_append(ee->engine.x.win_extra, winp);
         ecore_x_input_multi_select(win);
-        ecore_event_window_register(win, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(win, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
      }
 }
 #else
@@ -4394,7 +4438,11 @@ ecore_evas_software_x11_8_new(const char *disp_name, Ecore_X_Window parent,
    ee->engine.func->fn_render = _ecore_evas_x_render;
    _ecore_evas_register(ee);
    ecore_x_input_multi_select(ee->prop.window);
-   ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+   ecore_event_window_register(ee->prop.window, ee, ee->evas,
+                               (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                               (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                               (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                               (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
 
    return ee;
 #else
@@ -4508,7 +4556,11 @@ ecore_evas_software_x11_8_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window
         *winp = win;
         ee->engine.x.win_extra = eina_list_append(ee->engine.x.win_extra, winp);
         ecore_x_input_multi_select(win);
-        ecore_event_window_register(win, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
+        ecore_event_window_register(win, ee, ee->evas,
+                                    (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+                                    (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+                                    (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+                                    (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
      }
 #else
    return;
index b704ce8..f99799e 100644 (file)
@@ -55,7 +55,7 @@ extern "C" {
 #endif
 
    /* ecore_imf_context_input_panel_event_callback_add() flag */
-   typedef enum
+   typedef enum 
      {
         ECORE_IMF_INPUT_PANEL_STATE_EVENT,              /**< Input Panel STATE Event */
         ECORE_IMF_INPUT_PANEL_MODE_EVENT,               /**< Input Panel MODE Event */
@@ -78,14 +78,14 @@ extern "C" {
         ECORE_IMF_INPUT_PANEL_EVENT_INVALID
      } Ecore_IMF_Input_Panel_Event;
 
-   typedef enum
+   typedef enum 
      {
         ECORE_IMF_INPUT_PANEL_STATE_SHOW,         /**< Show Input panel */
         ECORE_IMF_INPUT_PANEL_STATE_HIDE,         /**< Hide Input panel */
         ECORE_IMF_INPUT_PANEL_STATE_INVALID
      } Ecore_IMF_Input_Panel_State;
 
-   typedef enum
+   typedef enum 
      {
         ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL,          /**< Default 4x4 layout */
         ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBER,          /**< Number layout */
@@ -93,7 +93,7 @@ extern "C" {
         ECORE_IMF_INPUT_PANEL_LAYOUT_URL,             /**< URL layout */
         ECORE_IMF_INPUT_PANEL_LAYOUT_PHONENUMBER,     /**< Phone Number layout */
         ECORE_IMF_INPUT_PANEL_LAYOUT_IP,              /**< IP layout */
-        ECORE_IMF_INPUT_PANEL_LAYOUT_MONTH,           /**< Month layout */
+        ECORE_IMF_INPUT_PANEL_LAYOUT_MONTH,           /**< Month layout */     
         ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY,      /**< Number Only layout */
         ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_1 = 100,  /* Reserved for future use */
         ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_2,
@@ -104,7 +104,7 @@ extern "C" {
         ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_7,
         ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_8,
         ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_9,
-        ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_10,
+        ECORE_IMF_INPUT_PANEL_LAYOUT_CUSTOM_10,        
         ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID
      } Ecore_IMF_Input_Panel_Layout;
 
@@ -120,7 +120,7 @@ extern "C" {
         ECORE_IMF_KEYBOARD_LANG_ALPHABET   /**< Alphabet */
      } Ecore_IMF_Keyboard_Lang;
 
-   typedef enum
+   typedef enum 
      {
         ECORE_IMF_AUTOCORRECTION_DEFAULT,
         ECORE_IMF_AUTOCORRECTION_NO,
@@ -130,12 +130,12 @@ extern "C" {
 
    typedef enum
      {
-        ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF,    /**< Off */
-        ECORE_IMF_INPUT_PANEL_CAPS_MODE_ON,        /**< On */
+        ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF,   /**< Off */
+        ECORE_IMF_INPUT_PANEL_CAPS_MODE_ON,    /**< On */ 
         ECORE_IMF_INPUT_PANEL_CAPS_MODE_LOCK,  /**< Lock */
      } Ecore_IMF_Input_Panel_Caps_Mode;
 
-   typedef enum
+   typedef enum 
      {
         ECORE_IMF_INPUT_PANEL_ORIENT_NONE,
         ECORE_IMF_INPUT_PANEL_ORIENT_90_CW, /* Clockwise */
@@ -143,18 +143,14 @@ extern "C" {
         ECORE_IMF_INPUT_PANEL_ORIENT_90_CCW /* CounterClockwise */
      } Ecore_IMF_Input_Panel_Orient;
 
-   typedef struct _Disable_Key_Item Disable_Key_Item;
-
-   struct _Disable_Key_Item
+   typedef struct 
      {
         int layout_idx;
         int key_idx;
         Eina_Bool disabled;
-     };
+     } Disable_Key_Item;
 
-   typedef struct _Private_Key_Item Private_Key_Item;
-
-   struct _Private_Key_Item
+   typedef struct 
      {
         int layout_idx;
         int key_idx;
@@ -162,7 +158,7 @@ extern "C" {
         char data[128]; // label or image path
         int key_value;
         char key_string[32];
-     };
+     } Private_Key_Item;
 
    /* Events sent by the Input Method */
    typedef struct _Ecore_IMF_Event_Preedit_Start      Ecore_IMF_Event_Preedit_Start;
@@ -405,16 +401,7 @@ extern "C" {
      {
         Ecore_IMF_Preedit_Type preedit_type;
         unsigned int start_index;
-        unsigned int end_index;
-     };
-
-   typedef struct _Ecore_IMF_Input_Panel_Event_Callback Ecore_IMF_Input_Panel_Event_Callback;
-
-   struct _Ecore_IMF_Input_Panel_Event_Callback
-     {
-        void (*func)(void *data, Ecore_IMF_Context *ctx, int value);
-        const void *data;
-        Ecore_IMF_Input_Panel_Event type;
+        unsigned int end_index; 
      };
 
    struct _Ecore_IMF_Context_Class
@@ -442,7 +429,7 @@ extern "C" {
         Ecore_IMF_Input_Panel_Layout (*input_panel_layout_get)         (Ecore_IMF_Context *ctx);
 
         void (*input_panel_language_set)       (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
-        Ecore_IMF_Input_Panel_Lang (*input_panel_language_get) (Ecore_IMF_Context *ctx);
+        Ecore_IMF_Input_Panel_Lang (*input_panel_language_get) (Ecore_IMF_Context *ctx); 
 
         void (*input_panel_imdata_set)         (Ecore_IMF_Context *ctx, const char* data, int len);
         void (*input_panel_imdata_get)         (Ecore_IMF_Context *ctx, char* data, int *len);
@@ -605,7 +592,7 @@ extern "C" {
     * @param lang see Ecore_IMF_Input_Panel_Lang
     * @ingroup Ecore_IMF_Context_IMControl_Group
     * THIS API IS NOT SUPPORTED NOW
-    */
+    */    
    EAPI void ecore_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
 
    /**
@@ -623,7 +610,7 @@ extern "C" {
     * @param lang see Ecore_IMF_Input_Panel_Lang
     * @ingroup Ecore_IMF_Context_IMControl_Group
     * THIS API IS NOT SUPPORTED NOW
-    */
+    */    
    EAPI void ecore_imf_context_keyboard_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Keyboard_Lang lang);
 
    /**
@@ -632,9 +619,9 @@ extern "C" {
     * @return Ecore_IMF_Input_Panel_Lang
     * @ingroup Ecore_IMF_Context_IMControl_Group
     * THIS API IS NOT SUPPORTED NOW
-    */
+    */    
    EAPI Ecore_IMF_Keyboard_Lang ecore_imf_context_keyboard_language_get (Ecore_IMF_Context *ctx);
-
+   
    /**
     * Get ISE Language of given ISE. -- Not supported for now --
     * @ingroup Ecore_IMF_Context_IMControl_Group
@@ -678,7 +665,7 @@ extern "C" {
     *     }
     * }
     * @endcode
-    */
+    */    
    EAPI void ecore_imf_context_input_panel_imdata_set       (Ecore_IMF_Context *ctx, const char * data, int len);
 
    /**
@@ -739,7 +726,7 @@ extern "C" {
     *     }
     * }
     * @endcode
-    */
+    */    
    EAPI void ecore_imf_context_input_panel_use_effect_set           (Ecore_IMF_Context *ctx, Eina_Bool use_effect);
 
    /**
@@ -770,7 +757,7 @@ extern "C" {
     *     return use_effect;
     * }
     * @endcode
-    */
+    */    
    EAPI Eina_Bool ecore_imf_context_input_panel_use_effect_get      (Ecore_IMF_Context *ctx);
 
    /**
@@ -834,7 +821,7 @@ extern "C" {
     *     }
     * }
     * @endcode
-    */
+    */    
    EAPI void ecore_imf_context_input_panel_private_key_set  (Ecore_IMF_Context *ctx, int layout_index, int key_index, const char *img_path, const char* label, int key_value, const char* key_string);
 
    EAPI Eina_List *ecore_imf_context_input_panel_private_key_list_get  (Ecore_IMF_Context *ctx);
@@ -966,8 +953,8 @@ extern "C" {
     *     }
     * }
     */
-
-   EAPI Ecore_IMF_Input_Panel_Orient ecore_imf_context_input_panel_orient_get (Ecore_IMF_Context *ctx);
+    
+   EAPI Ecore_IMF_Input_Panel_Orient ecore_imf_context_input_panel_orient_get (Ecore_IMF_Context *ctx);   
 
    /**
     * Get name of current active ISE.
@@ -1090,7 +1077,7 @@ extern "C" {
     *     //do imf irrelated things
     * }
     * @endcode
-    */
+    */    
    EAPI int ecore_imf_context_ise_get_iselist (Ecore_IMF_Context *ctx, char*** iselist);
 
    /**
@@ -1119,8 +1106,8 @@ extern "C" {
     * }
     * @endcode
     */
-   EAPI Ecore_IMF_Input_Panel_State ecore_imf_context_input_panel_state_get (Ecore_IMF_Context *ctx);
-
+   EAPI Ecore_IMF_Input_Panel_State ecore_imf_context_input_panel_state_get          (Ecore_IMF_Context *ctx);
+   
    /**
     * Application can register a callback function which will be called if there is change in ise state,language,mode etc. 
     * To use this API application should include Ecore_IMF.h header file.
@@ -1191,11 +1178,9 @@ extern "C" {
     * }
     * @endcode
     */
-   EAPI void ecore_imf_context_input_panel_key_disabled_set (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
-
-   EAPI Eina_List *ecore_imf_context_input_panel_key_disabled_list_get (Ecore_IMF_Context *ctx);
+   EAPI void ecore_imf_context_input_panel_key_disabled_set  (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
 
-   EAPI Eina_List *ecore_imf_context_input_panel_event_callback_list_get (Ecore_IMF_Context *ctx);
+   EAPI Eina_List *ecore_imf_context_input_panel_key_disabled_list_get  (Ecore_IMF_Context *ctx);
 
    /**
     * Move the soft keyboard to the new position.
@@ -1221,7 +1206,7 @@ extern "C" {
     * }
     * @endcode
     */
-   EAPI void ecore_imf_context_input_panel_move (Ecore_IMF_Context *ctx, int x, int y);
+   EAPI void ecore_imf_context_input_panel_move  (Ecore_IMF_Context *ctx, int x, int y);
 
    EAPI void ecore_imf_context_input_panel_caps_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Caps_Mode mode);
 
index 8e505f5..24382a2 100644 (file)
@@ -2,8 +2,8 @@
 #define _INPUT_PANEL_KETDEFS_H_
 
 
-#define ECORE_IMF_INPUT_PANEL_KEY_RESERVED     0
-#define ECORE_IMF_INPUT_PANEL_KEY_ESC          1
+#define ECORE_IMF_INPUT_PANEL_KEY_RESERVED     0
+#define ECORE_IMF_INPUT_PANEL_KEY_ESC                  1
 #define ECORE_IMF_INPUT_PANEL_KEY_1                    2
 #define ECORE_IMF_INPUT_PANEL_KEY_2                    3
 #define ECORE_IMF_INPUT_PANEL_KEY_3                    4
index 8e5e8e7..060b8f2 100644 (file)
@@ -34,17 +34,17 @@ EAPI int
 ecore_imf_init(void)
 {
    if (++_ecore_imf_init_count != 1) return _ecore_imf_init_count;
-
+   
    if (!ecore_init()) return --_ecore_imf_init_count;
    _ecore_imf_log_dom = eina_log_domain_register("EcoreIMF", ECORE_IMF_DEFAULT_LOG_COLOR);
-   if (_ecore_imf_log_dom < 0)
+   if (_ecore_imf_log_dom < 0) 
      {
         EINA_LOG_ERR("Impossible to create a log domain for the Ecore IMF module.");
         ecore_shutdown();
         return --_ecore_imf_init_count;
      }
    ecore_imf_module_init();
-
+   
    ECORE_IMF_EVENT_PREEDIT_START = ecore_event_type_new();
    ECORE_IMF_EVENT_PREEDIT_END = ecore_event_type_new();
    ECORE_IMF_EVENT_PREEDIT_CHANGED = ecore_event_type_new();
index ecedcfb..b817cd8 100644 (file)
@@ -235,12 +235,8 @@ ecore_imf_context_del(Ecore_IMF_Context *ctx)
    EINA_LIST_FREE(ctx->disabled_key_list, data)
       free(data);
 
-   EINA_LIST_FREE(ctx->callbacks, data)
-      free(data);
-
    ctx->private_key_list = NULL;
    ctx->disabled_key_list = NULL;
-   ctx->callbacks = NULL;
 
    free(ctx);
 }
@@ -635,10 +631,8 @@ ecore_imf_context_new(const Ecore_IMF_Context_Class *ctxc)
    ctx->input_panel_layout = ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL;
    ctx->input_panel_orient = ECORE_IMF_INPUT_PANEL_ORIENT_NONE;
    ctx->use_effect = EINA_TRUE;
-   ctx->disabled_key_list = NULL;
-   ctx->private_key_list = NULL;
    ctx->callbacks = NULL;
-
+   
    return ctx;
 }
 
@@ -943,7 +937,7 @@ ecore_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_In
      }
 
    if (ctx->klass->input_panel_language_set) ctx->klass->input_panel_language_set(ctx, lang);
-   ctx->input_panel_lang = lang;
+   ctx->input_panel_lang = lang;   
 }
 
 EAPI Ecore_IMF_Input_Panel_Lang
@@ -973,9 +967,9 @@ ecore_imf_context_ise_get_ise_language (Ecore_IMF_Context *ctx, const char* ise_
         return -1;
      }
 
-   if (ctx->klass->ise_get_ise_language)
+   if (ctx->klass->ise_get_ise_language) 
        return ctx->klass->ise_get_ise_language(ctx, ise_name, langlist);
-   else
+   else 
       return -1;
 }
 
@@ -1111,7 +1105,7 @@ ecore_imf_context_input_panel_private_key_set (Ecore_IMF_Context *ctx, int layou
         return;
      }
 
-   if (!label && !img_path)
+   if (label == NULL && img_path == NULL)
      {
         printf ("input parameters error!!! \n");
         return;
@@ -1181,7 +1175,7 @@ ecore_imf_context_input_panel_private_key_list_get  (Ecore_IMF_Context *ctx)
    return ctx->private_key_list;
 }
 
-EAPI void
+EAPI void  
 ecore_imf_context_input_panel_key_disabled_set (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled)
 {
    Disable_Key_Item *key_item;
@@ -1219,29 +1213,11 @@ ecore_imf_context_input_panel_key_disabled_set (Ecore_IMF_Context *ctx, int layo
 }
 
 EAPI Eina_List *
-ecore_imf_context_input_panel_key_disabled_list_get (Ecore_IMF_Context *ctx)
+ecore_imf_context_input_panel_key_disabled_list_get  (Ecore_IMF_Context *ctx)
 {
-   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
-     {
-        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,"ecore_imf_context_input_panel_key_disabled_list_get");
-        return NULL;
-     }
-
    return ctx->disabled_key_list;
 }
 
-EAPI Eina_List *
-ecore_imf_context_input_panel_event_callback_list_get (Ecore_IMF_Context *ctx)
-{
-   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
-     {
-        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,"ecore_imf_context_input_panel_event_callback_list_get");
-        return NULL;
-     }
-
-   return ctx->callbacks;
-}
-
 EAPI void
 ecore_imf_context_input_panel_layout_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout)
 {
@@ -1264,7 +1240,7 @@ ecore_imf_context_input_panel_layout_get  (Ecore_IMF_Context *ctx)
         return ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID;
      }
 
-   if (ctx->klass->input_panel_layout_get)
+   if (ctx->klass->input_panel_layout_get ) 
      {
         //     ctx->klass->input_panel_layout_get (ctx, &layout);
         return ctx->input_panel_layout;
@@ -1310,7 +1286,7 @@ ecore_imf_context_input_panel_orient_get (Ecore_IMF_Context *ctx)
    return ctx->input_panel_orient;
 }
 
-EAPI void
+EAPI void      
 ecore_imf_context_ise_get_active_isename (Ecore_IMF_Context *ctx, char* name)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -1327,8 +1303,8 @@ ecore_imf_context_ise_get_active_isename (Ecore_IMF_Context *ctx, char* name)
 
    if (ctx->klass->ise_get_active_isename) ctx->klass->ise_get_active_isename(ctx, name);
 }
-
-EAPI void
+    
+EAPI void      
 ecore_imf_context_ise_set_active_ise_by_name (Ecore_IMF_Context *ctx, const char* name)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -1336,7 +1312,7 @@ ecore_imf_context_ise_set_active_ise_by_name (Ecore_IMF_Context *ctx, const char
         ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,"ecore_imf_context_ise_set_active_ise_by_name");
         return;
      }
-
+   
    if (!name)
      {
         printf ("input parameters error!!! \n");
@@ -1345,8 +1321,8 @@ ecore_imf_context_ise_set_active_ise_by_name (Ecore_IMF_Context *ctx, const char
 
    if (ctx->klass->ise_set_active_ise_by_name) ctx->klass->ise_set_active_ise_by_name(ctx, name);
 }
-
-EAPI void
+    
+EAPI void      
 ecore_imf_context_ise_set_active_ise_by_uuid (Ecore_IMF_Context *ctx, const char* uuid)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -1373,9 +1349,9 @@ ecore_imf_context_ise_get_iselist (Ecore_IMF_Context *ctx,  char*** iselist)
         return -1;
      }
 
-   if (ctx->klass->ise_get_iselist)
+   if (ctx->klass->ise_get_iselist) 
       return ctx->klass->ise_get_iselist(ctx, iselist);
-   else
+   else 
       return -1;
 }
 
@@ -1389,66 +1365,39 @@ ecore_imf_context_input_panel_state_get (Ecore_IMF_Context *ctx)
         return ECORE_IMF_INPUT_PANEL_STATE_INVALID;
      }
 
-   if (ctx->klass->input_panel_state_get)
+   if (ctx->klass->input_panel_state_get) 
       state = ctx->klass->input_panel_state_get(ctx);
 
-   return state;
+   return state;   
 }
 
 EAPI void
-ecore_imf_context_input_panel_event_callback_add (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), const void *data)
+ecore_imf_context_input_panel_event_callback_add (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallBackFunc) (void *data, Ecore_IMF_Context *ctx, int value), const void *data)
 {
-   Ecore_IMF_Input_Panel_Event_Callback *it;
-
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
      {
         ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,"ecore_imf_context_input_panel_event_callback_add");
         return;
      }
 
-   if (ctx->klass->input_panel_event_callback_add)
+   if (ctx->klass->input_panel_event_callback_add) 
      {
-        it = calloc(1, sizeof(Ecore_IMF_Input_Panel_Event_Callback));
-        if (!it) return;
-
-        it->func = func;
-        it->data = data;;
-        it->type = type;
-
-        ctx->callbacks = eina_list_append(ctx->callbacks, it);
-
-        ctx->klass->input_panel_event_callback_add(ctx, type, func, data);
+        ctx->klass->input_panel_event_callback_add(ctx, type, pEventCallBackFunc, data);
      }
 }
 
 EAPI void
-ecore_imf_context_input_panel_event_callback_del (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value))
+ecore_imf_context_input_panel_event_callback_del (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallBackFunc) (void *data, Ecore_IMF_Context *ctx, int value))
 {
-   Eina_List *l;
-   Ecore_IMF_Input_Panel_Event_Callback *it;
-
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
      {
         ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,"ecore_imf_context_input_panel_event_callback_del");
         return;
      }
 
-   if (ctx->klass->input_panel_event_callback_del)
+   if (ctx->klass->input_panel_event_callback_del) 
      {
-        for (l = ctx->callbacks; l;)
-          {
-             it = (Ecore_IMF_Input_Panel_Event_Callback *)l->data;
-
-             if (it && it->func == func && it->type == type)
-               {
-                  ctx->callbacks = eina_list_remove(ctx->callbacks, it);
-                  free(it);
-                  break;
-               }
-             l = l->next;
-          }
-
-        ctx->klass->input_panel_event_callback_del(ctx, type, func);
+        ctx->klass->input_panel_event_callback_del(ctx, type, pEventCallBackFunc);
      }
 }
 
index 8e30aef..8a40f5a 100644 (file)
@@ -55,7 +55,7 @@ struct _Ecore_IMF_Context
    void                          *retrieve_surrounding_data;
    Eina_List                     *callbacks;
    Eina_List                     *disabled_key_list;
-   Eina_List                     *private_key_list;
+   Eina_List                     *private_key_list;    
 };
 
 struct _Ecore_IMF_Module
index 836d3e0..c97274e 100644 (file)
@@ -34,7 +34,10 @@ extern "C" {
 #endif
 
 typedef void (*Ecore_Event_Mouse_Move_Cb)(void *window, int x, int y, unsigned int timestamp);
-
+typedef void (*Ecore_Event_Multi_Move_Cb)(void *window, int device, int x, int y, double radius, double radius_x, double radius_y, double pressure, double angle, double mx, double my, unsigned int timestamp);
+typedef void (*Ecore_Event_Multi_Down_Cb)(void *window, int device, int x, int y, double radius, double radius_x, double radius_y, double pressure, double angle, double mx, double my, Evas_Button_Flags flags, unsigned int timestamp);
+typedef void (*Ecore_Event_Multi_Up_Cb)(void *window, int device, int x, int y, double radius, double radius_x, double radius_y, double pressure, double angle, double mx, double my, Evas_Button_Flags flags, unsigned int timestamp);
+      
 EAPI int       ecore_event_evas_init(void);
 EAPI int       ecore_event_evas_shutdown(void);
 
@@ -47,7 +50,7 @@ EAPI Eina_Bool ecore_event_evas_mouse_move(void *data, int type, void *event);
 EAPI Eina_Bool ecore_event_evas_mouse_in(void *data, int type, void *event);
 EAPI Eina_Bool ecore_event_evas_mouse_out(void *data, int type, void *event);
 
-EAPI void      ecore_event_window_register(Ecore_Window id, void *window, Evas *evas, Ecore_Event_Mouse_Move_Cb move_mouse);
+EAPI void      ecore_event_window_register(Ecore_Window id, void *window, Evas *evas, Ecore_Event_Mouse_Move_Cb move_mouse, Ecore_Event_Multi_Move_Cb move_multi, Ecore_Event_Multi_Down_Cb down_multi, Ecore_Event_Multi_Up_Cb up_multi);
 EAPI void      ecore_event_window_unregister(Ecore_Window id);
 EAPI void     *ecore_event_window_match(Ecore_Window id);
 EAPI void      ecore_event_window_ignore_events(Ecore_Window id, int ignore_event);
index 4de8b1d..0f445a0 100644 (file)
@@ -18,6 +18,9 @@ struct _Ecore_Input_Window
    Evas *evas;
    void *window;
    Ecore_Event_Mouse_Move_Cb move_mouse;
+   Ecore_Event_Multi_Move_Cb move_multi;
+   Ecore_Event_Multi_Down_Cb down_multi;
+   Ecore_Event_Multi_Up_Cb up_multi;
    int ignore_event;
 };
 
@@ -65,7 +68,11 @@ ecore_event_evas_modifier_lock_update(Evas *e, unsigned int modifiers)
 }
 
 EAPI void
-ecore_event_window_register(Ecore_Window id, void *window, Evas *evas, Ecore_Event_Mouse_Move_Cb move_mouse)
+ecore_event_window_register(Ecore_Window id, void *window, Evas *evas,
+                            Ecore_Event_Mouse_Move_Cb move_mouse,
+                            Ecore_Event_Multi_Move_Cb move_multi,
+                            Ecore_Event_Multi_Down_Cb down_multi,
+                            Ecore_Event_Multi_Up_Cb up_multi)
 {
    Ecore_Input_Window *w;
 
@@ -75,6 +82,9 @@ ecore_event_window_register(Ecore_Window id, void *window, Evas *evas, Ecore_Eve
    w->evas = evas;
    w->window = window;
    w->move_mouse = move_mouse;
+   w->move_multi = move_multi;
+   w->down_multi = down_multi;
+   w->up_multi = up_multi;
    w->ignore_event = 0;
 
    eina_hash_add(_window_hash, &id, w);
@@ -156,16 +166,48 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr
      {
         ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
         if (press == ECORE_DOWN)
-          evas_event_feed_mouse_down(lookup->evas, e->buttons, flags, e->timestamp, NULL);
+          evas_event_feed_mouse_down(lookup->evas, e->buttons, flags, 
+                                     e->timestamp, NULL);
         else
-          evas_event_feed_mouse_up(lookup->evas, e->buttons, flags, e->timestamp, NULL);
+          evas_event_feed_mouse_up(lookup->evas, e->buttons, flags, 
+                                   e->timestamp, NULL);
      }
    else
      {
         if (press == ECORE_DOWN)
-          evas_event_feed_multi_down(lookup->evas, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, flags, e->timestamp, NULL);
+          {
+             if (lookup->down_multi)
+                lookup->down_multi(lookup->window, e->multi.device, 
+                                   e->x, e->y, e->multi.radius, 
+                                   e->multi.radius_x, e->multi.radius_y, 
+                                   e->multi.pressure, e->multi.angle, 
+                                   e->multi.x, e->multi.y, flags, 
+                                   e->timestamp);
+             else
+                evas_event_feed_multi_down(lookup->evas, e->multi.device, 
+                                           e->x, e->y, e->multi.radius, 
+                                           e->multi.radius_x, e->multi.radius_y, 
+                                           e->multi.pressure, e->multi.angle, 
+                                           e->multi.x, e->multi.y, flags, 
+                                           e->timestamp, NULL);
+          }
         else
-          evas_event_feed_multi_up(lookup->evas, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, flags, e->timestamp, NULL);
+          {
+             if (lookup->up_multi)
+                lookup->up_multi(lookup->window, e->multi.device, 
+                                 e->x, e->y, e->multi.radius, 
+                                 e->multi.radius_x, e->multi.radius_y, 
+                                 e->multi.pressure, e->multi.angle, 
+                                 e->multi.x, e->multi.y, flags, 
+                                 e->timestamp);
+             else
+                evas_event_feed_multi_up(lookup->evas, e->multi.device, 
+                                         e->x, e->y, e->multi.radius, 
+                                         e->multi.radius_x, e->multi.radius_y, 
+                                         e->multi.pressure, e->multi.angle, 
+                                         e->multi.x, e->multi.y, flags, 
+                                         e->timestamp, NULL);
+          }
      }
    return ECORE_CALLBACK_RENEW;
 }
@@ -182,11 +224,27 @@ ecore_event_evas_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *ev
    if (e->multi.device == 0)
      {
         ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
-        lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
+        if (lookup->move_mouse)
+           lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
+        else
+           evas_event_feed_mouse_move(lookup->evas, e->x, e->y, e->timestamp, 
+                                      NULL);
      }
    else
      {
-        evas_event_feed_multi_move(lookup->evas, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, e->timestamp, NULL);
+        if (lookup->move_multi)
+           lookup->move_multi(lookup->window, e->multi.device, 
+                              e->x, e->y, e->multi.radius, 
+                              e->multi.radius_x, e->multi.radius_y, 
+                              e->multi.pressure, e->multi.angle, 
+                              e->multi.x, e->multi.y, e->timestamp);
+        else
+           evas_event_feed_multi_move(lookup->evas, e->multi.device, 
+                                      e->x, e->y, e->multi.radius, 
+                                      e->multi.radius_x, e->multi.radius_y, 
+                                      e->multi.pressure, e->multi.angle, 
+                                      e->multi.x, e->multi.y, e->timestamp, 
+                                      NULL);
      }
    return ECORE_CALLBACK_RENEW;
 }
index e3fc8d8..ac332d1 100644 (file)
@@ -6,7 +6,6 @@
 #define MAXHOSTNAMELEN 256
 #endif /* ifndef MAXHOSTNAMELEN */
 
-#define XK_MISCELLANY  1
 #include <X11/Xlib.h>
 #include <X11/Xproto.h>
 #include <X11/Xutil.h>
 #include <X11/extensions/XInput2.h>
 #endif /* ifdef ECORE_XI2 */
 
+#ifndef XK_MISCELLANY
+# define XK_MISCELLANY  1
+#endif
+
 #include "Ecore.h"
 #include "ecore_private.h"
 #include "Ecore_X.h"