Skip to content

Commit 501e8d9

Browse files
committed
[[ Bug 15836 ]] Only send OnOpen/OnClose for initial open / final close.
1 parent 60e2c02 commit 501e8d9

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

docs/notes/bugfix-15836.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Widgets: OnOpen / OnClosed messages sent when widget is relayered.

engine/src/widget.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,16 @@ bool MCWidget::visit_self(MCObjectVisitor* p_visitor)
161161
void MCWidget::open(void)
162162
{
163163
MCControl::open();
164-
if (m_widget != nil)
165-
MCwidgeteventmanager->event_open(this);
164+
// IM-2015-09-01: [[ Bug 15836 ]] Only send widget event when transitioning from 0 -> 1
165+
if (opened == 1 && m_widget != nil)
166+
MCwidgeteventmanager->event_open(this);
166167
}
167168

168169
void MCWidget::close(void)
169170
{
170-
if (m_widget != nil)
171-
MCwidgeteventmanager->event_close(this);
171+
// IM-2015-09-01: [[ Bug 15836 ]] Only send widget event when transitioning from 1 -> 0
172+
if (opened == 1 && m_widget != nil)
173+
MCwidgeteventmanager->event_close(this);
172174
MCControl::close();
173175
}
174176

0 commit comments

Comments
 (0)