workbenchdev / workbenchdev/Workbench
Add hints / guards against silent or unclear failures
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 844
- Forks
- 91
- Avg merge
- 7h 12m
- Merged PRs (30d)
- 1
Description
Some things fail (or crash even) silently—we should add measures to inform users and possibly prevent the rendering.
https://floss.social/@sonny/109975391706946091
I discussed with James if this belongs in Blueprint or Workbench, no clear winner. Let's start/iterate in Workbench and possibly transfer to Blueprint later.
No child allowed
crash: no
priority: high
Passing children to objects that don't accept any such as Label will not provide any feedback. It is confusing to beginners as the children don't get rendered but no explanation is given.
We should emit an error.
Label {
label: "Hello";
Button {
label: "World";
}
}
Single child allowed
crash: no
priority: high
Some widgets like AdwStatusPage, Adw.Clamp, ScrolledWindow, ... allow only one child. It doesn't error but only the last child will be rendered. It's confusing and makes the user think they did something wrong.
OK
Adw.StatusPage {
Button {
label: "a";
}
}
KO
Adw.StatusPage {
Button {
label: "a";
}
Button {
label: "b";
}
}
Order of properties on Gtk.Adjustment
crash: no
priority: medium
OK:
Scale one {
width-request: 130;
adjustment: Gtk.Adjustment {
lower: 0;
upper: 100;
value: 50;
};
}
KO:
Scale one {
width-request: 130;
adjustment: Gtk.Adjustment {
lower: 0;
value: 50;
upper: 100;
};
}
ToggleButton grouped to each others
Grouping ToggleButtons to each others will render fine but will cause Workbench to freeze when clicking on one of them.
crash: yes
priority: low
KO
using Gtk 4.0;
using Adw 1;
Box {
halign: center;
valign: center;
orientation: horizontal;
ToggleButton button_first {
label: "Toggle On";
group: button_second;
}
ToggleButton button_second {
label: "Toggle Off";
group: button_first;
}
}
OK:
using Gtk 4.0;
using Adw 1;
Box {
halign: center;
valign: center;
orientation: horizontal;
ToggleButton button_first {
label: "Toggle On";
}
ToggleButton button_second {
label: "Toggle Off";
group: button_first;
}
}
icon not found
crash: no
priority: low
some references does'nt show up and are replaced by a corrupted icon which looks odd
If we detect an icon as not fund - we could show a hint to lookup the icon library in the menu
Contributor guide
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
Start by reproducing the listed Workbench cases: unsupported children, multiple children, Gtk.Adjustment property order, grouped ToggleButtons, and missing icons. Review how Workbench currently reports or handles these examples, then define focused behavior for each case; done should mean users receive clear feedback or the problematic rendering is prevented without freezes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- desktop, developer-experience, devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100