gnome: put account settings in a scrolled window

Some of the account settings are very long and force a large window size
which doesn't fit on some screens.

Issue: #73778
Change-Id: I3617f3fe8141da0bb006a79d7f50af50a352c542
diff --git a/src/accountview.cpp b/src/accountview.cpp
index a5b75a4..9eadb1d 100644
--- a/src/accountview.cpp
+++ b/src/accountview.cpp
@@ -110,6 +110,14 @@
         AccountModel::instance()->selectionModel()->clearCurrentIndex();
 }
 
+static GtkWidget *
+create_scrolled_account_view(GtkWidget *account_view)
+{
+    auto scrolled = gtk_scrolled_window_new(NULL, NULL);
+    gtk_container_add(GTK_CONTAINER(scrolled), account_view);
+    return scrolled;
+}
+
 static void
 account_selection_changed(GtkTreeSelection *selection, AccountView *view)
 {
@@ -144,23 +152,23 @@
         gtk_box_pack_start(GTK_BOX(hbox_account), priv->current_account_notebook, TRUE, TRUE, 0);
 
         /* customize account view based on account */
-        GtkWidget *general_tab = account_general_tab_new(account);
+        auto general_tab = create_scrolled_account_view(account_general_tab_new(account));
         gtk_notebook_append_page(GTK_NOTEBOOK(priv->current_account_notebook),
                                  general_tab,
                                  gtk_label_new("General"));
-        GtkWidget *audio_tab = account_audio_tab_new(account);
+        auto audio_tab = create_scrolled_account_view(account_audio_tab_new(account));
         gtk_notebook_append_page(GTK_NOTEBOOK(priv->current_account_notebook),
                                  audio_tab,
                                  gtk_label_new("Audio"));
-        GtkWidget *video_tab = account_video_tab_new(account);
+        auto video_tab = create_scrolled_account_view(account_video_tab_new(account));
         gtk_notebook_append_page(GTK_NOTEBOOK(priv->current_account_notebook),
                                  video_tab,
                                  gtk_label_new("Video"));
-        GtkWidget *advanced_tab = account_advanced_tab_new(account);
+        auto advanced_tab = create_scrolled_account_view(account_advanced_tab_new(account));
         gtk_notebook_append_page(GTK_NOTEBOOK(priv->current_account_notebook),
                                  advanced_tab,
                                  gtk_label_new("Advanced"));
-        GtkWidget *security_tab = account_security_tab_new(account);
+        auto security_tab = create_scrolled_account_view(account_security_tab_new(account));
         gtk_notebook_append_page(GTK_NOTEBOOK(priv->current_account_notebook),
                                  security_tab,
                                  gtk_label_new("Security"));