Commit graph

58 commits

Author SHA1 Message Date
Robin Gareus
e29523ab52
Update YTK unistd.h checks 2025-11-09 20:51:51 +01:00
Robin Gareus
d8a379bc6d
Prepare for MSVC support in y[dt]k 2025-10-22 15:34:37 +02:00
Robin Gareus
f12a521a94
Allow builds with recent msys2/mingw
Thanks to EZ4Stephen
https://discourse.ardour.org/t/show-32-tracks-while-recording/112102/7
2025-10-11 15:02:57 +02:00
Paul Davis
ea4616913c cocoa: experimentally, redraw entire window after deminimization 2025-07-05 08:34:08 -06:00
Robin Gareus
2a9776de5a
Revert "Linux/X11/touch: don't send duplicate mouse-up events for first touch"
This reverts commit 8eab71fef4.
2025-04-15 21:48:55 +02:00
Robin Gareus
8eab71fef4
Linux/X11/touch: don't send duplicate mouse-up events for first touch 2025-04-10 18:25:58 +02:00
Robin Gareus
7f6f3d64f1
macOS/YDK: Fix crash when resizing windows
_gdk_window_process_updates_recurse() may recurse (duh),
and reenter drawRect. So `needs_display_region` needs
to be unset immediately, not at the end of the method.
2025-03-16 01:57:16 +01:00
Robin Gareus
978495c4f9
Update macOS codenames 2025-02-24 19:32:16 +01:00
John Emmas
046623df59 Correct a mistyped include path 2025-02-20 09:15:49 +00:00
Paul Davis
36fb75690d macOS/YDK: various changes in invalidation debugging 2025-02-13 20:32:28 -07:00
Paul Davis
45e2555988 macOS/YDK: when a full-draw is needed, use the GdkQuartzView bounds as the rect, not the drawRect:rect 2025-02-13 20:31:50 -07:00
Paul Davis
499389d7b5 we do not use clear_region() on macOS and never have 2025-02-13 20:29:54 -07:00
Robin Gareus
ab41165854
Update gdk-pixbuf -> ydk header location 2025-02-01 14:24:41 +01:00
Robin Gareus
07866caf1e
Update gdk -> ydk header location (omnibus commit) 2025-02-01 13:37:48 +01:00
Robin Gareus
1e28ee9cc9
YTK is no longer optional
Since the addition of the touch-API, Ardour is no longer compatible
with upstream gtk2.
2025-02-01 11:57:35 +01:00
Robin Gareus
728e0c0144
Build fixes for NetBSD from pkgsrc (#9886) 2025-02-01 11:25:42 +01:00
Robin Gareus
9e164bf0cf
Further reduce debug output 2025-01-23 03:55:09 +01:00
Robin Gareus
631cda9fc8
Fix mac/Quartz drawRect full exposure
When full-draw is set, use the `rect` passed as argument
to `drawRect` and ignore `drawn_rects` invalidation.

This may fix some missing redraws when switching tabs.
2025-01-17 18:26:50 +01:00
Robin Gareus
4e34c0a0e3
Remove redundant gdk_region_destroy 2025-01-17 18:26:50 +01:00
Robin Gareus
462c5ad400
Windows multitouch fixes and notes
Properly special case first single touch; fall
back to allow windows to emulate mouse events for it.
Yet let gdk handle any multi-touch events, not allowing gestures.
2025-01-16 18:46:27 +01:00
Robin Gareus
90755045f5
Windows multitouch tweaks
* Fix special case of first single touch. While another touch
is active, any new touch must not get the ID of the (ignored)
first touch.

* reset "last-touch" coordinate on touch-begin.
Previously it was possible that the first motion event was
ignored.

NB: This does not fix missing events when the first touch
coincides with any other finger (gesture?).
2025-01-15 03:32:17 +01:00
Robin Gareus
91fe10165e Linux/X11 grab window when emulating touch button events
The first touch moves the mouse cursor, but X motion events
for the first touch are only sent after a XGrabPointer.
2025-01-15 02:06:45 +01:00
John Emmas
7a5fe4c5a1 ytk: some #defines need to be different when building with MSVC 2024-12-02 10:55:02 +00:00
Paul Davis
0132a0b8ad amend GdkQuartzView:drawRect to be able to show both the exposed and "leftover" areas
To activate, run a debug build with ARDOUR_SHOW_QUARTZ_INVALIDATION set in the environment
2024-11-26 19:02:42 -07:00
Paul Davis
4fbdf0d680 macOS: catch spurious full redraw calls to NSView:drawRect and act appropriately 2024-11-21 14:07:31 -07:00
Robin Gareus
efbc8b4390
Turn touchscreen debug prints into gdk-debug messages 2024-11-07 06:13:12 +01:00
Robin Gareus
37b0910d80
Windows Multitouch: disable gestures
Gestures may prevent a 2nd touch from being registered as
such (and instead report a zoom/pinch gesture).

At least that is my best guess, why Nathan needs 3 fingers
to move 2 Faders :)
2024-11-02 04:54:28 +01:00
Robin Gareus
0e4dcb231f
Amend previous commit (fix Windows builds) 2024-11-02 00:12:53 +01:00
Robin Gareus
e63693fb1c
Fix Windows debug builds
There's no such thing as GDK_TOUCH_CANCEL. The idea was dropped.
2024-11-01 22:21:25 +01:00
Robin Gareus
c88d370136
Implement Windows multitouch support 2024-10-31 02:02:20 +01:00
Robin Gareus
952ec57a26 Special case first touch-event: grab and emulate mouse button 2024-10-30 19:19:30 +01:00
Robin Gareus
23d5dcd080 Fix touch event propagation (custom grab)
See also 79dae5f2b4
2024-10-30 19:13:24 +01:00
Robin Gareus
8f32862e58
Humble beginnings of implementing Touch API for YDK/Windows 2024-10-26 14:55:35 +02:00
Robin Gareus
79dae5f2b4
Implement multitouch grab 2024-10-24 23:33:31 +02:00
Robin Gareus
5cf392b17a
Implement YDK Touch API for Linux/X11 2024-10-24 23:33:31 +02:00
Robin Gareus
89da2f2c87
Define YDK/YTKMM Touch Event API 2024-10-24 23:33:28 +02:00
Paul Davis
1f70d54989 avoid call of a null function pointer 2024-09-13 08:24:04 -06:00
Paul Davis
79e78394c2 track modal window show/hide, not realize/finalize 2024-09-13 16:02:59 +02:00
Robin Gareus
267cddfb05
Fix stuck insensitive macOS main menu
Popup Dialog Windows never unset the modal flag.
e.g. Session > Save Snapshot & switch.

