Описание проблемы: В дочернем окне ниже не отображаются кнопки сворачивания или разворачивания - только кнопка закрытия.
Это Gtk версии 3.22.30 на Ubuntu 18.04, Python 3.6.9. Оба windows используют украшения окна на стороне клиента. Дочернее окно устанавливается как Переходный для главного окна.
![Main Window With Child Window](https://i.stack.imgur.com/yOmii.png)
Шаги для воспроизведения:
Сначала , сохраните содержимое файла поляны ниже как missing_buttons.glade.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="main_window">
<property name="can_focus">False</property>
<property name="default_width">640</property>
<property name="default_height">480</property>
<child type="titlebar">
<object class="GtkHeaderBar" id="main_headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Main Window</property>
<property name="has_subtitle">False</property>
<property name="show_close_button">True</property>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
<object class="GtkWindow" id="child_window">
<property name="can_focus">False</property>
<property name="default_width">320</property>
<property name="default_height">200</property>
<property name="type_hint">dialog</property>
<property name="transient_for">main_window</property>
<child type="titlebar">
<object class="GtkHeaderBar" id="child_headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Child Window</property>
<property name="has_subtitle">False</property>
<property name="show_close_button">True</property>
<property name="decoration_layout">:minimize,maximize,close</property>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</interface>
Обратите внимание, что в приведенном выше файле поляны дочернее окно явно запрашивает кнопки свертывания, развертывания и закрытия (слегка вырезано ниже, как не делал редактор) t как XML встроенный)
property name = "decoration_layout">: свернуть, развернуть , закрыть
Во-вторых, в той же папке сохраните этот код как missing_buttons .py:
import os.path
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
print("Gtk Version {0}.{1}.{2}".format(Gtk.MAJOR_VERSION, Gtk.MINOR_VERSION, Gtk.MICRO_VERSION))
glade_file_name = os.path.join(os.path.dirname(__file__), "missing_buttons.glade")
gtk_builder = Gtk.Builder()
gtk_builder.add_from_file(glade_file_name)
main_window = gtk_builder.get_object("main_window")
main_window.show_all()
child_window = gtk_builder.get_object("child_window")
child_window.show_all()
Gtk.main()
В-третьих, запустите код.
$ python3 missing_buttons.py
Ожидаемый результат: в дочернем окне есть кнопки свертывания, разворачивания и закрытия. Фактический результат: у дочернего окна есть только кнопка закрытия.
Это ожидаемое поведение? Жук? Есть ли обходной путь? Я хотел бы иметь возможность свернуть дочернее окно.
Заранее спасибо.