Round sidebar panels' widths to whole numbers of pixels

Max Brunsfeld and Nathan Sobo created

Co-authored-by: Nathan Sobo <nathan@zed.dev>

Change summary

crates/workspace/src/sidebar.rs | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

Detailed changes

crates/workspace/src/sidebar.rs 🔗

@@ -106,10 +106,12 @@ impl Sidebar {
         .with_cursor_style(CursorStyle::ResizeLeftRight)
         .on_drag(move |delta, cx| {
             let prev_width = *actual_width.borrow();
-            match side {
-                Side::Left => *custom_width.borrow_mut() = 0f32.max(prev_width + delta.x()),
-                Side::Right => *custom_width.borrow_mut() = 0f32.max(prev_width - delta.x()),
-            }
+            *custom_width.borrow_mut() = 0f32
+                .max(match side {
+                    Side::Left => prev_width + delta.x(),
+                    Side::Right => prev_width - delta.x(),
+                })
+                .round();
 
             cx.notify();
         })