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