[PD-dev] More canvas position woes
reduzent at gmail.com
Fri Feb 1 23:34:09 CET 2013
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.
More information about the Pd-dev