Mon, 22 Aug 2022 21:40:04 -0500
Inline pidgin_make_scrollable
We need to change it for GTK4, and there are few enough that it can be inlined. Eventually, that code might be a `.ui` anyway.
Testing Done:
Compile only.
Reviewed at https://reviews.imfreedom.org/r/1615/
| ChangeLog.API | file | annotate | diff | comparison | revisions | |
| pidgin/gtkblist.c | file | annotate | diff | comparison | revisions | |
| pidgin/gtkrequest.c | file | annotate | diff | comparison | revisions | |
| pidgin/gtkutils.c | file | annotate | diff | comparison | revisions | |
| pidgin/gtkutils.h | file | annotate | diff | comparison | revisions | |
| pidgin/plugins/spellchk.c | file | annotate | diff | comparison | revisions |
--- a/ChangeLog.API Mon Aug 22 02:29:47 2022 -0500 +++ b/ChangeLog.API Mon Aug 22 21:40:04 2022 -0500 @@ -974,6 +974,7 @@ * pidgin_idle_get_ui_ops * pidgin_load_accels * pidgin_make_mini_dialog_with_custom_icon + * pidgin_make_scrollable * pidgin_mini_dialog_new_with_custom_icon * pidgin_mini_dialog_set_custom_icon * pidgin_make_pretty_arrows
--- a/pidgin/gtkblist.c Mon Aug 22 02:29:47 2022 -0500 +++ b/pidgin/gtkblist.c Mon Aug 22 21:40:04 2022 -0500 @@ -3075,7 +3075,7 @@ { GSimpleActionGroup *action_group = NULL; void *handle; - GtkWidget *sep; + GtkWidget *sep, *sw; GtkEventController *key_controller = NULL; GtkTreeSelection *selection; @@ -3143,9 +3143,15 @@ gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(gtkblist->treeview), pidgin_blist_search_equal_func, NULL, NULL); - gtk_box_pack_start(GTK_BOX(gtkblist->vbox), - pidgin_make_scrollable(gtkblist->treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, -1, -1), - TRUE, TRUE, 0); + sw = gtk_scrolled_window_new(); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), gtkblist->treeview); + + gtk_widget_set_vexpand(sw, TRUE); + gtk_widget_set_valign(sw, GTK_ALIGN_FILL); + gtk_box_append(GTK_BOX(gtkblist->vbox), sw); sep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start(GTK_BOX(gtkblist->vbox), sep, FALSE, FALSE, 0);
--- a/pidgin/gtkrequest.c Mon Aug 22 02:29:47 2022 -0500 +++ b/pidgin/gtkrequest.c Mon Aug 22 21:40:04 2022 -0500 @@ -1181,7 +1181,11 @@ G_CALLBACK(req_entry_field_changed_cb), field); } - widget = pidgin_make_scrollable(textview, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, -1, 75); + widget = gtk_scrolled_window_new(); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget), + GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); + gtk_widget_set_size_request(widget, -1, 75); + gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(widget), textview); } else { @@ -1454,6 +1458,7 @@ static GtkWidget * create_list_field(PurpleRequestField *field) { + GtkWidget *sw; GtkWidget *treeview; GtkListStore *store; GtkCellRenderer *renderer; @@ -1540,7 +1545,12 @@ g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(list_field_select_changed_cb), field); - return pidgin_make_scrollable(treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, -1, -1); + + sw = gtk_scrolled_window_new(); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), treeview); + return sw; } static GdkPixbuf*
--- a/pidgin/gtkutils.c Mon Aug 22 02:29:47 2022 -0500 +++ b/pidgin/gtkutils.c Mon Aug 22 21:40:04 2022 -0500 @@ -1109,23 +1109,3 @@ return FALSE; #endif } - -GtkWidget * -pidgin_make_scrollable(GtkWidget *child, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy, int width, int height) -{ - GtkWidget *sw = gtk_scrolled_window_new(); - - if (G_LIKELY(sw)) { - gtk_widget_show(sw); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), hscrollbar_policy, vscrollbar_policy); - if (width != -1 || height != -1) - gtk_widget_set_size_request(sw, width, height); - if (child) { - gtk_container_add(GTK_CONTAINER(sw), child); - } - return sw; - } - - return child; -} -
--- a/pidgin/gtkutils.h Mon Aug 22 02:29:47 2022 -0500 +++ b/pidgin/gtkutils.h Mon Aug 22 21:40:04 2022 -0500 @@ -249,20 +249,6 @@ */ GtkWidget *pidgin_add_widget_to_vbox(GtkBox *vbox, const char *widget_label, GtkSizeGroup *sg, GtkWidget *widget, gboolean expand, GtkWidget **p_label); -/** - * pidgin_make_scrollable: - * @child: The child widget - * @hscrollbar_policy: Horizontal scrolling policy - * @vscrollbar_policy: Vertical scrolling policy - * @width: Desired widget width, or -1 for default - * @height: Desired widget height, or -1 for default - * - * Add scrollbars to a widget - * - * Returns: (transfer full): A scrolled window with @child packed inside of it. - */ -GtkWidget *pidgin_make_scrollable(GtkWidget *child, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy, int width, int height); - G_END_DECLS #endif /* _PIDGINUTILS_H_ */
--- a/pidgin/plugins/spellchk.c Mon Aug 22 02:29:47 2022 -0500 +++ b/pidgin/plugins/spellchk.c Mon Aug 22 21:40:04 2022 -0500 @@ -2108,6 +2108,7 @@ get_config_frame(PurplePlugin *plugin) { GtkWidget *ret, *vbox; + GtkWidget *sw; GtkWidget *hbox; GtkWidget *button; GtkSizeGroup *sg; @@ -2181,10 +2182,14 @@ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)), GTK_SELECTION_MULTIPLE); - gtk_box_pack_start(GTK_BOX(vbox), - pidgin_make_scrollable(tree, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1), - TRUE, TRUE, 0); - gtk_widget_show(tree); + + sw = gtk_scrolled_window_new(); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, + GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), tree); + gtk_widget_set_vexpand(sw, TRUE); + gtk_widget_set_valign(sw, GTK_ALIGN_FILL); + gtk_box_append(GTK_BOX(vbox), sw); hbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);