GtkAssistant button behavior can show undocumented "Finish" button
When creating multiple "Content" pages one after another in GtkAssistant
, the "Finish" button appears.
It is not stated in documentation, if this is an expected behavior or not.
Steps to reproduce
- Create
.ui
file in Glade or createGtkAssitant
with pages manually in code - Run example in Glade or in executable
Current behavior
Expected outcome
Version information
- GTK3: 3.24.26
- Glade: 3.38.2
- OS: Manjaro Linux
Additional information
Workaround
By setting next page of different type (e.g.: "Progress") the "Finish" button does not appear.
.ui
source code
Glade 1st screenshot:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<template class="__glade_unnamed_1" parent="GtkAssistant">
<property name="can-focus">False</property>
<property name="title" translatable="yes">Example Assistant</property>
<property name="modal">True</property>
<property name="default-width">800</property>
<property name="default-height">600</property>
<property name="destroy-with-parent">True</property>
<property name="icon-name">application-x-executable</property>
<child>
<object class="GtkBox" id="page_1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">1</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="page-type">intro</property>
<property name="title" translatable="yes">Introduction</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">2</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Content #1</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">3</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Content #2</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">4</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Content #3</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">5</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="page-type">confirm</property>
<property name="title" translatable="yes">Confirmation</property>
<property name="complete">True</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkBox">
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">6</property>
</object>
<packing>
<property name="has-padding">False</property>
</packing>
</child>
</template>
</interface>
2nd screenshot:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<template class="__glade_unnamed_1" parent="GtkAssistant">
<property name="can-focus">False</property>
<property name="title" translatable="yes">Example Assistant</property>
<property name="modal">True</property>
<property name="default-width">800</property>
<property name="default-height">600</property>
<property name="destroy-with-parent">True</property>
<property name="icon-name">application-x-executable</property>
<child>
<object class="GtkBox" id="page_1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">1</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="page-type">intro</property>
<property name="title" translatable="yes">Introduction</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">2</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Content #1</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">3</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="page-type">progress</property>
<property name="title" translatable="yes">Content #2</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">4</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Content #3</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="page_5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">5</property>
<attributes>
<attribute name="size" value="65536"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="page-type">confirm</property>
<property name="title" translatable="yes">Confirmation</property>
<property name="complete">True</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkBox">
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">6</property>
</object>
<packing>
<property name="has-padding">False</property>
</packing>
</child>
</template>
</interface>
Edited by Andre Klapper