From 7a4aaff8ea332b69835fd20dfef88ec991f63990 Mon Sep 17 00:00:00 2001 From: Xiaobo Liu Date: Tue, 10 Mar 2026 07:22:36 +0800 Subject: [PATCH] markdown: Fix code block scrollbars flashing on vertical scroll (#50817) Release Notes: - Fixed code block scrollbars flashing on vertical scroll before: When there are many code blocks, scrolling through markdown will display a horizontal scrollbar (when the mouse is not inside a code block). https://github.com/user-attachments/assets/1fae36ec-5a3f-4283-b54f-e5cb4f45646b after: When scrolling markdown, do not display the horizontal scrollbar when the mouse is not in a code block. https://github.com/user-attachments/assets/0c0f2016-9b18-4055-87a6-4f508dbfd193 --------- Signed-off-by: Xiaobo Liu --- crates/ui/src/components/scrollbar.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/ui/src/components/scrollbar.rs b/crates/ui/src/components/scrollbar.rs index 21d6aa46d0f90a0d48e267e935b00d9f263a30c5..d0c720d5081d3ab7ad700df798b931933e03db28 100644 --- a/crates/ui/src/components/scrollbar.rs +++ b/crates/ui/src/components/scrollbar.rs @@ -1041,7 +1041,18 @@ impl ScrollbarLayout { impl PartialEq for ScrollbarLayout { fn eq(&self, other: &Self) -> bool { - self.axis == other.axis && self.thumb_bounds == other.thumb_bounds + if self.axis != other.axis { + return false; + } + + let axis = self.axis; + let thumb_offset = + self.thumb_bounds.origin.along(axis) - self.track_bounds.origin.along(axis); + let other_thumb_offset = + other.thumb_bounds.origin.along(axis) - other.track_bounds.origin.along(axis); + + thumb_offset == other_thumb_offset + && self.thumb_bounds.size.along(axis) == other.thumb_bounds.size.along(axis) } }