From dbd36d06d387a350835fa3ac2836a1b11a2fa5f8 Mon Sep 17 00:00:00 2001 From: TheOneWithTheBraid Date: Wed, 27 Jul 2022 12:38:45 +0200 Subject: [PATCH] feat: libhandy integration - supports GTK 4 window borders Signed-off-by: TheOneWithTheBraid --- linux/flutter/generated_plugin_registrant.cc | 4 ++++ linux/flutter/generated_plugins.cmake | 1 + linux/my_application.cc | 8 +++++--- pubspec.lock | 7 +++++++ pubspec.yaml | 1 + 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 9d220695..cd834b8b 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -10,6 +10,7 @@ #include #include #include +#include #include void fl_register_plugins(FlPluginRegistry* registry) { @@ -25,6 +26,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) handy_window_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "HandyWindowPlugin"); + handy_window_plugin_register_with_registrar(handy_window_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); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 43424f5e..64e4d34a 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -7,6 +7,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_lifecycle file_selector_linux flutter_secure_storage_linux + handy_window url_launcher_linux ) diff --git a/linux/my_application.cc b/linux/my_application.cc index 4c0501c1..8f830b57 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -48,18 +48,20 @@ static void my_application_activate(GApplication* application) { gtk_window_set_title(window, "FluffyChat"); } - gtk_window_set_default_size(window, 800, 600); - gtk_widget_show(GTK_WIDGET(window)); + gtk_window_set_default_size(window, 1200, 720); g_autoptr(FlDartProject) project = fl_dart_project_new(); fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + // rendering app after libhandy was loaded in order to have magic stuff happening before + gtk_widget_show(GTK_WIDGET(window)); + gtk_widget_show(GTK_WIDGET(view)); + gtk_widget_grab_focus(GTK_WIDGET(view)); } diff --git a/pubspec.lock b/pubspec.lock index da687cfc..ebfc9bbf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -796,6 +796,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.2" + handy_window: + dependency: "direct main" + description: + name: handy_window + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.6" highlight: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 77173eba..79dd6022 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -52,6 +52,7 @@ dependencies: flutter_webrtc: ^0.8.7 future_loading_dialog: ^0.2.3 geolocator: ^7.6.2 + handy_window: ^0.1.6 hive_flutter: ^1.1.0 image: ^3.1.1 image_picker: ^0.8.4+8