changeset 20756:09300c787a88

plucked revision to convert input from locale to utf8. applied changes from 993fb1ddb2641d61186ba02a33ea311619d3120a through 967c309eece08bbcbf0e9833ab268ba44a509165
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 03 Oct 2007 14:39:43 +0000
parents 61045691aa72
children bd52427681ae
files finch/libgnt/gntmain.c
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/finch/libgnt/gntmain.c	Tue Oct 02 06:13:27 2007 +0000
+++ b/finch/libgnt/gntmain.c	Wed Oct 03 14:39:43 2007 +0000
@@ -223,6 +223,7 @@
 	char keys[256];
 	int rd;
 	char *k;
+	char *cvrt = NULL;
 
 	if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD)
 		return FALSE;
@@ -243,15 +244,16 @@
 		raise(SIGABRT);
 	}
 
-	gnt_wm_set_event_stack(wm, TRUE);
 	rd += HOLDING_ESCAPE;
-	keys[rd] = 0;
-	if (mouse_enabled && detect_mouse_action(keys))
-		goto end;
-
 	if (HOLDING_ESCAPE)
 		keys[0] = '\033';
-	k = keys;
+	keys[rd] = 0;
+	gnt_wm_set_event_stack(wm, TRUE);
+
+	cvrt = g_locale_to_utf8(keys, rd, (gsize*)&rd, NULL, NULL);
+	k = cvrt ? cvrt : keys;
+	if (mouse_enabled && detect_mouse_action(k))
+		goto end;
 
 #if 0
 	/* I am not sure what's happening here. If this actually does something,
@@ -290,6 +292,7 @@
 	}
 end:
 	gnt_wm_set_event_stack(wm, FALSE);
+	g_free(cvrt);
 	return TRUE;
 }