mirror of
https://github.com/emilk/egui.git
synced 2026-09-02 06:40:06 -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.
|
/// 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();
|
||||||
|
|||||||
Reference in New Issue
Block a user