add: return FALSE;
context: void entree_perd_focus ( GtkWidget *entree,			 GdkEventFocus *ev,			 gint *no_origine ){  gchar *texte;  texte = NULL;  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;  switch ( GPOINTER_TO_INT ( no_origine ))    {      /* on sort de la date, soit c'est vide, soit on la vrifie, la complte si ncessaire et met  jour l'exercice */    case 1:      if ( strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	{	  modifie_date ( entree );	  /* 	  si c'est une modif d'op, on ne change pas l'exercice */	  if ( !gtk_object_get_data ( GTK_OBJECT ( formulaire ),				      "adr_struct_ope" ))	    affiche_exercice_par_date( widget_formulaire_operations[1],				       widget_formulaire_operations[11] );	}      else	texte = _("Date");      break;      /*       on sort du tiers : soit vide soit complte le reste de l'op */    case 2:      if ( strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	completion_operation_par_tiers ();      else	texte = _("Third party");      break;      /*       on sort du dbit : soit vide, soit change le menu des types s'il ne correspond pas */    case 3:      if ( strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	{	  /* on  commence par virer ce qu'il y avait dans les crdits */	  if ( gtk_widget_get_style ( widget_formulaire_operations[4] ) == style_entree_formulaire[0] )	    {	      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[4] ),				   "" );	      entree_perd_focus ( widget_formulaire_operations[4],				  NULL,				  GINT_TO_POINTER (4));	    }	  /* si c'est un menu de crdit, on y met le menu de dbit, sauf si tous les types sont affichs */	  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;	  if ( ( !etat.affiche_tous_les_types		 &&		 GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] )		 &&		 GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ) -> menu ),							 "signe_menu" ))		 ==		 2 )	       ||	       !GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] ))	    {	      /* on cre le nouveau menu et on met le dfaut */	      GtkWidget *menu;	      if ( (menu = creation_menu_types ( 1, compte_courant, 0  )))		{		  gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),					     menu );		  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),						cherche_no_menu_type ( TYPE_DEFAUT_DEBIT ) );		  gtk_widget_show ( widget_formulaire_operations[9] );		}	      else		{		  gtk_widget_hide ( widget_formulaire_operations[9] );		  gtk_widget_hide ( widget_formulaire_operations[10] );		}	      /* comme il y a eu un changement de signe, on change aussi le type de l'op associe */	      /* s'il est affich */	      if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[13] )		   &&		   GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ) -> menu ),							 "signe_menu" ))		   ==		   1 )		{		  GtkWidget *menu;		  menu = creation_menu_types ( 2,					       GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( widget_formulaire_operations[13] ),										       "compte_virement" )),					       2  );		  if ( menu )		    gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ),					       menu );		  else		    gtk_option_menu_remove_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ));		}	    }	  else	    {	      /* 	      on n'a pas recr de menu, donc soit c'est dj un menu de dbit, soit tous les types */	      /* sont affichs, soit le widget n'est pas visible */	      /* on met donc le dfaut, sauf si il y a qque chose dans les categ ou que le widget n'est pas visible */	      if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] )		   &&		   gtk_widget_get_style ( widget_formulaire_operations[8] ) == style_entree_formulaire[1] )		gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),					      cherche_no_menu_type ( TYPE_DEFAUT_DEBIT ) );	    }	}      else	texte = _("Debit");      break;      /*       on sort du crdit : soit vide, soit change le menu des types s'il n'y a aucun tiers ( <=> nouveau tiers ) */    case 4:      if ( strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	{	  /* on  commence par virer ce qu'il y avait dans les dbits */	  if ( gtk_widget_get_style ( widget_formulaire_operations[3] ) == style_entree_formulaire[0] )	    {	      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[3] ),				   "" );	      entree_perd_focus ( widget_formulaire_operations[3],				  NULL,				  GINT_TO_POINTER (3));	    }	  /* si c'est un menu de crdit, on y met le menu de dbit, sauf si tous les types sont affichs */	  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;	  if ( ( !etat.affiche_tous_les_types		 &&		 GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] )		 &&		 GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ) -> menu ),							 "signe_menu" ))		 ==		 1 )	       ||	       !GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] ))	    {	      /* on cre le nouveau menu et on met le dfaut */	      GtkWidget *menu;	      if ( (menu = creation_menu_types ( 2, compte_courant, 0  )))		{		  gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),					     menu );		  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),						cherche_no_menu_type ( TYPE_DEFAUT_CREDIT ) );		  gtk_widget_show ( widget_formulaire_operations[9] );		}	      else		{		  gtk_widget_hide ( widget_formulaire_operations[9] );		  gtk_widget_hide ( widget_formulaire_operations[10] );		}	      /* comme il y a eu un changement de signe, on change aussi le type de l'op associe */	      /* s'il est affich */	      if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[13] )		   &&		   GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ) -> menu ),							 "signe_menu" ))		   ==		   2 )		{		  GtkWidget *menu;		  menu = creation_menu_types ( 1,					       GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( widget_formulaire_operations[13] ),										       "compte_virement" )),					       2  );		  if ( menu )		    gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ),					       menu );		  else		    gtk_option_menu_remove_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ));		}	    }	  else	    {	      /* 	      on n'a pas recr de menu, donc soit c'est dj un menu de dbit, soit tous les types */	      /* sont affichs, soit le widget n'est pas visible */	      /* on met donc le dfaut, sauf si il y a qque chose dans les categ ou que le widget n'est pas visible */	      if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] )		   &&		   gtk_widget_get_style ( widget_formulaire_operations[8] ) == style_entree_formulaire[1] )		gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),					      cherche_no_menu_type ( TYPE_DEFAUT_CREDIT ) );	    }	}      else	texte = _("Credit");      break;    case 7:      if ( strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	modifie_date ( entree );      else	texte = _("Value date");      break;      /*       sort des catgories : si c'est une op ventile, affiche le bouton de ventilation */      /* si c'est un virement affiche le bouton des types de l'autre compte */    case 8:      if ( strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	{	  if ( strcmp ( g_strstrip ( gtk_combofix_get_text ( GTK_COMBOFIX ( widget_formulaire_operations[8]))),			_("Breakdown of transaction") ))	    {	      gchar **tableau_char;	      gtk_widget_hide ( widget_formulaire_operations[15] );	      gtk_widget_set_sensitive ( widget_formulaire_operations[11],					 TRUE );	      gtk_widget_set_sensitive ( widget_formulaire_operations[12],					 TRUE );	      /* vrification que ce n'est pas un virement */	      tableau_char = g_strsplit ( gtk_combofix_get_text ( GTK_COMBOFIX ( widget_formulaire_operations[8])),					  ":",					  2 );	      tableau_char[0] = g_strstrip ( tableau_char[0] );	      if ( tableau_char[1] )		tableau_char[1] = g_strstrip ( tableau_char[1] );	      if ( strlen ( tableau_char[0] ) )		{		  if ( !strcmp ( tableau_char[0],				 _("Transfer") )		       && tableau_char[1]		       && strlen ( tableau_char[1]) )		    {		      /* c'est un virement : on recherche le compte associ et on affiche les types de paiement */		      gint i;		      if ( strcmp ( tableau_char[1],				    _("Deleted account") ) )			{			  /* recherche le no de compte du virement */			  gint compte_virement;			  p_tab_nom_de_compte_variable = p_tab_nom_de_compte;			  compte_virement = -1;			  for ( i = 0 ; i < nb_comptes ; i++ )			    {			      if ( !g_strcasecmp ( NOM_DU_COMPTE,						   tableau_char[1] ) )				compte_virement = i;			      p_tab_nom_de_compte_variable++;			    }			  /* si on a touv un compte de virement, que celui ci n'est pas le compte */			  /* courant et que son menu des types n'est pas encore affich, on cre le menu */			  if ( compte_virement != -1			       &&			       compte_virement != compte_courant )			    {			      /* si le menu affich est dj celui du compte de virement, on n'y touche pas */			      if ( !GTK_WIDGET_VISIBLE ( widget_formulaire_operations[13] )				   ||				   ( GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( widget_formulaire_operations[13] ),									     "no_compte" ))				     !=				     compte_virement ))				{				  /* vrifie quel est le montant entr, affiche les types opposs de l'autre compte */				  GtkWidget *menu;				  if ( gtk_widget_get_style ( widget_formulaire_operations[4] ) == style_entree_formulaire[0] )				    /* il y a un montant dans le crdit */				    menu = creation_menu_types ( 1, compte_virement, 2  );				  else				    /* il y a un montant dans le dbit ou dfaut */				    menu = creation_menu_types ( 2, compte_virement, 2  );				  /* si un menu  t cr, on l'affiche */				  if ( menu )				    {				      gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[13] ),								 menu );				      gtk_widget_show ( widget_formulaire_operations[13] );				    }				  				  /* on associe le no de compte de virement au formulaire pour le retrouver */				  /* rapidement s'il y a un chgt dbit/crdit */				  gtk_object_set_data ( GTK_OBJECT ( widget_formulaire_operations[13] ),							"compte_virement",							GINT_TO_POINTER ( compte_virement ));				}			    }			  else			    gtk_widget_hide ( widget_formulaire_operations[13] );			}		      else			gtk_widget_hide ( widget_formulaire_operations[13] );		    }		  else		    gtk_widget_hide ( widget_formulaire_operations[13] );		}	      else		gtk_widget_hide ( widget_formulaire_operations[13] );	      g_strfreev ( tableau_char );	    }	  else	    {	      gtk_widget_show ( widget_formulaire_operations[15] );	      gtk_widget_set_sensitive ( widget_formulaire_operations[11],					 FALSE );	      gtk_widget_set_sensitive ( widget_formulaire_operations[12],					 FALSE );	    }	}      else	texte = _("Categories : Sub-categories");      break;    case 10:      if ( !strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	texte = _("Cheque/Transfer number");      break;    case 12:      if ( !strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	texte = _("Budgetary line");      break;    case 14:      if ( !strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	texte = _("Voucher");      break;    case 15:      if ( !strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	texte = _("Notes");      break;    case 17:      if ( !strlen ( g_strstrip ( gtk_entry_get_text ( GTK_ENTRY ( entree )))))	texte = _("Bank references");      break;    default :    }  /* l'entre tait vide, on remet le dfaut */  /* si l'origine tait un combofix, il faut remettre le texte */  /* avec le gtk_combofix (sinon risque de compltion), donc utiliser l'origine */  if ( texte )    {      switch ( GPOINTER_TO_INT ( no_origine ))	{	case 2:	case 8:	case 12:	  gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[GPOINTER_TO_INT ( no_origine )] ),				  texte );	  break;	default:	  gtk_entry_set_text ( GTK_ENTRY ( entree ),			       texte );	}      gtk_widget_set_style ( entree,			     style_entree_formulaire[1] );    }}