From 30da2b9a9398cd77ba0e8346a0b6748d857ed541 Mon Sep 17 00:00:00 2001 From: Kazuki Nishikawa Date: Sat, 29 Apr 2023 10:52:30 +0900 Subject: [PATCH] Prevent infinite recursion from gnucash_item_edit_focus_out. When I try to use IME (e.g. fcitx) to narrow down a combo box, infinite recursion occurs via `popup_set_focus` and GnuCash falls down in SIGSEGV. ref: https://github.com/Gnucash/gnucash/pull/1610#issuecomment-1528080452 --- gnucash/register/register-gnome/gnucash-item-edit.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnucash/register/register-gnome/gnucash-item-edit.c b/gnucash/register/register-gnome/gnucash-item-edit.c index 649d6a71fe..da6b5044b3 100644 --- a/gnucash/register/register-gnome/gnucash-item-edit.c +++ b/gnucash/register/register-gnome/gnucash-item-edit.c @@ -306,6 +306,9 @@ gnc_item_edit_focus_out (GncItemEdit *item_edit) g_return_if_fail (item_edit != NULL); g_return_if_fail (GNC_IS_ITEM_EDIT(item_edit)); + if (item_edit->show_popup) + return; // Prevent recursion + ev.type = GDK_FOCUS_CHANGE; ev.window = gtk_widget_get_window (GTK_WIDGET(item_edit->sheet)); ev.in = FALSE;