Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ImplAddDel() is being called at places like line 209 of event.cxx
- And then there is
- Application::ImplCallEventListeners( aEvent ); //from line 209 of event.cxx
- if ( aDelData.IsDead() )
- return;
- if (!mpWindowImpl->maEventListeners.empty())
- {
- // Copy the list, because this can be destroyed when calling a Link...
- std::vector<Link<VclWindowEvent&,void>> aCopy( mpWindowImpl->maEventListeners );
- for ( Link<VclWindowEvent&,void>& rLink : aCopy )
- {
- if (aDelData.IsDead()) break;
- // check this hasn't been removed in some re-enterancy scenario fdo#47368
- if( std::find(mpWindowImpl->maEventListeners.begin(), mpWindowImpl->maEventListeners.end(), rLink) != mpWindowImpl->maEventListeners.end() )
- rLink.Call( aEvent );
- }
- }
- if ( aDelData.IsDead() )
- return;
- After this ImplRemoveDel() is called //line 232 of event.cxx
- -------------------------------------------------------------------------------------------------------------------------
- So maybe, what you have in mind is something like:
- 1. VclPtr<vcl::Window> temp_mpWindow = aDelData.mpWindow; //Instead of line 209 from above example
- 2. I will need help with what is required here
- And then there is part from above example
- .....
- 3. //ImplRemoveDel comes here which is to be replaced with just //Instead of line 232 from above example
- if ( IsDisposed() ){
- return;
- }
- 4. And something more if required.
- The reason I'm not able to fill in parts 2 and 4 is because I do not understand the connection between
- IsDisposed() and aDelData.mpWindow
- IsDisposed() does : " return !mpWindowImpl; " as a bool.
- mpWindowImpl is a pointer of type WindowImpl ie WindowImpl* mpWindowImpl
Add Comment
Please, Sign In to add comment