Many changes:
- Introduced GTKGetWindow() which returns all GdkWindows associated with the given wxWindow - Renamed IsOwnGtkWindow() to GTKIsOwnWindow() to avoid confusion with the old virtual function (the new one is non-virtual and is implemented in terms of GTKGetWindow()) - Refactored/simplified event handlers code in gtk/window.cpp - Fixed some header guards names (__GTKFOO__ -> _WX_GTK_FOO_H_) - Added GTKUpdateCursor() which sets the current cursor for all windows returned by GTKGetWindow() - Factored out code from many different classes in wxControl::OnInternalIdle() which now updates the cursor, checks for internal focus and sends update UI events git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -52,7 +52,6 @@ public:
|
||||
WX_DEFINE_LIST( wxRadioBoxButtonsInfoList );
|
||||
|
||||
extern bool g_blockEventsOnDrag;
|
||||
extern wxWindowGTK *g_delayedFocus;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// "clicked"
|
||||
@@ -638,30 +637,27 @@ void wxRadioBox::DoSetItemToolTip(unsigned int n, wxToolTip *tooltip)
|
||||
|
||||
#endif // wxUSE_TOOLTIPS
|
||||
|
||||
bool wxRadioBox::IsOwnGtkWindow( GdkWindow *window )
|
||||
GdkWindow *wxRadioBox::GTKGetWindow(wxArrayGdkWindows& windows) const
|
||||
{
|
||||
if (window == m_widget->window)
|
||||
return true;
|
||||
windows.push_back(m_widget->window);
|
||||
|
||||
wxRadioBoxButtonsInfoList::compatibility_iterator node = m_buttonsInfo.GetFirst();
|
||||
while (node)
|
||||
{
|
||||
GtkWidget *button = GTK_WIDGET( node->GetData()->button );
|
||||
|
||||
if (window == button->window)
|
||||
return true;
|
||||
windows.push_back(button->window);
|
||||
|
||||
node = node->GetNext();
|
||||
}
|
||||
|
||||
return false;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void wxRadioBox::OnInternalIdle()
|
||||
{
|
||||
// Check if we have to show window now
|
||||
if (GtkShowFromOnIdle()) return;
|
||||
|
||||
wxControl::OnInternalIdle();
|
||||
|
||||
if ( m_lostFocus )
|
||||
{
|
||||
m_hasFocus = false;
|
||||
@@ -672,18 +668,6 @@ void wxRadioBox::OnInternalIdle()
|
||||
|
||||
(void)GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
||||
if (g_delayedFocus == this)
|
||||
{
|
||||
if (GTK_WIDGET_REALIZED(m_widget))
|
||||
{
|
||||
g_delayedFocus = NULL;
|
||||
SetFocus();
|
||||
}
|
||||
}
|
||||
|
||||
if (wxUpdateUIEvent::CanUpdate(this))
|
||||
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
|
||||
}
|
||||
|
||||
// static
|
||||
|
Reference in New Issue
Block a user