aboutsummaryrefslogtreecommitdiffstats
path: root/lib/wx/c_src/wxe_impl.cpp
AgeCommit message (Collapse)Author
2018-12-06Don't try to wake up wx thread when not necessaryDan Gudmundsson
That kills performance on at least windows when a the load goes up and a lot of commands is sent to the driver.
2018-11-16wx: Do not delay deletes of wxGraphicContextDan Gudmundsson
Fixes crash on Mojave, where refresh events are sent early and invoked recursively the delete of wxGraphicContext was delayed until after callback returned causing the crash to happen.
2017-05-24wx: Tune when to break command loop in driverDan Gudmundsson
Exit command loop less often too avoid expensive event checking while in batch mode.
2017-05-04Update copyright yearRaimo Niskanen
2017-05-02Merge branch 'dgud/wx/fixup-batch-break'Dan Gudmundsson
* dgud/wx/fixup-batch-break: Fixup batch break
2017-04-28Merge branch 'dgud/wx/pr/1425'Dan Gudmundsson
* dgud/wx/pr/1425: wxe_impl.cpp: pointer comparison fix
2017-04-28Fixup batch breakDan Gudmundsson
Batches was breaked to often, increase the test and break if batch is done (and queue empty).
2017-04-24wxe_impl.cpp: pointer comparison fixKenji Rikitake
* Fix ordered comparison between (void *) pointer and zero
2017-04-06Avoid livelock in driver when batching commandsDan Gudmundsson
With a bad timing in wx:batch() the driver could get stuck handling commands without ever checking for gui events. Avoid that by exiting loop after the driver have done cond_wait a couple of times.
2016-05-30wx: Fix occasional seq fault after appliction stopsDan Gudmundsson
There seems to be a timeing dependent double delete when doing reference cleanup after wx:destroy(). wxGraphicsObjects can thus not be free'ed by wx in the cleanup phase. A guess is that the underlying rendering context deletes all graphics objects without careeing about wxWidgets reference counting.
2016-04-22wx: Fix callback problemsDan Gudmundsson
Commands could be executed twice, if the command was dispatched from a callback and caused a recursive invocation of command loop. Solution is to mark op as -1 before calling wxWidgets. Also commands could be missed when idle processing was done inside while executing a recursive callback, solved be always resetting peak index after idle processing is done.
2016-03-15update copyright-yearHenrik Nord
2015-12-12wx: Revert part of 617387025b698cDan Gudmundsson
Causes issues on mac and observer
2015-11-24wx: Add a command queue check after event sent to erlangDan Gudmundsson
Some events are callbacks inside wxWidgets so idle processing doesn't take place until operation is completed, for instance move/resize window on Windows. This way we get some response while mouse button is pressed.
2015-11-23wx: Use only one ring buffer for command queueDan Gudmundsson
Avoid copying between command queues, cleaner, faster and safer implementation.
2015-07-02wx: Event callbacks could hang wx application temporaryDan Gudmundsson
After applying a command make sure that it didn't recurse to a callback invocation, then we must re-start from the saved command queue.
2015-06-30wx: Send wxWdigets assert to error loggerDan Gudmundsson
Instead of popping up an annoying msgbox
2015-06-18Change license text to APLv2Bruce Yinhe
2015-06-05wx: Optimize binary argsDan Gudmundsson
2015-06-01wx: Driver lock cleanupDan Gudmundsson
2015-05-12wx: Fix raise during emulator stoppageDan Gudmundsson
When emulator is stopped all drivers are stopped but not unloaded and since the clean wx thread stoppage code was in unload callback it was not called and could cause crashes.
2015-05-05wx: Optimize command queuesDan Gudmundsson
Remove allocations
2014-06-16wx: Fix destroy bugDan Gudmundsson
Do not postpone deletion of wx*DC objects since they need to be deleted directly. Otherwise, if inside showModal, causes an eternal loop of wxPaint events on Windows.
2014-03-26wx: Send destroy message directDan Gudmundsson
Messages was routed via the wxe_server process, which caused process to never get the message.
2014-03-26wx: Add wxLocale classDan Gudmundsson
2014-03-25wx: Fix memory garbage collectorDan Gudmundsson
2014-03-25wx: Fix possibility to fetch early open msgs on macDan Gudmundsson
Mac doesn't add clicked files to program arguments, a callback is invoked instead, send msgs to erlang about them.
2014-01-23wx: Delay all deletes if recursed in event loopDan Gudmundsson
Avoids crashes.
2014-01-22wx: wx could hang if wxe_server died (or had died) when inside a callbackDan Gudmundsson
The pid is not available via driver_caller(..) (see wxeCommand constr) inside driver_monitor callback.
2014-01-22wx: Delay memory cleanup until safeDan Gudmundsson
Previously we could do a cleanup while we where recursed down and thus delete the objects we where invoking.
2014-01-21wx: Refactor C++ codeDan Gudmundsson
Try to clean up the files a bit
2014-01-16wx: Fix hanging wx callsDan Gudmundsson
wxWakeUpIdle doesn't always work on wxGTK and the workaround is to periodically invoke it, so the gui-thread doesn't get stuck in poll. Previously it was only called when NOT in batch mode, however if the wxWakeUpIdle call after a batch_begin command did not wake up the thread it would still get stuck in poll.
2013-10-30wx: Fix cleanup of event handlersDan Gudmundsson
Event handlers was not removed after objects/process had been delete/died, which causes memory leakage and that fun's was kept in the wx_server process. Code that might be purged and the server died.
2013-10-11wx: Fix initializations on mac osxDan Gudmundsson
Remove dummy windows and move the console to gui app code before wxWidgets gets initialized to prevent hangings on current wxWidgets svn version.
2013-01-16wx: Remove deprecated driver_send_term usageDan Gudmundsson
2013-01-09wx: Mac fixesDan Gudmundsson
2013-01-09wx: Fix loading icons and cursors in WindowsDan Gudmundsson
wxWidgets looked in the wrong executable after icons and cursors, stole wxLua's solution. Also finds wx-2.9 on windows
2013-01-09wx: Update examples so they work with both wxWidgets 2.8 and 2.9Dan Gudmundsson
2011-11-16[wx] Fix deadlock in callback handlingDan Gudmundsson
New testcase showcase the deadlock
2011-09-21[wx] Fix trailing whitespaceDan Gudmundsson
2011-09-21[wx] Fix cleanup memory referencesDan Gudmundsson
Could cause a crash in later restarts
2011-07-14Handle overloading callbacks the same as eventsDan Gudmundsson
Previously other process wx calls where allowed to execute in the callback code, but that lead to a deadlock if for example a dialog was created.
2011-07-07Add support for virtual listctrlsDan Gudmundsson
2011-03-02Make MacOS (NS) wx use the main threadPatrik Nyblom
2011-03-02Fix start argsDan Gudmundsson
2011-03-02Fixed coredump when graphics could not be initiatedDan Gudmundsson
For instance when DISPLAY was not set
2010-11-15Split opengl functionality into separate dynamic libraryDan Gudmundsson
The idea is to build a separate opengl library which can be reused by other erlang applications.
2010-08-18Callback crash reported by Sergei Golovan.Dan Gudmundsson
May also be the reason of the crash seen on windows by several others.
2010-03-10wx: Correct usage of driver callbacks from wx threadPatrik Nyblom
2010-01-19Fixed a memory reference bug which caused unexplained {badarg, Int} exits.Dan Gudmundsson
You could get a reference to another applications memory, if wx had deleted that applications memory without the drivers knowledge about it, typically memory allocated by wx and not the application using classes where wx-driver can't override the desctructors. When wx allocated new memory and got a pointer to that memory, the wx-driver detected the same pointer and forwarded the old ref to erlang.