# HG changeset patch # User Luke Schierer # Date 1192813850 0 # Node ID d256249b22eaa2b079ba99dff2daacbb646bd3b7 # Parent c2d3c9fc71b59c9604a8c5bae56dec5ababef724 applied changes from 4bbc209c8076ef89135700af844ec6bb04602c0a through 43311ea3963dadd958af56847cc36df60507673f diff -r c2d3c9fc71b5 -r d256249b22ea finch/libgnt/gntmain.c --- a/finch/libgnt/gntmain.c Fri Oct 19 17:10:04 2007 +0000 +++ b/finch/libgnt/gntmain.c Fri Oct 19 17:10:50 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; }