1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

84 commits

Author SHA1 Message Date
reuk
83e5264c86
Formatting: Remove double-dots from comments and other strings 2025-11-18 15:47:42 +00:00
reuk
5d7208bb54
ModifierKeys: Avoid direct access to currentModifiers when reading but not writing 2025-06-19 14:42:49 +01:00
attila
d9a3efd3cb ComponentPeer::VBlankListener: Add timestamp parameter to the vblank callback 2024-10-25 15:44:34 +02:00
reuk
19061e6d17
Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Anthony Nicholls
cff722a4af GUI Basics: Refactor juce_gui_basics file structure
- Created a new detail namespace
- Moved shared module implementation details into the detail namespace
- Split dependencies so source files only rely on details in the detail namespace
- Removed all code from the juce_gui_basics.cpp file
2023-03-16 08:53:12 +00:00
reuk
da38c1ed2a
TextInputTarget: Improve IME support on Android 2022-12-07 13:12:02 +00:00
reuk
28f2157912
Convert ignoreUnused to [[maybe_unused]] 2022-12-01 11:41:50 +00:00
reuk
140f8fedb1
TextEditor: Add option to dismiss the virtual keyboard on touches outside
Previously, individual components had to ask the peer to hide and show
the keyboard, by calling textInputRequired() and
dismissPendingTextInput() respectively. When an onscreen keyboard (OSK)
was required, most Peer implementation would directly hide/show the OSK
inside these function. However, the iOS ComponentPeer implementation
instead listened to the application's global keyboard focus, and only
opened the OSK when the focused component was also a TextInputTarget
with active input.

The iOS scheme seems like a better design, as it enforces that the OSK
hiding and showing is synced with the keyboard focus of the application.
In the other implementations, it was possible for a Component to call
textInputRequired even when it didn't have the keyboard focus, putting
the application into an inconsistent state. The iOS scheme also makes
the TextInputTarget interface more useful, as it enforces that the OSK
will only display for components that implement TextInputTarget, and
return true from isTextInputActive().

This patch changes all Peer implementations to match the iOS
implementation, improving consistency. Each time the global keyboard
focus changes, refreshTextInputTarget is called automatically, and the
OSK is shown if the focused component is a TextInputTarget that returns
true from isTextInputActive, and hidden otherwise. Components can also
call refreshTextInputTarget manually. This should be done whenever the
component updates the return value of isTextInputActive(). Effectively,
the Peer is now responsible for keeping track of the focused
TextInputTarget, rather than allowing individual components to hide and
show the OSK at will.

Additionally, this patch adds an option to the TextEditor to
automatically dismiss the OSK when the mouse is clicked outside of the
editor. This should improve user experience on mobile platforms, where
touches on sibling components may cause a TextEditor to gain keyboard
focus and unnecessarily display the OSK.
2022-06-09 16:55:19 +01:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
attila
627afffeb4 Android: Fix dismissing screen keyboard when interacting with TextEditor 2022-04-27 18:49:44 +02:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +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
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
ed
fd83e0f51e Removed Displays const_casts from ComponentPeer implementations 2021-02-08 14:38:09 +00: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
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
hogliux
3e327a5390 Ensured that any top-level component transforms are not applied twice 2018-05-30 17:29:56 +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
c6edf39d1d (fixed a typo in the last commit) 2018-02-07 12:53:34 +00:00
jules
ecbc07b855 Prevvented ComponentPeer from trying to send the keyboard focus to components that don't want it 2018-02-07 12:35:54 +00:00
jules
4fcedf7be5 Standardised some lambda syntax 2018-01-08 10:28:41 +00:00
jules
eda613c6db Moved all "namespace juce" declarations from module headers to the individual .h and .cpp source files. This makes life a lot easier for Intellisense and other IDE autocompletion tools 2017-09-08 08:59:55 +01:00
hogliux
b5afccc37c Updated file headers and the README with the JUCE 5 license 2017-04-27 14:43:04 +01:00
jules
dace37288b Tidied up a couple of minor analyser warnings and comments 2017-04-17 16:15:29 +01:00
jules
60e9231fb1 Removed need for std::function in order to use MessageManager::callAsync(). Used it to modernise a few bits of old code. 2017-03-29 15:31:41 +01:00
ed
b7b8d5be57 Multiple fixes for touch and pen input on Windows 2017-03-15 17:16:04 +00:00
hogliux
75ea6db250 Renamed bounds member variable in Component to "boundsRelativeToParent" to avoid shadowing warnings when using a local variable nambed "bounds" 2016-10-27 16:52:47 +01:00
jules
4583fa3fbf Used the ignoreUnused() function to tidy up some old code 2015-12-23 16:27:50 +00:00
hogliux
9510c16665 Handle paste, copy, cut events which come from plug-in hosts 2015-12-11 10:49:22 +00:00
jules
a3426aae10 Added support for iOS force-touch 2015-11-02 11:51:16 +00:00
hogliux
c7b8e77031 Update copyright notice 2015-07-22 15:59:34 +01:00
jules
c17a72e5b1 Minor clean-ups. 2015-04-27 12:18:22 +01:00
jules
739e8ffba0 Fix to make sure IME methods are possible with text components that are directly added to the desktop. 2015-04-27 12:07:15 +01:00
jules
b998308ccd Whitespace. 2015-02-18 11:01:05 +00:00
jules
6c61dbb68e Refactored the internal mouse-handling code to use floating point coords. This shouldn't affect much user code, but a few methods in MouseInputSource have now changed to use Point<float> rather than Point<int>. 2014-06-14 13:06:53 +01:00
jules
a79292179d Better handling of ResizableWindow screen bounds handling when in kiosk mode. 2014-01-09 17:44:46 +00:00
jules
aeb8826889 Allowed dynamic activation of repaint debug mode. 2013-11-01 10:42:47 +00:00
jules
b2423c4e35 Cleaned up some comments. 2013-10-22 12:43:49 +01:00
jules
ef1f2e6094 Avoided some repainting when moving scaled windows (win32). Also removed the fake drop-shadowing in newer versions of 2013-10-17 20:50:17 +01:00
jules
94da373c31 Fixed a couple of rendering problems when using global scale factors. 2013-09-17 10:23:17 +01:00
jules
a2c95ce4fd Cleaned out and optimised some graphics code. 2013-09-04 13:38:54 +01:00
jules
be1d5253ee Moved some mouse code out of Desktop class. Made the MouseInputSource class pass-by-value. 2013-09-03 10:44:55 +01:00
jules
39c44c12ed Added a Component::getDesktopScaleFactor() method which can be overridden to force a scale for a particular window. 2013-08-21 19:02:50 +01:00
jules
823039215f Corrected the naming of the iOS component peer rendering engine. 2013-08-12 15:20:46 +01:00
jules
7a47c12a76 Cleaned away some old region-masking code from ComponentPeer, and improved some messy repaint inefficiencies involving win32 GL rendering. 2013-07-31 18:58:02 +01:00
jules
aafa12fd81 Increased the warning level for the Xcode builds of the demo + introjucer, and avoided a few warnings. 2013-07-29 13:15:21 +01:00