Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Горизонтальный скролл в трассировке #595

Merged
merged 1 commit into from Dec 25, 2017

Conversation

smirnov-vs
Copy link
Collaborator

Основная проблема исходит из того, что нужно программно пересчитывать размер колонки, в которой находится трассировка. Как только пересчет произведен корректно, горизонтальный скролл автоматически начинает нормально работать.

Как логичное решение предлагается сделать пересчет размеров на событие resize. Однако, если так сделать, то скролл корректно масштабируется только если уменьшать размер окна, а когда начинаем увеличивать размер окна, то скролл исчезает.

Дебагом классов swt удалось выяснить, что внутренний диспатчер ивентов swt вызывает на каждый ресайз окна 2 события - одно нативное от layout'а, которое присваивает колонке ширину родителя т.е. всей таблицы (следовательно ширина фиксированная и скролл пропадает) и одно моё, которое я вызываю методом pack() на каждый ресайз окна. Причем, когда окно уменьшается, сначала вызывается нативный вызов, а затем мой, но когда окно увеличивается, происходит ровно наоборот и скролл исчезает, так как мой пересчет перекрывается неправильным нативным.

Как наиболее близкое событие к ресайзу я выбрал событие отрисовки контрола. Оно уже работает как часы)

@aurusov aurusov merged commit 34f5e57 into LeKaitoW:release/current Dec 25, 2017
@aurusov
Copy link
Collaborator

aurusov commented Dec 25, 2017

О, спасибо за код. Бонус проставил.

@smirnov-vs smirnov-vs deleted the feature/trace_hscroll branch December 25, 2017 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants