diff options
Diffstat (limited to '')
| -rw-r--r-- | winit/src/application.rs | 8 | ||||
| -rw-r--r-- | winit/src/multi_window.rs | 15 | 
2 files changed, 23 insertions, 0 deletions
| diff --git a/winit/src/application.rs b/winit/src/application.rs index ad461738..0c596b3f 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -807,6 +807,14 @@ pub fn run_command<A, C, E>(                  window::Action::ChangeLevel(_id, level) => {                      window.set_window_level(conversion::window_level(level));                  } +                window::Action::ShowSystemMenu(_id) => { +                    if let mouse::Cursor::Available(point) = state.cursor() { +                        window.show_window_menu(winit::dpi::LogicalPosition { +                            x: point.x, +                            y: point.y, +                        }); +                    } +                }                  window::Action::FetchId(_id, tag) => {                      proxy                          .send_event(tag(window.id().into())) diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index 72cd939f..c63dd433 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -6,6 +6,7 @@ pub use state::State;  use crate::conversion;  use crate::core; +use crate::core::mouse;  use crate::core::renderer;  use crate::core::widget::operation;  use crate::core::window; @@ -1058,6 +1059,20 @@ fn run_command<A, C, E>(                              .set_window_level(conversion::window_level(level));                      }                  } +                window::Action::ShowSystemMenu(id) => { +                    if let Some(window) = window_manager.get_mut(id) { +                        if let mouse::Cursor::Available(point) = +                            window.state.cursor() +                        { +                            window.raw.show_window_menu( +                                winit::dpi::LogicalPosition { +                                    x: point.x, +                                    y: point.y, +                                }, +                            ); +                        } +                    } +                }                  window::Action::FetchId(id, tag) => {                      if let Some(window) = window_manager.get_mut(id) {                          proxy | 
