[PD] new patch position on windows xp
Martin Peach
martin.peach at sympatico.ca
Tue Jun 1 21:00:05 CEST 2010
Martin Peach wrote:
> Lorenzo wrote:
>> Alas, I must use Windows Xp as well... Anyway I have switched since
>> about two months to having the taskbar at the top of the screen,
>> meaning that when I create a new patch it is placed at absolute 0,0
>> "absolute" with the title-bar behind the taskbar (even with "always on
>> top" option). Any tcl/tk guru know of a hack in the pd.tk file to have
>> the new windows positioned at 0,0 "relative" to the taskbar or
>> alternatively just sligtly offset down?
>
> If it's Pd -extended, around line 395 of pd.tk:
>
> wm title . "Pd-extended"
> # initial location of Pd window (+x+y)
> wm geometry . +20+70
>
> I imagine that changing +20+70 would move the window.
>
Sorry, I missed the bit where you're creating new patchers, not the main
window.
It seems like the tcl function pdtk_canvas_new() is called only from the
c function canvas_vis() in g_editor.c:
sys_vgui("pdtk_canvas_new .x%lx %d %d +%d+%d %d\n", x,
(int)(x->gl_screenx2 - x->gl_screenx1),
(int)(x->gl_screeny2 - x->gl_screeny1),
(int)(x->gl_screenx1), (int)(x->gl_screeny1),
x->gl_edit);
The only place that gl_screenx2, gl_screeny2 are set is in glist_addglist():
x->gl_screenx1 = x->gl_screeny1 = 0;
x->gl_screenx2 = 450;
x->gl_screeny2 = 300;
So unless something else is going on, changing x_glscreeny1 should
offset new windows vertically.
So in pdtk_canvas_new, simply adding an offset to the second element of
geometry should work.
In pd.tk, line 1418 is for MacOSX:
if { $pd_nt == 2 && [lindex $geometry 2] < 22 } {
lset geometry 2 22
}
So if you add one like this right after it for WinXP:
if { $pd_nt == 1 && [lindex $geometry 2] < 55 } {
lset geometry 2 55
}
...then new patcher windows will be offset 55 downwards.
Martin
More information about the Pd-list
mailing list