summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2021-04-23 19:31:35 -0400
committerGitHub <noreply@github.com>2021-04-23 19:31:35 -0400
commitfcc478a1eb978c826ac416399813df7cdc6b94b2 (patch)
tree438c738f559036d536bed031945a7d30cf340233
parent280bcbead2e0bdb8ae94d0ab5b8232f7c4fbec31 (diff)
bug: Fixes basic mode mouse hitboxes being broken (#458)
Fixes basic mode having broken click hitboxes (they were 1 unit too long in both directions). I'm pretty sure normal mode does too, but it's less noticeable due to bounding boxes.
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/canvas/widgets/basic_table_arrows.rs13
-rw-r--r--src/canvas/widgets/cpu_basic.rs6
-rw-r--r--src/canvas/widgets/mem_basic.rs6
-rw-r--r--src/canvas/widgets/network_basic.rs6
5 files changed, 20 insertions, 13 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 92e6af53..917ffe49 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -65,6 +65,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [#425](https://github.com/ClementTsang/bottom/pull/425): Fixed a bug allowing grouped mode in tree mode if already in grouped mode.
+- [#458](https://github.com/ClementTsang/bottom/pull/458): Fix basic mode having really broken click bounding boxes.
+
## [0.5.7] - 2021-01-30
## Bug Fixes
diff --git a/src/canvas/widgets/basic_table_arrows.rs b/src/canvas/widgets/basic_table_arrows.rs
index f9d937d4..e7f769a8 100644
--- a/src/canvas/widgets/basic_table_arrows.rs
+++ b/src/canvas/widgets/basic_table_arrows.rs
@@ -136,19 +136,18 @@ impl BasicTableArrows for Painter {
);
if app_state.should_get_widget_bounds() {
- // The y is +1 as for some reason the height is 2... but we only want a height of 1.
if let Some(basic_table) = &mut app_state.basic_table_widget_state {
basic_table.left_tlc =
- Some((margined_draw_loc[0].x, margined_draw_loc[0].y + 1));
+ Some((margined_draw_loc[0].x - 1, margined_draw_loc[0].y + 1));
basic_table.left_brc = Some((
- margined_draw_loc[0].x + margined_draw_loc[0].width,
- margined_draw_loc[0].y + 1 + margined_draw_loc[0].height,
+ margined_draw_loc[0].x + margined_draw_loc[0].width - 1,
+ margined_draw_loc[0].y + 1,
));
basic_table.right_tlc =
- Some((margined_draw_loc[2].x, margined_draw_loc[2].y + 1));
+ Some((margined_draw_loc[2].x - 1, margined_draw_loc[2].y + 1));
basic_table.right_brc = Some((
- margined_draw_loc[2].x + margined_draw_loc[2].width,
- margined_draw_loc[2].y + 1 + margined_draw_loc[2].height,
+ margined_draw_loc[2].x + margined_draw_loc[2].width - 1,
+ margined_draw_loc[2].y + 1,
));
}
}
diff --git a/src/canvas/widgets/cpu_basic.rs b/src/canvas/widgets/cpu_basic.rs
index 5beb3f73..e88bbf03 100644
--- a/src/canvas/widgets/cpu_basic.rs
+++ b/src/canvas/widgets/cpu_basic.rs
@@ -198,8 +198,10 @@ impl CpuBasicWidget for Painter {
// Update draw loc in widget map
if let Some(widget) = app_state.widget_map.get_mut(&widget_id) {
widget.top_left_corner = Some((draw_loc.x, draw_loc.y));
- widget.bottom_right_corner =
- Some((draw_loc.x + draw_loc.width, draw_loc.y + draw_loc.height));
+ widget.bottom_right_corner = Some((
+ draw_loc.x + draw_loc.width - 1,
+ draw_loc.y + draw_loc.height - 1,
+ ));
}
}
}
diff --git a/src/canvas/widgets/mem_basic.rs b/src/canvas/widgets/mem_basic.rs
index 3bb40ad7..b252c5d3 100644
--- a/src/canvas/widgets/mem_basic.rs
+++ b/src/canvas/widgets/mem_basic.rs
@@ -122,8 +122,10 @@ impl MemBasicWidget for Painter {
if app_state.should_get_widget_bounds() {
if let Some(widget) = app_state.widget_map.get_mut(&widget_id) {
widget.top_left_corner = Some((draw_loc.x, draw_loc.y));
- widget.bottom_right_corner =
- Some((draw_loc.x + draw_loc.width, draw_loc.y + draw_loc.height));
+ widget.bottom_right_corner = Some((
+ draw_loc.x + draw_loc.width - 1,
+ draw_loc.y + draw_loc.height - 1,
+ ));
}
}
}
diff --git a/src/canvas/widgets/network_basic.rs b/src/canvas/widgets/network_basic.rs
index 7f0e393e..08aa1b6b 100644
--- a/src/canvas/widgets/network_basic.rs
+++ b/src/canvas/widgets/network_basic.rs
@@ -70,8 +70,10 @@ impl NetworkBasicWidget for Painter {
if app_state.should_get_widget_bounds() {
if let Some(widget) = app_state.widget_map.get_mut(&widget_id) {
widget.top_left_corner = Some((draw_loc.x, draw_loc.y));
- widget.bottom_right_corner =
- Some((draw_loc.x + draw_loc.width, draw_loc.y + draw_loc.height));
+ widget.bottom_right_corner = Some((
+ draw_loc.x + draw_loc.width - 1,
+ draw_loc.y + draw_loc.height - 1,
+ ));
}
}
}