FlaxEngine / FlaxEngine/FlaxEngine
UI issues on Linux and a suggestion
- Dominant language
- C++
- Stars
- 7k
- Forks
- 713
- Avg merge
- 7d 11h
- Merged PRs (30d)
- 19
Description
Flax editor has some serious issues on a Linux desktop:
- Context menu closes on mouse leave #1601
It's debatable whether this is a bug or a feature but a lot of applications keep menus open until an item is selected, ESC pressed or clicked outside.
- In some dialogs (notably the material editor) you have to click a button twice: once to focus the upper panel and the second to actually activate the button.
- ~~Input fields for numbers with a slider button to the right often don't work. Especially when the horizontal space is small the button on the right won't let you pan the value but it selects parts of or all the text.~~ Fixed
- Repeatedly trying to use the slider button or focusing a float input field can lead to situations where all keyboard input is disabled. Restarting the editor is required.
- Context menu open on button-up event
The expectation is that a context menu opens on a RMB press and you should be able to navigate it while the button is pressed. Releasing the RMB on an item selects it.
- Context menu seem to open a new root window
A window manager like in KDE that shows the current name of the focused application loses track if a menu is opened. This does not happen with other applications using context menus or dialogs. (see my comment below, menus are not supposed to be seen by WM). This should at least be partially fixed with PR #2020.
- Painting of context menus, submenus and tooltips is noticeably slower than in other applications.
If you try to navigate at a faster pace you will see black rectangle be drawn where a window might be placed if you would give it more time. This hints to some inefficient drawing of UI components that gives a wrong impression of the editor being slow (overall it's not but this makes it feel like). #1713
- Textboxes like giving a name to a new material for example close on mouse-leave like it's canceled
This is most probably related to the focus handling which seems to be wrong in many places. Renaming is really challenging as you have to pay attention not to move the mouse cursor at all once the textbox has focus. #2277
- ~~Docking does not work~~ Fixed with PR #2020
- ~~Color picker does not work #1694
If you click somewhere to pick the color below at the mouse cursor the dialog gets closed and canceled. This is most probably due to a wrong signal handling.~~ Fixed in master by ignoring focus-lost signal
- File chooser does not remember the last directory used
Typically an application will either keep the last directory used for a certain action and file type or in some cases a user defined starting location. Flax editor just uses the folder of the executable every time the dialog is opened.
- Deleting a tree item discards focus
The focus should be placed to the next item or the parent.
- Resizing a docked window is only changing the cursor on a horizontal border not a vertical one
- ~~There is no rubber-band select option in the content window
This might be a design choice but I think it's fair to assume that users expect such a usual feature.~~ Fixed
- Combobox is not closed when clicking it's "down" button again
The typical behavior is that a click on the combobox button opens the box and another click closes it again. In Flax the box is repainted and stays open.
- Drag and drop of files does not work unless the editor runs on the left-most screen. #1645
- The font in message boxes is a terminal font that does not match any of the editor options
Again this might be a design choice but it looks inconsistent.
Some of these items may sound like minor issues but they all contribute to a user experience that says "this is not acting the way you're used to" and the editor feels alien.
A platform-independent GUI library would eliminate a good portion of these issues and would make sure a menu behaves like a menu, a well-known widget acts like you're used to on your platform, and so on. On top of that there are optimized drawing techniques that for example inhibit the flickering black boxes on tooltips, a model-view approach that draws only relevant parts in a scroll view and can handle huge amounts of items, message boxes and common dialogs that don't need to be reinvented (e.g. color picker). Well-known toolkits like Qt and GTK offer simple ways to add custom widgets or adjust and extend existing ones so there is enough room for Flax editor specific handling but the basics are there and don't have to be maintained by Flax devs.
Contributor guide
Research direction
Review the remaining Linux editor issues listed in this report and the referenced issue threads, distinguishing items already marked fixed from unresolved behavior. Identify the relevant editor UI entry points before attempting any change; done means the selected remaining behaviors match the expected desktop interaction without regressing the other listed cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100