Here below you can see what it looks like right now:

The application works well, branch/leaves generation is multithreaded and stable. The issue I have is using controls and updating the wxGLCanvas.
Basically all the wxSlider, wxButton controls do not update the wxGLCanvas framebuffer unless I move the mouse a tiny bit after they have run their code. So for example, I use the slider to increase the height, and once the statusbar shows that the routine has finished, I move the mouse and voilà, the framebuffer is updated and the new tree shape modification shows up.
I obviously use wxGLCanvas::Update to perform the opengl update, I also tried to call the opengl Display loop manually without success.
But... and this is the odd part, if I use one of the wxToolbar buttons (those green ones you can see in the interface), they work flawlessly: they run the routine and update the wxGLCanvas correctly.
So I really don't know what the issue could be and a possible solution to it. Any suggestion is greatly appreciated.
One thing I noticed, when using wxSlider for example, is that once I release the handle it looks like it's still selected and sometimes part of the control disappears (see the following image, notice how the slider bar is missing):
