Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS Support #3

Open
31 of 71 tasks
Bright-Shard opened this issue Jul 24, 2023 · 0 comments
Open
31 of 71 tasks

macOS Support #3

Bright-Shard opened this issue Jul 24, 2023 · 0 comments

Comments

@Bright-Shard
Copy link
Member

Bright-Shard commented Jul 24, 2023

Progress tracking issue for macOS.

Known Bugs

  • Stoplight buttons are miscoloured on hover. I'm having to manually change their state, and ended up putting them in a clicked state instead of a hovered state. Fixed by forwarding more mouse events to macOS instead of trying to set the state myself.
  • On newer versions of macOS, hovering over the fullscreen button shows a tiling prompt. Loki windows don't, presumably because they don't use standard NSApp event handling. Fixed by forwarding more mouse events to macOS instead of trying to set the state myself.
  • Clicking on things in the tiling prompt mentioned above crashes lokinit (and possibly parts of macOS as well, somehow?)
  • The close_window API currently does nothing
  • Stoplight buttons aren't always coloured correctly when a window loses and then gains focus
  • The mouse cursor isn't always set right. I think AppKit is interfering somehow.
  • All events currently return Duration::ZERO instead of an actual time.
  • The keyboard events send a keycode instead of the key that was pressed. The keycode represents what the key would be on a QWERTY keyboard, instead of what was actually pressed in the user's layout.
  • Control keys do not trigger repeat events when held

Features to add

Specific events:
  • Window resized
  • Window moved
  • Window close requested
  • Window destroyed
  • Redraw requested
  • Focus in
  • Focus out
  • File dropped
  • File hovered
  • File hover cancelled
  • Keyboard events:
    • Key press
    • Key release
    • Key repeat
    • IME commit
  • Mouse events:
    • Pressed
      • Left
      • Middle
      • Right
      • Other
    • Released
      • Left
      • Middle
      • Right
      • Other
    • Moved
    • Entered window
    • Left window
    • Scroll wheel
  • Touch events:
    • Started
    • Moved
    • Ended
    • Cancelled

Taken from EventType enum.

Other features:
  • Window initialization
  • Multiple windows
  • OpenGL support
  • Metal support
  • Window deco
  • Window resizing events
  • Window resize increments
  • Window transparency
  • Window max/min-imisation
  • Fullscreen
  • Exclusive Fullscreen
  • HiDPI (All macs are HiDPI, should work out of the box)
  • Popups
  • Monitor info
  • Video mode query
  • Mouse events
  • Set, lock, or confine mouse cursor
  • Custom cursor icon
  • Cursor hittests
  • Touch events
  • Touch pressure
  • Multitouch
  • Keyboard events
  • Drag 'n drop
  • Raw device events
  • Gamepad/joystick events
  • Device movement events

Taken from https://github.com/loki-chat/lokinit/blob/main/FEATURES.md

Notes

  • I'm manually handling window resizing, and because of that, I'm not sure if the hit targets are the right size.
@Bright-Shard Bright-Shard mentioned this issue Jul 24, 2023
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant