Subject: CVS domivogt: * Workaround for pager desk switch problem.

From: CVS <[email-masked]>
Date: Sun, 23 Apr 2000 12:53:09 -0500 (CDT)

CVSROOT:	/home/cvs/fvwm
Module name:	fvwm
Changes by:	domivogt	00/04/23 12:53:09

Modified files:
	.              : ChangeLog 
	fvwm           : add_window.c virtual.c 
	libs           : Target.c 
	modules/FvwmPager: FvwmPager.c x_pager.c 

Log message:
* Workaround for pager desk switch problem.

--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Dominik Vogt <[email-masked]>
Date: Mon, 24 Apr 2000 13:33:38 +0200

On Mon, Apr 24, 2000 at 03:30:20AM +0300, Mikhael Goikhman wrote:
> On 23 Apr 2000 12:53:09 -0500, CVS wrote:
> > 
> > CVSROOT:	/home/cvs/fvwm
> > Module name:	fvwm
> Even with this workaround I still can easily reproduce sticky windows
> migrating to the top of the stacking order after switching desks.

Are you *sure* you're using the new code?  In virtual.c,
around line 963 you should see this code:

    for (t = Scr.FvwmRoot.next; t != NULL; t = t->next)
    {
      if (IS_STICKY(t) || (IS_ICONIFIED(t) && IS_ICON_STICKY(t)))
      {
    /* FIXME: domivogt (22-Apr-2000): Fake a 'restack' for sticky window
     * upon desk change.  This is a workaround for a problem in FvwmPager:
     * The pager has a separate 'root' window for each desk.  If the active
     * desk changes, the pager destroys sticky mini windows and creates new
     * ones in the other desktop 'root'.  But the pager can't know where to
     * stack them.  So we have to tell it ecplicitly where they go :-(
     * This should be fixed in the pager, but right now the pager doesn't
     * maintain the stacking order. */
    BroadcastRestackThisWindow(t);
      }
    }

Is it there?  Did you really install the new executable?
You *can't* still have the problem if this code has been
compiled.

Bye

Dominik ^_^

--
Dominik Vogt, [email-masked]
Reply-To: [email-masked]
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Mikhael Goikhman <[email-masked]>
Date: Tue, 25 Apr 2000 00:39:38 +0300

> You *can't* still have the problem if this code has been

Yes, I am sure. I would not make this comment without tripple checking
(including watching your added lines in virtual.c). :)

After some investigating, I have find the problem. If you change desks
with Desk command, it really works (around), but if you change desks using
multidesk pager, these lines are not even executed, because it doesn't
pass "if (Scr.CurrentDesk != desk)" check.

This reminds me also about still pending (AFAIK) problem with M_NEW_PAGE
holding an old (or current, whatever) desk number instead of the new one.

Regards,
Mikhael.