summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--area_windows.go12
-rw-r--r--todo.md2
2 files changed, 9 insertions, 5 deletions
diff --git a/area_windows.go b/area_windows.go
index 6ba1b0c..5f69b6c 100644
--- a/area_windows.go
+++ b/area_windows.go
@@ -255,10 +255,7 @@ func scrollArea(s *sysData, wparam _WPARAM, which uintptr) {
if r1 == _ERROR { // failure
panic(fmt.Errorf("error scrolling Area: %v", err))
}
- r1, _, err = _updateWindow.Call(uintptr(s.hwnd)) // ...and redraw it
- if r1 == 0 { // failure
- panic(fmt.Errorf("error updating Area after scrolling: %v", err))
- }
+ // ...but don't redraw the window yet; we need to apply our scroll changes
// we actually have to commit the change back to the scrollbar; otherwise the scroll position will merely reset itself
si.cbSize = uint32(unsafe.Sizeof(si))
@@ -268,6 +265,13 @@ func scrollArea(s *sysData, wparam _WPARAM, which uintptr) {
uintptr(s.hwnd),
which,
uintptr(unsafe.Pointer(&si)))
+
+ // NOW redraw it
+ r1, _, err = _updateWindow.Call(uintptr(s.hwnd))
+ if r1 == 0 { // failure
+ panic(fmt.Errorf("error updating Area after scrolling: %v", err))
+ }
+
// TODO in some cases wine will show a thumb one pixel away from the advance arrow button if going to the end; the values are correct though... weirdness in wine or something I never noticed about Windows?
}
diff --git a/todo.md b/todo.md
index 5ccbc4f..b6a6ef9 100644
--- a/todo.md
+++ b/todo.md
@@ -84,7 +84,7 @@ super ultra important things:
- the window background of a GTK+ window seems to be... off - I think it has to do with the GtkLayout
- see update 18 March 2014 in README
- resizing seems to be completely and totally broken in the Wayland backend
-- redrawing Areas on Windows seems to be flaky
+- redrawing Areas on Windows seems to be flaky: make the window small, scroll, then make it large again and watch the vertical corruption
- redrawing controls after a window resize on Windows seems to be flaky
- make sure the first and last rows and columns of an Area are being drawn on Windows
- clicking on Areas in GTK+ don't bring keyboard focus to them?