From dd6f35b8f35f231ebf1511daef3dd707eaa9839d Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 24 Aug 2026 11:02:08 +0200 Subject: fix(compose): default to quoting below, and focus the body on a reply The previous commit fixed the cursor within each quote_position branch and the user still saw the old layout, because the branches were already right: what was wrong was the DEFAULT. quote_position shipped as `above`, and the layout asked for is exactly what `below` already produced, a blank line at the top with the quote underneath. So the default flips, along with the fallback for a malformed value and the warning naming it. Nothing needs an Upgrading note: compose has not been released, so no config in the wild sets this. Focus goes to the body whenever To: is already filled, which a Reply and a Forward always are. The form's first widget took it otherwise, so the user had to click into the editor before typing. A New message keeps the default, since an empty To: is genuinely the first thing to fill in. The focus test asserts on the window's focusWidget() rather than on QWidget::hasFocus(): an unshown window is never active, so hasFocus() reads false whatever the code does and would fail against a correct fix. Both directions are mutation-checked, since focusing unconditionally passes the reply case while breaking the new-message one. --- src/config.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/config.h') diff --git a/src/config.h b/src/config.h index 51fc1ee..3ddd76a 100644 --- a/src/config.h +++ b/src/config.h @@ -212,7 +212,10 @@ struct ComposeSettings /// reply_no_quote does not). enum class QuotePosition { Above, Below }; - QuotePosition quotePosition = QuotePosition::Above; + /// Below by default: the reply is typed at the top and the quote sits + /// under it, which is what the user asked for and what every mail client + /// they compare against does. Above is bottom-posting and stays available. + QuotePosition quotePosition = QuotePosition::Below; /// Seeds the per-message toggle for New and Forward only. Reply and /// Reply-all seed from whether the original carried a text/html part, -- cgit v1.2.3