Hi all
The assumed window border sizes are hard-coded in tcl/pd-gui.tcl:
set ::windowframex 3 set ::windowframey 53
However, those values might not be correct on some systems. On my system (with fluxbox as a window manager) those values actually are 0 and 44. This leads to moving canvas: Whenever I save a patch, close and open it again, it shifts 9px up and 3px to the left. This shift even happens on each 'vis 0, vis 1' cycle sent to [s pd-canvasname].
This is actually not a Pd question: Is there a way to know the actual windowframe sizes in tcl/tk? Detecting the actual sizes would be the only real solution to this problem, I suppose.
Alternatively, is there a way to write a GUI plugin to put my adjustments into, so that I don't have to modify tcl/pd-gui.tcl after every Pd update? I - naively - tried to simply put this:
set ::windowframex 0 set ::windowframey 44
into ~/pd-externals/correct_windowframe-plugin.tcl. It seems to work so far, if I load patches from the file->open menu. When loading a patch from the command line, the wrong values still are used for the main patch. For all sub-sequent canvases (a.k.a subpatches of the main patch, abstractions of the main patch or sub-sequently opened patches), the correct values from the plugin are taken.
Another issue is the wrapping of the menu in narrow canvases. When I work in a patch that shows the menu in two lines, the offset increases by another 28px. This means that on each save/reload cycle (or 'vis 0, vis 1' cycle, for that matter) the canvas shifts up by 28px. Of course, it's not a really urgent problem, but still slightly annoying.
Roman