2026-06-02 23:28:39 +02:00
|
|
|
//
|
|
|
|
|
// Generated file. Do not edit.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
// clang-format off
|
|
|
|
|
|
|
|
|
|
#include "generated_plugin_registrant.h"
|
|
|
|
|
|
|
|
|
|
#include <desktop_drop/desktop_drop_plugin.h>
|
Add dual-screen presenter mode (slide on beamer, notes on laptop)
When a second display is connected (macOS), presenting now opens a
borderless audience window on the beamer showing the slide, while the
main window shows the presenter view (current/next slide, speaker notes,
clock, controls) on the laptop. The two windows stay in sync over method
channels: navigation, blank screen, audio-complete and beamer clicks are
forwarded between them, and media plays only on the beamer to avoid
double audio. Falls back to the existing single-window presenter when
there is one display or the second window can't be created.
- Vendors a fork of desktop_multi_window in third_party/ that re-adds the
native macOS window geometry/fullscreen calls (coverScreen, setFrame,
close) the published 0.3.0 dropped; wired via a path dependency.
- Registers the app's plugins for sub-windows in MainFlutterWindow so
video/image rendering works on the beamer.
- Routes the multi_window dart entrypoint to a minimal AudienceWindowApp.
Compiles (flutter analyze + macOS debug build) and all tests pass;
runtime two-screen behaviour still needs verification on real hardware.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 21:25:34 +02:00
|
|
|
#include <desktop_multi_window/desktop_multi_window_plugin.h>
|
2026-06-02 23:28:39 +02:00
|
|
|
#include <pasteboard/pasteboard_plugin.h>
|
|
|
|
|
#include <screen_retriever_linux/screen_retriever_linux_plugin.h>
|
|
|
|
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
|
|
|
|
#include <window_manager/window_manager_plugin.h>
|
|
|
|
|
|
|
|
|
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
|
|
|
|
g_autoptr(FlPluginRegistrar) desktop_drop_registrar =
|
|
|
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopDropPlugin");
|
|
|
|
|
desktop_drop_plugin_register_with_registrar(desktop_drop_registrar);
|
Add dual-screen presenter mode (slide on beamer, notes on laptop)
When a second display is connected (macOS), presenting now opens a
borderless audience window on the beamer showing the slide, while the
main window shows the presenter view (current/next slide, speaker notes,
clock, controls) on the laptop. The two windows stay in sync over method
channels: navigation, blank screen, audio-complete and beamer clicks are
forwarded between them, and media plays only on the beamer to avoid
double audio. Falls back to the existing single-window presenter when
there is one display or the second window can't be created.
- Vendors a fork of desktop_multi_window in third_party/ that re-adds the
native macOS window geometry/fullscreen calls (coverScreen, setFrame,
close) the published 0.3.0 dropped; wired via a path dependency.
- Registers the app's plugins for sub-windows in MainFlutterWindow so
video/image rendering works on the beamer.
- Routes the multi_window dart entrypoint to a minimal AudienceWindowApp.
Compiles (flutter analyze + macOS debug build) and all tests pass;
runtime two-screen behaviour still needs verification on real hardware.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 21:25:34 +02:00
|
|
|
g_autoptr(FlPluginRegistrar) desktop_multi_window_registrar =
|
|
|
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopMultiWindowPlugin");
|
|
|
|
|
desktop_multi_window_plugin_register_with_registrar(desktop_multi_window_registrar);
|
2026-06-02 23:28:39 +02:00
|
|
|
g_autoptr(FlPluginRegistrar) pasteboard_registrar =
|
|
|
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "PasteboardPlugin");
|
|
|
|
|
pasteboard_plugin_register_with_registrar(pasteboard_registrar);
|
|
|
|
|
g_autoptr(FlPluginRegistrar) screen_retriever_linux_registrar =
|
|
|
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverLinuxPlugin");
|
|
|
|
|
screen_retriever_linux_plugin_register_with_registrar(screen_retriever_linux_registrar);
|
|
|
|
|
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
|
|
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
|
|
|
|
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
|
|
|
|
g_autoptr(FlPluginRegistrar) window_manager_registrar =
|
|
|
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin");
|
|
|
|
|
window_manager_plugin_register_with_registrar(window_manager_registrar);
|
|
|
|
|
}
|