[grisbi-cvs] grisbi/src gsb_form.c,1.115,1.116

Pierre Biava pbiava at users.sourceforge.net
Fri Apr 24 18:15:14 CEST 2009


Update of /cvsroot/grisbi/grisbi/src
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19645

Modified Files:
	gsb_form.c 
Log Message:
corrige bug <Ctrl><Tab>

Index: gsb_form.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form.c,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -d -r1.115 -r1.116
--- gsb_form.c	21 Apr 2009 20:31:01 -0000	1.115
+++ gsb_form.c	24 Apr 2009 16:15:12 -0000	1.116
@@ -1987,7 +1987,36 @@
 	    element_suivant = gsb_form_widget_next_element ( account_number,
 							     element_number,
 							     GSB_LEFT );
-	    gsb_form_widget_set_focus ( element_suivant );
+	    if ( element_suivant == TRANSACTION_FORM_CREDIT )
+        {
+            if ( gsb_form_widget_check_empty (
+                        gsb_form_widget_get_widget (element_suivant)) &&
+                        !gsb_form_widget_check_empty (
+                        gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT)))
+            {
+                gsb_form_widget_set_focus ( TRANSACTION_FORM_DEBIT );
+            }
+            else
+                gsb_form_widget_set_focus ( element_suivant );
+        }
+        else if ( element_suivant == TRANSACTION_FORM_DEBIT )
+        {
+            if ( gtk_entry_get_text_length (GTK_ENTRY (widget)) > 0 )
+            {
+                do {
+                    element_suivant = gsb_form_widget_next_element (
+                                        account_number, element_suivant, GSB_LEFT );
+                } while ( element_suivant == TRANSACTION_FORM_DEBIT ||
+                            element_suivant == TRANSACTION_FORM_CREDIT );
+                gsb_form_widget_set_focus ( element_suivant );
+            }
+            else
+            {
+                gsb_form_widget_set_focus ( element_suivant );
+            }
+        }
+	    else
+            gsb_form_widget_set_focus ( element_suivant );
 	    return TRUE;
 	    break;
 
@@ -1998,8 +2027,10 @@
 	    if ( element_suivant == -2 )
             gsb_form_finish_edition();
         /* fix the bug 494 */
+        /* si element_suivant est débit */
         else if ( element_suivant == TRANSACTION_FORM_DEBIT )
         {
+            /* si débit est vide et crédit rempli je vais à crédit */
             if ( gsb_form_widget_check_empty (
                         gsb_form_widget_get_widget (element_suivant)) &&
                         !gsb_form_widget_check_empty (
@@ -2007,11 +2038,14 @@
             {
                 gsb_form_widget_set_focus ( TRANSACTION_FORM_CREDIT );
             }
+            /* sinon je reste à débit */
             else
                 gsb_form_widget_set_focus ( element_suivant );
         }
+        /* si element suivant est crédit */
         else if ( element_suivant == TRANSACTION_FORM_CREDIT )
         {
+            /* je regarde ce que vaut débit et si il y a quelque chose je saute crédit */
             if ( gtk_entry_get_text_length (GTK_ENTRY (widget)) > 0 )
             {
                 do {
@@ -2021,11 +2055,13 @@
                             element_suivant == TRANSACTION_FORM_CREDIT );
                 gsb_form_widget_set_focus ( element_suivant );
             }
+            /* sinon je reste à crédit */
             else
             {
                 gsb_form_widget_set_focus ( element_suivant );
             }
         }
+        /* sinon je donne le focus à l'élément suivant */
 	    else
             gsb_form_widget_set_focus ( element_suivant );
 	    return TRUE;



More information about the cvs mailing list