mirror of
https://github.com/emilk/egui.git
synced 2026-09-03 15:20:05 -04:00
Track the global focus state of the UI (#1859)
* Track the global focus state of the UI * Fix changelog entries * Document the new difference between `Response::has_focus` and `Memory::has_focus`
This commit is contained in:
@@ -8,6 +8,7 @@ All notable changes to the `egui-winit` integration will be noted in this file.
|
||||
* Allow deferred render + surface state initialization for Android ([#1634](https://github.com/emilk/egui/pull/1634)).
|
||||
* Fixed window position persistence ([#1745](https://github.com/emilk/egui/pull/1745)).
|
||||
* Fixed mouse cursor change on Linux ([#1747](https://github.com/emilk/egui/pull/1747)).
|
||||
* Use the new `RawInput::has_focus` field to indicate whether the window has the keyboard focus ([#1859](https://github.com/emilk/egui/pull/1859)).
|
||||
|
||||
|
||||
## 0.18.0 - 2022-04-30
|
||||
|
||||
@@ -70,9 +70,14 @@ impl State {
|
||||
}
|
||||
|
||||
pub fn new_with_wayland_display(wayland_display: Option<*mut c_void>) -> Self {
|
||||
let egui_input = egui::RawInput {
|
||||
has_focus: false, // winit will tell us when we have focus
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
Self {
|
||||
start_time: instant::Instant::now(),
|
||||
egui_input: Default::default(),
|
||||
egui_input,
|
||||
pointer_pos_in_points: None,
|
||||
any_pointer_button_down: false,
|
||||
current_cursor_icon: egui::CursorIcon::Default,
|
||||
@@ -214,7 +219,8 @@ impl State {
|
||||
egui_ctx.wants_keyboard_input()
|
||||
|| input.virtual_keycode == Some(winit::event::VirtualKeyCode::Tab)
|
||||
}
|
||||
WindowEvent::Focused(_) => {
|
||||
WindowEvent::Focused(has_focus) => {
|
||||
self.egui_input.has_focus = *has_focus;
|
||||
// We will not be given a KeyboardInput event when the modifiers are released while
|
||||
// the window does not have focus. Unset all modifier state to be safe.
|
||||
self.egui_input.modifiers = egui::Modifiers::default();
|
||||
|
||||
Reference in New Issue
Block a user