summaryrefslogtreecommitdiffstats
path: root/net/gaim/files
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-08-26 01:44:47 +0000
committermarcus <marcus@FreeBSD.org>2003-08-26 01:44:47 +0000
commit2fe8fc24d50178ba40ae3c94a4e103ad81d7f776 (patch)
treea6292805557d234db18845c5ae784a8cee03fbd9 /net/gaim/files
parent93e2ca0ce5cf6efcd29bb0a2c60503ba0a46a818 (diff)
downloadFreeBSD-ports-2fe8fc24d50178ba40ae3c94a4e103ad81d7f776.zip
FreeBSD-ports-2fe8fc24d50178ba40ae3c94a4e103ad81d7f776.tar.gz
Fix sending pre-edit characters after hitting Enter. This mainly affects
CJK users. Submitted by: perky Obtained from: Gentoo Linux
Diffstat (limited to 'net/gaim/files')
-rw-r--r--net/gaim/files/patch-src::gtkconv.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/net/gaim/files/patch-src::gtkconv.c b/net/gaim/files/patch-src::gtkconv.c
new file mode 100644
index 0000000..ab1c804
--- /dev/null
+++ b/net/gaim/files/patch-src::gtkconv.c
@@ -0,0 +1,30 @@
+--- src/gtkconv.c.orig Thu Aug 14 07:40:41 2003
++++ src/gtkconv.c Mon Aug 25 16:34:55 2003
+@@ -1138,11 +1138,27 @@
+ GaimConversation *conv;
+ GaimGtkConversation *gtkconv;
+ GaimGtkWindow *gtkwin;
++ gboolean im_context_retval = FALSE;
++ static guint32 last_event_time;
+
+ conv = (GaimConversation *)data;
+ gtkconv = GAIM_GTK_CONVERSATION(conv);
+ win = gaim_conversation_get_window(conv);
+ gtkwin = GAIM_GTK_WINDOW(win);
++
++ /*
++ * Check if the input method handles this keyevent or we can use it.
++ * We need to check the event time, otherwise the gtk xim module gets into an event loop (bug?)
++ * Maybe this is not the best solution, but it works.
++ */
++
++ if (last_event_time != event->time) {
++ im_context_retval = gtk_im_context_filter_keypress(GTK_TEXT_VIEW(gtkconv->entry)->im_context, event);
++ }
++ last_event_time = event->time;
++ if (im_context_retval == TRUE) {
++ return TRUE;
++ }
+
+ if (event->keyval == GDK_Page_Up) {
+ g_signal_stop_emission_by_name(G_OBJECT(entry), "key_press_event");
OpenPOWER on IntegriCloud