aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-08-26 09:44:47 +0800
committermarcus <marcus@FreeBSD.org>2003-08-26 09:44:47 +0800
commit2fe8fc24d50178ba40ae3c94a4e103ad81d7f776 (patch)
treea6292805557d234db18845c5ae784a8cee03fbd9 /net
parent93e2ca0ce5cf6efcd29bb0a2c60503ba0a46a818 (diff)
downloadfreebsd-ports-gnome-2fe8fc24d50178ba40ae3c94a4e103ad81d7f776.tar.gz
freebsd-ports-gnome-2fe8fc24d50178ba40ae3c94a4e103ad81d7f776.tar.zst
freebsd-ports-gnome-2fe8fc24d50178ba40ae3c94a4e103ad81d7f776.zip
Fix sending pre-edit characters after hitting Enter. This mainly affects
CJK users. Submitted by: perky Obtained from: Gentoo Linux
Diffstat (limited to 'net')
-rw-r--r--net/gaim/Makefile1
-rw-r--r--net/gaim/files/patch-src::gtkconv.c30
2 files changed, 31 insertions, 0 deletions
diff --git a/net/gaim/Makefile b/net/gaim/Makefile
index bf4c87e9cda1..bebbfe8ea3bc 100644
--- a/net/gaim/Makefile
+++ b/net/gaim/Makefile
@@ -6,6 +6,7 @@
PORTNAME= gaim
PORTVERSION= 0.67
+PORTREVISION= 1
CATEGORIES?= net
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
diff --git a/net/gaim/files/patch-src::gtkconv.c b/net/gaim/files/patch-src::gtkconv.c
new file mode 100644
index 000000000000..ab1c804d46e1
--- /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");