// ┌                                               ┐
// │  From https://github.com/Neurarian/matshell   │
// └                                               ┘
import { App, Gdk } from "astal/gtk4";
import Hyprland from "gi://AstalHyprland";

/* Match Hyprland monitor to GDK monitor
THIS MAY NOT WORK AS INTENDED IF YOU HAVE MONITORS OF THE SAME MODEL
I did not find a more elegant solution to this. 
On my setup GDK coordinates and hyprland coordinates are flipped,
so I cant match by coordinates. */

export function hyprToGdk(monitor: Hyprland.Monitor): Gdk.Monitor | null {
    const monitors = App.get_monitors();
    if (!monitors || monitors.length === 0) return null;

    for (let gdkmonitor of monitors) {
        if (
            monitor &&
            gdkmonitor &&
            monitor.get_name() === gdkmonitor.get_connector()
        )
            return gdkmonitor;
    }

    // Default monitor with null safety
    return monitors.length > 0 ? monitors[0] : null;
}
