💥 chore(app): correcly use appScope and dispose
This commit is contained in:
+11
-16
@@ -14,13 +14,12 @@ import { Stylesheet } from "./scripts/stylesheet";
|
|||||||
import { Clipboard } from "./scripts/clipboard";
|
import { Clipboard } from "./scripts/clipboard";
|
||||||
import { PluginClipboard } from "./runner/plugins/clipboard";
|
import { PluginClipboard } from "./runner/plugins/clipboard";
|
||||||
import { Config } from "./scripts/config";
|
import { Config } from "./scripts/config";
|
||||||
import { onCleanup, Scope } from "/usr/share/ags/js/gnim/src/jsx/scope";
|
import { Scope } from "/usr/share/ags/js/gnim/src/jsx/scope";
|
||||||
|
|
||||||
import App from "ags/gtk4/app"
|
import App from "ags/gtk4/app"
|
||||||
import GObject from "ags/gobject";
|
import GObject from "ags/gobject";
|
||||||
import AstalNotifd from "gi://AstalNotifd";
|
import AstalNotifd from "gi://AstalNotifd";
|
||||||
|
|
||||||
|
|
||||||
export const appScope: Scope = new Scope(null);
|
export const appScope: Scope = new Scope(null);
|
||||||
|
|
||||||
let osdTimer: (Time|undefined), osdTimeout = 3500;
|
let osdTimer: (Time|undefined), osdTimeout = 3500;
|
||||||
@@ -43,22 +42,15 @@ App.start({
|
|||||||
requestHandler: (request: string, response: (result: any) => void): void => {
|
requestHandler: (request: string, response: (result: any) => void): void => {
|
||||||
response(handleArguments(request));
|
response(handleArguments(request));
|
||||||
},
|
},
|
||||||
main: (..._args: Array<string>) => appScope.run(() => {
|
main: (..._args: Array<string>) => {
|
||||||
console.log(`Initialized astal instance as: ${ App.instanceName || "astal" }`);
|
console.log(`Colorshell: initialized instance as: "${ App.instanceName || "astal" }"`);
|
||||||
App.connect("shutdown", () => appScope.dispose());
|
connections.set(App, App.connect("shutdown", () => appScope.dispose()));
|
||||||
|
|
||||||
console.log("Config: initializing configuration file");
|
console.log("Config: initializing configuration file");
|
||||||
Config.getDefault();
|
Config.getDefault();
|
||||||
|
|
||||||
Stylesheet.getDefault().compileApply();
|
Stylesheet.getDefault().compileApply();
|
||||||
|
|
||||||
App.vfunc_dispose = () => {
|
|
||||||
console.log("Disconnecting stuff");
|
|
||||||
connections.forEach((v, k) => Array.isArray(v) ?
|
|
||||||
v.map(id => k.disconnect(id))
|
|
||||||
: k.disconnect(v));
|
|
||||||
};
|
|
||||||
|
|
||||||
// Init clipboard module
|
// Init clipboard module
|
||||||
Clipboard.getDefault();
|
Clipboard.getDefault();
|
||||||
|
|
||||||
@@ -66,7 +58,7 @@ App.start({
|
|||||||
Wallpaper.getDefault();
|
Wallpaper.getDefault();
|
||||||
|
|
||||||
console.log("Adding runner plugins");
|
console.log("Adding runner plugins");
|
||||||
runnerPlugins.map(plugin => Runner.addPlugin(plugin));
|
runnerPlugins.forEach(plugin => Runner.addPlugin(plugin));
|
||||||
|
|
||||||
connections.set(Wireplumber.getDefault(),
|
connections.set(Wireplumber.getDefault(),
|
||||||
Wireplumber.getDefault().getDefaultSink().connect("notify::volume", () =>
|
Wireplumber.getDefault().getDefaultSink().connect("notify::volume", () =>
|
||||||
@@ -84,10 +76,13 @@ App.start({
|
|||||||
|
|
||||||
defaultWindows.forEach(w => Windows.getDefault().open(w));
|
defaultWindows.forEach(w => Windows.getDefault().open(w));
|
||||||
|
|
||||||
onCleanup(() => connections.forEach((ids, obj) => Array.isArray(ids) ?
|
appScope.onCleanup(() => {
|
||||||
|
console.log("Colorshell: disconnecting from GObjects because of ::shutdown");
|
||||||
|
connections.forEach((ids, obj) => Array.isArray(ids) ?
|
||||||
ids.forEach(id => obj.disconnect(id))
|
ids.forEach(id => obj.disconnect(id))
|
||||||
: obj.disconnect(ids)));
|
: obj.disconnect(ids));
|
||||||
})
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function triggerOSD() {
|
function triggerOSD() {
|
||||||
|
|||||||
Reference in New Issue
Block a user