gnucash master: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sun May 17 19:51:43 EDT 2020


Updated	 via  https://github.com/Gnucash/gnucash/commit/3e44af3c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b5ebb245 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9d17b3fc (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4479e443 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0aeb4b54 (commit)
	from  https://github.com/Gnucash/gnucash/commit/31825be4 (commit)



commit 3e44af3c78c71f2b2c4e143619563ef7ac3bf8e0
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun May 17 15:54:22 2020 -0700

    Ensure gnc_item_list's temp_store is NULL when list store is in use.
    
    So that gnc_item_list_using_temp gives the right answer.

diff --git a/gnucash/register/register-gnome/gnucash-item-list.c b/gnucash/register/register-gnome/gnucash-item-list.c
index 85de133a8..09b50c3fc 100644
--- a/gnucash/register/register-gnome/gnucash-item-list.c
+++ b/gnucash/register/register-gnome/gnucash-item-list.c
@@ -241,11 +241,16 @@ gnc_item_list_set_temp_store (GncItemList *item_list, GtkListStore *store)
 
     item_list->temp_store = store;
     if (store)
+    {
         gtk_tree_view_set_model (item_list->tree_view,
                                  GTK_TREE_MODEL (item_list->temp_store));
+    }
     else
+    {
         gtk_tree_view_set_model (item_list->tree_view,
                                  GTK_TREE_MODEL (item_list->list_store));
+        item_list->temp_store = NULL;
+    }
 }
 
 gboolean

commit b5ebb24539d2156e50776475945ecdf8ac36d131
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun May 17 11:40:41 2020 -0700

    Remove redundant use of gtk_accelerator_get_default_mod_mask().
    
    It just returns GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK.

diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index cead25ffb..7c4b4cdfe 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1765,7 +1765,6 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
     VirtualLocation new_virt_loc;
     gncTableTraversalDir direction = 0;
     int distance;
-    GdkModifierType modifiers = gtk_accelerator_get_default_mod_mask ();
 
     g_return_val_if_fail(widget != NULL, TRUE);
     g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
@@ -1796,19 +1795,14 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
     gnucash_cursor_get_virt (GNUCASH_CURSOR(sheet->cursor), &cur_virt_loc);
     new_virt_loc = cur_virt_loc;
 
-    /* Don't process any keystrokes where a modifier key (Alt,
-     * Meta, etc.) is being held down.  This shouldn't include
-         * MOD2, aka NUM LOCK. */
-    if (event->state & modifiers & (GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK))
+    /* Don't process any keystrokes where a modifier key (Alt, Meta, etc.) is
+     * being held down.  This shouldn't include NUM LOCK.
+     */
+    if (event->state & GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK)
         pass_on = TRUE;
-
-    /* Calculate tentative physical values */
-    if (!pass_on)
-    {
-        if (process_motion_keys (sheet, event, &pass_on,
-                                 &direction, &new_virt_loc))
+    else if (process_motion_keys (sheet, event, &pass_on,
+                                  &direction, &new_virt_loc)) //may set pass_on
             return TRUE;
-    }
 
     /* Forward the keystroke to the input line */
     if (pass_on)

commit 9d17b3fc285fc019fa02a4346d52f411f4035a3d
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun May 17 11:38:04 2020 -0700

    Initialize the bounds variables in gnucash_sheet_insert_cb.
    
    So that bogus values aren't saved if gnc_table_modify_update doesn't touch them.

diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index 18cf5482a..cead25ffb 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1073,7 +1073,7 @@ gnucash_sheet_insert_cb (GtkEditable *editable,
     char *new_text = NULL;
     glong new_text_len = 0;
     const char *retval;
-    int start_sel, end_sel;
+    int start_sel = 0, end_sel = 0;
     int old_position = *position;
     const char* old_text = gtk_entry_get_text (GTK_ENTRY (sheet->entry));
 

commit 4479e4436303d05c1075d73c7ac6c191326654bf
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun May 17 11:34:29 2020 -0700

    Fix delete ignores selection in register cells.
    
    Don't clear the selection before passing the event to the entry's
    keypress handler. Instead set the sheet selection from the entry
    when the handler returns.

diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index 0c7e163c2..18cf5482a 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1748,8 +1748,8 @@ pass_to_entry_handler (GnucashSheet *sheet, GdkEventKey *event)
     // If sheet is readonly, entry is not realized
     if (gtk_widget_get_realized (GTK_WIDGET(editable)))
     {
-        gnucash_sheet_clear_selection (sheet);
         result = gtk_widget_event (GTK_WIDGET(editable), (GdkEvent*)event);
+        gnucash_sheet_set_selection_from_entry (sheet);
     }
     return result;
 }

commit 0aeb4b54aeb1019d328dc41d394417e987497dfc
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat May 16 16:00:38 2020 -0700

    Remove actions on the control, shift, and alt keys.
    
    Those keypresses are now blocked along with all other naked modifiers.

diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index 48a0e367f..0c7e163c2 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1716,14 +1716,6 @@ process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
             gnc_table_move_vertical_position (sheet->table,
                                               new_virt_loc, 1);
             break;
-        case GDK_KEY_Control_L:
-        case GDK_KEY_Control_R:
-        case GDK_KEY_Shift_L:
-        case GDK_KEY_Shift_R:
-        case GDK_KEY_Alt_L:
-        case GDK_KEY_Alt_R:
-            *pass_on = TRUE;
-            break;
         case GDK_KEY_KP_Right:
         case GDK_KEY_Right:
         case GDK_KEY_KP_Left:



Summary of changes:
 .../register/register-gnome/gnucash-item-list.c    |  5 ++++
 gnucash/register/register-gnome/gnucash-sheet.c    | 30 ++++++----------------
 2 files changed, 13 insertions(+), 22 deletions(-)



More information about the gnucash-changes mailing list