--- gtk+-2.4.1/gdk/x11/gdkevents-x11.c 2004-04-23 18:33:56.000000000 +0530
+++ gtk+-2.4.1-new/gdk/x11/gdkevents-x11.c 2004-08-18 16:53:57.000000000 +0530
@@ -1011,8 +1011,31 @@ gdk_event_translate (GdkDisplay *display
return_val = FALSE;
break;
}
+
+ if (xevent->xkey.state == 0)
+ {
+ switch (XKeycodeToKeysym (display_x11->xdisplay, xevent->xkey.keycode, 0)) {
+ case GDK_R7: /* Home key on Sun Type-4/5/6 keyboard */
+ xevent->xkey.keycode = XKeysymToKeycode (display_x11->xdisplay,
+GDK_Home);
+ break;
+ case GDK_R13: /* End key on Sun Type-4/5/6 keyboard */
+ xevent->xkey.keycode = XKeysymToKeycode (display_x11->xdisplay,
+GDK_End);
+ break;
+ case GDK_R9: /* PgUp Key */
+ xevent->xkey.keycode = XKeysymToKeycode (display_x11->xdisplay,
+GDK_Prior);
+ break;
+ case GDK_R15: /* PgDn Key */
+ xevent->xkey.keycode = XKeysymToKeycode (display_x11->xdisplay,
+GDK_Next);
+ break;
+ }
+ }
translate_key_event (display, event, xevent);
set_user_time (window, event);
+
break;
case KeyRelease: