On 10/04/2012 08:11 AM, Nicola Pandini wrote:
Il 04/10/2012 02:08, Simon Wise ha scritto:
On 04/10/12 04:07, Hans-Christoph Steiner wrote:
Sounds like this should actually be:
set x [ expr max($x % $screenwidth - $::windowframex, 0)] set y [ expr max($y % $screenheight - $::windowframey, 0)]
That would ensure that x and y are always>= 0. Does changing that in pdtk_canvas.tcl solve your issue?
The tricky part here is that this would then break how Pd strictly sets the position of existing patches based on the values on the first line of the patch file.
wouldn't that make it difficult to put the window outside the screen deliberately ... for example to hide the window decorations off-screen?
I have needed to use this a few times (when making the window properly fullscreen was not possible or appropriate), and it is sometimes a lot easier than trying to work out how to tell a particular window manager not to put decorations on a particular window.
Simon
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi Simon, with this:
if {$geometry == "+0+0"} { set x 0 set y 0 } else { set x [ expr $x % $screenwidth - $::windowframex] set y [ expr $y % $screenheight - $::windowframey] }
You'll keep the standard behaviour of Pd for all the saved patches, only the new ones are forced to be placed to coords 0,0.
Before this kind of change is included in Pd-extended or Pd, it'll need to be tested a lot on all platforms. That's why I never really tackled the issue of all the different WMs. I think a workable approach would be to isolate the bits that need to be changed for the different VMs and stick that into its own Tcl proc (function) while keeping the current logic.
Then it'll be easy to customize this logic without having to come up with the One True Way that will require lots and lots of testing and tweaking. If the above is really all that needs to change, then that can be put into its own proc.
.hc