summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2023-02-17 11:50:52 -0800
committerLibravatar Bingus <shankern@protonmail.com>2023-02-17 13:01:40 -0800
commit2d427455ce8f9627da7c09eb80f38a615f0ddcb7 (patch)
tree37b3446cd382bdd6f6949032c4318a8fba071cb6 /winit/src
parent744cef5608a91fe55cbbe1adb73a9a0b5e266668 (diff)
downloadiced-2d427455ce8f9627da7c09eb80f38a615f0ddcb7.tar.gz
iced-2d427455ce8f9627da7c09eb80f38a615f0ddcb7.tar.bz2
iced-2d427455ce8f9627da7c09eb80f38a615f0ddcb7.zip
Iced master merge (again)
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/multi_window.rs21
-rw-r--r--winit/src/window.rs2
2 files changed, 17 insertions, 6 deletions
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs
index 17eaa6fe..96dd1c8b 100644
--- a/winit/src/multi_window.rs
+++ b/winit/src/multi_window.rs
@@ -4,12 +4,12 @@ mod state;
pub use state::State;
use crate::clipboard::{self, Clipboard};
+use crate::conversion;
use crate::mouse;
use crate::renderer;
use crate::settings;
use crate::widget::operation;
use crate::window;
-use crate::conversion;
use crate::{
Command, Debug, Element, Error, Executor, Proxy, Renderer, Runtime,
Settings, Size, Subscription,
@@ -22,7 +22,6 @@ use iced_native::user_interface::{self, UserInterface};
pub use iced_native::application::{Appearance, StyleSheet};
-use iced_native::window::Action;
use std::collections::HashMap;
use std::mem::ManuallyDrop;
use std::time::Instant;
@@ -147,6 +146,7 @@ where
/// while a scale factor of `0.5` will shrink them to half their size.
///
/// By default, it returns `1.0`.
+ #[allow(unused_variables)]
fn scale_factor(&self, window: window::Id) -> f64 {
1.0
}
@@ -470,7 +470,7 @@ async fn run_instance<A, E, C>(
user_interface::State::Outdated,
)
{
- let user_interfaces: HashMap<_, _> =
+ let cached_interfaces: HashMap<_, _> =
ManuallyDrop::into_inner(interfaces)
.drain()
.map(
@@ -510,7 +510,7 @@ async fn run_instance<A, E, C>(
&mut renderer,
&mut debug,
&states,
- user_interfaces,
+ cached_interfaces,
));
if application.should_exit() {
@@ -1057,10 +1057,21 @@ pub fn run_command<A, E>(
attention_type.map(conversion::user_attention),
);
}
- Action::GainFocus => {
+ window::Action::GainFocus => {
let window = windows.get(&id).expect("No window found!");
window.focus_window();
}
+ window::Action::ChangeAlwaysOnTop(on_top) => {
+ let window = windows.get(&id).expect("No window found!");
+ window.set_always_on_top(on_top);
+ }
+ window::Action::FetchId(tag) => {
+ let window = windows.get(&id).expect("No window found!");
+
+ proxy
+ .send_event(Event::Application(tag(window.id().into())))
+ .expect("Send message to event loop.")
+ }
},
command::Action::System(action) => match action {
system::Action::QueryInformation(_tag) => {
diff --git a/winit/src/window.rs b/winit/src/window.rs
index 88cd3f14..8fd415ef 100644
--- a/winit/src/window.rs
+++ b/winit/src/window.rs
@@ -122,7 +122,7 @@ pub fn fetch_id<Message>(
id: window::Id,
f: impl FnOnce(u64) -> Message + 'static,
) -> Command<Message> {
- Command::single(command::Action::Window(id: window::Id, window::Action::FetchId(Box::new(
+ Command::single(command::Action::Window(id, window::Action::FetchId(Box::new(
f,
))))
}