@@ -674,17 +674,22 @@ static void
674674build_multiple_docs_dialog (PlumaCloseConfirmationDialog * dlg )
675675{
676676 PlumaCloseConfirmationDialogPrivate * priv ;
677- GtkWidget * hbox ;
678- GtkWidget * image ;
679- GtkWidget * vbox ;
680- GtkWidget * primary_label ;
681- GtkWidget * vbox2 ;
682- GtkWidget * select_label ;
683- GtkWidget * scrolledwindow ;
684- GtkWidget * treeview ;
685- GtkWidget * secondary_label ;
686- gchar * str ;
687- gchar * markup_str ;
677+ GtkWidget * hbox ;
678+ GtkWidget * image ;
679+ GtkWidget * vbox ;
680+ GtkWidget * primary_label ;
681+ GtkWidget * vbox2 ;
682+ GtkWidget * select_label ;
683+ GtkWidget * scrolledwindow ;
684+ GtkWidget * treeview ;
685+ GtkWidget * secondary_label ;
686+ GdkDisplay * display ;
687+ GdkRectangle mon_geo ;
688+ gchar * str ;
689+ gchar * markup_str ;
690+ gint new_width ;
691+ gint new_height ;
692+ gint max_height ;
688693
689694 priv = dlg -> priv ;
690695
@@ -750,6 +755,7 @@ build_multiple_docs_dialog (PlumaCloseConfirmationDialog *dlg)
750755 gtk_widget_set_can_focus (GTK_WIDGET (select_label ), FALSE);
751756
752757 scrolledwindow = gtk_scrolled_window_new (NULL , NULL );
758+ gtk_scrolled_window_set_propagate_natural_height (GTK_SCROLLED_WINDOW (scrolledwindow ), TRUE);
753759 gtk_box_pack_start (GTK_BOX (vbox2 ), scrolledwindow , TRUE, TRUE, 0 );
754760 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow ),
755761 GTK_POLICY_AUTOMATIC ,
@@ -778,9 +784,21 @@ build_multiple_docs_dialog (PlumaCloseConfirmationDialog *dlg)
778784
779785 gtk_widget_show_all (hbox );
780786
781- int new_width , new_height ;
782787 gtk_window_get_size (GTK_WINDOW (GTK_DIALOG (dlg )), & new_width , & new_height );
783- gtk_window_set_default_size (GTK_WINDOW (GTK_DIALOG (dlg )), new_width , new_height );
788+
789+ display = gtk_widget_get_display (scrolledwindow );
790+
791+ gdk_monitor_get_geometry (gdk_display_get_primary_monitor (display ), & mon_geo );
792+
793+ max_height = mon_geo .height * 40 / 100 ;
794+
795+ if (new_height > max_height )
796+ {
797+ gtk_window_set_resizable (GTK_WINDOW (GTK_DIALOG (dlg )), TRUE);
798+ gtk_window_resize (GTK_WINDOW (GTK_DIALOG (dlg )), new_width , max_height );
799+ }
800+ else
801+ gtk_window_set_default_size (GTK_WINDOW (GTK_DIALOG (dlg )), new_width , new_height );
784802}
785803
786804static void
0 commit comments