project-robius / project-robius/robrix

Tracking issue for missing Makepad features

Open
#594 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked-on-makepad tracking
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

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 this margin: {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
  • flow: Right with wrap: true is broken; the items wrapped to the next line are not drawn correctly.
  • 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 of android-view we abandoned this due to complexity.
  • 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
  • Dock/Tabs: allow moving/dragging tabs using fingers, triggered by a long press (for which I've already added native support).
  • 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).
  • 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.