aboutsummaryrefslogtreecommitdiffhomepage
path: root/gtk/PlatGTK.cxx
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2011-05-01 14:28:53 +1000
committernyamatongwe <devnull@localhost>2011-05-01 14:28:53 +1000
commitd761113ab94170618e21feadb37b93780cdea1f9 (patch)
tree55466462cb06403219eaa24cef258e0d32a5be65 /gtk/PlatGTK.cxx
parent2223f7e050c80fa0563ce9e4dd36cb63b38b4912 (diff)
downloadscintilla-mirror-d761113ab94170618e21feadb37b93780cdea1f9.tar.gz
Use accessor function for adjustments and scrollbars for GTK+ 3.
Diffstat (limited to 'gtk/PlatGTK.cxx')
-rw-r--r--gtk/PlatGTK.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx
index 9891bd4e0..a89b1e4f5 100644
--- a/gtk/PlatGTK.cxx
+++ b/gtk/PlatGTK.cxx
@@ -2501,9 +2501,13 @@ void ListBoxX::Select(int n) {
int total = Length();
GtkAdjustment *adj =
gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(list));
+#if GTK_CHECK_VERSION(3,0,0)
+ gfloat value = ((gfloat)n / total) * (gtk_adjustment_get_upper(adj) - gtk_adjustment_get_lower(adj))
+ + gtk_adjustment_get_lower(adj) - gtk_adjustment_get_page_size(adj) / 2;
+#else
gfloat value = ((gfloat)n / total) * (adj->upper - adj->lower)
+ adj->lower - adj->page_size / 2;
-
+#endif
// Get cell height
int row_width;
int row_height;
@@ -2522,8 +2526,13 @@ void ListBoxX::Select(int n) {
}
// Clamp it.
value = (value < 0)? 0 : value;
+#if GTK_CHECK_VERSION(3,0,0)
+ value = (value > (gtk_adjustment_get_upper(adj) - gtk_adjustment_get_page_size(adj)))?
+ (gtk_adjustment_get_upper(adj) - gtk_adjustment_get_page_size(adj)) : value;
+#else
value = (value > (adj->upper - adj->page_size))?
(adj->upper - adj->page_size) : value;
+#endif
// Set it.
gtk_adjustment_set_value(adj, value);