diff --git a/ags/widget/control-center/tiles/Network.tsx b/ags/widget/control-center/tiles/Network.tsx
index 5dd44fd..9ab0bfd 100644
--- a/ags/widget/control-center/tiles/Network.tsx
+++ b/ags/widget/control-center/tiles/Network.tsx
@@ -82,4 +82,4 @@ export const TileNetwork = () =>
/>
}}
- as Gtk.Box;
+;
diff --git a/ags/widget/control-center/tiles/Recording.tsx b/ags/widget/control-center/tiles/Recording.tsx
index 32ba2c1..ad90376 100644
--- a/ags/widget/control-center/tiles/Recording.tsx
+++ b/ags/widget/control-center/tiles/Recording.tsx
@@ -29,4 +29,4 @@ export const TileRecording = () =>
onToggledOn={() => Recording.getDefault().startRecording()}
toggleState={createBinding(Recording.getDefault(), "recording")}
iconSize={16}
- /> as Gtk.Widget;
+ />;
diff --git a/ags/widget/control-center/tiles/Tile.tsx b/ags/widget/control-center/tiles/Tile.tsx
index fba15ba..33dbc9e 100644
--- a/ags/widget/control-center/tiles/Tile.tsx
+++ b/ags/widget/control-center/tiles/Tile.tsx
@@ -1,10 +1,11 @@
-import { Gdk, Gtk } from "ags/gtk4";
+import { Gtk } from "ags/gtk4";
import { tr } from "../../../i18n/intl";
-import { Accessor, createComputed, createState } from "ags";
-import GObject from "gi://GObject?version=2.0";
-import Pango from "gi://Pango?version=1.0";
+import { Accessor, createComputed, createState, onCleanup } from "ags";
import { variableToBoolean } from "../../../scripts/utils";
+import Pango from "gi://Pango?version=1.0";
+
+
export type TileProps = {
class?: string | Accessor;
icon?: string | Accessor;
@@ -14,7 +15,7 @@ export type TileProps = {
description?: string | Accessor;
toggleState?: boolean | Accessor;
enableOnClickMore?: boolean | Accessor;
- onDestroy?: () => void;
+ onDestroy?: (self: Gtk.Box) => void;
onToggledOn: () => void;
onToggledOff: () => void;
onClickMore?: () => void;
@@ -32,7 +33,9 @@ export function Tile(props: TileProps): Gtk.Widget {
setToggled((props.toggleState as Accessor).get() ?? false))
);
- return subs.forEach(s => s()));
+
+ return
`tile ${clss} ${isToggled ? "toggled" : ""} ${
@@ -44,29 +47,16 @@ export function Tile(props: TileProps): Gtk.Widget {
props.onClickMore ? "has-more" : ""
}`
)
- } hexpand={true} visible={props.visible} onDestroy={(_) => {
- subs.forEach(sub => sub());
- props.onDestroy?.();
- }}>
+ }>
+ {
+ if(toggled.get()) {
+ setToggled(false);
+ props.onToggledOff?.();
+ return;
+ }
- {
- const gestureClick = Gtk.GestureClick.new();
- const conns: Map = new Map();
-
- self.add_controller(gestureClick);
-
- conns.set(gestureClick, gestureClick.connect("released", (gesture) => {
- if(gesture.get_current_button() === Gdk.BUTTON_PRIMARY) {
- if(toggled.get()) {
- setToggled(false);
- props.onToggledOff?.();
- return;
- }
-
- setToggled(true);
- props.onToggledOn?.();
- }
- }));
+ setToggled(true);
+ props.onToggledOn?.();
}}>