diff --git a/electrum/gui/qt/confirm_tx_dialog.py b/electrum/gui/qt/confirm_tx_dialog.py index c9ad7b45f..80e6cfe7d 100644 --- a/electrum/gui/qt/confirm_tx_dialog.py +++ b/electrum/gui/qt/confirm_tx_dialog.py @@ -181,6 +181,7 @@ class TxEditor(WindowModalDialog): self.fee_target = QLabel('') self.fee_slider = FeeSlider(self, self.config, self.fee_slider_callback) self.fee_combo = FeeComboBox(self.fee_slider) + self.fee_combo.setFocusPolicy(Qt.NoFocus) def feerounding_onclick(): text = (self.feerounding_text + '\n\n' + @@ -251,8 +252,10 @@ class TxEditor(WindowModalDialog): # edit_changed was edited just now, so make sure we will # freeze the correct fee setting (this) edit_other.setModified(False) - self.fee_slider.deactivate() - self.trigger_update() + self.fee_slider.deactivate() + # do not call trigger_update on editing_finished, + # because that event is emitted when we press OK + self.trigger_update() def is_send_fee_frozen(self): return self.fee_e.isVisible() and self.fee_e.isModified() \ @@ -357,6 +360,8 @@ class TxEditor(WindowModalDialog): self.set_feerounding_text(int(feerounding)) self.feerounding_icon.setToolTip(self.feerounding_text) self.set_feerounding_visibility(abs(feerounding) >= 1) + # feerate_label needs to be updated from feerate_e + self.update_feerate_label() def create_buttons_bar(self): self.preview_button = QPushButton(_('Preview')) @@ -382,6 +387,7 @@ class TxEditor(WindowModalDialog): self.pref_button.setIcon(read_QIcon("preferences.png")) self.pref_button.setMenu(self.pref_menu) self.pref_button.setPopupMode(QToolButton.InstantPopup) + self.pref_button.setFocusPolicy(Qt.NoFocus) hbox = QHBoxLayout() hbox.addWidget(QLabel(text)) hbox.addStretch() diff --git a/electrum/gui/qt/fee_slider.py b/electrum/gui/qt/fee_slider.py index b73c4b49b..05f681426 100644 --- a/electrum/gui/qt/fee_slider.py +++ b/electrum/gui/qt/fee_slider.py @@ -40,7 +40,6 @@ class FeeSlider(QSlider): self.update() self.valueChanged.connect(self.moved) self._active = True - self.setFocusPolicy(Qt.NoFocus) def get_fee_rate(self, pos): if self.dyn: diff --git a/electrum/gui/qt/rbf_dialog.py b/electrum/gui/qt/rbf_dialog.py index e85055a32..34f5f3ec6 100644 --- a/electrum/gui/qt/rbf_dialog.py +++ b/electrum/gui/qt/rbf_dialog.py @@ -52,7 +52,7 @@ class _BaseRBFDialog(TxEditor): new_fee_rate = self.old_fee_rate + max(1, self.old_fee_rate // 20) self.feerate_e.setAmount(new_fee_rate) self.update() - self.fee_slider.activate() + self.fee_slider.deactivate() # are we paying max? invoices = self.wallet.get_relevant_invoices_for_tx(txid) if len(invoices) == 1 and len(invoices[0].outputs) == 1: @@ -64,6 +64,7 @@ class _BaseRBFDialog(TxEditor): self.method_combo = QComboBox() self.method_combo.addItems([_('Preserve payment'), _('Decrease payment')]) self.method_combo.currentIndexChanged.connect(self.trigger_update) + self.method_combo.setFocusPolicy(Qt.NoFocus) old_size_label = TxSizeLabel() old_size_label.setAlignment(Qt.AlignCenter) old_size_label.setAmount(self.old_tx_size)