1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-13 00:04:19 +00:00
Commit graph

138 commits

Author SHA1 Message Date
reuk
fe4515adb6
MouseCursor: Refactor platform-specific MouseCursor internals
This new factoring is a bit more typesafe, as it avoids casting
internals to void*.

It also allows cursors to scale appropriately on high resolution
displays on Windows.
2021-10-27 16:33:37 +01:00
reuk
05c2261efe
LinuxComponentPeer: Use constrainer to limit native window size 2021-10-25 09:51:21 +01:00
ed
8d72e7fccc Linux: Update displays when DPI settings change 2021-09-29 17:41:04 +01:00
ed
70d36f06db Linux: Implement dark mode detection 2021-09-29 17:40:58 +01:00
ed
3d282c1078 Desktop: Deprecate isOSXDarkModeActive() and add isDarkModeActive() for other platforms 2021-09-29 17:40:58 +01:00
ed
ea35602f18 X11: Use XSettings to respond to window scale factor changes 2021-09-29 17:40:57 +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
attila
e867d1dbb4 Linux: Fix maximise when not using native titlebar
X11 cannot maximise windows that have their maximum size set. When not
using the native titlebar we now revert to setting the window bounds
without involving the X11 maximise function.
2021-07-06 10:26:14 +02:00
reuk
d4e802016a VST3: Fix issue where Ardour would repeatedly try to resize editors
Ardour seems to listen to the bounds of the plugin window, and will call
`onSize` on the plugin editor when move/resize events are sent to the X
window - even if the size of the window didn't really change. This can
result in an infinite resize loop, where calling `onSize` on the VST3
instance sends a resize event to the plugin window, and this event
causes Ardour to call `onSize` on the plugin view.

To get around this, the Linux ComponentPeer will no longer request a
bounds change from the window system if the requested bounds are the
same as the current bounds.
2021-03-11 16:51:35 +00:00
ed
40c86d6b2f Linux: Fail more gracefully on systems which don't support 32-, 24-, or 16-bit RGB displays 2021-03-09 12:11:05 +00:00
reuk
7a0b17c0d3 LinuxComponentPeer: Fix scaling in custom windows created by plugins
Previously, things like PopupMenus which were created in their own
windows were not being scaled correctly on HiDPI displays on Linux.

This patch forces the display scale to 1.0 in plugins, meaning that
the transform applied to the main plugin window is the sole source
of truth for component scaling in plugins.
2021-03-04 13:56:03 +00:00
reuk
d5b55a8474
X11: Make setFullscreen put windows into true maximised mode 2021-02-16 15:39:31 +00:00
reuk
5490003964
LinuxComponentPeer: Dismiss modals more proactively
This patch should resolve an issue where the popupmenu for a combobox
could become 'stranded' if the plugin window was moved while the box was
open.
2021-01-15 12:18:32 +00:00
reuk
55036de873
LinuxComponentPeer: Get rid of unused templating 2021-01-15 12:18:31 +00:00
ed
84d9117054 Linux: Check for valid display in updateScaleFactorFromNewBounds() 2021-01-06 17:16:46 +00:00
ed
3f78998b96 Linux: Fixed semi-transparent windows not rendering correctly
Previously we were choosing a Visual and Colormap on initialisation of the X11 Display which could lead to bugs when opening a window with different visual and colour requirements. This commit makes 16, 24 and 32-bit visuals available and chooses the correct one when opening a window.
2020-11-02 15:46:45 +00:00
ed
bef6a91294 Linux: Made the Desktop singleton usable when running headless 2020-10-27 12:39:16 +00:00
ed
b7e28541ca Replaced deprecated Displays methods 2020-10-27 12:38:59 +00:00
ed
009d685179 Updated all license headers 2020-06-29 08:30:22 +01:00
ed
a8b6066187 Linux: Use host scaling for VST plug-ins on hiDPI screens 2020-05-18 14:05:54 +01:00
reuk
f49b3733ec
Warnings: Silence some GCC warnings 2020-05-05 12:28:47 +01:00
Tom Poole
894e7d2bd2 Updated all license headers 2020-04-23 17:30:39 +01:00
ed
bb28b3413d Updated some copyright headers 2020-04-16 17:28:34 +01:00
ed
74ca3b44c4 Linux: Removed X11-specific code from LinuxComponentPeer 2020-04-16 12:18:49 +01:00
Felipe F. Tonello
c2100022cc Added several linux improvements to the event loop, MIDI and X11 (see commit messsage)
MIDI: Several ALSA Seq improvements
===================================

