mirror of
https://gitlab.gnome.org/julianschacher/top-bar-organizer.git
synced 2025-10-27 15:19:09 +00:00
Update: Make the preferences window content scrollable
Previously it could happen that the preferences window got larger than the height of the screen (e.g. when having a bunch of items and a low vertical screen resolution). Fix this, by making the preferences window content scrollable. Also introduce a nice default window size.
This commit is contained in:
parent
8bda3ea0ab
commit
a4ea0c630a
@ -18,7 +18,9 @@
|
|||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
-->
|
-->
|
||||||
<interface>
|
<interface>
|
||||||
<template class="PrefsWidget" parent="GtkBox">
|
<template class="PrefsWidget" parent="GtkScrolledWindow">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="spacing">24</property>
|
<property name="spacing">24</property>
|
||||||
<property name="margin-top">36</property>
|
<property name="margin-top">36</property>
|
||||||
@ -97,5 +99,7 @@
|
|||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</template>
|
</template>
|
||||||
</interface>
|
</interface>
|
||||||
|
|||||||
23
src/prefs.js
23
src/prefs.js
@ -36,12 +36,33 @@ var PrefsWidget = GObject.registerClass({
|
|||||||
"center-box-order",
|
"center-box-order",
|
||||||
"right-box-order"
|
"right-box-order"
|
||||||
]
|
]
|
||||||
}, class PrefsWidget extends Gtk.Box {
|
}, class PrefsWidget extends Gtk.ScrolledWindow {
|
||||||
_init(params = {}) {
|
_init(params = {}) {
|
||||||
super._init(params);
|
super._init(params);
|
||||||
|
|
||||||
this._settings = ExtensionUtils.getSettings();
|
this._settings = ExtensionUtils.getSettings();
|
||||||
|
|
||||||
|
// Never show a horizontal scrollbar.
|
||||||
|
// Achieved by setting the hscrollbar_policy to 2, while setting the
|
||||||
|
// vscrollbar_policy to 1 (the default value).
|
||||||
|
this.set_policy(2, 1);
|
||||||
|
|
||||||
|
// Set the default size of the preferences window to a sensible value on
|
||||||
|
// realize.
|
||||||
|
this.connect("realize", () => {
|
||||||
|
// Get the window.
|
||||||
|
const window = this.get_root();
|
||||||
|
|
||||||
|
// Use 500 and 750 for the default size.
|
||||||
|
// Those are the same values the Just Perfection Gnome Shell
|
||||||
|
// extension uses.
|
||||||
|
// It seems like those values only get used the first time the
|
||||||
|
// preferences window gets opened in a session. On all consecutive
|
||||||
|
// opens, the window is a bit larger than those values.
|
||||||
|
window.default_width = 500;
|
||||||
|
window.default_height = 750;
|
||||||
|
});
|
||||||
|
|
||||||
// Initialize the given `gtkListBox`.
|
// Initialize the given `gtkListBox`.
|
||||||
const initializeGtkListBox = (boxOrder, gtkListBox) => {
|
const initializeGtkListBox = (boxOrder, gtkListBox) => {
|
||||||
// Add the items of the given configured box order as
|
// Add the items of the given configured box order as
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user