What changed, and why it matters
This commit is a visual layout fix for the Bitcoin multi-signature transaction screen. It changes how a 'signing status' box is positioned so it appears below the previous element instead of always starting at the top-left corner. There is no security-relevant change.
No security action needed; treat as a normal UI bug fix.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch modifies CreateSignStatusView() in src/ui/gui_chain/gui_btc.c to accept a lastView parameter and use lv_obj_align_to() to position the new container relative to the previous view when one exists, falling back to the original absolute alignment only when lastView is NULL. The two call sites in GuiBtcTxOverview and GuiBtcTxDetail are updated to pass the current lastView. This is purely a UI positioning/style correction.
Changed components
src/ui/gui_chain/gui_btc.c UI layout for Bitcoin multi-signature transaction overview/detail screensInspect captured patch +8 / −4
diff --git a/src/ui/gui_chain/gui_btc.c b/src/ui/gui_chain/gui_btc.c
index baecf50..32a31e7 100644
--- a/src/ui/gui_chain/gui_btc.c
+++ b/src/ui/gui_chain/gui_btc.c
@@ -864,10 +864,14 @@ static void FormatFeeText(char *out, size_t outLen, const char *feeText, bool is
}
}
-static lv_obj_t *CreateSignStatusView(lv_obj_t *parent, char *multi_sig_status)
+static lv_obj_t *CreateSignStatusView(lv_obj_t *parent, char *multi_sig_status, lv_obj_t *lastView)
{
lv_obj_t *signStatusContainer = GuiCreateContainerWithParent(parent, 408, 62);
- lv_obj_align(signStatusContainer, LV_ALIGN_DEFAULT, 0, 0);
+ if (lastView == NULL) {
+ lv_obj_align(signStatusContainer, LV_ALIGN_DEFAULT, 0, 0);
+ } else {
+ lv_obj_align_to(signStatusContainer, lastView, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 16);
+ }
SetContainerDefaultStyle(signStatusContainer);
lv_obj_t *label = lv_label_create(signStatusContainer);
@@ -1465,7 +1469,7 @@ void GuiBtcTxOverview(lv_obj_t *parent, void *totalData)
}
if (IsMultiSigTx(txData)) {
- lastView = CreateSignStatusView(parent, overviewData->sign_status);
+ lastView = CreateSignStatusView(parent, overviewData->sign_status, lastView);
}
if (IsAvalancheTx(txData)) {
@@ -1489,7 +1493,7 @@ void GuiBtcTxDetail(lv_obj_t *parent, void *totalData)
lv_obj_t *lastView = NULL;
if (IsMultiSigTx(txData)) {
- lastView = CreateSignStatusView(parent, detailData->sign_status);
+ lastView = CreateSignStatusView(parent, detailData->sign_status, lastView);
}
lastView = CreateNetworkView(parent, detailData->network, lastView);
lastView = CreateSighashView(parent, txData->overview->sighash_type, lastView);
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.