rem: case 65307:
add: case GDK_Escape:
context: static void touche_pressee ( GtkWidget *entry,			     GdkEventKey *ev,			     GtkComboFix *combofix ){  GtkAdjustment *ajustement;  if ( !combofix -> liste )    return;  switch ( ev -> keyval )    {      /* touche gauche ou droite presse s'il y a une slection, vire la slection et place le curseur  la fin de cette slection */    case 65361 :    case 65363 :      if ( ( GTK_OLD_EDITABLE ( combofix -> entry ) -> selection_end_pos - GTK_OLD_EDITABLE ( combofix -> entry ) -> selection_start_pos ) != 0 )	gtk_editable_set_position ( GTK_OLD_EDITABLE ( combofix -> entry ),				    MAX ( GTK_OLD_EDITABLE ( combofix -> entry ) -> selection_start_pos,					  GTK_OLD_EDITABLE ( combofix -> entry ) -> selection_end_pos ) );      gtk_editable_select_region ( GTK_OLD_EDITABLE ( combofix -> entry ),				   0,				   0 );      break;      /*       touche entre : prend le label slectionn puis vire la popup */    case 65293 :    case 65421 :      if ( GTK_WIDGET_VISIBLE ( combofix -> popup ) &&   combofix -> label_selectionne != -1 )      {	gtk_combofix_set_text ( combofix,				gtk_object_get_data ( GTK_OBJECT ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ), "texte" ) );	gtk_signal_emit_stop_by_name ( GTK_OBJECT ( entry ),				       "key-press-event" );      }      /*       touches chap  : vire la popup et  la slection */    case 65307:      if ( GTK_WIDGET_VISIBLE ( combofix -> popup ))	{	  gtk_grab_remove ( combofix -> popup );	  gdk_pointer_ungrab ( GDK_CURRENT_TIME );	  gtk_widget_hide ( combofix->popup );      	  gtk_entry_select_region ( GTK_ENTRY ( combofix -> entry ),				    0,				    0 );	  gtk_signal_emit_stop_by_name ( GTK_OBJECT ( entry ),					 "key-press-event" );	}      break;           /* flche bas */    case 65364:      gtk_signal_emit_stop_by_name ( GTK_OBJECT ( combofix -> entry ),				     "key-press-event" );      /*     si la popup n'est pas affiche  cause de l'arrow, descend l'arrow, affiche la liste */      if ( combofix -> affiche_liste == 0 || !GTK_WIDGET_VISIBLE ( combofix->popup ) )	{	  gtk_widget_grab_focus ( GTK_WIDGET ( combofix -> arrow ));	  change_arrow ( NULL,			 combofix );	  gtk_widget_grab_focus ( GTK_WIDGET ( combofix -> entry ));	}      /*       si la popup est affiche, on descend dans la liste, sinon, c'est qu'il n'y avait aucune slection possible */      if ( GTK_WIDGET_VISIBLE ( combofix->popup ) )	{	  if ( combofix -> label_selectionne < ( g_slist_length ( combofix->event_box )-1) || combofix -> label_selectionne == -1 )	    {	      if ( combofix -> label_selectionne != -1 )		gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),				       GTK_STATE_NORMAL );	      combofix -> label_selectionne++;	      if ( GTK_IS_HSEPARATOR( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )))		combofix -> label_selectionne++;	    	      ajustement = gtk_scrolled_window_get_vadjustment ( GTK_SCROLLED_WINDOW ( combofix -> box ));	      /* 	  si on est en dessous de la liste, on la dcale vers le bas */	      while ( ( combofix -> label_selectionne + 1 )* ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )) -> allocation.height > ajustement -> value + ajustement -> page_size )		gtk_adjustment_set_value ( ajustement,					   ajustement -> value + ajustement -> step_increment );	      gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),				     GTK_STATE_PRELIGHT );	    }	}      break;       /* flche haut */    case 65362:      gtk_signal_emit_stop_by_name ( GTK_OBJECT ( combofix -> entry ),				     "key-press-event" );      if ( combofix -> label_selectionne > 0 )	{	  gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),				 GTK_STATE_NORMAL );	  combofix -> label_selectionne--;	  if ( GTK_IS_HSEPARATOR ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )))	    combofix -> label_selectionne--;	  ajustement = gtk_scrolled_window_get_vadjustment ( GTK_SCROLLED_WINDOW ( combofix -> box ));	  /* 	  si on est au dessus de la liste, on la dcale vers le haut */	  while ( combofix -> label_selectionne* ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )) -> allocation.height < ajustement -> value )	    gtk_adjustment_set_value ( ajustement,				       ajustement -> value - ajustement -> step_increment );	  gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),				 GTK_STATE_PRELIGHT );	}      break;      /* page up */    case 65365:      gtk_signal_emit_stop_by_name ( GTK_OBJECT ( combofix -> entry ),				     "key-press-event" );      if ( combofix -> label_selectionne > 0 )	{	  gint nb_labels_par_page;	  gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne )),				 GTK_STATE_NORMAL );	  /* on calcule combien il y a de labels dans une page */	  nb_labels_par_page = (combofix -> box) -> allocation.height / GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne )) -> allocation.height;	  combofix -> label_selectionne = combofix -> label_selectionne - nb_labels_par_page;	  if ( combofix -> label_selectionne < 0 )	    combofix -> label_selectionne = 0;	  if ( GTK_IS_HSEPARATOR ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )))	    combofix -> label_selectionne--;	  ajustement = gtk_scrolled_window_get_vadjustment ( GTK_SCROLLED_WINDOW ( combofix -> box ));	  /* 	  si on est au dessus de la liste, on la dcale vers le haut */	  while ( combofix -> label_selectionne* ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )) -> allocation.height < ajustement -> value )	    gtk_adjustment_set_value ( ajustement,				       ajustement -> value - ajustement -> step_increment );	  gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),				 GTK_STATE_PRELIGHT );	}      break;      /* page down */    case 65366:      gtk_signal_emit_stop_by_name ( GTK_OBJECT ( combofix -> entry ),				     "key-press-event" );      /*     si la popup n'est pas affiche  cause de l'arrow, descend l'arrow, affiche la liste */      if ( combofix -> affiche_liste == 0 || !GTK_WIDGET_VISIBLE ( combofix->popup ) )	{	  gtk_widget_grab_focus ( GTK_WIDGET ( combofix -> arrow ));	  change_arrow ( NULL,			 combofix );	  gtk_widget_grab_focus ( GTK_WIDGET ( combofix -> entry ));	}      /*       si la popup est affiche, on descend dans la liste, sinon, c'est qu'il n'y avait aucune slection possible */      if ( GTK_WIDGET_VISIBLE ( combofix->popup ) )	{	  if ( combofix -> label_selectionne < ( g_slist_length ( combofix->event_box )-1) || combofix -> label_selectionne == -1 )	    {	      gint nb_labels_par_page;	      if ( combofix -> label_selectionne != -1 )		{		  gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),					 GTK_STATE_NORMAL );		  /* on calcule combien il y a de labels dans une page */		  nb_labels_par_page = (combofix -> box) -> allocation.height / GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne )) -> allocation.height;		}	      else		nb_labels_par_page = 1;	      combofix -> label_selectionne = combofix -> label_selectionne + nb_labels_par_page;	      if ( combofix -> label_selectionne >= g_slist_length ( combofix -> event_box ))		combofix -> label_selectionne = g_slist_length ( combofix -> event_box ) - 1;	      if ( GTK_IS_HSEPARATOR( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )))		combofix -> label_selectionne++;	    	      ajustement = gtk_scrolled_window_get_vadjustment ( GTK_SCROLLED_WINDOW ( combofix -> box ));	      /* 	  si on est en dessous de la liste, on la dcale vers le bas */	      while ( ( combofix -> label_selectionne + 1 )* ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) )) -> allocation.height > ajustement -> value + ajustement -> page_size )		gtk_adjustment_set_value ( ajustement,					   ajustement -> value + ajustement -> step_increment );	      gtk_widget_set_state ( GTK_WIDGET ( g_slist_nth_data ( combofix->event_box, combofix -> label_selectionne ) ),				     GTK_STATE_PRELIGHT );	    }	}    default :    }}