[ wxwindows-Bugs-1845218 ] Frozen TLWs can't be Thaw()'d

SourceForge.net noreply at sourceforge.net
Wed Dec 5 15:57:15 PST 2007


Bugs item #1845218, was opened at 2007-12-06 00:57
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=109863&aid=1845218&group_id=9863

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: wxMSW specific
Group: Must fix
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Marco (marco-o)
Assigned to: Nobody/Anonymous (nobody)
Summary: Frozen TLWs can't be Thaw()'d

Initial Comment:
Since wxPython 2.6.1 if a frozen TLW gets a new child, it can not be correctly Thawed.

Try this evil code:

import wx

app=wx.App(redirect=False)
f=wx.Frame(None)
f.Show()

f.Freeze()
b=wx.Button(f)
f.Thaw()

app.MainLoop()


On MSW we get
"""
File c:\Programmi\Python25\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py",
line 9664, in Thaw    return _core_.Window_Thaw(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "m_frozenness > 0" failed at
..\..\src\msw\window.cpp(1547) in wxWindow::Thaw(): Thaw() without
matching Freeze()
"""

We think this bug is because
[from 2.6.1 release note]
"""
wxMSW: If freezing a top-level window wxWidgets will actually freeze
the TLW's children instead. This works around a feature of MS Windows
that allowed windows beneath the frozen one in Z-order to paint
through, and also mouse events clicking through to the lower window.
"""

Hope it will help.
Bye

Marco


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=109863&aid=1845218&group_id=9863




More information about the wx-dev mailing list