From 2fae538c7c377b844b384ca92159d5010fe7f113 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 May 2020 23:51:48 -0300 Subject: [PATCH] Looks like ubuntu doesn't support the application menu (too bad). Changing the windows settings to update the ui model on the first run based on the presence of the application menu. --- schemas/linux/application.gschema.xml.in | 2 +- src/include/pw3270/application.h | 1 + src/objects/application/application.c | 6 +++--- src/objects/window/window.c | 17 ++++++++++++++++- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/schemas/linux/application.gschema.xml.in b/schemas/linux/application.gschema.xml.in index 80a596c..4d248e7 100644 --- a/schemas/linux/application.gschema.xml.in +++ b/schemas/linux/application.gschema.xml.in @@ -33,7 +33,7 @@ - 1 + 2 UI Style The ID of the current user interface style diff --git a/src/include/pw3270/application.h b/src/include/pw3270/application.h index afcaff8..0ee1eec 100644 --- a/src/include/pw3270/application.h +++ b/src/include/pw3270/application.h @@ -55,6 +55,7 @@ typedef enum _pw3270_ui_style { PW3270_UI_STYLE_CLASSICAL, ///< @brief Interface "classica", com menu e toolbar. PW3270_UI_STYLE_GNOME, ///< @brief Interface padrĂ£o gnome. + PW3270_UI_STYLE_AUTOMATIC, ///< @brief Auto defined UI-Style } PW3270_UI_STYLE; diff --git a/src/objects/application/application.c b/src/objects/application/application.c index cd9b105..24ff9f1 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -157,11 +157,11 @@ _("UI Type"), _("The code of the User interface type"), PW3270_UI_STYLE_CLASSICAL, - PW3270_UI_STYLE_GNOME, + PW3270_UI_STYLE_AUTOMATIC, #ifdef _WIN32 PW3270_UI_STYLE_CLASSICAL, #else - PW3270_UI_STYLE_GNOME, + PW3270_UI_STYLE_AUTOMATIC, #endif // _WIN32 G_PARAM_READABLE|G_PARAM_WRITABLE ); @@ -176,7 +176,7 @@ #ifdef _WIN32 app->ui_style = PW3270_UI_STYLE_CLASSICAL; #else - app->ui_style = PW3270_UI_STYLE_GNOME; + app->ui_style = PW3270_UI_STYLE_AUTOMATIC; #endif // _WIN32 // Get settings diff --git a/src/objects/window/window.c b/src/objects/window/window.c index 04864b3..c322740 100644 --- a/src/objects/window/window.c +++ b/src/objects/window/window.c @@ -346,7 +346,22 @@ { g_autoptr(GSettings) settings = pw3270_application_window_settings_new(); - if(pw3270_application_get_ui_style(G_APPLICATION(application)) == PW3270_UI_STYLE_GNOME) { + PW3270_UI_STYLE style = pw3270_application_get_ui_style(G_APPLICATION(application)); + + if(style == PW3270_UI_STYLE_AUTOMATIC) { + + if(gtk_application_get_app_menu(application)) { + style = PW3270_UI_STYLE_GNOME; + } else { + style = PW3270_UI_STYLE_CLASSICAL; + g_settings_set_boolean(settings,"menubar-visible",TRUE); + g_settings_set_boolean(settings,"toolbar-visible",TRUE); + } + + pw3270_application_set_ui_style(G_APPLICATION(application),style); + } + + if(style == PW3270_UI_STYLE_GNOME) { // Create header bar -- libgit2 0.21.2