From a4b51efbd33c44585d54ef156a4476ac4f9176b0 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Mon, 13 Dec 2010 15:47:50 +0900 Subject: [PATCH] [SVN's EFL Migration] ecore in SLP is merged with SVN r55371. --- COPYING-PLAIN | 33 ------ Makefile.am | 2 +- configure.ac | 3 +- ecore-job.pc.in | 11 -- readme.slp2 | 1 - src/lib/ecore/ecore_main.c | 140 +++++++++++++++-------- src/lib/ecore_con/ecore_con.c | 10 +- src/lib/ecore_con/ecore_con_ares.c | 58 +++++----- src/lib/ecore_con/ecore_con_ssl.c | 11 +- src/lib/ecore_evas/ecore_evas.c | 155 +++++++++++++++++++++++++- src/lib/ecore_evas/ecore_evas_cocoa.c | 6 +- src/lib/ecore_evas/ecore_evas_private.h | 26 +++++ src/lib/ecore_evas/ecore_evas_sdl.c | 6 +- src/lib/ecore_evas/ecore_evas_win32.c | 6 +- src/lib/ecore_evas/ecore_evas_wince.c | 6 +- src/lib/ecore_evas/ecore_evas_x.c | 78 ++++++++++--- src/lib/ecore_imf/Ecore_IMF.h | 77 ++++++------- src/lib/ecore_imf/Ecore_IMF_Input_Panel_Key.h | 4 +- src/lib/ecore_imf/ecore_imf.c | 6 +- src/lib/ecore_imf/ecore_imf_context.c | 99 ++++------------ src/lib/ecore_imf/ecore_imf_private.h | 2 +- src/lib/ecore_input_evas/Ecore_Input_Evas.h | 7 +- src/lib/ecore_input_evas/ecore_input_evas.c | 72 ++++++++++-- src/lib/ecore_x/xlib/ecore_x_private.h | 5 +- 24 files changed, 534 insertions(+), 290 deletions(-) delete mode 100644 COPYING-PLAIN delete mode 100644 ecore-job.pc.in delete mode 100644 readme.slp2 diff --git a/COPYING-PLAIN b/COPYING-PLAIN deleted file mode 100644 index 376875e..0000000 --- a/COPYING-PLAIN +++ /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 diff --git a/Makefile.am b/Makefile.am index 0534d99..498a6ef 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/configure.ac b/configure.ac index b45aeda..0955281 100644 --- a/configure.ac +++ b/configure.ac @@ -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 index 83bb7a0..0000000 --- a/ecore-job.pc.in +++ /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 index d978b4b..0000000 --- a/readme.slp2 +++ /dev/null @@ -1 +0,0 @@ -EFL:ecore repo for SLP2 diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c index d6f7666..d6de0c7 100644 --- a/src/lib/ecore/ecore_main.c +++ b/src/lib/ecore/ecore_main.c @@ -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--; } diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 137a3b7..87453f3 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -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; } diff --git a/src/lib/ecore_con/ecore_con_ares.c b/src/lib/ecore_con/ecore_con_ares.c index f4c7f8e..64d0aac 100644 --- a/src/lib/ecore_con/ecore_con_ares.c +++ b/src/lib/ecore_con/ecore_con_ares.c @@ -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: diff --git a/src/lib/ecore_con/ecore_con_ssl.c b/src/lib/ecore_con/ecore_con_ssl.c index 047e57d..cf90ec4 100644 --- a/src/lib/ecore_con/ecore_con_ssl.c +++ b/src/lib/ecore_con/ecore_con_ssl.c @@ -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! */ diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index fdd71dc..56e165e 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -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; } - - diff --git a/src/lib/ecore_evas/ecore_evas_cocoa.c b/src/lib/ecore_evas/ecore_evas_cocoa.c index 21fdd0b..e6fb541 100644 --- a/src/lib/ecore_evas/ecore_evas_cocoa.c +++ b/src/lib/ecore_evas/ecore_evas_cocoa.c @@ -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; diff --git a/src/lib/ecore_evas/ecore_evas_private.h b/src/lib/ecore_evas/ecore_evas_private.h index a02557b..6344be5 100644 --- a/src/lib/ecore_evas/ecore_evas_private.h +++ b/src/lib/ecore_evas/ecore_evas_private.h @@ -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; diff --git a/src/lib/ecore_evas/ecore_evas_sdl.c b/src/lib/ecore_evas/ecore_evas_sdl.c index 6c19af3..1d08322 100644 --- a/src/lib/ecore_evas/ecore_evas_sdl.c +++ b/src/lib/ecore_evas/ecore_evas_sdl.c @@ -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); diff --git a/src/lib/ecore_evas/ecore_evas_win32.c b/src/lib/ecore_evas/ecore_evas_win32.c index 852c922..6728784 100644 --- a/src/lib/ecore_evas/ecore_evas_win32.c +++ b/src/lib/ecore_evas/ecore_evas_win32.c @@ -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; } diff --git a/src/lib/ecore_evas/ecore_evas_wince.c b/src/lib/ecore_evas/ecore_evas_wince.c index c1de52c..3a2e444 100644 --- a/src/lib/ecore_evas/ecore_evas_wince.c +++ b/src/lib/ecore_evas/ecore_evas_wince.c @@ -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; diff --git a/src/lib/ecore_evas/ecore_evas_x.c b/src/lib/ecore_evas/ecore_evas_x.c index c9fe041..894f21f 100644 --- a/src/lib/ecore_evas/ecore_evas_x.c +++ b/src/lib/ecore_evas/ecore_evas_x.c @@ -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; diff --git a/src/lib/ecore_imf/Ecore_IMF.h b/src/lib/ecore_imf/Ecore_IMF.h index b704ce8..f99799e 100644 --- a/src/lib/ecore_imf/Ecore_IMF.h +++ b/src/lib/ecore_imf/Ecore_IMF.h @@ -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); diff --git a/src/lib/ecore_imf/Ecore_IMF_Input_Panel_Key.h b/src/lib/ecore_imf/Ecore_IMF_Input_Panel_Key.h index 8e505f5..24382a2 100644 --- a/src/lib/ecore_imf/Ecore_IMF_Input_Panel_Key.h +++ b/src/lib/ecore_imf/Ecore_IMF_Input_Panel_Key.h @@ -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 diff --git a/src/lib/ecore_imf/ecore_imf.c b/src/lib/ecore_imf/ecore_imf.c index 8e5e8e7..060b8f2 100644 --- a/src/lib/ecore_imf/ecore_imf.c +++ b/src/lib/ecore_imf/ecore_imf.c @@ -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(); diff --git a/src/lib/ecore_imf/ecore_imf_context.c b/src/lib/ecore_imf/ecore_imf_context.c index ecedcfb..b817cd8 100644 --- a/src/lib/ecore_imf/ecore_imf_context.c +++ b/src/lib/ecore_imf/ecore_imf_context.c @@ -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); } } diff --git a/src/lib/ecore_imf/ecore_imf_private.h b/src/lib/ecore_imf/ecore_imf_private.h index 8e30aef..8a40f5a 100644 --- a/src/lib/ecore_imf/ecore_imf_private.h +++ b/src/lib/ecore_imf/ecore_imf_private.h @@ -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 diff --git a/src/lib/ecore_input_evas/Ecore_Input_Evas.h b/src/lib/ecore_input_evas/Ecore_Input_Evas.h index 836d3e0..c97274e 100644 --- a/src/lib/ecore_input_evas/Ecore_Input_Evas.h +++ b/src/lib/ecore_input_evas/Ecore_Input_Evas.h @@ -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); diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c b/src/lib/ecore_input_evas/ecore_input_evas.c index 4de8b1d..0f445a0 100644 --- a/src/lib/ecore_input_evas/ecore_input_evas.c +++ b/src/lib/ecore_input_evas/ecore_input_evas.c @@ -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; } diff --git a/src/lib/ecore_x/xlib/ecore_x_private.h b/src/lib/ecore_x/xlib/ecore_x_private.h index e3fc8d8..ac332d1 100644 --- a/src/lib/ecore_x/xlib/ecore_x_private.h +++ b/src/lib/ecore_x/xlib/ecore_x_private.h @@ -6,7 +6,6 @@ #define MAXHOSTNAMELEN 256 #endif /* ifndef MAXHOSTNAMELEN */ -#define XK_MISCELLANY 1 #include #include #include @@ -54,6 +53,10 @@ #include #endif /* ifdef ECORE_XI2 */ +#ifndef XK_MISCELLANY +# define XK_MISCELLANY 1 +#endif + #include "Ecore.h" #include "ecore_private.h" #include "Ecore_X.h" -- 2.7.4