Skip to content

Commit 6fe8e07

Browse files
committed
force size to be non-negative
1 parent 6b8cee8 commit 6fe8e07

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

cosmic-panel-bin/src/space/layout.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,14 +328,15 @@ impl PanelSpace {
328328
.sum::<i32>() as f64
329329
* self.scale
330330
+ spacing_scaled * windows_left.len().saturating_sub(1) as f64;
331-
let left_sum_scaled = if let Some(left_button) = left_overflow_button.as_ref() {
331+
let mut left_sum_scaled = if let Some(left_button) = left_overflow_button.as_ref() {
332332
let size = left_button.geometry().size.to_f64() * self.scale;
333333
left_sum_scaled
334334
+ if self.config.is_horizontal() { size.w } else { size.h }
335335
+ spacing_scaled
336336
} else {
337337
left_sum_scaled
338338
};
339+
left_sum_scaled = left_sum_scaled.max(0.0);
339340

340341
let center =
341342
windows_center.iter().map(|e| map_fn(e, anchor, Alignment::Center, applet_padding));
@@ -346,14 +347,15 @@ impl PanelSpace {
346347
* self.scale
347348
+ spacing_scaled * windows_center.len().saturating_sub(1) as f64;
348349

349-
let center_sum_scaled = if let Some(center_button) = center_overflow_button.as_ref() {
350+
let mut center_sum_scaled = if let Some(center_button) = center_overflow_button.as_ref() {
350351
let size = center_button.geometry().size.to_f64() * self.scale;
351352
center_sum_scaled
352353
+ if self.config.is_horizontal() { size.w } else { size.h }
353354
+ spacing_scaled
354355
} else {
355356
center_sum_scaled
356357
};
358+
center_sum_scaled = center_sum_scaled.max(0.0);
357359

358360
let right =
359361
windows_right.iter().map(|e| map_fn(e, anchor, Alignment::Right, applet_padding));
@@ -364,14 +366,15 @@ impl PanelSpace {
364366
* self.scale
365367
+ spacing_scaled * windows_right.len().saturating_sub(1) as f64;
366368

367-
let right_sum_scaled = if let Some(right_button) = right_overflow_button.as_ref() {
369+
let mut right_sum_scaled = if let Some(right_button) = right_overflow_button.as_ref() {
368370
let size = right_button.geometry().size.to_f64() * self.scale;
369371
right_sum_scaled
370372
+ if self.config.is_horizontal() { size.w } else { size.h }
371373
+ spacing_scaled
372374
} else {
373375
right_sum_scaled
374376
};
377+
right_sum_scaled = right_sum_scaled.max(0.0);
375378

376379
let total_sum_scaled = left_sum_scaled + center_sum_scaled + right_sum_scaled;
377380
let new_list_length = (total_sum_scaled

0 commit comments

Comments
 (0)