summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Zhang <72227515+Aliremu@users.noreply.github.com>2024-07-02 03:18:47 -0400
committerGitHub <noreply@github.com>2024-07-02 09:18:47 +0200
commit770c82a3f38d5910d5ab9ce616b38e7cbb1361ae (patch)
tree5c0997aee42265bfb37d477f1efd4fd4331b48a1
parentfa8d535fe716ab91ca531dca51c283850615bc28 (diff)
Prevent `TextEdit` widgets from sending fake primary clicks (#4751)
<!-- Please read the "Making a PR" section of [`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/master/CONTRIBUTING.md) before opening a Pull Request! * Keep your PR:s small and focused. * The PR title is what ends up in the changelog, so make it descriptive! * If applicable, add a screenshot or gif. * If it is a non-trivial addition, consider adding a demo for it to `egui_demo_lib`, or a new example. * Do NOT open PR:s from your `master` branch, as that makes it hard for maintainers to test and add commits to your PR. * Remember to run `cargo fmt` and `cargo clippy`. * Open the PR as a draft until you have self-reviewed it and run `./scripts/check.sh`. * When you have addressed a PR comment, mark it as resolved. Please be patient! I will review your PR, but my time is limited! --> This prevents TextEdit widgets from sending fake primary clicks when a user types Space / Enter. Small change but having Space / Enter send `OutputEvent::ValueChanged` instead of `OutputEvent::Clicked` makes more sense I believe. --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
-rw-r--r--crates/egui/src/widgets/text_edit/builder.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/crates/egui/src/widgets/text_edit/builder.rs b/crates/egui/src/widgets/text_edit/builder.rs
index aa872862..8205da63 100644
--- a/crates/egui/src/widgets/text_edit/builder.rs
+++ b/crates/egui/src/widgets/text_edit/builder.rs
@@ -539,6 +539,9 @@ impl<'t> TextEdit<'t> {
Sense::hover()
};
let mut response = ui.interact(outer_rect, id, sense);
+
+ response.fake_primary_click = false; // Don't sent `OutputEvent::Clicked` when a user presses the space bar
+
let text_clip_rect = rect;
let painter = ui.painter_at(text_clip_rect.expand(1.0)); // expand to avoid clipping cursor