# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1339615410 0 # Node ID f297d8a63aed47f4565d6d768b3f4ce3e8ba5f66 # Parent 76b24619f6fa5dff42cc837998bc954f994bb167 Added utf8 parameter to key press callback on GTK2/3. diff -r 76b24619f6fa -r f297d8a63aed gtk/dw.c --- a/gtk/dw.c Wed Jun 13 19:20:39 2012 +0000 +++ b/gtk/dw.c Wed Jun 13 19:23:30 2012 +0000 @@ -1403,10 +1403,14 @@ if ( dbgfp != NULL ) _dw_log("%s %d: %s\n",__FILE__,__LINE__,__func__); if(work.window) { - int (*keypressfunc)(HWND, char, int, int, void *) = work.func; + int (*keypressfunc)(HWND, char, int, int, void *, char *) = work.func; + guint32 unichar = gdk_keyval_to_unicode(event->keyval); + char utf8[7] = { 0 }; + + g_unichar_to_utf8(unichar, utf8); retval = keypressfunc(work.window, *event->string, event->keyval, - event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK), work.data); + event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK), work.data, utf8); } return retval; } diff -r 76b24619f6fa -r f297d8a63aed gtk3/dw.c --- a/gtk3/dw.c Wed Jun 13 19:20:39 2012 +0000 +++ b/gtk3/dw.c Wed Jun 13 19:23:30 2012 +0000 @@ -1257,10 +1257,14 @@ if(work.window) { - int (*keypressfunc)(HWND, char, int, int, void *) = work.func; - + int (*keypressfunc)(HWND, char, int, int, void *, char *) = work.func; + guint32 unichar = gdk_keyval_to_unicode(event->keyval); + char utf8[7] = { 0 }; + + g_unichar_to_utf8(unichar, utf8); + retval = keypressfunc(work.window, *event->string, event->keyval, - event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK), work.data); + event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK), work.data, utf8); } return retval; }