aboutsummaryrefslogtreecommitdiffstats
path: root/lib/wx/c_src/gen
diff options
context:
space:
mode:
authorDan Gudmundsson <[email protected]>2014-01-27 14:23:15 +0100
committerDan Gudmundsson <[email protected]>2014-01-27 14:23:15 +0100
commit75bfbe5a61fa1a1dd204fdb21dc4bf7df8e8003d (patch)
treecedea2151cdc673bddfe541cf4956c5fd6b431ab /lib/wx/c_src/gen
parentc922ea6f82bb3d95d05d1f212b91e13f97e972b8 (diff)
parentfd055cf43486358a413a1fa22f30f0aa711d25e1 (diff)
downloadotp-75bfbe5a61fa1a1dd204fdb21dc4bf7df8e8003d.tar.gz
otp-75bfbe5a61fa1a1dd204fdb21dc4bf7df8e8003d.tar.bz2
otp-75bfbe5a61fa1a1dd204fdb21dc4bf7df8e8003d.zip
Merge branch 'dgud/wx/refactor-and-bugfixes/OTP-11586'
* dgud/wx/refactor-and-bugfixes/OTP-11586: wx: Delay all deletes if recursed in event loop wx: wx could hang if wxe_server died (or had died) when inside a callback wx: Delay memory cleanup until safe wx: Refactor C++ code wx: Add init_dialog event Update icons wx: Update icons to plain old white ones
Diffstat (limited to 'lib/wx/c_src/gen')
-rw-r--r--lib/wx/c_src/gen/wxe_events.cpp10
-rw-r--r--lib/wx/c_src/gen/wxe_funcs.cpp13
2 files changed, 18 insertions, 5 deletions
diff --git a/lib/wx/c_src/gen/wxe_events.cpp b/lib/wx/c_src/gen/wxe_events.cpp
index fb3a065448..a1b4d090b3 100644
--- a/lib/wx/c_src/gen/wxe_events.cpp
+++ b/lib/wx/c_src/gen/wxe_events.cpp
@@ -1,7 +1,7 @@
/*
* %CopyrightBegin%
*
- * Copyright Ericsson AB 2008-2013. All Rights Reserved.
+ * Copyright Ericsson AB 2008-2014. All Rights Reserved.
*
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
@@ -297,6 +297,7 @@ void initEventTable()
{wxEVT_TASKBAR_RIGHT_UP, 227, "taskbar_right_up"},
{wxEVT_TASKBAR_LEFT_DCLICK, 227, "taskbar_left_dclick"},
{wxEVT_TASKBAR_RIGHT_DCLICK, 227, "taskbar_right_dclick"},
+ {wxEVT_INIT_DIALOG, 228, "init_dialog"},
{-1, 0, }
};
for(int i=0; event_types[i].ev_type != -1; i++) {
@@ -814,6 +815,13 @@ case 227: {// wxTaskBarIconEvent
rt.addTupleCount(2);
break;
}
+case 228: {// wxInitDialogEvent
+ evClass = (char*)"wxInitDialogEvent";
+ rt.addAtom((char*)"wxInitDialog");
+ rt.addAtom(Etype->eName);
+ rt.addTupleCount(2);
+ break;
+}
}
rt.addTupleCount(5);
diff --git a/lib/wx/c_src/gen/wxe_funcs.cpp b/lib/wx/c_src/gen/wxe_funcs.cpp
index 329af36f4d..82dd414911 100644
--- a/lib/wx/c_src/gen/wxe_funcs.cpp
+++ b/lib/wx/c_src/gen/wxe_funcs.cpp
@@ -1,7 +1,7 @@
/*
* %CopyrightBegin%
*
- * Copyright Ericsson AB 2008-2013. All Rights Reserved.
+ * Copyright Ericsson AB 2008-2014. All Rights Reserved.
*
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
@@ -45,9 +45,14 @@ void WxeApp::wxe_dispatch(wxeCommand& Ecmd)
switch (Ecmd.op)
{
case DESTROY_OBJECT: {
- wxObject *This = (wxObject *) getPtr(bp,memenv); if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This);
- delete This; }
- } break;
+ wxObject *This = (wxObject *) getPtr(bp,memenv);
+ if(This) {
+ if(recurse_level > 1) {
+ delayed_delete->Append(Ecmd.Save());
+ } else {
+ ((WxeApp *) wxTheApp)->clearPtr((void *) This);
+ delete This; }
+ } } break;
case WXE_REGISTER_OBJECT: {
registerPid(bp, Ecmd.caller, memenv);
rt.addAtom("ok");