On Friday, December 17th, 2021 at 1:18 AM, Dominik Vogt <dominik.v...@gmx.de> wrote:
> When __pl_position_get_pos_simple() enconters a "center" argument > it replaces it with DEFAULT_PLACEMENT_POS_CENTER_STRING which is > defined to "screen $[w.screen] 50-50w 50-50w" as of commit id > 71c57858ffebdede86c2097464339b65b5742864: > > > PositionPlacement: include screen for Center > > When using "PositionPlacement Center", take into account the screen the > > window is on, so it's centered appropriately. > > Fixes #211 > This string is passed to GetMoveArguments() for interpretation. > However, $[w.screen] never gets expanded because that line is not > passed through the parser. FScreenGetScrRect() later looks for a > screen with the name "$[w.screen]", finds non and falls back to > the global monitor for placement (since a recent patch) but seems > to have used the "current" monitor before. > One way to fix this woud be to replace "$[w.screen]" with "c" for > the current screen, but that ignores the window's screen if > specified. Also, some places of the code expect screens specified > as "@g", " @c", "@p" while others use "g", "c" and "p". Are this latest examples for the "Move arguments"? G is global, c current, and p primary. I cannot find in docs what is the difference with or without '@'. Passing $[w.screen] to the parser is not an option in that part of the code? P. S. I'm too tired now. I will try to confirm tomorrow that it used 'c' before breaking explicit monitor placement in the current release. -- Miroslav