---

** [bugs:#1238] scrollbars overlap canvas when patch is first opened**

**Status:** open
**Group:** v0.46
**Created:** Sun Apr 24, 2016 09:46 AM UTC by danomatika
**Last Updated:** Sun Apr 24, 2016 09:46 AM UTC
**Owner:** nobody
**Attachments:**

- [test2.pd](https://sourceforge.net/p/pure-data/bugs/1238/attachment/test2.pd) 
(137 Bytes; application/octet-stream)


Mac OSX 10.11.4, testing with Pd 0.46-4 & 0.47-0

I finally tracked down something that has annoyed me for a long time: when 
opening a patch, the canvas scrollbars will overlap objects on the bottom or 
right edge of the canvas window no matter how precise my alignment when I save 
the patch. Similarly, when you resize the canvas to something greater than the 
saved size, the scrollbars do not hide.

I poked around in pdtk_canvas.tcl and it looks like pdtk_canvas_getscroll is 
being called before the window has actually been sized. This means the initial 
call to show/hide the scrollbars uses a canvas window size of 1x1, so the 
scrollregion math results in a tiny scroll region and the scrollbars are always 
shown.

I put in some prints and get roughly the following when first opening the 
attached test.pd patch:

~~~~
window size: 1 1
canvas size: 462 304
xview: 0.0 0.0021645021645021645
yview: 0.0 0.003289473684210526
~~~~

A crude fix for testing is to basically filter out ridiculously tiny range 
values on lines 322:

~~~
if {[lindex [$tkcanvas xview] 0] == 0.0 && ([lindex [$tkcanvas xview] 1] == 1.0 
|| [lindex [$tkcanvas xview] 1] < 0.01)} {
~~~

and similarly with the yscrollbar on line 334, although this will fail with 
some window & canvas sizes so it's not the ideal fixes. I found this while 
paying with the attached test2.pd which shuld always open with scrollbars size 
the object is hidden to the lower right as the window size is smaller than the 
canvas size.

It seems to me like g_canvas should wait until the window exists *and* has been 
sized before doin it's initial call to pdtk_canvas_getscroll.


---

Sent from sourceforge.net because [email protected] is subscribed to 
https://sourceforge.net/p/pure-data/bugs/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/pure-data/admin/bugs/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Pd-dev mailing list
[email protected]
https://lists.puredata.info/listinfo/pd-dev

Reply via email to