Skip to content

Commit

Permalink
eframe: Mouse passthrough option (#2080)
Browse files Browse the repository at this point in the history
  • Loading branch information
mgalos999 authored Oct 2, 2022
1 parent 53ff837 commit 9901ad4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
5 changes: 5 additions & 0 deletions crates/eframe/src/epi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down Expand Up @@ -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,
Expand Down
3 changes: 3 additions & 0 deletions crates/eframe/src/native/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit 9901ad4

Please sign in to comment.