Skip to content

Commit c58f587

Browse files
committed
feat: use calloop channel instead thread
then I can receive the events any time
1 parent 39cdbb6 commit c58f587

File tree

6 files changed

+118
-144
lines changed

6 files changed

+118
-144
lines changed

iced_layershell/src/multi_window.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ where
6565
P::Message: 'static + TryInto<LayershellCustomActionWithId, Error = P::Message>,
6666
{
6767
use futures::task;
68-
let (message_sender, message_receiver) = std::sync::mpsc::channel::<Action<P::Message>>();
68+
use layershellev::calloop::channel::channel;
69+
let (message_sender, message_receiver) = channel::<Action<P::Message>>();
6970

7071
let boot_span = iced_debug::boot();
7172
let proxy = IcedProxy::new(message_sender);

iced_layershell/src/proxy.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ use futures::{
55
};
66
use iced_graphics::shell;
77
use iced_runtime::{Action, window};
8+
use layershellev::calloop::channel::Sender as WlSender;
89
use std::pin::Pin;
9-
use std::sync::mpsc as stdmpsc;
1010

1111
/// An event loop proxy that implements `Sink`.
1212
/// NOTE: not proxy anything now
1313
#[derive(Debug)]
14-
pub struct IcedProxy<Message: 'static>(stdmpsc::Sender<Message>);
14+
pub struct IcedProxy<Message: 'static>(WlSender<Message>);
1515

1616
impl<Message: 'static> Clone for IcedProxy<Message> {
1717
fn clone(&self) -> Self {
@@ -20,7 +20,7 @@ impl<Message: 'static> Clone for IcedProxy<Message> {
2020
}
2121

2222
impl<T: 'static> IcedProxy<T> {
23-
pub fn new(sender: stdmpsc::Sender<T>) -> Self {
23+
pub fn new(sender: WlSender<T>) -> Self {
2424
Self(sender)
2525
}
2626
#[allow(unused)]

iced_sessionlock/src/multi_window.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ where
5656
P::Message: 'static + TryInto<UnLockAction, Error = P::Message>,
5757
{
5858
use futures::task;
59+
use sessionlockev::calloop::channel::channel;
5960

60-
let (message_sender, message_receiver) = std::sync::mpsc::channel::<Action<P::Message>>();
61+
let (message_sender, message_receiver) = channel::<Action<P::Message>>();
6162
let boot_span = debug::boot();
6263
let proxy = IcedProxy::new(message_sender);
6364

iced_sessionlock/src/proxy.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ use futures::{
66
use iced_graphics::shell;
77

88
use iced_runtime::{Action, window};
9+
use sessionlockev::calloop::channel::Sender as WlSender;
910
use std::pin::Pin;
10-
use std::sync::mpsc as stdmpsc;
1111

1212
/// An event loop proxy that implements `Sink`.
1313
/// NOTE: not proxy anything now
1414
#[derive(Debug)]
15-
pub struct IcedProxy<Message: 'static>(stdmpsc::Sender<Message>);
15+
pub struct IcedProxy<Message: 'static>(WlSender<Message>);
1616

1717
impl<Message: 'static> Clone for IcedProxy<Message> {
1818
fn clone(&self) -> Self {
@@ -21,7 +21,7 @@ impl<Message: 'static> Clone for IcedProxy<Message> {
2121
}
2222

2323
impl<T: 'static> IcedProxy<T> {
24-
pub fn new(sender: stdmpsc::Sender<T>) -> Self {
24+
pub fn new(sender: WlSender<T>) -> Self {
2525
Self(sender)
2626
}
2727
#[allow(unused)]

0 commit comments

Comments
 (0)