From 476fbe69d37ca25e134dbb11a7ca80bfcfea71c3 Mon Sep 17 00:00:00 2001
From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
Date: Thu, 16 Jan 2025 16:23:30 +1100
Subject: popupwindow: switch to class

---
 modules/launcher.tsx | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

(limited to 'modules/launcher.tsx')

diff --git a/modules/launcher.tsx b/modules/launcher.tsx
index d9e842c..966cdfd 100644
--- a/modules/launcher.tsx
+++ b/modules/launcher.tsx
@@ -8,7 +8,7 @@ import { Apps } from "../services/apps";
 import Math, { type HistoryItem } from "../services/math";
 import { getAppCategoryIcon } from "../utils/icons";
 import { launch } from "../utils/system";
-import { convertPopupWindowProps, setupCustomTooltip } from "../utils/widgets";
+import { PopupWindow, setupCustomTooltip } from "../utils/widgets";
 
 type Mode = "apps" | "files" | "math";
 
@@ -346,7 +346,7 @@ const LauncherContent = ({
 );
 
 @register()
-export default class Launcher extends Widget.Window {
+export default class Launcher extends PopupWindow {
     readonly mode: Variable<Mode>;
 
     constructor() {
@@ -354,26 +354,24 @@ export default class Launcher extends Widget.Window {
         const mode = Variable<Mode>("apps");
         const showResults = Variable.derive([bind(entry, "textLength"), mode], (t, m) => t > 0 || m !== "apps");
 
-        super(
-            convertPopupWindowProps({
-                name: "launcher",
-                anchor: Astal.WindowAnchor.TOP,
-                keymode: Astal.Keymode.EXCLUSIVE,
-                onKeyPressEvent(_, event) {
-                    const keyval = event.get_keyval()[1];
-                    // Focus entry on typing
-                    if (!entry.isFocus && keyval >= 32 && keyval <= 126) {
-                        entry.text += String.fromCharCode(keyval);
-                        entry.grab_focus();
-                        entry.set_position(-1);
-
-                        // Consume event, if not consumed it will duplicate character in entry
-                        return true;
-                    }
-                },
-                child: <LauncherContent mode={mode} showResults={showResults} entry={entry} />,
-            })
-        );
+        super({
+            name: "launcher",
+            anchor: Astal.WindowAnchor.TOP,
+            keymode: Astal.Keymode.EXCLUSIVE,
+            onKeyPressEvent(_, event) {
+                const keyval = event.get_keyval()[1];
+                // Focus entry on typing
+                if (!entry.isFocus && keyval >= 32 && keyval <= 126) {
+                    entry.text += String.fromCharCode(keyval);
+                    entry.grab_focus();
+                    entry.set_position(-1);
+
+                    // Consume event, if not consumed it will duplicate character in entry
+                    return true;
+                }
+            },
+            child: <LauncherContent mode={mode} showResults={showResults} entry={entry} />,
+        });
 
         this.mode = mode;
 
-- 
cgit v1.2.3-freya

