Cx API:
- Implement existing ShowClipboardActions
- Add HideClipboardActions
- Cross-platform API ready for iOS implementation
Android Implementation:
- Native ActionMode integration with floating toolbar (API 23+)
- JNI bindings for showing/hiding menu and handling clipboard actions
- Event system for Copy/Cut/Paste/Select All actions
- Smart menu state management based on selection and clipboard
TextInput Integration:
- Long press selects word and shows menu
- Double tap and long press selects word and shows menu
- Selection preservation when tapping selected text
* Fix button clicks during keyboard dismissal on mobile
When tapping a button while the keyboard is visible on iOS/Android, the keyboard dismisses and shifts the layout mid-press. This caused the event system to treat the finger as no longer "over" the button, preventing the click from registering.
Fixed by treating taps as "over" if the finger didn't move significantly, even if the widget moved underneath due to layout shifts.
* Make is_over conditionals clearer
* Fix modal event handling behavior
Everything now works as expected, *except* for Scroll events that seem to
still be received by views beneath the modal, e.g., an underlying PortalList.
* Enable widgets to block scrolling, except within a certain area
* This is important for Modals to prevent scrolling of background widgets
whilst still allowing the inner `content` view to be scrolled.
* Modals are now forcibly full-screen (or rather, full-window)
in order to properly ensure that scrolling-allowed areas
always stay relevant, as the Modal can no longer be contained
within a non-full-window parent widget/view.
* remove errant log statement
- Fixed missing comma after CopyToClipboard match arm
- Fixed premature closing brace in match statement
- Corrected OpenglCx import path from opengl_x11 to opengl_cx
- Fixed incorrect use of 'self' instead of 'cx' in ShowTextIME, CheckPermission, and RequestPermission handlers
These changes resolve compilation errors that prevented building makepad-studio on Linux X11.
- Main loop timer is no longer running unconditionally but rather armed/disarmed on demand
- Removed unnecessary repaint_windows() call
- File watcher is now only included for debug builds
* initialize the event loop for wayland backend
Signed-off-by: drindr <dreamchancn@qq.com>
* feat: hidpi wayland and mouse event
- hidpi support with wayland
- mouse event support
- refactor some code
Signed-off-by: drindr <dreamchancn@qq.com>
* wayland xkbcommon for key pressing event
Signed-off-by: drindr <dreamchancn@qq.com>
* add support for IME in with wayland
---------
Signed-off-by: drindr <dreamchancn@qq.com>
Co-authored-by: makepaddev <20386332+makepaddev@users.noreply.github.com>
* Add permission handling for audio input
- Introduced `CheckPermission` and `RequestPermission` operations in `CxOsOp` for managing audio input permissions.
- Implemented permission status checks and requests across iOS, macOS, and Android.
- Added a new `Permission` module to define permission types and statuses.
- Updated event handling to include permission results in the event system.
- Updated manifest files to include necessary permissions for audio input on Android.
* Add audio example project
- Added a new example project for audio processing and permission handling
- Implemented UI components for audio device selection, microphone capture, and playback controls.
- Integrated permission handling for audio input and updated the workspace configuration to include the new example.
* Implement audio permission in Web, catch up Linux and Windows
* Refactor iOS permission handling to avoid ios_app re-entrancy
* Implement iOS mic capture and add sample rate to AudioInfo
* Ensure iOS audio output uses loudspeaker, only when not using external devices
* Enhance audio example by handling sample rates and resampling