mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 23:13:13 -04:00
eframe: Mouse passthrough option (#2080)
This commit is contained in:
@@ -270,6 +270,10 @@ pub struct NativeOptions {
|
||||
/// You should avoid having a [`egui::CentralPanel`], or make sure its frame is also transparent.
|
||||
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.
|
||||
///
|
||||
/// The default is `true`.
|
||||
@@ -389,6 +393,7 @@ impl Default for NativeOptions {
|
||||
max_window_size: None,
|
||||
resizable: true,
|
||||
transparent: false,
|
||||
mouse_passthrough: false,
|
||||
vsync: true,
|
||||
multisampling: 0,
|
||||
depth_buffer: 0,
|
||||
|
||||
@@ -383,6 +383,9 @@ mod glow_integration {
|
||||
integration.egui_ctx.set_visuals(theme.egui_visuals());
|
||||
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user