The mvwm repository's master branch has been updated. The following shows the diffstat and patchsets between the merged result and HEAD.
commit 14856f2891498237e38d768ab0c8a56abdcf25a5 Author: Thomas Adam <[email protected]> Date: Fri Sep 12 00:03:13 2014 +0100 Rewrite fix of WarpToWindow. --- mvwm/focus.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/mvwm/focus.c b/mvwm/focus.c index 3c9f093..645a2e8 100644 --- a/mvwm/focus.c +++ b/mvwm/focus.c @@ -1212,22 +1212,11 @@ void CMD_WarpToWindow(F_CMD_ARGS) { int val1_unit, val2_unit, n; int val1, val2; - MvwmWindow * const fw = exc->w.fw; struct monitor *m; int do_raise; char *next; char *token; - if (fw != NULL) - { - m = fw->m; - } - else - { - /*!!!used on an unmanaged window, we need to determine that - * window's monitor here instead of using the default */ - m = monitor_get_current(); - } next = GetNextToken(action, &token); if (StrEquals(token, "!raise")) { @@ -1277,6 +1266,16 @@ void CMD_WarpToWindow(F_CMD_ARGS) { return; } + + /* TA: 2014-09-11: This window is unmanaged. Since + * mvwm won't have created a window for this, fw will be + * NULL and hence no monitor information will be + * present. Since we already know the coordinates of + * the unmanaged window, use those in determining the + * monitor to use. + */ + m = monitor_by_xy(wx, wy); + if (val1_unit != m->coord.w) { x = val1;
