Commit graph

626 commits

Author SHA1 Message Date
Admin
d7710ab619 refactor widget tree 2026-02-13 14:49:21 +01:00
Admin
ac73635921 image search 2026-02-12 21:56:41 +01:00
Admin
81db1516d9 todo app 2026-02-12 19:58:49 +01:00
Admin
07dc780300 fix up widget tree search in fresh uis 2026-02-12 16:50:39 +01:00
Admin
8e6702c56b First 2.0 2026-02-12 14:52:33 +01:00
Admin
a271bd0027 compile 2026-02-10 18:26:51 +01:00
Eddy Bruel
986eb8218f Clear layout cache in text input if turtle width changes. 2026-02-06 15:38:00 +01:00
Julián Montes de Oca
0dd31cb6c8 IME: Support on Android and Input Configuration (#839)
* WIP

* Improvements for cursor control

* Enhance text selection and key event handling for Samsung keyboard compatibility

* Default to multine inputtype in android

* WIP Input configurations

* Enhance iOS text input handling

* Cleanup

* Comment out 'Next' variant across platforms for future implementation.

* Rename IME Config API to match web APIs

* Fix Android emoji deletion by implementing UTF-16 code unit index conversion

* Proper ASCII-only input and improve iOS keyboard handling

* Replace 'is_numeric_only' with 'input_mode'

* Prevent pasting invalid characters

* Cleanup

* Cleanup

* Hide clipboard actions on text change

* Cleanup

* Unify keyboard event types and fix iOS text input regressions

Unified TextInputEvent with new fields for better IME support across platforms:
- Added `composition` field for IME preview ranges (CJKinput)
- Added `full_state_sync` for complete buffer state (Android approach)
- Added `replace_range` for autocorrect/suggestion replacements (iOS approach)

All platforms: Standardized on CharOffset for character position handling

* Prevent text synchronization with the platform during active composition

* Add UITextInputCurrentInputModeDidChangeNotification support

* Add underline for active IME composition in TextInput

* Improve editor action handling for multiline inputs on Android

* Enhance IME composition tracking and clipboard action handling in TextInput

* Simplify IME state handling on Android

* Cleanup IME handling on iOS

* Cleanup

* Cleanup IME handling on iOS

* Improve docs/comments

* Improve docs/comments

* Add floating cursor support for keyboard trackpad in iOS

* Refine IME handling in TextInput to prevent iOS buffer loss during composition updates

* Move UITextInput protocol implementation into its own module

* Move MakepadInputConnection into its own file

* Cleanup

* Improve general IME handling in TextInput. Improve docs and comments

* Refactor text input configuration to separate soft keyboard settings for mobile platforms.
2026-02-02 11:48:21 +01:00
Admin
7133034f8b updated zune libraries to latest 2026-01-30 14:01:42 +01:00
Admin
a4302bc5fb oops\ 2026-01-29 19:08:12 +01:00
Admin
71d6705abc add apply_default for animator 2026-01-28 11:01:55 +01:00
Kevin Boos
a850b416bd Hide the Tooltip widget upon any click/tap, drag, or scroll event (#844)
* Hide the `Tooltip` widget upon any click/tap, drag, or scroll event

* Tooltip: handle raw events directly as to not impact `Hit` consumption
2026-01-21 19:41:31 +01:00
Eddy Bruel
b88eb5ed1d Whitespace should never be wrapped 2026-01-20 20:40:17 +01:00
Jason Yau
01c48991b7 fixed IME composition popup position for Windows (#841)
Co-authored-by: jasonqiu <jasonqiuchen@outlook.com>
2026-01-17 17:57:36 +01:00
Julián Montes de Oca
900bc6276b iOS: Add UITextInput protocol implementation for IME support (#838)
- MakepadTextInputView with marked text (composition) for CJK input
- UTF-16 ↔ char index conversion for emoji/Unicode handling
- TextRangeReplaceEvent for autocorrect/autocomplete
2026-01-12 14:10:44 +01:00
Julián Montes de Oca
e07406460d Add clipboard actions support for iOS (#833)
Implemented UIEditMenuInteraction for clipboard actions, allowing copy, cut, paste, and select all functionalities.
2026-01-06 17:00:02 +01:00
Julián Montes de Oca
54066545cb Add support for definding a math view in Markdown (#825) 2026-01-05 15:14:19 +01:00
Kevin Boos
eb6396b5eb Add optional serde derives for Serialization/Deserialization on select public types (#831)
Can be activated by setting the "serde" feature on `makepad-widgets`
(or other internal crates).
2025-12-18 08:38:58 +01:00
Eddy Bruel
9ef4fd602c Move math widget to its own crate 2025-12-05 13:27:20 +01:00
Eddy Bruel
5babc3bd3c Initial attempt 2025-12-05 13:27:20 +01:00
Admin
0a1e93a89e align mathtypes to WGSL 2025-12-02 11:43:12 +01:00
Julián Montes de Oca
7ff2574dfc Android: Implement ShowClipboardActions with native ActionMode (#821)
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
2025-11-22 10:06:05 +01:00
Eddy Bruel
7a514c0565 Fix bug in label areas 2025-11-17 14:58:31 +01:00
Kevin Boos
7bbb42a1b3 Fix modal; enable widgets to block scrolling except within a certain area (#819)
* 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
2025-11-13 08:45:36 +01:00
Eddy Bruel
ecc9f811ee Wrap walk metrics into struct 2025-11-10 16:20:51 +01:00
wyenox
ba66ff9359 "app focus" events renamed to "window focus" (#818) 2025-11-07 22:59:54 +01:00
wyenox
267fdcb371 fix window-level focus issues (#817) 2025-11-07 19:04:41 +01:00
Julián Montes de Oca
fe3565d544 Enable drag scrolling by default in Scroll*Views (#810) 2025-11-03 17:16:22 +01:00
Eddy Bruel
0952c37076 Add descender to walks 2025-11-03 14:36:06 +01:00
alanpoon
0f54ba9d24 Added set_texture for RotatedImage (#806) 2025-10-30 22:20:52 +01:00
Eddy Bruel
fadc7c315e Prefer Right over Right { wrap: false } in DSL 2025-10-30 16:04:52 +01:00
Eddy Bruel
de1c50317d Implement per-row alignment for rightward flowing turtles 2025-10-30 12:43:18 +01:00
Eddy Bruel
cdcae82792 Unify Size::Right and Size::RightWrap 2025-10-28 09:20:57 +01:00
Eddy Bruel
5ae24ac81a Fix 2025-10-27 11:19:22 +01:00
Eddy Bruel
090aa10932 Remove spurious printlns 2025-10-27 11:13:50 +01:00
Admin
76cce72dc9 Fused Id and LiveId 2025-10-25 20:53:30 +02:00
Admin
096c9d1daa dont turn on touch scroll by default, fix gradient 2025-10-25 20:03:29 +02:00
Julián Montes de Oca
c85f72f00d Add focus loss detection to TextInput, for keyboard dismissal (#802)
TextInput now self-detects when user taps outside its area and dismisses the keyboard.
The tap event is not consumed.

Fixes keyboard staying open when tapping widgets that don't grab focus.
2025-10-25 19:42:32 +02:00
Julián Montes de Oca
062b9930f7 Add touch-based drag scrolling to ScrollBar (#799)
* Add drag and flick scrolling to ScrollBars

* Move touch-based drag and flick implementation to ScrollBar
2025-10-25 19:41:36 +02:00
Julián Montes de Oca
5b4b963e7d Fix Markdown and HTML ordered list numbering and alignment (#794)
* Fix numbered markdown lists repeating the first number

* Refactor list item padding calculation to accommodate multi-digit markers and fix alignment
2025-10-25 19:36:41 +02:00
Eddy Bruel
07fbece97f Rethink selection drag scrolling as a post-op during draw 2025-10-24 11:40:36 +02:00
Eddy Bruel
3634a1c9e1 Implement vertical selection drag scrolling for TextInput 2025-10-23 10:48:02 +02:00
Eddy Bruel
9af5173fae Add ascender to selection rects 2025-10-21 12:24:33 +02:00
alanpoon
7f8002bddc allow apply_over for image_scale and image_pan (#788) 2025-10-18 10:12:21 +02:00
Admin
efd7825fab moved id/value out 2025-10-13 11:19:58 +02:00
Eddy Bruel
6c2faed432 Implement min/max fits 2025-09-25 16:09:28 +02:00
makepaddev
602dd42d36 fix elided lifetime warnings 2025-09-09 21:37:52 +02:00
Admin
53f799a84a ai fixup 2025-09-09 09:37:35 +02:00
Admin
8550f83b1a sync load image sizes 2025-07-22 11:58:12 +02:00
Kevin Boos
17f60d02ca Create PageFlip child widget within set_active_page() (#783)
This allows an app dev/user to create and populate a new widget
within the PageFlip parent widget *before* waiting for it to be drawn.
Previously, the child widgets within PageFlip were either created
upon app load (which is inefficient) or upon draw (which is too late).
2025-07-21 20:52:34 +02:00