Mercurial > pidgin.yaz
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); |