project-robius / project-robius/robrix
Tracking issue for missing Makepad features
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 487
- Forks
- 68
- Avg merge
- 1h 22m
- Merged PRs (30d)
- 54
Description
This is a list of features/bugs in Makepad that should be considered blockers for publishing a "good-quality"/sleek application with a good UX.
I have reordered this to be in rough priority order according to what we need in Robrix.
High Priority
- TextInput: internal multi-line scrolling, for when the text content does not fit into the size bounds of the TextInput. https://github.com/makepad/makepad/pull/1010
- Ensure multiline TextInputs work when they have a relative max height bound too: https://github.com/makepad/makepad/pull/1011
- TextInput: text doesn't get re-flowed upon being resized — only upon user input.
- Interestingly enough, it does re-flow the empty text upon resize.
- Fixed here: https://github.com/makepad/makepad/pull/1009
- TextInput: single-line mode with left/right panning that follows the cursor. Added here: https://github.com/makepad/makepad/pull/1012
- Label/TextFlow: support Ellipsis-terminating non-wrapped text lines again.
- Implemented for all widgets via draw_text: https://github.com/makepad/makepad/pull/1014/
- Text Wrapping: don't wrap whitespace(s) to the beginning of a new line. It looks strange.
- example: look at "
capabilities" at the start of the second line in this screenshot:
- example: look at "
- Text Wrapping: don't insert a soft break before punctuation like
.;,etc. A punctuation mark shouldn't wrap to a new line by itself.
Medium Priority
- Ability to instantly re-position/re-size something after drawing it.
- For ensuring tooltips are properly positioned, context menus don't spill out of the window, etc.
- Rik said this was possible, but I wasn't able to find any existing examples of it being done.
- Allow setting key focus for an area that doesn't exist yet.
- e.g., you want to set key focus for something like a modal or the EditingPane before it is even drawn for the first time.
- Ability to animate panels that slide in/out of the bottom of a view.
- See Robrix's
EditingPane, which uses thismargin: {top: 1000}hack to fake it. - SlidePanel doesn't work because it assumes the entire app window, not a single parent view, and also doesn't support bottom-edge sliding.
- This was fixed in Robrix for now, but could still be made into a separate widget: #795
- See Robrix's
-
flow: Rightwithwrap: trueis broken; the items wrapped to the next line are not drawn correctly.- Fixed here: https://github.com/makepad/makepad/pull/1023
- TextFlow: support vertical alignment of custom widgets w.r.t. the surrounding text: https://github.com/makepad/makepad/issues/712
- Scrolling while centered: allow a vertically-centered view to be vertically scrolled (and vice versa too, with horizontal view too).
- SVG rendering is broken on Windows, and Linux to a lesser extent. Works well on macOS.
resvg-based SVG pipeline has been added, but it isn't yet utilized in any actual Makepad widgets yet (e.g., Icon, Button), so this fix isn't technically available to us yet.- Fixed in Makepad 2.0
- Tooltip: fix the issue of tooltips lingering on screen too long, even after a FingerUp (touch/click). Fixed in https://github.com/makepad/makepad/pull/844
Lower Priority
- TextInput: fix paste behavior to ensure all characters get pasted, not just the first one.
- A known problem on Android & iOS, not sure about other platforms.
- A fix is currently in progress by @joulei.
- Windows IME box in the wrong location (it always appears in the upper-left corner, not right above/below the target TextInput): https://github.com/makepad/makepad/issues/756
- Android IME support, to unlock the full keyboard with autocomplete/autocorrect.
- A fix is currently in progress by @joulei.
cc usage/integration ofwe abandoned this due to complexity.android-view
- Mobile: touches not registering in many cases, primarily in dynamic views like modals/PageFlip/pop-up panes.
- PortalList: after the 2.0 migration, drag scrolling doesn't work unless you finger-down an empty space with no content/widgets. Fixed in https://github.com/makepad/makepad/pull/1002
- PortalList:
smooth_scroll_to()is inconsistent and doesn't always scroll to the proper position in which the target item is fully in-view. - PortalList:
at_end()is broken and frequently returns false when it actually is at the end, even upon an action that auto-scrolls to the very end. -
Scroll*View: enable finger-based drag scrolling for touch screens: https://github.com/makepad/makepad/pull/799 - Dock: allow drag-and-drop on all platforms, including mobile (needed for larger Android/iPad devices). https://github.com/makepad/makepad/issues/650
- Implemented by https://github.com/makepad/makepad/pull/1013
- Dock/Tabs: allow moving/dragging tabs using fingers, triggered by a long press (for which I've already added native support).
- Implemented by https://github.com/makepad/makepad/pull/1013
- Dock: enable finger-based drag scrolling through the tab list, and scrolling through the tab list using horizontal scroll gestures (e.g., on a trackpad).
- Currently only vertical scrolling is supported, which makes sense for a mouse scroll wheel but is confusing for trackpads.
- Implemented by https://github.com/makepad/makepad/pull/1013
- Dock: when a tab is selected programmatically, automatically scroll the Tabs list to ensure that the selected widget's tab header is visible. Implemented here: https://github.com/makepad/makepad/pull/1016
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the two unchecked medium-priority items: repositioning or resizing an element after drawing, and setting key focus for an area that does not yet exist. Use the existing EditingPane and SlidePanel references as context, then define focused reproductions for tooltips, context menus, or modal focus; done means the relevant UI behavior works without the listed workarounds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100