On Thu, Dec 16, 2021 at 04:23:35PM +0000, Hegel3DReloaded wrote:
> I have opened an issue about PositionPlacement Center style: after
> the recent changes, in multi monitor mode, this centers window
> split between left and right monitor, while with latest fvwm3
> release, this was not the case. Using dv/pager-noaspect where the
> current issues have been resolved couple days ago. It is
> repeatable on the current master.

Actually that never worked, it only looked like it did - by
accident.

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".

Ciao

Dominik ^_^  ^_^

--

Dominik Vogt

Reply via email to