From 5be901da82a64681e4ab58e792684c781900c3f3 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 22:49:55 +0900 Subject: [PATCH 1/8] Bug Fix : response.is_pointer_button_down_on Issue : #3809 #3669 #3791 --- crates/egui/src/context.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/egui/src/context.rs b/crates/egui/src/context.rs index f2f9614200c1..ea5a85ec2ff2 100644 --- a/crates/egui/src/context.rs +++ b/crates/egui/src/context.rs @@ -1080,6 +1080,7 @@ impl Context { response.triple_clicked[*button as usize] = clicked && click.is_triple(); } + response.is_pointer_button_down_on = false; } } } From 389e3714ac699f65518aa45155a4333755bf3187 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:07:33 +0900 Subject: [PATCH 2/8] Bug Fix Example: custom_window_frame Issue : #3809 #3669 #3791 --- examples/custom_window_frame/src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/custom_window_frame/src/main.rs b/examples/custom_window_frame/src/main.rs index 6008788bd0f3..79fc8a892344 100644 --- a/examples/custom_window_frame/src/main.rs +++ b/examples/custom_window_frame/src/main.rs @@ -105,7 +105,8 @@ 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)); ui.ctx() .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); } From 50da61d82aa9eaeefc34aae5021ab805c4181ce5 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:11:55 +0900 Subject: [PATCH 3/8] Update main.rs --- examples/custom_window_frame/src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/custom_window_frame/src/main.rs b/examples/custom_window_frame/src/main.rs index 79fc8a892344..093c5c2ec67d 100644 --- a/examples/custom_window_frame/src/main.rs +++ b/examples/custom_window_frame/src/main.rs @@ -105,7 +105,8 @@ 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)); ui.ctx() .send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); - } + } + if title_bar_response.is_pointer_button_down_on() { ui.ctx().send_viewport_cmd(ViewportCommand::StartDrag); } From 8eabb3843ace852f88e75f9e3fc6b528b5af7c59 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:25:40 +0900 Subject: [PATCH 4/8] Update main.rs --- examples/custom_window_frame/src/main.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/custom_window_frame/src/main.rs b/examples/custom_window_frame/src/main.rs index 093c5c2ec67d..42468303465d 100644 --- a/examples/custom_window_frame/src/main.rs +++ b/examples/custom_window_frame/src/main.rs @@ -103,8 +103,7 @@ fn title_bar_ui(ui: &mut egui::Ui, title_bar_rect: eframe::epaint::Rect, title: // Interact with the title bar (drag to move window): if title_bar_response.double_clicked() { let is_maximized = ui.input(|i| i.viewport().maximized.unwrap_or(false)); - ui.ctx() - .send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); + ui.ctx().send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); } if title_bar_response.is_pointer_button_down_on() { From 803696a13a42846d3cd0cea3468d963b83c7b97d Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:36:49 +0900 Subject: [PATCH 5/8] Update context.rs --- crates/egui/src/context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/egui/src/context.rs b/crates/egui/src/context.rs index ea5a85ec2ff2..07a6ec38f49e 100644 --- a/crates/egui/src/context.rs +++ b/crates/egui/src/context.rs @@ -1080,8 +1080,8 @@ impl Context { response.triple_clicked[*button as usize] = clicked && click.is_triple(); } - response.is_pointer_button_down_on = false; } + response.is_pointer_button_down_on = false; } } } From 727c6cd78024ef3d1323e62b892a13123e2fc89b Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:51:10 +0900 Subject: [PATCH 6/8] Update main.rs --- examples/custom_window_frame/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/custom_window_frame/src/main.rs b/examples/custom_window_frame/src/main.rs index 42468303465d..de35384c1178 100644 --- a/examples/custom_window_frame/src/main.rs +++ b/examples/custom_window_frame/src/main.rs @@ -105,7 +105,7 @@ 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)); ui.ctx().send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); } - + if title_bar_response.is_pointer_button_down_on() { ui.ctx().send_viewport_cmd(ViewportCommand::StartDrag); } From cc210d16ef60c837fef217c8046aa37ea8b537f0 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:54:17 +0900 Subject: [PATCH 7/8] Update main.rs --- examples/custom_window_frame/src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/custom_window_frame/src/main.rs b/examples/custom_window_frame/src/main.rs index de35384c1178..87daf82e06a8 100644 --- a/examples/custom_window_frame/src/main.rs +++ b/examples/custom_window_frame/src/main.rs @@ -103,7 +103,8 @@ fn title_bar_ui(ui: &mut egui::Ui, title_bar_rect: eframe::epaint::Rect, title: // Interact with the title bar (drag to move window): if title_bar_response.double_clicked() { let is_maximized = ui.input(|i| i.viewport().maximized.unwrap_or(false)); - ui.ctx().send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); + ui.ctx() + .send_viewport_cmd(ViewportCommand::Maximized(!is_maximized)); } if title_bar_response.is_pointer_button_down_on() { From 4815221b09018403f232330d7c71e61e89f5955f Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Wed, 17 Jan 2024 16:23:24 +0100 Subject: [PATCH 8/8] Make sure we always highlight widgets the frame they are clicked --- crates/egui/src/style.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/egui/src/style.rs b/crates/egui/src/style.rs index ebadb286d179..6422e6547237 100644 --- a/crates/egui/src/style.rs +++ b/crates/egui/src/style.rs @@ -942,7 +942,8 @@ impl Widgets { pub fn style(&self, response: &Response) -> &WidgetVisuals { if !response.sense.interactive() { &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 } else if response.hovered() || response.highlighted() { &self.hovered