Update Panel types#120
Conversation
|
I'd be fine with the breaking change. To be honest, I don't quite understand from upstream if all roles are practically optional, or just theoretical. const PANEL_ITEM_IMPLEMENTATIONS = {
'activities': ActivitiesButton,
'quickSettings': QuickSettings,
'dateMenu': DateMenuButton,
'a11y': ATIndicator,
'keyboard': InputSourceIndicator,
'dwellClick': DwellClickIndicator,
'screenRecording': ScreenRecordingIndicator,
'screenSharing': ScreenSharingIndicator,
};For example: Is the Because judging from this, they can be instantiated, but hidden. _hideIndicators() {
for (const role in PANEL_ITEM_IMPLEMENTATIONS) {
const indicator = this.statusArea[role];
if (!indicator)
continue;
indicator.container.hide();
}
}So if there is any chance that they are indeed practically undefined at runtime, this change should be merged (breaking change is expected in that scenario.) |
|
https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/sessionMode.js#L21 seem to indicate that gnome shell can load with not all of them initialized (though I didn't verify what the code actually doing there) |
Looks quite like it. Approve from my side. I'll let this PR open for others to chime in, though. If nobody objects, I'd merge it by tomorrow. |
I made the
statusAreaitems optional since they can be undefined, but this is a breaking change which probably affects a lot of users.Just the simple:
call would become an error, since
quickSettingsis now an optional field. Though adding a single?would fix the error.I don't know If you want that. Should I make some of the fields non-optional?