summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2024-02-13 05:02:54 +0100
committerLibravatar GitHub <noreply@github.com>2024-02-13 05:02:54 +0100
commit52e207b89bb79dba210c581b790f794e6e0c94e8 (patch)
tree574699133deaceb86ed3511d3d57782c1d433f5c /winit
parent7a1e10503697b68a4d6206551c34702ec8a69b79 (diff)
parenta64cda6e3ed98fc805cb6331c3619e59840d4f75 (diff)
downloadiced-52e207b89bb79dba210c581b790f794e6e0c94e8.tar.gz
iced-52e207b89bb79dba210c581b790f794e6e0c94e8.tar.bz2
iced-52e207b89bb79dba210c581b790f794e6e0c94e8.zip
Merge pull request #2243 from ids1024/show_window_menu
Add `show_window_menu` action
Diffstat (limited to '')
-rw-r--r--winit/src/application.rs8
-rw-r--r--winit/src/multi_window.rs15
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