Opened 10 months ago

Last modified 10 months ago

#16011 accepted defect

removing child window during Freeze locks window refresh

Reported by: aasselin Owned by: csomor
Priority: normal Milestone:
Component: wxOSX-Cocoa Version:
Keywords: Cc: csomor
Blocked By: Blocking:
Patch: no

Description

Add the two following line in auidemo.cpp (sorry can't make a patch my local version still contains previous bug reports that were not taken into account due to AUI/wx3.0 freeze)

Near the top of function: wxAuiNotebook* MyFrame::CreateNotebook() and after:

wxBitmap page_bmp = wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, wxSize(16,16));

add those two lines:
ctrl->AddPage (new wxStaticText(ctrl, wxID_ANY, wxT("check if removal of that during Freeze won't lock everything")), wxT("title"), false, page_bmp);
ctrl->DeleteAllPages ();

Now just build and run auidemo on OS X. The main window is frozen.

It seems that the AddChild calls disableFlushWindow but it is never compensated by a enableFlushWindow

Change History (5)

comment:1 Changed 10 months ago by csomor

  • Owner set to csomor
  • Status changed from new to accepted

The problem is the balancing of the DoFreeze and DoThaw calls, on OSX I have to enable/disable the flushing on the toplevel window, the sequence in your sample leads to more native freezes than thaws. I'll have to find a solution for this situation

comment:2 Changed 10 months ago by SC

(In [75966]) make sure a frozen control calls a native 'thaw' on the tlw during destruction, otherwise tlws might end up unresponsive, see #16011

comment:3 Changed 10 months ago by SC

(In [75969]) backport of r75966, make sure a frozen control calls a native 'thaw' on the tlw
during destruction, otherwise tlws might end up unresponsive, see #16011

comment:4 Changed 10 months ago by SC

(In [75993]) make sure a frozen control calls a native 'thaw' on the tlw during destruction, otherwise tlws might end up unresponsive, see #16011

comment:5 Changed 10 months ago by csomor

sorry, I mis-clicked resulting in getting former commit message for my new commit - which just adds NSImage support methods

Note: See TracTickets for help on using tickets.