gnucash master: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Tue May 19 18:39:07 EDT 2020


Updated	 via  https://github.com/Gnucash/gnucash/commit/700e2dc5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/09a57e9b (commit)
	from  https://github.com/Gnucash/gnucash/commit/26fe8e78 (commit)



commit 700e2dc5acc28923131bc23474c0b09441f68627
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue May 19 15:38:58 2020 -0700

    gnc_item_list_num_entries: Count the GtkListStore in use.

diff --git a/gnucash/register/register-gnome/gnucash-item-list.c b/gnucash/register/register-gnome/gnucash-item-list.c
index a904a4a52..8cb2c7167 100644
--- a/gnucash/register/register-gnome/gnucash-item-list.c
+++ b/gnucash/register/register-gnome/gnucash-item-list.c
@@ -59,7 +59,9 @@ gnc_item_list_num_entries (GncItemList* item_list)
     g_return_val_if_fail (item_list != NULL, 0);
     g_return_val_if_fail (IS_GNC_ITEM_LIST (item_list), 0);
 
-    model = GTK_TREE_MODEL (item_list->list_store);
+    model = gnc_item_list_using_temp (item_list) ?
+        GTK_TREE_MODEL (item_list->temp_store) :
+        GTK_TREE_MODEL (item_list->list_store);
     return gtk_tree_model_iter_n_children (model, NULL);
 }
 

commit 09a57e9bc0d6f8ec7ee7b734d5cbdaa226afdeb4
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue May 19 15:26:39 2020 -0700

    Connect to the popup's size-allocate signal only once.

diff --git a/gnucash/register/register-gnome/gnucash-item-edit.c b/gnucash/register/register-gnome/gnucash-item-edit.c
index 519056d9b..ffdb41978 100644
--- a/gnucash/register/register-gnome/gnucash-item-edit.c
+++ b/gnucash/register/register-gnome/gnucash-item-edit.c
@@ -326,6 +326,8 @@ gnc_item_edit_init (GncItemEdit *item_edit)
     item_edit->popup_set_focus = NULL;
     item_edit->popup_post_show = NULL;
     item_edit->popup_user_data = NULL;
+    item_edit->popup_returned_height = 0;
+    item_edit->popup_height_signal_id = 0;
 
     item_edit->style = NULL;
     item_edit->button_width = MIN_BUTT_WIDTH;
@@ -917,6 +919,8 @@ gnc_item_edit_new (GnucashSheet *sheet)
 static void
 gnc_item_edit_destroying(GtkWidget *item_edit, gpointer data)
 {
+    g_signal_handler_disconnect (GNC_ITEM_EDIT (item_edit)->popup_item,
+                                 GNC_ITEM_EDIT (item_edit)->popup_height_signal_id);
     while (g_idle_remove_by_data((gpointer)item_edit))
         continue;
 }
@@ -1008,8 +1012,11 @@ gnc_item_edit_show_popup (GncItemEdit *item_edit)
 
     // Lets check popup height is the true height
     item_edit->popup_returned_height = popup_h;
+    if (!item_edit->popup_height_signal_id)
+        item_edit->popup_height_signal_id =
     g_signal_connect_after (item_edit->popup_item, "size-allocate",
-                            G_CALLBACK(check_popup_height_is_true), item_edit);
+                                    G_CALLBACK(check_popup_height_is_true),
+                                    item_edit);
 
     gtk_widget_set_size_request (item_edit->popup_item, popup_w - 1, popup_h);
 
diff --git a/gnucash/register/register-gnome/gnucash-item-edit.h b/gnucash/register/register-gnome/gnucash-item-edit.h
index 09ffc9143..926f2d6a2 100644
--- a/gnucash/register/register-gnome/gnucash-item-edit.h
+++ b/gnucash/register/register-gnome/gnucash-item-edit.h
@@ -90,6 +90,7 @@ typedef struct
     PopupGetWidth    popup_get_width;
     gpointer         popup_user_data;
     gint             popup_returned_height;
+    gulong           popup_height_signal_id;
 
     GtkBorder        padding;
     GtkBorder        margin;



Summary of changes:
 gnucash/register/register-gnome/gnucash-item-edit.c | 9 ++++++++-
 gnucash/register/register-gnome/gnucash-item-edit.h | 1 +
 gnucash/register/register-gnome/gnucash-item-list.c | 4 +++-
 3 files changed, 12 insertions(+), 2 deletions(-)



More information about the gnucash-changes mailing list