eframe: Mouse passthrough option (#2080)
This commit is contained in:
parent
53ff83737b
commit
9901ad4bb0
2 changed files with 8 additions and 0 deletions
|
@ -270,6 +270,10 @@ pub struct NativeOptions {
|
||||||
/// You should avoid having a [`egui::CentralPanel`], or make sure its frame is also transparent.
|
/// You should avoid having a [`egui::CentralPanel`], or make sure its frame is also transparent.
|
||||||
pub transparent: bool,
|
pub transparent: bool,
|
||||||
|
|
||||||
|
/// On desktop: mouse clicks pass through the window, used for non-interactable overlays
|
||||||
|
/// Generally you would use this in conjunction with always_on_top
|
||||||
|
pub mouse_passthrough: bool,
|
||||||
|
|
||||||
/// Turn on vertical syncing, limiting the FPS to the display refresh rate.
|
/// Turn on vertical syncing, limiting the FPS to the display refresh rate.
|
||||||
///
|
///
|
||||||
/// The default is `true`.
|
/// The default is `true`.
|
||||||
|
@ -389,6 +393,7 @@ impl Default for NativeOptions {
|
||||||
max_window_size: None,
|
max_window_size: None,
|
||||||
resizable: true,
|
resizable: true,
|
||||||
transparent: false,
|
transparent: false,
|
||||||
|
mouse_passthrough: false,
|
||||||
vsync: true,
|
vsync: true,
|
||||||
multisampling: 0,
|
multisampling: 0,
|
||||||
depth_buffer: 0,
|
depth_buffer: 0,
|
||||||
|
|
|
@ -383,6 +383,9 @@ mod glow_integration {
|
||||||
integration.egui_ctx.set_visuals(theme.egui_visuals());
|
integration.egui_ctx.set_visuals(theme.egui_visuals());
|
||||||
|
|
||||||
gl_window.window().set_ime_allowed(true);
|
gl_window.window().set_ime_allowed(true);
|
||||||
|
if self.native_options.mouse_passthrough {
|
||||||
|
gl_window.window().set_cursor_hittest(false).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
let event_loop_proxy = self.repaint_proxy.clone();
|
let event_loop_proxy = self.repaint_proxy.clone();
|
||||||
|
|
Loading…
Reference in a new issue