File: gtk-rs-0.10.patch

package info (click to toggle)
rust-swtchr 0.1.3-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,260 kB
  • sloc: makefile: 4
file content (94 lines) | stat: -rw-r--r-- 3,275 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
From 3230a55ea07fbb42319b3938e4dd67b5ec3fc715 Mon Sep 17 00:00:00 2001
From: Matthias Geiger <werdahias@debian.org>
Date: Tue, 2 Sep 2025 23:08:17 +0200
Subject: [PATCH] feat: port to gtk-rs 0.10

Forwarded: https://github.com/lostatc/swtchr/pull/7

---
 Cargo.toml                       |   4 +-
 src/daemon/components/app_bar.rs |   5 +-
 src/daemon/gui.rs                |  15 +-
 4 files changed, 337 insertions(+), 279 deletions(-)


diff --git a/Cargo.toml b/Cargo.toml
index b43a6c3..da287c2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -58,15 +58,15 @@
 version = "0.6.12"
 
 [dependencies.gtk]
-version = "0.8.2"
-features = ["v4_6"]
+version = "0.10.0"
+features = ["v4_8"]
 package = "gtk4"
 
 [dependencies.gtk4-layer-shell]
-version = "0.3.0"
+version = "0.6.0"
 
 [dependencies.nix]
-version = "0.28.0"
+version = ">= 0.28.0"
 features = ["user"]
 
 [dependencies.serde]
diff --git a/src/daemon/components/app_bar.rs b/src/daemon/components/app_bar.rs
index 87c0ad3..5bab158 100644
--- a/src/daemon/components/app_bar.rs
+++ b/src/daemon/components/app_bar.rs
@@ -25,7 +25,10 @@ impl AppBar {
         }
 
         for app_button in app_buttons.iter() {
-            app_button.connect_has_focus_notify(clone!(@weak obj => move |button| {
+            app_button.connect_has_focus_notify(clone!(
+                    #[weak]
+                    obj,
+                    move |button| {
                 obj.set_current_title(button.window_title());
                 obj.set_window_id(button.window_id());
             }));
diff --git a/src/daemon/gui.rs b/src/daemon/gui.rs
index 8eb3711..8616e82 100644
--- a/src/daemon/gui.rs
+++ b/src/daemon/gui.rs
@@ -129,7 +129,10 @@ fn register_key_release_controller(config: &Config, window: &Window) {
 
     let controller = EventControllerKey::new();
 
-    controller.connect_key_released(clone!(@weak window => move |_, actual_key, _, _| {
+    controller.connect_key_released(clone!(
+            #[weak]
+            window,
+            move |_, actual_key, _, _| {
         if !release_keys.contains(&actual_key) {
             return;
         }
@@ -151,7 +154,10 @@ fn register_key_release_controller(config: &Config, window: &Window) {
 fn register_ipc_command_handlers(window: &Window) -> eyre::Result<()> {
     let receiver = ipc::subscribe()?;
 
-    glib::spawn_future_local(clone!(@weak window => async move {
+    glib::spawn_future_local(clone!(
+            #[weak]
+            window,
+            async move {
         while let Ok(msg) = receiver.recv().await {
             let action_result = match msg {
                 Ok(SwtchrCommand::Show) => WidgetExt::activate_action(&window, "win.show", None).map_err(eyre::Report::from),
@@ -241,7 +247,10 @@ pub fn build_window(config: &Config, app: &Application, subscription: Rc<WindowS
     window.set_keyboard_mode(KeyboardMode::None);
 
     // Update the list of windows in the window switcher right before we display it.
-    let on_display = Box::new(clone!(@weak window => move || {
+    let on_display = Box::new(clone!(
+            #[weak]
+            window,
+            move || {
         window.update_windows(&subscription.get_window_list().expect("Failed getting window list to populate window switcher overlay."));
     }));