Make wxInfoBar actually appear when using GTK+ 3
Due to https://bugzilla.gnome.org/show_bug.cgi?id=710888 GtkInfoBar wasn't shown if it had been hidden before -- which is exactly what wxInfoBar did. Fix this using the workaround proposed in the bug report, which makes the info bar appear immediately, without any transition, which might be not ideal, but markedly better than failing to show it at all.
This commit is contained in:
parent
cc83925147
commit
3e27a53e95
@ -106,6 +106,7 @@ All (GUI):
|
||||
wxGTK:
|
||||
|
||||
- Implement wxTextCtrl::HitTest() for single line controls.
|
||||
- Fix not showing wxInfoBar with GTK+ 3 < 3.22.29.
|
||||
- Fix the build with glib < 2.32 (e.g. CentOS 6).
|
||||
|
||||
wxMSW:
|
||||
|
@ -145,6 +145,31 @@ bool wxInfoBar::Create(wxWindow *parent, wxWindowID winid)
|
||||
GTKConnectWidget("response", G_CALLBACK(wxgtk_infobar_response));
|
||||
GTKConnectWidget("close", G_CALLBACK(wxgtk_infobar_close));
|
||||
|
||||
// Work around GTK+ bug https://bugzilla.gnome.org/show_bug.cgi?id=710888
|
||||
// by disabling the transition when showing it: without this, it's not
|
||||
// shown at all.
|
||||
//
|
||||
// Compile-time check is needed because GtkRevealer is new in 3.10.
|
||||
#if GTK_CHECK_VERSION(3, 10, 0)
|
||||
// Run-time check is needed because the bug was introduced in 3.10 and
|
||||
// fixed in 3.22.29 (see 6b4d95e86dabfcdaa805fbf068a99e19736a39a4 and a
|
||||
// couple of previous commits in GTK+ repository).
|
||||
if ( gtk_check_version(3, 10, 0) == NULL &&
|
||||
gtk_check_version(3, 22, 29) != NULL )
|
||||
{
|
||||
GObject* const
|
||||
revealer = gtk_widget_get_template_child(GTK_WIDGET(m_widget),
|
||||
GTK_TYPE_INFO_BAR,
|
||||
"revealer");
|
||||
if ( revealer )
|
||||
{
|
||||
gtk_revealer_set_transition_type(GTK_REVEALER (revealer),
|
||||
GTK_REVEALER_TRANSITION_TYPE_NONE);
|
||||
gtk_revealer_set_transition_duration(GTK_REVEALER (revealer), 0);
|
||||
}
|
||||
}
|
||||
#endif // GTK+ >= 3.10
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user