Lines 975-986
Link Here
|
975 |
struct gaim_conversation *conv; |
975 |
struct gaim_conversation *conv; |
976 |
struct gaim_gtk_conversation *gtkconv; |
976 |
struct gaim_gtk_conversation *gtkconv; |
977 |
struct gaim_gtk_window *gtkwin; |
977 |
struct gaim_gtk_window *gtkwin; |
|
|
978 |
gboolean im_context_retval = FALSE; |
979 |
static guint32 last_event_time; |
978 |
|
980 |
|
979 |
conv = (struct gaim_conversation *)data; |
981 |
conv = (struct gaim_conversation *)data; |
980 |
gtkconv = GAIM_GTK_CONVERSATION(conv); |
982 |
gtkconv = GAIM_GTK_CONVERSATION(conv); |
981 |
win = gaim_conversation_get_window(conv); |
983 |
win = gaim_conversation_get_window(conv); |
982 |
gtkwin = GAIM_GTK_WINDOW(win); |
984 |
gtkwin = GAIM_GTK_WINDOW(win); |
983 |
|
985 |
|
|
|
986 |
/* |
987 |
* Check if the input method handles this keyevent or we can use it. |
988 |
* We need to check the event time, otherwise the gtk xim module gets into an event loop (bug?) |
989 |
* Maybe this is not the best solution, but it works. |
990 |
*/ |
991 |
|
992 |
if (last_event_time != event->time) { |
993 |
im_context_retval = gtk_im_context_filter_keypress(GTK_TEXT_VIEW(gtkconv->entry)->im_context, event); |
994 |
} |
995 |
last_event_time = event->time; |
996 |
if (im_context_retval == TRUE) { |
997 |
return TRUE; |
998 |
} |
999 |
|
984 |
if (event->keyval == GDK_Escape) { |
1000 |
if (event->keyval == GDK_Escape) { |
985 |
if (convo_options & OPT_CONVO_ESC_CAN_CLOSE) { |
1001 |
if (convo_options & OPT_CONVO_ESC_CAN_CLOSE) { |
986 |
g_signal_stop_emission_by_name(G_OBJECT(entry), "key_press_event"); |
1002 |
g_signal_stop_emission_by_name(G_OBJECT(entry), "key_press_event"); |