From 8bec3eafd2a9dbcd122dcd9c5cc4b64fbb4eb48e Mon Sep 17 00:00:00 2001 From: ThomasV Date: Fri, 28 Nov 2025 10:47:46 +0100 Subject: [PATCH] swaps dialog: in callbacks, update either send or receive field, depending on which one follows before this, the content of the non-following field could be modified by callbacks --- electrum/gui/qt/swap_dialog.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/electrum/gui/qt/swap_dialog.py b/electrum/gui/qt/swap_dialog.py index 2a612e92d..cfa85b904 100644 --- a/electrum/gui/qt/swap_dialog.py +++ b/electrum/gui/qt/swap_dialog.py @@ -150,13 +150,11 @@ class SwapDialog(WindowModalDialog, QtEventListener): @qt_event_listener def on_event_fee_histogram(self, *args): - self.on_send_edited() - self.on_recv_edited() + self.update_send_receive() @qt_event_listener def on_event_fee(self, *args): - self.on_send_edited() - self.on_recv_edited() + self.update_send_receive() @qt_event_listener def on_event_swap_offers_changed(self, recent_offers: Sequence['SwapOffer']): @@ -190,10 +188,7 @@ class SwapDialog(WindowModalDialog, QtEventListener): self.config.FEE_POLICY = self.fee_policy.get_descriptor() if not self.is_reverse: self.fee_target_label.setText(self.fee_policy.get_target_text()) - if self.send_follows: - self.on_recv_edited() - else: - self.on_send_edited() + self.update_send_receive() self.update() def _set_fee_slider_visibility(self, *, is_visible: bool): @@ -277,6 +272,9 @@ class SwapDialog(WindowModalDialog, QtEventListener): self.send_follows = True self.needs_tx_update = True + def update_send_receive(self): + self.on_recv_edited() if self.send_follows else self.on_send_edited() + def update(self): sm = self.swap_manager w_base_unit = self.window.base_unit() @@ -457,8 +455,7 @@ class SwapDialog(WindowModalDialog, QtEventListener): def choose_swap_server(self, transport: 'SwapServerTransport') -> None: self.window.choose_swapserver_dialog(transport) # type: ignore self.update() - self.on_send_edited() - self.on_recv_edited() + self.update_send_receive() class SwapServerDialog(WindowModalDialog, QtEventListener):