mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Move setting up of the sheet popup size-allocate callback
As the popup_item is cell dependant, the popup size-allocate check callback needs to be setup when entering a cell and removed when leaving so move this to the gnc_item_edit_set_popup function.
This commit is contained in:
parent
b7d31878e8
commit
4da11b10e5
@ -1014,11 +1014,6 @@ 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);
|
||||
|
||||
gtk_widget_set_size_request (item_edit->popup_item, popup_w - 1, popup_h);
|
||||
|
||||
@ -1104,6 +1099,24 @@ gnc_item_edit_set_popup (GncItemEdit *item_edit,
|
||||
if (item_edit->is_popup)
|
||||
gnc_item_edit_hide_popup (item_edit);
|
||||
|
||||
/* setup size-allocate callback for popup_item height, done here as
|
||||
item_edit is constant and popup_item changes per cell */
|
||||
if (popup_item)
|
||||
{
|
||||
item_edit->popup_height_signal_id = g_signal_connect_after (
|
||||
popup_item, "size-allocate",
|
||||
G_CALLBACK(check_popup_height_is_true),
|
||||
item_edit);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GNC_ITEM_EDIT (item_edit)->popup_height_signal_id > 0)
|
||||
{
|
||||
g_signal_handler_disconnect (item_edit->popup_item, item_edit->popup_height_signal_id);
|
||||
item_edit->popup_height_signal_id = 0;
|
||||
}
|
||||
}
|
||||
|
||||
item_edit->is_popup = popup_item != NULL;
|
||||
|
||||
item_edit->popup_item = popup_item;
|
||||
|
Loading…
Reference in New Issue
Block a user