1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 14:50:03 -04:00

Bug Fix : Response::is_pointer_button_down_on is now false the frame the button is released (#3833)

* Closes #3809
* Closes #3669
* Closes #3791

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
rustbasic
2024-01-18 00:33:11 +09:00
committed by GitHub
parent f01d337fa8
commit 7733d1d87c
3 changed files with 6 additions and 2 deletions

View File

@@ -1081,6 +1081,7 @@ impl Context {
clicked && click.is_triple(); clicked && click.is_triple();
} }
} }
response.is_pointer_button_down_on = false;
} }
} }
} }

View File

@@ -942,7 +942,8 @@ impl Widgets {
pub fn style(&self, response: &Response) -> &WidgetVisuals { pub fn style(&self, response: &Response) -> &WidgetVisuals {
if !response.sense.interactive() { if !response.sense.interactive() {
&self.noninteractive &self.noninteractive
} else if response.is_pointer_button_down_on() || response.has_focus() { } else if response.is_pointer_button_down_on() || response.has_focus() || response.clicked()
{
&self.active &self.active
} else if response.hovered() || response.highlighted() { } else if response.hovered() || response.highlighted() {
&self.hovered &self.hovered

View File

@@ -105,7 +105,9 @@ fn title_bar_ui(ui: &mut egui::Ui, title_bar_rect: eframe::epaint::Rect, title:
let is_maximized = ui.input(|i| i.viewport().maximized.unwrap_or(false)); let is_maximized = ui.input(|i| i.viewport().maximized.unwrap_or(false));
ui.ctx() ui.ctx()
.send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); .send_viewport_cmd(ViewportCommand::Maximized(!is_maximized));
} else if title_bar_response.is_pointer_button_down_on() { }
if title_bar_response.is_pointer_button_down_on() {
ui.ctx().send_viewport_cmd(ViewportCommand::StartDrag); ui.ctx().send_viewport_cmd(ViewportCommand::StartDrag);
} }