GdkEvent *nextEvent; PRBool    shouldDrop = PR_FALSE;          nextEvent = gdk_event_get();  if (nextEvent && (nextEvent->type == GDK_KEY_PRESS) && (nextEvent->key.time == event->time)) { shouldDrop = PR_TRUE;   suppressNextKeyDown = PR_TRUE; } if (nextEvent) {  gdk_event_put(nextEvent);  gdk_event_free(nextEvent); }   if (shouldDrop) return PR_TRUE;
gint handle_key_release_event(GtkObject *w, GdkEventKey* event, gpointer p){  // Don't pass shift, control and alt as key release events  if (event->keyval == GDK_Shift_L      || event->keyval == GDK_Shift_R      || event->keyval == GDK_Control_L      || event->keyval == GDK_Control_R)    return PR_TRUE;  nsWidget *win = (nsWidget *)p;  if (win->focusWindow)    win = win->focusWindow;  nsKeyEvent kevent;  InitKeyEvent(event, win, kevent, NS_KEY_UP);  NS_ADDREF(win);  win->OnKey(kevent);  NS_RELEASE(win);  if (w)  {    gtk_signal_emit_stop_by_name (GTK_OBJECT(w), "key_release_event");  }  return PR_TRUE;}