Many things were done in this patch (I couldn't really split in several
patches):
 * Only one ALSA Sequencer client per application
 * ALSA Sequencer client name is the application's name by default
 * Fixed a bug when getDeivces() would return devices created by the
   application itself
 * Only ports created with createNewDevice() are allowed to be subscribed,
   other ports (created by openDevice()) doesn't allow subscription
 * AlsaPort is now handled by AlsaClient, basically having the proper
 representation such as the ALSA Sequencer has.

Files: Fix default directory paths
==================================

Some information on:
* Linux LSB FHS:
  http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs-30
* https://wiki.archlinux.org/index.php/Xdg_user_directories

Refactor Event loop to remove X11 dependency
============================================

The goal of this refactor was to remove X11 dependencies on juce_events
to enable non-gui applications (example, Embedded Linux apps) to have no
libx11 dependency.

The side-effect of this refactor is easy implementation of other Linux
graphical back-end, cleanup some code, better handling of X displays and
other benefits.

I removed a lot of the code from juce_linux_Windowing to separate files
for clarity. I also renamed all Linux X11 files to *linux_X11* instead of
just *linux*.

X11: Remove unnecessary XGrabButton call
========================================

This call is made unnecessary if used proper window flags when a window
is created.
2017-02-13 17:14:34 +00:00
hogliux
a6d3d19832 Fixed a few minor bugs in X11 windowing code 2016-12-19 12:20:05 +00:00
jules
9fa0d49be7 Added an option JUCE_ALLOW_STATIC_NULL_VARIABLES that can be used to turn off dangerous statics like String::empty, var::null, etc. 2016-09-16 12:03:02 +01:00
jules
31f935cc60 Added a new Graphics::drawImage method that takes a Rectangle<float> 2016-07-01 15:35:04 +01:00
jules
021209e216 Changed ImagePixelData::clone to return a smart pointer rather than a raw one, to avoid a reference-count leak 2016-06-22 16:33:09 +01:00
hogliux
1a973a2faa Ignore linux scale factor if it is ten or larger 2016-05-13 13:25:24 +01:00
Timur Doumler
70949aa0c6 Added several new features: support for AudioUnit v3, new simplified JUCE module format, deleted the Introjucer and replaced it by the Projucer, various improvements for exporting of iOS and Android projects. 2016-04-06 18:31:24 +01:00
jules
189853720a Cleaned up a few uses of Image::null 2016-03-10 17:20:15 +00:00
hogliux
688969da20 Fix missing window decorations in KDE 2016-02-22 16:39:44 +00:00
jules
b5907fa90d Normalised some divider comments 2016-02-20 09:45:43 +00:00
jules
50af60fa81 Simplified some linux X11 code involving atoms 2016-01-28 15:28:35 +00:00
jules
99052af8bc Added Android support for screen orientation control 2016-01-13 12:05:29 +00:00
jules
a3426aae10 Added support for iOS force-touch 2015-11-02 11:51:16 +00:00
jules
5fc2f24c97 Fix for linux windows that don't respond to mouse events 2015-10-01 11:36:19 +01:00
hogliux
e881711f2a Fix crash on linux when temporary window is ordered to the back 2015-09-04 12:25:20 +01:00
hogliux
27273730b4 Fix re-ordering of alwaysOnTop windows on Linux 2015-09-04 12:04:33 +01:00
hogliux
c7b8e77031 Update copyright notice 2015-07-22 15:59:34 +01:00
hogliux
effdc661ca Fix correct repainting of OpenGLContexts if a non-compositing window manager is used on linux 2015-07-08 17:09:59 +01:00
jules
9b79610cb0 Added a flag MouseWheelEvent::isInertial (currently only implemented for OSX 10.7 or later), and used this to replace some clunky behaviour in the Viewport class that was there to avoid inertial wheel movements triggering nested scrollable components. 2015-06-22 20:28:15 +01:00
hogliux
661533c85d Fix clang warnings on linux 2015-06-22 00:43:01 +02:00
hogliux
44a5a93444 Fix typo 2015-05-27 16:00:56 +01:00
hogliux
4ca4ae6be8 Remove code that was used for testing 2015-05-27 15:53:37 +01:00
hogliux
2fcabaec10 Fix bug when the first display is not the main display on linux 2015-05-27 15:50:12 +01:00
jules
0c99e8e068 Minor cleanups 2015-05-25 10:05:33 +01:00
jules
40b13a692e Fix for resize behaviour of linux windows without titlebars 2015-05-25 09:44:43 +01:00
jules
ff99c6dbc1 Fix to linux modifier key change reporting. 2015-05-22 10:04:39 +01:00