1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-30 02:50:05 +00:00
Commit graph

293 commits

Author SHA1 Message Date
Tom Poole
165d8b0ecd macOS: Make the behaviour of ComponentPeer::grabFocus match the other platforms
This partially reverts f43784dc: "macOS:  Propagate focus loss message when resigning key window status and only grab focus if window can become the key window"
2022-03-17 21:52:33 +00:00
reuk
eb8a419ac7
TooltipWindow: Avoid potential use-after-free of lastComponentUnderMouse
Showing the tip will in turn call getDesktopScaleFactor(), accessing the
lastComponentUnderMouse. In some cases, it was possible for
lastComponentUnderMouse to point to a deleted component, resulting in
UB.

There are two changes in this PR:
- Using a SafePointer rather than a raw pointer ensures that calls to
  getDesktopScaleFactor() will always be safe, regardless of when they
  happen.
- Moving the assignment of lastComponentUnderMouse to before the call to
  displayTipInternal() ensures that the returned scale factor is that of
  the component that the mouse is currently hovering.
2022-02-18 16:43:26 +00:00
attila
4cf036bb8b ComponentPeer: Add documentation for OptionalBorderSize 2022-02-07 12:39:51 +01:00
attila
6575d24a81 ComponentPeer: Deprecate getFrameSize() 2022-02-03 21:46:36 +01:00
attila
a7811661c5 Linux: Fix restoreWindowFromStateString() when the peer already exists 2022-02-02 19:53:31 +01:00
reuk
53f8650ba3
DocumentWindow: Update documentation 2022-01-27 18:43:21 +00:00
reuk
b80927fc91
Nodiscard: Add to builder-pattern functions 2022-01-27 18:43:21 +00:00
Tom Poole
c072b1bc8e Fix some typos 2022-01-25 11:48:46 +00:00
ed
461192b355 Add FocusOutline class for indicating Component keyboard focus 2022-01-20 15:46:53 +00:00
reuk
05676c862a
UIViewComponentPeer: Allow setting an app style, to ensure the status bar can be seen over the app background 2022-01-10 22:15:20 +00:00
ed
81df4560dd Tooltip: Fix bug where tip would not be updated for new components 2021-11-30 17:07:31 +00:00
reuk
d0590b5fc5
ComponentPeer: Add facility for displaying document save state in the titlebar 2021-11-25 11:42:39 +00:00
ed
b4bc2c8710 Tooltip: Show manually shown tips until a dismissal mouse event occurs 2021-11-23 12:22:25 +00:00
ed
d49d203974 Tooltip: Ignore dismissal mouse events when tooltip window is not showing 2021-11-10 09:30:13 +00:00
ed
057b555f08 Tooltip: Track mouse clicks using global Desktop mouse listener callbacks to fix bug with Timer callbacks missing events 2021-11-09 09:36:58 +00:00
ed
903657b0b8 Tooltip: Prevent tip from being immediately dismissed when shown from TooltipWindow::displayTip() 2021-11-09 09:36:58 +00:00
ed
274ce967e4 AlertWindow: Prevent accessible label component from intercepting mouse clicks 2021-11-02 12:35:36 +00:00
ed
49db3ce12e AlertWindow: Make accessible label component colours fully transparent to prevent it from drawing over custom L&Fs 2021-11-02 12:19:56 +00:00
ed
bc64c30df6 Accessibility: Use more specific AccessibilityRole::dialogWindow for CallOutBox 2021-10-08 17:19:03 +01:00
ed
b9542ccc4c Update code to use C++14 [[deprecated]] attribute
This commit removes the various compiler-specific JUCE_DEPRECATED macros and replaces them with C++14's deprecated attribute. It also removes the JUCE_CATCH_DEPRECATED_CODE_MISUSE flag as we can rely on the override specifier catching usage of these old virtual methods, and tidies up the DOXYGEN preprocessor checks as they were inconsistent across the codebase.
2021-09-29 16:14:00 +01:00
ed
8d75a7a400 Fix auxiliary desktop windows scaling and centring when Desktop::globalScaleFactor != 1.0 2021-09-29 11:46:24 +01:00
reuk
9360c3f4ff
Windows: Fix issue where minimising a window could overwrite the last "normal" window bounds
Previously, the following series of steps would leave the window at
full-size on Windows:

- Open a JUCE Window
- Maximise it
- Minimise it
- Click the maximise button

The expected behaviour is that the window should return to its initial
size and position, but instead the window still fills the screen.

