Контейнер GtkScrolledWindow отправляет своему дочернему элементу распределение размера с отрицательной координатой

Я портирую пользовательский виджет Gtk+ с Gtk2 на Gtk3 и наблюдаю, что с последним я получаю вызовы size_allocation от родительского виджета (GtkScrolledWindow), которые имеют allocation с отрицательной координатой Y.

Это заставляет мой виджет сходить с ума и делать глупости. Если я игнорирую вызовы, которые содержат отрицательные координаты, все, кажется, работает нормально.

Итак, вопросы:

  • Это ошибка GTK?
  • Если нет, то при каких обстоятельствах родитель должен отправлять отрицательные координаты?
  • Почему это происходит в GTK3, а не в GTK2?

Это происходит как с gtk+ 3.6.4 (который входит в Ubuntu 13.04), так и с 3.8 (Ubuntu 13.10). Скоро протестирую более высокую версию.

1 ответ

Решение

Оказывается, проблема была в том, как виджет модифицировал свои значения GtkAdjustment, необходимые для реализации Scrollable GInterface.

Кажется, это происходит из-за того, что Gtk3 кажется гораздо более "либеральным" в принятии странных ценностей. Прочитайте всю историю в сообщении фиксации об ошибке (с открытым исходным кодом, да!).

Другие вопросы по тегам