Separate CosmicAppletWindow and CosmicAppletButton
This commit is contained in:
parent
74f6c2eca6
commit
aac43de65d
16 changed files with 421 additions and 343 deletions
|
|
@ -1,5 +1,6 @@
|
|||
// SPDX-License-Identifier: MPL-2.0-only
|
||||
|
||||
use calloop::channel::SyncSender;
|
||||
use gtk4::{
|
||||
gdk::Display,
|
||||
gio::{self, ApplicationFlags},
|
||||
|
|
@ -13,7 +14,6 @@ use tokio::sync::mpsc;
|
|||
use utils::{Activate, WorkspaceEvent};
|
||||
use wayland::State;
|
||||
use window::CosmicWorkspacesWindow;
|
||||
use calloop::channel::SyncSender;
|
||||
|
||||
mod localize;
|
||||
mod utils;
|
||||
|
|
|
|||
|
|
@ -92,8 +92,8 @@ pub fn spawn_workspaces(tx: glib::Sender<State>) -> SyncSender<WorkspaceEvent> {
|
|||
running: true,
|
||||
};
|
||||
let loop_handle = event_loop.handle();
|
||||
loop_handle.insert_source(workspaces_rx, |e, _, state| {
|
||||
match e {
|
||||
loop_handle
|
||||
.insert_source(workspaces_rx, |e, _, state| match e {
|
||||
Event::Msg(WorkspaceEvent::Activate(id)) => {
|
||||
if let Some(w) = state
|
||||
.workspace_groups
|
||||
|
|
@ -136,15 +136,16 @@ pub fn spawn_workspaces(tx: glib::Sender<State>) -> SyncSender<WorkspaceEvent> {
|
|||
}
|
||||
}
|
||||
}
|
||||
Event::Closed => if let Some(workspace_manager) = &mut state.workspace_manager {
|
||||
for g in &mut state.workspace_groups {
|
||||
g.workspace_group_handle.destroy();
|
||||
Event::Closed => {
|
||||
if let Some(workspace_manager) = &mut state.workspace_manager {
|
||||
for g in &mut state.workspace_groups {
|
||||
g.workspace_group_handle.destroy();
|
||||
}
|
||||
workspace_manager.stop();
|
||||
}
|
||||
workspace_manager.stop();
|
||||
},
|
||||
}
|
||||
|
||||
}).unwrap();
|
||||
}
|
||||
})
|
||||
.unwrap();
|
||||
while state.running {
|
||||
event_loop
|
||||
.dispatch(Duration::from_millis(16), &mut state)
|
||||
|
|
|
|||
|
|
@ -43,9 +43,7 @@ impl WorkspaceButton {
|
|||
new_button.connect_clicked(move |_| {
|
||||
let id_clone = id.clone();
|
||||
if !is_active {
|
||||
let _ = TX.get()
|
||||
.unwrap()
|
||||
.send(WorkspaceEvent::Activate(id_clone));
|
||||
let _ = TX.get().unwrap().send(WorkspaceEvent::Activate(id_clone));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -61,9 +61,7 @@ impl WorkspaceList {
|
|||
.build();
|
||||
|
||||
scroll_controller.connect_scroll(|_, dx, dy| {
|
||||
let _ = TX.get()
|
||||
.unwrap()
|
||||
.send(WorkspaceEvent::Scroll(dx + dy));
|
||||
let _ = TX.get().unwrap().send(WorkspaceEvent::Scroll(dx + dy));
|
||||
Inhibit::default()
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue