Skip to content

v0.4.1

Latest

Choose a tag to compare

@neurlang neurlang released this 27 Feb 15:25

✨ New Features

πŸͺŸ Windows

  • Mouse wheel support added.

  • Minimize / Maximize window support (Fixes #17, #18).

  • Improved popup widget handling:

    • Direct form reference for popups.
    • Safer redraw handling (null checks, no parent_window dependency).
    • Proper popup lifecycle management (Configure, Render, focus handling).
    • Close popup on focus loss.
    • Multiple nil-safety improvements (Fixes #21).

🍎 macOS (Darwin)

  • Popup window support added and stabilized.

  • Keyboard support implemented:

    • Key down/up + modifier tracking.
    • NSEvent monitoring with proper cleanup.
  • Mouse wheel support via NSEvent scroll monitoring:

    • Handles vertical & horizontal deltas.
    • Supports precise scrolling deltas.
    • Proper coordinate conversion and popup routing.
    • Cleanup of event monitors on window destruction.
  • Fix: first Cairo surface retrieval for popup.

  • Prevent main window scrolling in certain wheel cases.

🐧 Linux (Wayland)

Major window decoration and resize improvements:

  • Frame callback synchronization to eliminate flicker during resize.

  • Smooth interactive resize handling.

  • Shadow surface resize detection (edges & corners).

  • Proper XDG resize edge handling.

  • Resize cursor updates on borders & corners.

  • Improved pointer surface tracking and cursor logic.

  • Titlebar rendering improvements:

    • Better font fallback handling across distros.
    • Proper button layering.
    • Intelligent title truncation with ellipsis.
    • Fixed SetTitle not assigning title correctly.
    • Improved color and positioning logic.

πŸ›  Improvements

  • Optimized Windows cursor handling.
  • Multiple cursor fixes on Windows (Fixes #19).
  • Bumped winc dependency to latest release (mouse wheel support).
  • Improved popup null safety across platforms.
  • Refactored resize logic to avoid destroy/recreate patterns.
  • Removed old frame code (cleanup/refactor).
  • Code formatted with gofmt -s and goimports.

πŸ”’ Maintenance

  • Govulncheck version bumps.
  • General cleanup and stabilization across macOS, Windows, and Linux backends.

🎯 Overall Impact

This release significantly improves:

  • Cross-platform input handling (mouse wheel + keyboard on macOS).
  • Popup stability and rendering correctness.
  • Wayland resize smoothness (major flicker fix).
  • Windows feature completeness (min/max, cursor polish).
  • General robustness and null safety.

The project moves closer to feature parity across Windows, macOS, and Linux with notably improved input and window management behavior.