This issue wasn't present on Ubuntu/Unity because minimising does not
invoke ComponentPeer::handleMovedOrResized on that platform. It was not
present on macOS because the system is responsible for restoring the
previous window size on that platform.
2021-09-28 11:31:49 +01:00
reuk
10a26b7584
TooltipWindow: Avoid re-showing a tooltip if the mouse has not moved since it was last clicked
This behaviour more closely mirrors the behaviour of other applications.
2021-09-27 15:46:28 +01:00
reuk
9199fa3c51
Warnings: Avoid triggering missing-prototypes warnings on macOS/iOS 2021-09-23 10:28:47 +01:00
Tom Poole
f1fecfdc88 Add some missing Doxygen tags 2021-09-20 11:36:56 +01:00
ed
90eb878d16 Accessibility: Make createAccessibilityHandler() private in Component subclasses 2021-09-07 11:23:17 +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
f5eee033ba NativeMessageBox: Return correctly mapped value when shown modally 2021-09-02 08:35:14 +01:00
ed
6d40b627ba AlertWindow: Fix incorrect return value when using modal native ok/cancel and yes/no/cancel dialogs 2021-08-16 16:06:56 +01:00
ed
2db1bbdc0f Add missing AlertWindow::showNativeDialogBox() implementation that was removed in 551d7b9c 2021-08-11 11:50:15 +01:00
ed
551d7b9c5b Add MessageBoxOptions class for specifying a set of AlertWindow and NativeMessageBox options
- Add AlertWindow::show() and showAsync() methods that take a MessageBoxOptions argument
  - Add NativeMessageBox::show() and showAsync() methods that take a MessageBoxOptions argument
  - Update the DialogsDemo to demonstrate the new methods
  - Deprecate AlertWindow::showNativeDialogBox() in favour of the NativeMessageBox methods
  - Pass button strings specified in MesssageBoxOptions to native dialog boxes correctly
  - Use modern TaskDialog on Windows for the native dialog box where available
2021-07-21 16:34:12 +01:00
ed
422c8f8114 Accessibility: Disable accessibility for TooltipWindows to prevent them from interfering with focus 2021-07-05 12:07:30 +01:00
Tom Poole
845631c762 Linux: Fix bug restoring window positions from saved state 2021-07-01 11:48:20 +01:00
Tom Poole
fe4ba9071b Set the default value of JUCE_MODAL_LOOPS_PERMITTED to 0
See BREAKING-CHANGES.txt for more details.
2021-06-30 13:01:14 +01:00
reuk
1ee106d730
PopupMenu: Avoid dismissing PopupMenus in bridged plugin editors
When bridging 32-bit/64-bit plugins on Windows, the plugin is hosted in
an auxilliary process, and the plugin's editor is embedded into an HWND
owned by a different process (the plugin host).

Previously, the `isForegroundProcess` check would fail for bridged
plugins, because the foreground window may belong to the DAW, rather
than to the auxilliary hosting process.

This patch adds an additional check, to find whether the same process
owns both the foreground window, and the window which embeds the
PopupMenu's target component. In this case, we avoid immediately
dismissing the PopupMenu.
2021-06-08 14:57:42 +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
bc796b1636
TooltipWindow: Display tooltips at same scale as hovered components 2021-05-24 15:00:59 +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
reuk
0f6f2728f2
AlertWindow: Scale window according to scale of associatedComponent
For DialogWindow, uses the scale of componentToCentreAround.

This allows drawing dialog windows at the expected scale in plugins.
An associated component must be supplied in order for this to work.
2021-03-23 12:09:35 +00:00
ed
fd83e0f51e Removed Displays const_casts from ComponentPeer implementations 2021-02-08 14:38:09 +00:00
ed
ad38182530 Added checks for DOXYGEN #define when excluding modal methods in headers 2021-02-05 14:17:19 +00:00
ed
091ab8a3a3 Made the windowIgnoresKeyPresses ComponentPeer style flag documentation a bit clearer 2021-01-28 11:26:41 +00:00
ed
b7e28541ca Replaced deprecated Displays methods 2020-10-27 12:38:59 +00:00
ed
268ac3d5c8 Modernised some code in CallOutBox and added some logic to scale the window with its content component's transform 2020-08-27 14:14:14 +01:00
ed
60b6afd517 Added floating-point overrides for some Component area conversion methods 2020-07-08 17:47:10 +01:00
reuk
013fd5e5d6 juce6: Update some referenes to JUCE 5 in docstrings 2020-07-01 10:00:43 +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
39b5c22a29
GUI: Ensure components refresh correctly when their look and feel changes 2020-06-12 17:27:25 +01:00