summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2022-08-22 21:40:04 -0500
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2022-08-22 21:40:04 -0500
commitbf9544d4a12c637b4e94daef2e3b1ae37f671a4c (patch)
treec627a7aee9d12f445da92c2bb844ba71077d53b1
parent5ae2de0b4a8e95ec520be692e2b5adc9bc5e1935 (diff)
downloadpidgin-bf9544d4a12c637b4e94daef2e3b1ae37f671a4c.tar.gz
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/
-rw-r--r--ChangeLog.API1
-rw-r--r--pidgin/gtkblist.c14
-rw-r--r--pidgin/gtkrequest.c14
-rw-r--r--pidgin/gtkutils.c20
-rw-r--r--pidgin/gtkutils.h14
-rw-r--r--pidgin/plugins/spellchk.c13
6 files changed, 32 insertions, 44 deletions
diff --git a/ChangeLog.API b/ChangeLog.API
index f3d4f3770a..94d77ad334 100644
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -974,6 +974,7 @@ version 3.0.0 (??/??/????):
* 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
diff --git a/pidgin/gtkblist.c b/pidgin/gtkblist.c
index 78acfe892a..30ffbd7d2b 100644
--- a/pidgin/gtkblist.c
+++ b/pidgin/gtkblist.c
@@ -3075,7 +3075,7 @@ static void pidgin_blist_show(PurpleBuddyList *list)
{
GSimpleActionGroup *action_group = NULL;
void *handle;
- GtkWidget *sep;
+ GtkWidget *sep, *sw;
GtkEventController *key_controller = NULL;
GtkTreeSelection *selection;
@@ -3143,9 +3143,15 @@ static void pidgin_blist_show(PurpleBuddyList *list)
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);
diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c
index 2d3123896f..baf69c3d2b 100644
--- a/pidgin/gtkrequest.c
+++ b/pidgin/gtkrequest.c
@@ -1181,7 +1181,11 @@ create_string_field(PurpleRequestField *field)
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 @@ list_field_select_changed_cb(GtkTreeSelection *sel, PurpleRequestField *field)
static GtkWidget *
create_list_field(PurpleRequestField *field)
{
+ GtkWidget *sw;
GtkWidget *treeview;
GtkListStore *store;
GtkCellRenderer *renderer;
@@ -1540,7 +1545,12 @@ create_list_field(PurpleRequestField *field)
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*
diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c
index e52f06a341..2601ba2550 100644
--- a/pidgin/gtkutils.c
+++ b/pidgin/gtkutils.c
@@ -1109,23 +1109,3 @@ gboolean pidgin_auto_parent_window(GtkWidget *widget)
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;
-}
-
diff --git a/pidgin/gtkutils.h b/pidgin/gtkutils.h
index 6d1724ea00..905702ff2a 100644
--- a/pidgin/gtkutils.h
+++ b/pidgin/gtkutils.h
@@ -249,20 +249,6 @@ gboolean pidgin_auto_parent_window(GtkWidget *window);
*/
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_ */
diff --git a/pidgin/plugins/spellchk.c b/pidgin/plugins/spellchk.c
index 52076bc1fa..af14803429 100644
--- a/pidgin/plugins/spellchk.c
+++ b/pidgin/plugins/spellchk.c
@@ -2108,6 +2108,7 @@ static GtkWidget *
get_config_frame(PurplePlugin *plugin)
{
GtkWidget *ret, *vbox;
+ GtkWidget *sw;
GtkWidget *hbox;
GtkWidget *button;
GtkSizeGroup *sg;
@@ -2181,10 +2182,14 @@ get_config_frame(PurplePlugin *plugin)
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);