Skip to content

Commit 440b9ce

Browse files
committed
winit: Remove unused function and don't depend on copypasta on wasm
Nightly Rust start warning about these. And in the case of wasm we don't even need to depend on copypasta since we handle the copy paste ourselves
1 parent 7b2ff89 commit 440b9ce

File tree

2 files changed

+20
-28
lines changed

2 files changed

+20
-28
lines changed

internal/backends/winit/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ const-field-offset = { version = "0.1", path = "../../../helper_crates/const-fie
3838
vtable = { version = "0.1.6", path = "../../../helper_crates/vtable" }
3939

4040
cfg-if = "1"
41-
copypasta = { version = "0.10", default-features = false }
4241
derive_more = "0.99.5"
4342
lyon_path = "1.0"
4443
once_cell = "1.5"
@@ -69,6 +68,7 @@ glutin = { workspace = true, optional = true, default-features = false, features
6968
glutin-winit = { version = "0.4.2", optional = true, default-features = false, features = ["egl", "wgl"] }
7069
accesskit = { version = "0.12.2", optional = true }
7170
accesskit_winit = { version = "0.18.0", optional = true }
71+
copypasta = { version = "0.10", default-features = false }
7272

7373
[target.'cfg(target_os = "macos")'.dependencies]
7474
# For GL rendering

internal/backends/winit/event_loop.rs

+19-27
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
use crate::winitwindowadapter::WinitWindowAdapter;
1111
use crate::SlintUserEvent;
12+
#[cfg(not(target_arch = "wasm32"))]
1213
use copypasta::ClipboardProvider;
1314
use corelib::api::EventLoopError;
1415
use corelib::graphics::euclid;
@@ -18,15 +19,18 @@ use corelib::lengths::LogicalPoint;
1819
use corelib::platform::PlatformError;
1920
use corelib::window::*;
2021
use i_slint_core as corelib;
22+
#[allow(unused_imports)]
2123
use std::cell::{RefCell, RefMut};
2224
use std::rc::{Rc, Weak};
2325
use winit::event::{Event, WindowEvent};
2426
use winit::event_loop::EventLoopWindowTarget;
2527

28+
#[cfg(not(target_arch = "wasm32"))]
2629
/// The Default, and the selection clippoard
2730
type ClipboardPair = (Box<dyn ClipboardProvider>, Box<dyn ClipboardProvider>);
2831

2932
struct NotRunningEventLoop {
33+
#[cfg(not(target_arch = "wasm32"))]
3034
clipboard: RefCell<ClipboardPair>,
3135
instance: winit::event_loop::EventLoop<SlintUserEvent>,
3236
event_loop_proxy: winit::event_loop::EventLoopProxy<SlintUserEvent>,
@@ -58,20 +62,24 @@ impl NotRunningEventLoop {
5862
let instance =
5963
builder.build().map_err(|e| format!("Error initializing winit event loop: {e}"))?;
6064
let event_loop_proxy = instance.create_proxy();
61-
let clipboard = RefCell::new(create_clipboard(&instance));
62-
Ok(Self { clipboard, instance, event_loop_proxy })
65+
Ok(Self {
66+
#[cfg(not(target_arch = "wasm32"))]
67+
clipboard: RefCell::new(create_clipboard(&instance)),
68+
instance,
69+
event_loop_proxy,
70+
})
6371
}
6472
}
6573

6674
struct RunningEventLoop<'a> {
6775
event_loop_target: &'a winit::event_loop::EventLoopWindowTarget<SlintUserEvent>,
68-
event_loop_proxy: &'a winit::event_loop::EventLoopProxy<SlintUserEvent>,
76+
#[cfg(not(target_arch = "wasm32"))]
6977
clipboard: &'a RefCell<ClipboardPair>,
7078
}
7179

7280
pub(crate) trait EventLoopInterface {
7381
fn event_loop_target(&self) -> &winit::event_loop::EventLoopWindowTarget<SlintUserEvent>;
74-
fn event_loop_proxy(&self) -> &winit::event_loop::EventLoopProxy<SlintUserEvent>;
82+
#[cfg(not(target_arch = "wasm32"))]
7583
fn clipboard(
7684
&self,
7785
_: i_slint_core::platform::Clipboard,
@@ -83,10 +91,7 @@ impl EventLoopInterface for NotRunningEventLoop {
8391
&self.instance
8492
}
8593

86-
fn event_loop_proxy(&self) -> &winit::event_loop::EventLoopProxy<SlintUserEvent> {
87-
&self.event_loop_proxy
88-
}
89-
94+
#[cfg(not(target_arch = "wasm32"))]
9095
fn clipboard(
9196
&self,
9297
clipboard: i_slint_core::platform::Clipboard,
@@ -108,10 +113,7 @@ impl<'a> EventLoopInterface for RunningEventLoop<'a> {
108113
self.event_loop_target
109114
}
110115

111-
fn event_loop_proxy(&self) -> &winit::event_loop::EventLoopProxy<SlintUserEvent> {
112-
self.event_loop_proxy
113-
}
114-
116+
#[cfg(not(target_arch = "wasm32"))]
115117
fn clipboard(
116118
&self,
117119
clipboard: i_slint_core::platform::Clipboard,
@@ -524,18 +526,17 @@ impl EventLoopState {
524526
});
525527

526528
let mut winit_loop = not_running_loop_instance.instance;
527-
let clipboard = not_running_loop_instance.clipboard;
528529

529530
#[cfg(not(target_arch = "wasm32"))]
530531
{
531532
use winit::platform::run_on_demand::EventLoopExtRunOnDemand as _;
533+
let clipboard = not_running_loop_instance.clipboard;
532534
winit_loop
533535
.run_on_demand(
534536
|event: Event<SlintUserEvent>,
535537
event_loop_target: &EventLoopWindowTarget<SlintUserEvent>| {
536538
let running_instance = RunningEventLoop {
537539
event_loop_target,
538-
event_loop_proxy: &event_loop_proxy,
539540
clipboard: &clipboard,
540541
};
541542
CURRENT_WINDOW_TARGET.set(&running_instance, || {
@@ -566,8 +567,6 @@ impl EventLoopState {
566567
event_loop_target: &EventLoopWindowTarget<SlintUserEvent>| {
567568
let running_instance = RunningEventLoop {
568569
event_loop_target,
569-
event_loop_proxy: &event_loop_proxy,
570-
clipboard: &clipboard,
571570
};
572571
CURRENT_WINDOW_TARGET.set(&running_instance, || {
573572
self.process_event(event, event_loop_target)
@@ -611,11 +610,8 @@ impl EventLoopState {
611610
timeout,
612611
|event: Event<SlintUserEvent>,
613612
event_loop_target: &EventLoopWindowTarget<SlintUserEvent>| {
614-
let running_instance = RunningEventLoop {
615-
event_loop_target,
616-
event_loop_proxy: &event_loop_proxy,
617-
clipboard: &clipboard,
618-
};
613+
let running_instance =
614+
RunningEventLoop { event_loop_target, clipboard: &clipboard };
619615
CURRENT_WINDOW_TARGET
620616
.set(&running_instance, || self.process_event(event, event_loop_target))
621617
},
@@ -653,17 +649,12 @@ pub fn spawn() -> Result<(), corelib::platform::PlatformError> {
653649
.set_proxy(event_loop_proxy.clone())
654650
});
655651

656-
let clipboard = not_running_loop_instance.clipboard;
657652
let mut loop_state = EventLoopState::default();
658653

659654
not_running_loop_instance.instance.spawn(
660655
move |event: Event<SlintUserEvent>,
661656
event_loop_target: &EventLoopWindowTarget<SlintUserEvent>| {
662-
let running_instance = RunningEventLoop {
663-
event_loop_target,
664-
event_loop_proxy: &event_loop_proxy,
665-
clipboard: &clipboard,
666-
};
657+
let running_instance = RunningEventLoop { event_loop_target };
667658
CURRENT_WINDOW_TARGET
668659
.set(&running_instance, || loop_state.process_event(event, event_loop_target))
669660
},
@@ -672,6 +663,7 @@ pub fn spawn() -> Result<(), corelib::platform::PlatformError> {
672663
Ok(())
673664
}
674665

666+
#[cfg(not(target_arch = "wasm32"))]
675667
fn create_clipboard<T>(_event_loop: &winit::event_loop::EventLoopWindowTarget<T>) -> ClipboardPair {
676668
// Provide a truly silent no-op clipboard context, as copypasta's NoopClipboard spams stdout with
677669
// println.

0 commit comments

Comments
 (0)