Furthermore a 2nd dialog was able to get the menu stuck
forever (e.g. Snapshot & Switch .. -> Replace existing?
2024-09-05 18:27:44 +02:00
Paul Davis
b544ac832c move gdk global for modal notification to be with other gdk globals 2024-08-19 15:15:45 -06:00
Paul Davis
0901b239c1 fix spelling error 2024-08-19 15:15:45 -06:00
Paul Davis
4ad332ae50 fix initial commit 2024-08-19 15:15:45 -06:00
Paul Davis
221fd82d59 initial infrastructure for handling modal dialogs on macOS 2024-08-19 15:15:45 -06:00
Robin Gareus
2cdfdc9212 Prevent minimizing Dialog Windows on macOS
This works around an issue with some embedded plugin windows not being
properly restored when the window is restored after being minimized. It
also prevents zooming (full-screen) display of dialog windows.

Also recent macOS allows to maximize Windows even if they are not
supposed to be resizable (also causing issues with some plugins).
2024-07-18 17:57:52 +02:00
Robin Gareus
fd96694a21
Fix various doxgen errors in YTK
This is about half of the reported errors, then my patience
ran out. More later
2024-05-27 00:43:04 +02:00
Robin Gareus
5a52b66dfa
Remove unsupported xml/html tag <inlinegraphic> 2024-05-26 23:45:31 +02:00
Paul Davis
894e6d27a4 NOOP: whitespace cleanup 2024-04-19 10:43:10 -06:00
Paul Davis
c96e12ba58 expand null/destroyed tests for gdk objects in NSView methods 2024-04-19 10:42:59 -06:00
Robin Gareus
e64a071e39
(YDK) amend previous commit, call parent method 2024-04-19 16:46:49 +02:00
Robin Gareus
08e394f681
(YDK) possible fix for Catalina event loop crashes
```
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libydk.dylib 0x0000000110d8942d -[GdkQuartzView setNeedsDisplay:] + 93
1 com.apple.AppKit 0x00007fff34af6848 -[NSView(NSViewContentStyle) _recursivelyInvalidateCachedContentStyle] + 120
2 com.apple.AppKit 0x00007fff34af60fb -[NSView _setSuperview:] + 521
3 com.apple.AppKit 0x00007fff34b200a6 -[NSView removeFromSuperview] + 140
4 com.apple.AppKit 0x00007fff34ba882f -[NSView removeFromSuperviewWithoutNeedingDisplay] + 36
5 com.apple.AppKit 0x00007fff34b27168 -[NSView _finalize] + 977
6 com.apple.AppKit 0x00007fff34b26c0c -[NSView dealloc] + 121
7 com.apple.AppKit 0x00007fff34e30db4 -[NSFrameView dealloc] + 119
8 com.apple.AppKit 0x00007fff34e30d36 -[NSTitledFrame dealloc] + 62
9 com.apple.AppKit 0x00007fff34e30ce9 -[NSThemeFrame dealloc] + 603
10 com.apple.Foundation 0x00007fff39ed5992 NSKVODeallocate + 172
11 com.apple.AppKit 0x00007fff34d85884 -[NSWindow dealloc] + 1083
12 com.apple.AppKit 0x00007fff34d85442 -[NSWindow _dealloc] + 76
13 libobjc.A.dylib 0x00007fff6f6f3054 AutoreleasePoolPage::releaseUntil(objc_object**) + 134
14 libobjc.A.dylib 0x00007fff6f6d7dba objc_autoreleasePoolPop + 175
15 com.apple.CoreFoundation 0x00007fff377c9cb5 _CFAutoreleasePoolPop + 22
16 com.apple.Foundation 0x00007fff39e7d04e -[NSAutoreleasePool drain] + 126
17 libydk.dylib 0x0000000110d8ef29 gdk_event_prepare + 73
18 libglib-2.0.0.dylib 0x00000001110ded45 g_main_context_prepare + 533
19 libglib-2.0.0.dylib 0x00000001110df800 g_main_context_iterate + 128
20 libglib-2.0.0.dylib 0x00000001110dfcc2 g_main_loop_run + 210
21 libytk.dylib 0x0000000110a4f11f gtk_main + 191
22 libgtkmm2ext.dylib 0x00000001104cef1e Gtkmm2ext::UI::run(Receiver&) + 318
23 com.harrisonconsoles.Mixbus10 0x000000010dc6fb9c main + 2652
```
2024-04-19 15:38:12 +02:00