Dislaying popup tip windows seems to work right now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2002-06-06 19:35:51 +00:00
parent 0b74b736a6
commit ad9fb0334f
5 changed files with 38 additions and 15 deletions

View File

@@ -27,9 +27,7 @@ class wxPopupWindow: public wxPopupWindowBase
{ {
public: public:
wxPopupWindow() { } wxPopupWindow() { }
#ifdef __DARWIN__ virtual ~wxPopupWindow();
virtual ~wxPopupWindow() { }
#endif
wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE) wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE)
{ (void)Create(parent, flags); } { (void)Create(parent, flags); }

View File

@@ -27,9 +27,7 @@ class wxPopupWindow: public wxPopupWindowBase
{ {
public: public:
wxPopupWindow() { } wxPopupWindow() { }
#ifdef __DARWIN__ virtual ~wxPopupWindow();
virtual ~wxPopupWindow() { }
#endif
wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE) wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE)
{ (void)Create(parent, flags); } { (void)Create(parent, flags); }

View File

@@ -170,6 +170,7 @@ bool wxContextHelp::EndContextHelp()
bool wxContextHelp::EventLoop() bool wxContextHelp::EventLoop()
{ {
m_inHelp = TRUE; m_inHelp = TRUE;
while ( m_inHelp ) while ( m_inHelp )
{ {
if (wxTheApp->Pending()) if (wxTheApp->Pending())
@@ -181,6 +182,7 @@ bool wxContextHelp::EventLoop()
wxTheApp->ProcessIdle(); wxTheApp->ProcessIdle();
} }
} }
return TRUE; return TRUE;
} }
@@ -223,6 +225,7 @@ bool wxContextHelp::DispatchEvent(wxWindow* win, const wxPoint& pt)
{ {
wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), pt) ; wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), pt) ;
helpEvent.SetEventObject(this); helpEvent.SetEventObject(this);
eventProcessed = win->GetEventHandler()->ProcessEvent(helpEvent); eventProcessed = win->GetEventHandler()->ProcessEvent(helpEvent);
// Go up the window hierarchy until the event is handled (or not). // Go up the window hierarchy until the event is handled (or not).

View File

@@ -149,6 +149,12 @@ END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow) IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow)
wxPopupWindow::~wxPopupWindow()
{
if (GTK_WIDGET_HAS_GRAB(m_widget))
gtk_grab_remove( m_widget );
}
bool wxPopupWindow::Create( wxWindow *parent, int style ) bool wxPopupWindow::Create( wxWindow *parent, int style )
{ {
m_needParent = FALSE; m_needParent = FALSE;
@@ -343,8 +349,14 @@ bool wxPopupWindow::Show( bool show )
GtkOnSize( m_x, m_y, m_width, m_height ); GtkOnSize( m_x, m_y, m_width, m_height );
} }
if (!show)
gtk_grab_remove( m_widget );
bool ret = wxWindow::Show( show ); bool ret = wxWindow::Show( show );
if (show)
gtk_grab_add( m_widget );
return ret; return ret;
} }

View File

@@ -149,6 +149,12 @@ END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow) IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow)
wxPopupWindow::~wxPopupWindow()
{
if (GTK_WIDGET_HAS_GRAB(m_widget))
gtk_grab_remove( m_widget );
}
bool wxPopupWindow::Create( wxWindow *parent, int style ) bool wxPopupWindow::Create( wxWindow *parent, int style )
{ {
m_needParent = FALSE; m_needParent = FALSE;
@@ -343,8 +349,14 @@ bool wxPopupWindow::Show( bool show )
GtkOnSize( m_x, m_y, m_width, m_height ); GtkOnSize( m_x, m_y, m_width, m_height );
} }
if (!show)
gtk_grab_remove( m_widget );
bool ret = wxWindow::Show( show ); bool ret = wxWindow::Show( show );
if (show)
gtk_grab_add( m_widget );
return ret; return ret;
} }