comparison src/gtkplugin.c @ 11877:f1f7c83d7b6c

[gaim-migrate @ 14168] Automatically scrolls the plugin list if so the Details pane doesn't come up and cover the newly selected plugin. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Fri, 28 Oct 2005 21:41:20 +0000
parents 6539e6aa8ae6
children 06ca284a395c
comparison
equal deleted inserted replaced
11876:664e2fee9923 11877:f1f7c83d7b6c
212 212
213 gtk_tree_path_free(path); 213 gtk_tree_path_free(path);
214 gaim_gtk_plugins_save(); 214 gaim_gtk_plugins_save();
215 } 215 }
216 216
217 static gboolean ensure_plugin_visible(void *data)
218 {
219 GtkTreeSelection *sel = GTK_TREE_SELECTION(data);
220 GtkTreeView *tv = gtk_tree_selection_get_tree_view(sel);
221 GtkTreeModel *model = gtk_tree_view_get_model(tv);
222 GtkTreePath *path;
223 GtkTreeIter iter;
224 if (!gtk_tree_selection_get_selected (sel, &model, &iter))
225 return FALSE;
226 path = gtk_tree_model_get_path(model, &iter);
227 gtk_tree_view_scroll_to_cell(gtk_tree_selection_get_tree_view(sel), path, NULL, FALSE, 0, 0);
228 gtk_tree_path_free(path);
229 return FALSE;
230 }
231
217 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) 232 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model)
218 { 233 {
219 gchar *buf, *pname, *pdesc, *pauth, *pweb; 234 gchar *buf, *pname, *pdesc, *pauth, *pweb;
220 GtkTreeIter iter; 235 GtkTreeIter iter;
221 GValue val = { 0, }; 236 GValue val = { 0, };
253 && GAIM_GTK_PLUGIN_UI_INFO(plug)->get_config_frame) 268 && GAIM_GTK_PLUGIN_UI_INFO(plug)->get_config_frame)
254 || (plug->info->prefs_info 269 || (plug->info->prefs_info
255 && plug->info->prefs_info->get_plugin_pref_frame))); 270 && plug->info->prefs_info->get_plugin_pref_frame)));
256 271
257 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); 272 gtk_label_set_markup(GTK_LABEL(plugin_details), buf);
273
274 /* Make sure the selected plugin is still visible */
275 g_idle_add(ensure_plugin_visible, sel);
276
277
258 g_value_unset(&val); 278 g_value_unset(&val);
259 g_free(buf); 279 g_free(buf);
260 g_free(pname); 280 g_free(pname);
261 g_free(pdesc); 281 g_free(pdesc);
262 g_free(pauth); 282 g_free(pauth);