[PD] Pd-extended 0.43 and Openbox

Hans-Christoph Steiner hans at at.or.at
Wed Oct 24 06:06:27 CEST 2012


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 at 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



More information about the Pd-list mailing list