ecore-x: Remove XIM

Signed-off-by: Naruto TAKAHASHI <tnaruto@gmail.com>

SVN revision: 61257
This commit is contained in:
Naruto TAKAHASHI 2011-07-12 02:26:19 +00:00 committed by Mike McCormack
parent dba308e60b
commit 39164fb44d
2 changed files with 12 additions and 160 deletions

View File

@ -59,8 +59,6 @@ Window _ecore_x_event_last_win = 0;
int _ecore_x_event_last_root_x = 0;
int _ecore_x_event_last_root_y = 0;
Eina_Bool _ecore_x_xcursor = EINA_FALSE;
XIC _ecore_x_ic = NULL; /* Input context for composed characters */
XIM _ecore_x_im = NULL;
Ecore_X_Window _ecore_x_private_win = 0;
@ -558,56 +556,6 @@ ecore_x_init(const char *name)
_ecore_x_private_win = ecore_x_window_override_new(0, -77, -777, 123, 456);
#ifdef ENABLE_XIM
/* Setup XIM */
if (!_ecore_x_ic && XSupportsLocale())
{
XIM im;
XIC ic;
XIMStyles *supported_styles;
XIMStyle chosen_style = 0;
Ecore_X_Window client_window = ecore_x_window_root_get(
_ecore_x_private_win);
char *ret;
int i;
XSetLocaleModifiers("@im=none");
if (!(im = XOpenIM(_ecore_x_disp, NULL, NULL, NULL)))
goto _im_create_end;
ret = XGetIMValues(im, XNQueryInputStyle, &supported_styles, NULL);
if (ret || !supported_styles)
goto _im_create_error;
for (i = 0; i < supported_styles->count_styles; i++)
{
if (supported_styles->supported_styles[i] ==
(XIMPreeditNothing | XIMStatusNothing))
chosen_style = supported_styles->supported_styles[i];
}
XFree(supported_styles);
if (!chosen_style)
goto _im_create_error;
ic = XCreateIC(im,
XNInputStyle,
chosen_style,
XNClientWindow,
client_window,
NULL);
if (ic)
{
_ecore_x_ic = ic;
_ecore_x_im = im;
goto _im_create_end;
}
_im_create_error:
XCloseIM(im);
}
_im_create_end:
#endif /* ifdef ENABLE_XIM */
return _ecore_x_init_count;
free_event_handlers:
@ -640,20 +588,6 @@ _ecore_x_shutdown(int close_display)
LOGFN(__FILE__, __LINE__, __FUNCTION__);
#ifdef ENABLE_XIM
if (_ecore_x_ic)
{
XDestroyIC(_ecore_x_ic);
_ecore_x_ic = NULL;
}
if (_ecore_x_im)
{
XCloseIM(_ecore_x_im);
_ecore_x_im = NULL;
}
#endif /* ifdef ENABLE_XIM */
ecore_main_fd_handler_del(_ecore_x_fd_handler_handle);
if (close_display)
XCloseDisplay(_ecore_x_disp);

View File

@ -231,88 +231,18 @@ _ecore_key_press(int event, XKeyEvent *xevent)
sym = 0;
key = NULL;
compose = NULL;
if ((_ecore_x_ic) && (event == ECORE_EVENT_KEY_DOWN))
{
Status mbstatus;
#ifdef X_HAVE_UTF8_STRING
val = Xutf8LookupString(_ecore_x_ic,
(XKeyEvent *)xevent,
compose_buffer,
sizeof(compose_buffer) - 1,
&sym,
&mbstatus);
#else /* ifdef X_HAVE_UTF8_STRING */
val = XmbLookupString(_ecore_x_ic,
(XKeyEvent *)xevent,
compose_buffer,
sizeof(compose_buffer) - 1,
&sym,
&mbstatus);
#endif /* ifdef X_HAVE_UTF8_STRING */
if (mbstatus == XBufferOverflow)
{
tmp = malloc(sizeof (char) * (val + 1));
if (!tmp)
return;
compose = tmp;
#ifdef X_HAVE_UTF8_STRING
val = Xutf8LookupString(_ecore_x_ic,
(XKeyEvent *)xevent,
tmp,
val,
&sym,
&mbstatus);
#else /* ifdef X_HAVE_UTF8_STRING */
val = XmbLookupString(_ecore_x_ic,
(XKeyEvent *)xevent,
tmp,
val,
&sym,
&mbstatus);
#endif /* ifdef X_HAVE_UTF8_STRING */
if (val > 0)
{
tmp[val] = 0;
#ifndef X_HAVE_UTF8_STRING
compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8", tmp);
free(tmp);
tmp = compose;
#endif /* ifndef X_HAVE_UTF8_STRING */
}
else
compose = NULL;
}
else
if (val > 0)
{
compose_buffer[val] = 0;
#ifdef X_HAVE_UTF8_STRING
compose = compose_buffer;
#else /* ifdef X_HAVE_UTF8_STRING */
compose = eina_str_convert(nl_langinfo(
CODESET), "UTF-8", compose_buffer);
tmp = compose;
#endif /* ifdef X_HAVE_UTF8_STRING */
}
}
else
{
val = XLookupString(xevent,
compose_buffer,
sizeof(compose_buffer),
&sym,
&status);
if (val > 0)
{
compose_buffer[val] = 0;
compose = eina_str_convert(nl_langinfo(
CODESET), "UTF-8", compose_buffer);
tmp = compose;
}
}
val = XLookupString(xevent,
compose_buffer,
sizeof(compose_buffer),
&sym,
&status);
if (val > 0)
{
compose_buffer[val] = 0;
compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8",
compose_buffer);
tmp = compose;
}
key = XKeysymToString(sym);
if (!key)
@ -881,16 +811,6 @@ _ecore_x_event_handle_focus_in(XEvent *xevent)
Ecore_X_Event_Window_Focus_In *e;
_ecore_x_last_event_mouse_move = 0;
if (_ecore_x_ic)
{
char *str;
XSetICValues(_ecore_x_ic, XNFocusWindow, xevent->xfocus.window, NULL);
if ((str = XmbResetIC(_ecore_x_ic)))
XFree(str);
XSetICFocus(_ecore_x_ic);
}
e = calloc(1, sizeof(Ecore_X_Event_Window_Focus_In));
if (!e)
@ -935,8 +855,6 @@ _ecore_x_event_handle_focus_out(XEvent *xevent)
Ecore_X_Event_Window_Focus_Out *e;
_ecore_x_last_event_mouse_move = 0;
if (_ecore_x_ic)
XUnsetICFocus(_ecore_x_ic);
e = calloc(1, sizeof(Ecore_X_Event_Window_Focus_Out));
if (!e)