reuk
e1a7fe671a
Component: Make wheel/magnify behaviour more intuitive for disabled components
...
The previous implementation would pass the mouse wheel event up to the
component's parent, as long as the parent was enabled. This meant that a
wheel event on the innermost component of a hierarchy such as
"[[disabled] enabled]" would send the event to the parent, but a wheel
event on the innermost component of a hierarchy such as
"[[[disabled] disabled] enabled]" would 'eat' the event and prevent it
from propagating.
After this change, unhandled mouse wheel events will always be passed to
the nearest enabled parent. This behaviour is more consistent and
intuitive.
2022-02-23 10:56:10 +00:00
Attila Szarvas
101a886821
MouseInputSource: Eliminate superfluous drag events caused by pressure change
...
The bug was triggered on Monterey where a pressure of 1 is reported
while a mouse button is being held down. This caused an extra drag
event being triggered between mouse down and up events, even if no
movement occurred.
2022-02-15 10:53:32 +00:00
reuk
ca4bdb6b3a
Component: Avoid calling member functions on objects destroyed when exiting modal state
2021-11-24 16:20:37 +00:00
reuk
eca02270ee
Component: Add Point<float> overloads for some common functions
2021-10-27 16:33:37 +01:00
reuk
4ca923a34b
NSViewComponentPeer: Allow mouse events to reach unfocused windows
...
This change allows mouse events (including enter and exit events) to
reach unfocused views on macOS. This matches the behaviour of unfocused
windows on Linux and Windows, where components paint in their "hovered"
states even when the application window is in the background.
As a byproduct of using tracking areas on macOS, we can remove the fake
mouse move generator.
2021-10-27 16:33:37 +01:00
reuk
f85ede6b47
Component: Ensure that mouseEnter and mouseExit calls are balanced when entering/leaving modal state
2021-10-26 16:52:15 +01:00
ed
3fac215534
Component: Give away keyboard focus when disabled
2021-10-08 17:19:04 +01:00
ed
a852f4f45f
Component: Only pass mouse wheel and magnify events up to enabled parents
2021-10-08 17:19:04 +01:00
ed
46a4dc95a1
Accessibility: Fix potential infinite recursive component keyboard focus loop
2021-09-29 11:46:10 +01:00
ed
8d6ba3b54e
Accessibility: Use AccessibilityRole::ignored for UI elements that should not be accessible to screen readers but have accessible children
2021-09-07 11:23:17 +01:00
ed
59333870f5
Accessibility: Disable accessibility of child components when calling Component::setAccessible (false);
2021-09-02 08:35:14 +01:00
ed
a2f7aaab2f
Accessibility: Don't create AccessibilityHandler for Components without a native window handle
2021-07-28 11:44:28 +01:00
ed
a5c3b81f82
Use C++14 lambda capture initialisers for initialising deletion checkers
2021-07-12 11:58:29 +01:00
ed
e119178b5b
Check BailOutChecker before sending accessibility moved/resized event in Component::sendMovedResizedMessages()
2021-07-01 16:23:48 +01:00
ed
d1b669e6ae
Accessibility: Added InternalAccessibilityEvent::elementMovedOrResized
2021-06-16 17:22:35 +01:00
reuk
5db072b483
Component: Avoid calling native APIs from background threads
...
When rendering with OpenGL, the paint function is called from a
background thread. If we call `isMouseOver` from the paint function, we
may end up calling native functions via the ComponentPeer, which causes
threading warnings on macOS.
2021-06-16 11:35:25 +01:00
ed
550127945d
Added floating-point implementations for some Component hit-testing methods to improve reliability when dealing with scaled Components
2021-06-08 14:14:22 +01:00
ed
df4ff3b225
Accessibility: Fixed some focus issues with modal components
2021-06-07 19:38:29 +01:00
ed
fa17310dd1
Added back in rounding error fix from e8518048 that was overwritten in 7909af4e
2021-05-26 16:54:38 +01:00
reuk
31a7c62baf
Windows: Fix and suppress some analysis warnings
...
This fixes warnings that are emitted when building with the `-analyze`
flag enabled.
2021-05-26 15:34:26 +01:00
reuk
1c2abc80d7
Component: Ensure getScreenPosition result is in terms of the logical coordinate space of the screen
...
Previously, getScreenPosition would return a result in the component's
coordinate space if it was called on a component that was not directly
or indirectly on the desktop. This behaviour is surprising and difficult
to program around. This change should ensure that the result is always
in the screen's coordinate space.
2021-05-24 14:57:26 +01:00
ed
82a5911d56
Accessibility: Send focus change notification in Component::enterModalState()
2021-05-20 18:24:57 +01:00
reuk
668f16f0ec
Component: Ensure component position does not change when removed and re-added to desktop
2021-05-12 12:50:08 +01:00
ed
ec990202b1
Accessibility: Added VoiceOver (macOS) and Narrator (Windows) accessibility screen reader support to juce_gui_basics
2021-05-10 10:53:14 +01:00
Tom Poole
79fbde7099
Added preliminary support for FreeBSD
2021-03-29 14:16:46 +01:00
ed
891d86fe6b
Don't trigger a fake mouse move from Component::sendFakeMouseMove() if the component passes through all mouse events
2021-01-28 11:26:41 +00:00
ed
33dd896ab2
Ensure that keyboard focus is always given away when components are made invisible
2021-01-22 10:44:25 +00:00
reuk
586ab8927d
Fix warnings when building in C++20 mode
2021-01-15 13:33:40 +00:00
ed
b7e28541ca
Replaced deprecated Displays methods
2020-10-27 12:38:59 +00:00
ed
1b2c9c154b
iOS: Don't set the font smoothing property of the graphics context on iOS so that cached Component images render the same as the default
2020-07-20 17:17:54 +01:00
ed
60b6afd517
Added floating-point overrides for some Component area conversion methods
2020-07-08 17:47:10 +01:00
reuk
394c4fd475
Clang: Fix warnings when building with clang 10
2020-07-01 10:00:43 +01:00
ed
009d685179
Updated all license headers
2020-06-29 08:30:22 +01:00
reuk
4cf66d6522
Cleanup: Remove redundant inlines
2020-04-27 10:22:06 +01:00
Tom Poole
894e7d2bd2
Updated all license headers
2020-04-23 17:30:39 +01:00
reuk
327f817b9b
Copyrights: Update commercial/gpl headers to be gpl-only
2020-04-09 15:22:56 +01:00
ed
26c9468dc5
Deprecated AffineTransform::getScaleFactor() as it was producing incorrect values for transforms containing rotations. Added getDeterminant() method for getting the determinant of the transform
2020-03-30 18:34:19 +01:00
ed
621f6cb6a2
Guard against NaN errors in Component::internalRepaintUnchecked()
2019-11-06 12:22:22 +00:00
ed
dab4741eb3
Tidied up a few bits of graphics code with Graphics::ScopedSaveState
2019-10-21 15:28:02 +01:00
ed
2539f4d24f
DRY-ed some code by adding a static Component::getApproximateScaleFactorForComponent() method
2019-04-29 12:55:39 +01:00
ed
3d8acd864a
Fixed some pen input source issues
2019-03-22 10:47:54 +00:00
ed
5c03d13f0d
Revert previous commit and instead call ComponentHelpers::releaseAllCachedImageResources() from Component::removeFromDesktop()
2018-12-14 12:13:39 +00:00
Tom Poole
d06a2b8c13
Fixed compatibility with GCC 4.8
2018-12-06 10:45:23 +00:00
jules
5979288706
Added some macros for asserting when functions are called in an unsafe manner outside the message thread.
2018-10-16 17:39:54 +01:00
ed
b78e63aa02
Moved Displays class out of Desktop and into its own .h/.cpp and deprecated Displays::getDisplayContaining()
2018-08-10 16:37:52 +01:00
jules
935d1ff805
Added an assertion in Component to prevent accidental component recursion
2018-07-09 16:02:51 +01:00
jules
7ab4d1708b
Some misc cleanups, mainly around WeakReference usage and rectangles
2018-07-09 16:00:45 +01:00
ed
481221a256
Cleaned up the ModifierKeys class and removed the peer-specific implementations of ModifierKeys::getCurrentModifiersRealtime() and ModifierKeys::updateCurrentModifiers()
2018-05-09 10:04:27 +01:00
jules
7909af4ecb
Added a parameter includeChildren to Component::isMouseButtonDown
2018-05-08 11:55:20 +01:00
Tom Poole
ab863a6dc2
Replaced all usage of ScopedPointer with std::unique_ptr
2018-04-19 20:27:47 +01:00