changeset 1747:f297d8a63aed

Added utf8 parameter to key press callback on GTK2/3.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 13 Jun 2012 19:23:30 +0000
parents 76b24619f6fa
children e4fcd1e81f0d
files gtk/dw.c gtk3/dw.c
diffstat 2 files changed, 13 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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;
 }
--- 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;
 }