On 10/09/2012 05:56 AM, Nicola Pandini wrote: > Il 06/10/2012 00:00, Hans-Christoph Steiner ha scritto: >> 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. > > You are right, I only wrote to Simon that he won't loose the possibility to > place a pd's window outside the screen. > >> 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. > > Ok, I'll make further tests to confirm the correct behaviour in OpenBox.
Ok, I split out this logic into its own proc, so now it should be easy to override with something like: rename pdtk_canvas_place_window pdtk_canvas_place_window_original proc pdtk_canvas_place_window {width height geometry} { # do your tricks here return [list $width $height ${width}x$height+$x+$y] } I also submitted it to Miller for inclusion in Vanilla. https://sourceforge.net/tracker/?func=detail&aid=3579630&group_id=55736&atid=478072 .hc _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list