summaryrefslogtreecommitdiff
path: root/src/widgets/popupwindow.ts
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-04-26 22:36:23 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-04-26 22:36:23 +1000
commit3c579d0e275cdaf6f2c9589abade94bde7905c82 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/widgets/popupwindow.ts
parentschemes: fix (diff)
downloadcaelestia-shell-3c579d0e275cdaf6f2c9589abade94bde7905c82.tar.gz
caelestia-shell-3c579d0e275cdaf6f2c9589abade94bde7905c82.tar.bz2
caelestia-shell-3c579d0e275cdaf6f2c9589abade94bde7905c82.zip
clean
Remove everything
Diffstat (limited to 'src/widgets/popupwindow.ts')
-rw-r--r--src/widgets/popupwindow.ts75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/widgets/popupwindow.ts b/src/widgets/popupwindow.ts
deleted file mode 100644
index 5ffa061..0000000
--- a/src/widgets/popupwindow.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-import { Binding, register } from "astal";
-import { App, Astal, Gdk, Widget } from "astal/gtk3";
-import { bar } from "config";
-import AstalHyprland from "gi://AstalHyprland";
-
-const extendProp = <T>(
- prop: T | Binding<T | undefined> | undefined,
- override: (prop: T | undefined) => T | undefined
-) => prop && (prop instanceof Binding ? prop.as(override) : override(prop));
-
-@register()
-export default class PopupWindow extends Widget.Window {
- constructor(props: Widget.WindowProps) {
- super({
- keymode: Astal.Keymode.ON_DEMAND,
- borderWidth: 20, // To allow shadow, cause if not it gets cut off
- ...props,
- visible: false,
- application: App,
- name: props.monitor ? extendProp(props.name, n => (n ? n + props.monitor : undefined)) : props.name,
- namespace: extendProp(props.name, n => `caelestia-${n}`),
- onKeyPressEvent: (self, event) => {
- // Close window on escape
- if (event.get_keyval()[1] === Gdk.KEY_Escape) self.hide();
-
- return props.onKeyPressEvent?.(self, event);
- },
- });
- }
-
- popup_at_widget(widget: JSX.Element, event: Gdk.Event | Astal.ClickEvent) {
- const { width, height } = widget.get_allocation();
- const { width: mWidth, height: mHeight } = AstalHyprland.get_default().get_focused_monitor();
- const pWidth = this.get_preferred_width()[1];
- const pHeight = this.get_preferred_height()[1];
- const [, x, y] = event instanceof Gdk.Event ? event.get_coords() : [null, event.x, event.y];
- const { x: cx, y: cy } = AstalHyprland.get_default().get_cursor_position();
-
- let marginLeft = 0;
- let marginTop = 0;
- if (bar.vertical.get()) {
- marginLeft = cx + (width - x);
- marginTop = cy + ((height - pHeight) / 2 - y);
- if (marginTop < 0) marginTop = 0;
- else if (marginTop + pHeight > mHeight) marginTop = mHeight - pHeight;
- } else {
- marginLeft = cx + ((width - pWidth) / 2 - x);
- if (marginLeft < 0) marginLeft = 0;
- else if (marginLeft + pWidth > mWidth) marginLeft = mWidth - pWidth;
- marginTop = cy + (height - y);
- }
-
- this.anchor = Astal.WindowAnchor.TOP | Astal.WindowAnchor.LEFT;
- this.exclusivity = Astal.Exclusivity.IGNORE;
- this.marginLeft = marginLeft;
- this.marginTop = marginTop;
-
- this.show();
- }
-
- popup_at_corner(corner: `${"top" | "bottom"} ${"left" | "right"}`) {
- let anchor = 0;
- if (corner.includes("top")) anchor |= Astal.WindowAnchor.TOP;
- else anchor |= Astal.WindowAnchor.BOTTOM;
- if (corner.includes("left")) anchor |= Astal.WindowAnchor.LEFT;
- else anchor |= Astal.WindowAnchor.RIGHT;
-
- this.anchor = anchor;
- this.exclusivity = Astal.Exclusivity.NORMAL;
- this.marginLeft = 0;
- this.marginTop = 0;
-
- this.show();
- }
-}