Hell, Briano and EFL people.

It is because I misunderstood about the parameter of 
ecore_imf_context_client_window_set API.

ATM, we haven’t used the parameter of ecore_imf_context_client_window_set as 
the important parameter
We just use 'canvas (Evas *) information' of 
ecore_imf_context_client_canvas_set instead of 'client window' information.
Therefore, it will not affect to our project. :)
Thank you for your reporting and interest about IMF.

I send the patch to fix this problem. Is there anyone to review this patch and 
apply in svn?

-----Original Message-----
From: Iván Briano (Sachiel) [mailto:sachi...@gmail.com] 
Sent: Sunday, July 10, 2011 4:08 PM
To: Jihoon Kim
Cc: Naruto TAKAHASHI; Mike McCormack; enlightenment-devel@lists.sourceforge.net
Subject: Re: [E-devel] [Patch] Add XIM module for ecore_imf

Hello people,

Some bad-ass top-posting because I feel like it.

These patches seem to be fine except for two things:

1.- Dead keys is broken and I'm not sure why, but let's forget about that
for now. (dead keys is what makes some us type ' + a and get á)

2.- It doesn't work in any way with Elementary_Entry, or Edje_Entry for
that matter. The thing is, it doesn't work because Edje_Entry is using
Ecore_IMF wrong.

ecore_imf_context_client_window_set() expects to receive whatever specifies
the id of the window the canvas lives in. For most of us, that's an
Ecore_X_Window,
but it could also be an Ecore_Win32_Window or an Ecore_DirectFB_Window.
Within Edje it shouldn't matter which is it for portability reasons
and that's not really
the problem, except we currently have no easy way of fetching this
window in edje_entry.c

The biggest problem I see now, however, is that all the work done by Samsung on
this IMF thing tells me that it's working fine for you, even when Edje
is calling this
ecore_imf_context_client_window_set() function setting an Evas_Object
as the window.
This is *wrong* and once we decide what the right way for Edje to
fetch the window to
set there, everything you have that relies on the current usage will break.

So, cooperation will be required to get this sorted out. Other than
the patches sent for
Edje and Ecore_IMF, we have nothing that tells us how Samsung is using
this and the
patches sent by Naruto Takahashi here, once Edje is fixed, would let
everyone use
Edje, Elementary and E17 with widely available input methods systems
like SCIM and
IBus.

As for getting the right window in Edje, raster proposed an
edje_object_window_set() that
would be used for every Edje object that will receive keyboard input.
For obvious reasons,
I prefer something more automatic, but it may be the case that this is
the only sane choice.

Regards,
Zombie Sachiel

2011/7/9 Naruto TAKAHASHI <tnar...@gmail.com>:
> Hi Mike.
>
> Thanks, feedback. I merged it to xim/Makefile.am.
>
> I attach a source code for using XIM module debug.
> This program can check a below behaviors.
>
>  - toggle enable and disable XIM
>  - commit string from XIM
>
> Another test, by using Desktop Entry Editor's text field.
> (Enlightenment Main->Settings->Settings Panel->New Application)
>
> When executing test program, set ECORE_IMF_MODULE=xim.
>
> Thanks.
>
> 2011/7/8 Mike McCormack <mj.mccorm...@samsung.com>:
>> On 07/08/2011 03:15 PM, Naruto TAKAHASHI wrote:
>>> Hi, All.
>>>
>>> I attached some patches of XIM module of ecore_imf.
>>>
>>> As far as I know, EFL has not having official ecore_imf module in E
>>> repository. And ecore_x has XIM code but is unavailable condition.
>>> So I moved XIM code of ecore_x as ecore_imf module.
>>>
>>> please review this patches.
>>
>> Hello Naruto,
>>
>> Looks like nice work.
>>
>> I applied your patches to my ecore and built, but there was a build error 
>> (fix below):
>>
>> make[5]: Entering directory 
>> `/home/mike/git/e/ecore/src/modules/immodules/xim'
>>  CC     xim_la-ecore_imf_xim.lo
>> ecore_imf_xim.c:5:18: error: Evas.h: No such file or directory
>> ecore_imf_xim.c: In function ‘_ecore_x_event_reverse_locks’:
>> ecore_imf_xim.c:359: warning: suggest braces around empty body in an ‘if’ 
>> statement
>> ecore_imf_xim.c: In function ‘preedit_start_callback’:
>> ecore_imf_xim.c:662: warning: unused parameter ‘xic’
>> ecore_imf_xim.c:664: warning: unused parameter ‘call_data’
>>
>> How can I test it?
>>
>> thanks,
>>
>> Mike
>>
>>
>>
>> diff --git a/ecore/src/modules/immodules/xim/Makefile.am 
>> b/ecore/src/modules/immodules/xim/Makefile.am
>> index 006035c..cc0682d 100644
>> --- a/ecore/src/modules/immodules/xim/Makefile.am
>> +++ b/ecore/src/modules/immodules/xim/Makefile.am
>> @@ -12,6 +12,7 @@ AM_CPPFLAGS = \
>>  -I$(top_builddir)/src/lib/ecore_imf \
>>  -DPACKAGE_LIB_DIR=\"$(libdir)\" \
>>  -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
>> +@EVAS_CFLAGS@ \
>>  @EINA_CFLAGS@
>>
>>  pkgdir = $(libdir)/ecore/immodules
>>
>>
>> ------------------------------------------------------------------------------
>> All of the data generated in your IT infrastructure is seriously valuable.
>> Why? It contains a definitive record of application performance, security
>> threats, fraudulent activity, and more. Splunk takes this data and makes
>> sense of it. IT sense. And common sense.
>> http://p.sf.net/sfu/splunk-d2d-c2
>> _______________________________________________
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>
>
>
> --
> Naruto TAKAHASHI
> tnar...@gmail.com
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
Index: src/lib/edje_private.h
===================================================================
--- src/lib/edje_private.h      (revision 61216)
+++ src/lib/edje_private.h      (working copy)
@@ -52,6 +52,7 @@ void *alloca (size_t);
 #include <Eet.h>
 #include <Evas.h>
 #include <Ecore.h>
+#include <Ecore_Evas.h>
 #include <Ecore_File.h>
 #ifdef HAVE_ECORE_IMF
 # include <Ecore_IMF.h>
Index: src/lib/edje_entry.c
===================================================================
--- src/lib/edje_entry.c        (revision 61216)
+++ src/lib/edje_entry.c        (working copy)
@@ -1948,7 +1948,7 @@ _edje_entry_real_part_init(Edje_Real_Part *rp)
 
         if (!en->imf_context) goto done;
 
-        ecore_imf_context_client_window_set(en->imf_context, rp->object);
+        ecore_imf_context_client_window_set(en->imf_context, 
ecore_evas_window_get(ecore_evas_ecore_evas_get(rp->edje->base.evas)));
         ecore_imf_context_client_canvas_set(en->imf_context, 
rp->edje->base.evas);
 
         ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context,
Index: configure.ac
===================================================================
--- configure.ac        (revision 61216)
+++ configure.ac        (working copy)
@@ -266,6 +266,7 @@ PKG_CHECK_MODULES([EDJE],
     eet >= 1.4.0
     evas >= 1.0.999
     ecore >= 1.0.0
+    ecore-evas >= 1.0.0
     ecore-file >= 1.0.0
     embryo >= 1.0.0
    ])
@@ -273,7 +274,7 @@ PKG_CHECK_MODULES([EDJE],
 EDJE_LIBS="${EDJE_LIBS} ${LUA_LIBS} ${lua_libs}"
 EDJE_CFLAGS="${EDJE_CFLAGS} ${LUA_CFLAGS}"
 
-requirement_edje="embryo >= 1.0.0 ecore >= 1.0.0 evas >= 1.0.0 eet >= 1.4.0 
eina >= 1.0.0 ${requirement_edje}"
+requirement_edje="embryo >= 1.0.0 ecore-evas >= 1.0.0 ecore >= 1.0.0 evas >= 
1.0.0 eet >= 1.4.0 eina >= 1.0.0 ${requirement_edje}"
 requirement_edje="${requirement_lua} ${requirement_edje}"
 
 have_ecore_imf="no"

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to