From ce744e6f7a22412cecf1cf2ea8678344bfb56489 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 30 Sep 2024 15:48:41 +0200 Subject: [PATCH] Do not round panel rectangles to pixel grid (#5196) * Closes https://github.com/emilk/egui/issues/5173 * Part of https://github.com/emilk/egui/issues/5163 * Related to https://github.com/emilk/egui/issues/5164 --- crates/egui/src/containers/panel.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/crates/egui/src/containers/panel.rs b/crates/egui/src/containers/panel.rs index f3b6c913cfc..ee51045795a 100644 --- a/crates/egui/src/containers/panel.rs +++ b/crates/egui/src/containers/panel.rs @@ -329,9 +329,6 @@ impl SidePanel { ui.ctx().set_cursor_icon(cursor_icon); } - // Keep this rect snapped so that panel content can be pixel-perfect - let rect = ui.painter().round_rect_to_pixels(rect); - PanelState { rect }.store(ui.ctx(), id); { @@ -824,9 +821,6 @@ impl TopBottomPanel { ui.ctx().set_cursor_icon(cursor_icon); } - // Keep this rect snapped so that panel content can be pixel-perfect - let rect = ui.painter().round_rect_to_pixels(rect); - PanelState { rect }.store(ui.ctx(), id); { @@ -842,6 +836,8 @@ impl TopBottomPanel { }; // TODO(emilk): draw line on top of all panels in this ui when https://github.com/emilk/egui/issues/1516 is done let resize_y = side.opposite().side_y(rect); + + // This makes it pixel-perfect for odd-sized strokes (width=1.0, width=3.0, etc) let resize_y = ui.painter().round_to_pixel_center(resize_y); // We want the line exactly on the last pixel but rust rounds away from zero so we bring it back a bit for