handle theme change which changes window border width

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2012-01-31 07:30:11 +00:00
parent 10effff832
commit 030f4112fc
2 changed files with 31 additions and 21 deletions

View File

@@ -1950,10 +1950,18 @@ void gtk_window_style_set_callback( GtkWidget *WXUNUSED(widget),
{
if (win && previous_style)
{
wxSysColourChangedEvent event;
event.SetEventObject(win);
win->GTKProcessEvent( event );
if (win->IsTopLevel())
{
wxSysColourChangedEvent event;
event.SetEventObject(win);
win->GTKProcessEvent(event);
}
else
{
// Border width could change, which will change client size.
// Make sure size event occurs for this
win->m_oldClientWidth = 0;
}
}
}
@@ -2479,7 +2487,7 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
g_signal_connect (widget, "leave_notify_event",
G_CALLBACK (gtk_window_leave_callback), this);
if (IsTopLevel() && m_wxwindow)
if (m_wxwindow && (IsTopLevel() || HasFlag(wxBORDER_RAISED | wxBORDER_SUNKEN | wxBORDER_THEME)))
g_signal_connect (m_wxwindow, "style_set",
G_CALLBACK (gtk_window_style_set_callback), this);
}