Replace deprecated KeyboardControlModifier with platform-aware primary modifier
handling. Introduces KeyboardMetaModifier for native modifier keys (Cmd on macOS,
Win on Windows, Super on X11) and KeyboardPrimaryModifier to abstract the
platform-specific primary modifier key. Adds isPrimaryModifierOnly() helper
to normalize platform differences in keyboard shortcuts.
Extract Cocoa view handling into separate OTOpenGLView and OTWindowDelegate
classes for improved code organization and maintainability.
Implement a complete native macOS windowing system using Cocoa/AppKit to replace X11/XQuartz dependency. The implementation uses OpenGL 2.1 Legacy profile for compatibility with shader-based rendering while maintaining clean input handling and window management.
Key features:
- Native NSWindow-based windowing with full AppKit integration
- Comprehensive keyboard mapping using Carbon virtual key codes
- Mouse and cursor management via NSCursor with custom cursor support
- Window state management (maximize, fullscreen, resize, move, minimize)
- Proper event handling through OTOpenGLView and OTWindowDelegate delegates
- UTF-8 text input with proper character processing
- Clipboard support via NSPasteboard
- macOS-specific key modifier mapping (Cmd key to Alt modifier)
- Automatic window centering and display size detection
The change eliminates X11 requirements on macOS and provides a more native user experience with proper HiDPI support and macOS window conventions.
# Conflicts:
# modules/corelib/const.lua
* Updated the walking(mouse/keys) control to be a lot more responsive/smooth!
* Updated creature diagonal steps to animate faster (due to demand).
* Added a warning popup for boost walker option in cipsoft servers.
* Added KeyUp event controls in the g_keyboard class.
* Fixed an issue with the minimap not reconfiguring.
* Fixed a bug with creature lights drawing properly.
* Fixed refreshContainer method.
* Some layout edits.
* Some minor typo fixes.
TODO:
* Add walk event stack.
* Test new walking edits extensively.
* Finish pending state feature.
* Split game module into game and game_interface
* Move core_lib to corelib
* Move miniwindow to corelib
* Introduce init.lua script for initializing the client, giving much more flexibility
* OTClient is no longer Application derived and is much simpler
2012-06-19 21:16:52 -03:00
Renamed from modules/core_lib/const.lua (Browse further)