Я работаю с приложением GTK3, которому нужны всегда видимые, всегда активные полосы прокрутки с видимыми степперами.Я смог добиться этого с помощью css:
scrollbar.hover,
scrollbar {
margin-left: 2px;
-GtkScrollbar-has-backward-stepper: 1;
-GtkScrollbar-has-forward-stepper: 1;
}
scrollbar trough {
min-width: 30px;
}
scrollbar button {
min-height: 30px;
min-width: 30px;
}
scrollbar.right slider {
min-height: 70px;
min-width: 30px;
}
вместе с этим кодом:
GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); //never horizontal, always vertical
g_object_set(sw, "overlay-scrolling", FALSE, NULL);
Однако установка overlay-scrolling
в FALSE
означает, чтополосы прокрутки расположены в стороне от окна GtkScrolledWindow, а не внутри него.Это вызывает проблемы с макетом приложения (унаследованное приложение, перенесенное из более ранней версии gtk).
Но если я включу прокрутку с наложением, полосы прокрутки будут скрыты через пару секунд без событий движенияthe GtkScolledWindow.
Я использовал GtkInspector, чтобы связываться со всем, что я могу, пытаясь отключить скрытие полос прокрутки, но безуспешно.
Хаком было бы установить таймер для продолжения отправки.Перемещение событий к окну, чтобы скрыть полосу прокрутки ... но это ужасно некрасиво.
Есть ли какой-нибудь совет, где найти секретный соус для отключения скрытия полосы прокрутки наложения?