~rohangarg/synaptic/bug1375786

« back to all changes in this revision

Viewing changes to gtk/rgmainwindow.cc

  • Committer: Michael Vogt
  • Date: 2014-03-18 19:58:18 UTC
  • Revision ID: michael.vogt@ubuntu.com-20140318195818-i4t22p2x3haq7yhr
change refreshTable() code to avoid "jumping" around on the 
screen when a package gets marked

Show diffs side-by-side

added added

removed removed

Lines of Context:
300
300
   _roptions->forgetNewPackages();
301
301
}
302
302
 
303
 
bool RGMainWindow::setTableAdjustmentWhenReady(gpointer data)
304
 
{
305
 
   RGMainWindow *me = (RGMainWindow *)data;
306
 
 
307
 
   GtkAdjustment *adj = gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(me->_treeView));
308
 
 
309
 
   gtk_adjustment_set_value(adj, me->v_adj_value);
310
 
   return FALSE;
311
 
}
312
 
 
313
303
void RGMainWindow::refreshTable(RPackage *selectedPkg, bool setAdjustment)
314
304
{
315
305
   if(_config->FindB("Debug::Synaptic::View",false))
324
314
      _lister->limitBySearch(str);
325
315
   }
326
316
 
327
 
   v_adj_value = gtk_adjustment_get_value(gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(_treeView)));
328
 
 
329
 
   _pkgList = GTK_TREE_MODEL(gtk_pkg_list_new(_lister));
330
 
   gtk_tree_view_set_model(GTK_TREE_VIEW(_treeView),
331
 
                           GTK_TREE_MODEL(_pkgList));
332
 
   if(setAdjustment) {
333
 
      // 25ms is arbitrary
334
 
      // we can't do it right here as the treeview adjustment is calculated 
335
 
      // delayed
336
 
      // when using idle_add we get ugly jumping around
337
 
      g_timeout_add(25, (GSourceFunc)setTableAdjustmentWhenReady, this);
 
317
   if(_pkgList == NULL)
 
318
   {
 
319
      _pkgList = GTK_TREE_MODEL(gtk_pkg_list_new(_lister));
 
320
      gtk_tree_view_set_model(GTK_TREE_VIEW(_treeView),
 
321
                              GTK_TREE_MODEL(_pkgList));
338
322
   }
339
323
 
340
 
 
 
324
#if 0
341
325
   // set selected pkg to be selected again
342
326
   if(selectedPkg != NULL) {
343
327
      GtkTreeIter iter;
366
350
      }
367
351
      gtk_tree_path_free(start);
368
352
   }
369
 
 
 
353
#endif
370
354
   setStatusText();
371
355
}
372
356