Settings.ui:
- Move thickness, length, and anchor from Style tab to Position tab.
Group together with position in the same frame.
schema:
- Remove unpublished panel-length and panel-anchor settings, replacing
them with panel-lengths and panel-anchors JSON objects (like
panel-positions).
- Remove unpublished anchor enum, since panel-anchors is being managed
by the extension in JSON, not typed by the schema.
- Deprecate panel-size in favour of new panel-sizes JSON, storing
per-monitor panel sizes.
- Mention that panel-position is deprecated.
Introduce panelSettings.js:
- Functions to fetch or set panel settings that are stored as JSON.
Grown from now-removed getSettingsPositions() in panelPositions.js.
prefs.js:
- Group together the different UI widget label and value refreshing
into method _updateWidgetSettingsForMonitor().
- Change multi-panel behaviour of _setAnchorLabels(). Previously, all
panels shared the same anchor setting, and so setAnchorLabels
considered all monitors. Now, panels are configured either
independently, or sometimes all together; set labels according to
orientation(s) of panel(s) being configured.
- Omitting preventTop handling in refactored _setPanelPosition()
method. Previously, it was written to set the first monitor's panel to
Pos.BOTTOM if the user clicked the Top position radio button, if
stockgs-keep-top-panel was also set. But the user can't activate the
Top button anyway if stockgs is set (likely implemented later).
panelManager.js:
- Removing panelPositions, as it is not needed any more.
Set the length of the panel according to a specified percent value, so
it can span only part of the screen edge.
Position the panel at the start, middle, or end of the screen edge, as
specified.
Tests okay with multiple monitors.
May also satisfy home-sweet-gnome/dash-to-panel#726