dbusServices/extensions: Stop stacking frames

We currently use separate frames for the details expander and the
expanded details. That layout works as long as frames are boxy (as
in the default GTK3 style), but breaks down with rounded corners
(as in the default GTK4 style).

In order to work with either style, adapt the layout to use a single
surrounding frame and appropriate borders as separator.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
This commit is contained in:
Florian Müllner 2020-11-13 02:36:08 +01:00 committed by Marge Bot
parent 9bb91ca875
commit 99a796e426
3 changed files with 16 additions and 14 deletions

View File

@ -1,4 +1,4 @@
.expander-frame > * { border-top-width: 0; } .expanded { border: 0 solid @borders; border-bottom-width: 1px; }
.expander-toolbar { .expander-toolbar {
border: 0 solid @borders; border: 0 solid @borders;
border-top-width: 1px; border-top-width: 1px;

View File

@ -192,7 +192,10 @@ var ExtensionPrefsDialog = GObject.registerClass({
this._expanderArrow.icon_name = this._revealer.reveal_child this._expanderArrow.icon_name = this._revealer.reveal_child
? 'pan-down-symbolic' ? 'pan-down-symbolic'
: 'pan-end-symbolic'; : 'pan-end-symbolic';
this._syncExpandedStyle();
}); });
this._revealer.connect('notify::child-revealed',
() => this._syncExpandedStyle());
try { try {
ExtensionUtils.installImporter(extension); ExtensionUtils.installImporter(extension);
@ -211,6 +214,13 @@ var ExtensionPrefsDialog = GObject.registerClass({
} }
} }
_syncExpandedStyle() {
if (this._revealer.reveal_child)
this._expander.get_style_context().add_class('expanded');
else if (!this._revealer.child_revealed)
this._expander.get_style_context().remove_class('expanded');
}
_setError(exc) { _setError(exc) {
this._errorView.buffer.text = `${exc}\n\nStack trace:\n`; this._errorView.buffer.text = `${exc}\n\nStack trace:\n`;
// Indent stack trace. // Indent stack trace.

View File

@ -53,16 +53,16 @@
</object> </object>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkFrame">
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="margin-top">12</property> <property name="margin-top">12</property>
<child> <child>
<object class="GtkFrame" id="expander"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkEventBox"> <object class="GtkEventBox" id="expander">
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -88,17 +88,9 @@
</child> </child>
</object> </object>
</child> </child>
</object>
</child>
<child>
<object class="GtkRevealer" id="revealer">
<property name="visible">True</property>
<child> <child>
<object class="GtkFrame"> <object class="GtkRevealer" id="revealer">
<property name="visible">True</property> <property name="visible">True</property>
<style>
<class name="expander-frame"/>
</style>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>