@@ -286,10 +286,9 @@ impl Dropdown { |
| 286 | 286 | renderer.fill_rounded_rect(self.rect, 6.0, bg)?; |
| 287 | 287 | renderer.stroke_rounded_rect(self.rect, 6.0, theme.border, 1.0)?; |
| 288 | 288 | |
| 289 | | - // Draw selected item text + dropdown indicator |
| 289 | + // Draw selected item text (left-aligned) |
| 290 | 290 | let text = self.selected_item().unwrap_or("(none)"); |
| 291 | | - let display_text = format!("{} \u{25BC}", text); // ▼ |
| 292 | | - let style = TextStyle::new() |
| 291 | + let text_style = TextStyle::new() |
| 293 | 292 | .font_family(&theme.font_family) |
| 294 | 293 | .font_size(theme.font_size) |
| 295 | 294 | .color(theme.foreground) |
@@ -297,10 +296,24 @@ impl Dropdown { |
| 297 | 296 | let text_rect = Rect::new( |
| 298 | 297 | self.rect.x + 8, |
| 299 | 298 | self.rect.y, |
| 300 | | - self.rect.width - 16, |
| 299 | + self.rect.width - 28, // Leave room for arrow |
| 301 | 300 | self.rect.height, |
| 302 | 301 | ); |
| 303 | | - renderer.text_in_rect(&display_text, text_rect, &style)?; |
| 302 | + renderer.text_in_rect(text, text_rect, &text_style)?; |
| 303 | + |
| 304 | + // Draw dropdown arrow (fixed position on right) |
| 305 | + let arrow_style = TextStyle::new() |
| 306 | + .font_family(&theme.font_family) |
| 307 | + .font_size(theme.font_size) |
| 308 | + .color(theme.foreground) |
| 309 | + .align(TextAlign::Center); |
| 310 | + let arrow_rect = Rect::new( |
| 311 | + self.rect.x + self.rect.width as i32 - 20, |
| 312 | + self.rect.y, |
| 313 | + 16, |
| 314 | + self.rect.height, |
| 315 | + ); |
| 316 | + renderer.text_in_rect("\u{25BC}", arrow_rect, &arrow_style)?; // ▼ |
| 304 | 317 | |
| 305 | 318 | // Draw expanded list |
| 306 | 319 | if self.expanded { |