mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-10-07 14:54:00 +08:00
Extra controls (including the file type filter choice) have been disabled in sandboxed applications since the 2013-era workaround for #14906: the native save/open panel runs out of process (Powerbox/NSRemoteView) and inserting our views into its view hierarchy crashed. The supported contract is to build the accessory view entirely in-process and hand the finished NSView to -[NSSavePanel setAccessoryView:]; the panel then hosts it safely even when remote. Do exactly that: create the extra control and the filter panel as children of a hidden in-process host window instead of parenting them to the (possibly remote) panel. This makes extra controls and file type filters work in sandboxed applications too. As a safety valve, a system option, which can be set by the user by setting wx_osx_openfiledialog_disable_extra_controls environment variable to 1, is provided to restore the old behaviour of simply ignoring the extra controls. Closes #26908.