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