Comment 7 for bug 350909

Revision history for this message
Filipe Sousa (natros) wrote :

cpu is 100%
it's hard to me to figure where the problem is.

after some debuging i found that execution is not returning from
gtk_scrolled_window_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
gtk+2.0-2.16.0/gtk/gtkscrolledwindow.c:1337

more precisely the do while loop where previous_hvis = 1 and previous_vvis = 1

   │1416 do │
   │1417 { │
  >│1418 gtk_scrolled_window_relative_allocation (widget, &relative_allocation); │
   │1419 │
   │1420 child_allocation.x = relative_allocation.x + allocation->x; │
   │1421 child_allocation.y = relative_allocation.y + allocation->y; │
   │1422 child_allocation.width = relative_allocation.width; │
   │1423 child_allocation.height = relative_allocation.height; │
   │1424 │
   │1425 previous_hvis = scrolled_window->hscrollbar_visible; │
   │1426 previous_vvis = scrolled_window->vscrollbar_visible; │
   │1427 │
   │1428 gtk_widget_size_allocate (bin->child, &child_allocation); │
   │1429 │
   │1430 /* If, after the first iteration, the hscrollbar and the │
   │1431 * vscrollbar flip visiblity, then we need both. │
   │1432 */ │
   │1433 if (count && │
   │1434 previous_hvis != scrolled_window->hscrollbar_visible && │
   │1435 previous_vvis != scrolled_window->vscrollbar_visible) │
   │1436 { │
   │1437 scrolled_window->hscrollbar_visible = TRUE; │
   │1438 scrolled_window->vscrollbar_visible = TRUE; │
   │1439 │
   │1440 /* a new resize is already queued at this point, │
   │1441 * so we will immediatedly get reinvoked │
   │1442 */ │
   │1443 return; │
   │1444 } │
   │1445 │
   │1446 count++; │
   │1447 } │
   │1448 while (previous_hvis != scrolled_window->hscrollbar_visible || │
   │1449 previous_vvis != scrolled_window->vscrollbar_visible);