1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/modules
reuk f5f758c032 Partially revert "ComponentPeer: Add isShowing() member, which more closely matches expected behaviour of Component::isShowing"
This partially reverts commit 555b667d22.

Using ComponentPeer::isShowing instead of ComponentPeer::isMinimised
inside Component::isShowing can cause problems when displaying OpenGL
components.

Specifically, OpenGL components use a ComponentMovementWatcher to
determine when they should be attached/detached from the parent window.
The ComponentMovementWatcher updates whenever a component visibility
change event is emitted, which happens in two cases:
- Component::setVisible is called on the OpenGL component or an ancestor
- ComponentPeer::handleMovedOrResized is called in response to a
  minimisation state change

When handling either of these events, the ComponentMovementWatcher will
call Component::isShowing to determine whether or not the component is
really showing.

The problem is that the result of ComponentPeer::isShowing may change
independently of changes to the Component visiblity state or
ComponentPeer minimisation state, so the ComponentPeerWatcher might not
notify its listeners when a component is really shown/hidden.

One potential workaround would be for the ComponentPeer to send
notifications when the showing state of the window changes, so that the
ComponentMovementWatcher can forward those notifications. The main
problem with this approach is that on Windows, the window doesn't seem
to receive a message on hide/show, and it's not clear whether there
exists some other approach to detect a hide/show event.

If there were some event we could listen for on Windows, then we could
call Component::sendVisibilityChangeMessage in response to this event
and things would *likely* work at that point, but this may still have
unintended side-effect. As a result, I think the best approach to
restore the old behaviour is to revert the change to
Component::isShowing. The implementations of ComponentPeer::isShowing
have been left in place so that users can do still query the real
visibility state of native windows if necessary.
2024-09-30 19:50:37 +01:00
..
juce_analytics Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_animation Fix some Doxygen docstrings 2024-06-12 09:35:32 +01:00
juce_audio_basics Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_audio_devices Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
juce_audio_formats Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_audio_plugin_client Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
juce_audio_processors Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_audio_utils Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
juce_box2d Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_core Text: Refactor UTF-8 test to prevent warnings 2024-09-30 12:49:57 +01:00
juce_cryptography Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_data_structures Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_dsp Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
juce_events Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
juce_graphics Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_gui_basics Partially revert "ComponentPeer: Add isShowing() member, which more closely matches expected behaviour of Component::isShowing" 2024-09-30 19:50:37 +01:00
juce_gui_extra Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
juce_midi_ci Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_opengl Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_osc Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_product_unlocking Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
juce_video Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
CMakeLists.txt Animation: Add juce_animation module 2024-04-16 17:43:21 +01:00