#if wxUSE_MENUS_NATIVE
-static void SetInvokingWindow( wxMenu *menu, wxWindow* win )
-{
- menu->SetInvokingWindow( win );
-
- wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst();
- while (node)
- {
- wxMenuItem *menuitem = node->GetData();
- if (menuitem->IsSubMenu())
- {
- SetInvokingWindow( menuitem->GetSubMenu(), win );
- }
-
- node = node->GetNext();
- }
-}
-
extern "C" {
static
void wxPopupMenuPositionCallback( GtkMenu *menu,
{
wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
- wxCHECK_MSG( menu != NULL, false, wxT("invalid popup-menu") );
-
- SetInvokingWindow( menu, this );
-
menu->UpdateUI();
wxPoint pos;
win
);
- GdkWindow* window = win->GTKGetDrawingWindow();
- if (window == NULL)
- window = w->window;
+ GdkWindow* window = w->window;
+ if (w == win->m_wxwindow)
+ window = win->GTKGetDrawingWindow();
gdk_window_freeze_updates(window);
}
return;
}
- GdkWindow* window = GTKGetDrawingWindow();
- if (window == NULL)
- window = w->window;
+ GdkWindow* window = w->window;
+ if (w == m_wxwindow)
+ window = GTKGetDrawingWindow();
gdk_window_freeze_updates(window);
}
return;
}
- GdkWindow* window = GTKGetDrawingWindow();
- if (window == NULL)
- window = w->window;
+ GdkWindow* window = w->window;
+ if (w == m_wxwindow)
+ window = GTKGetDrawingWindow();
gdk_window_thaw_updates(window);
}