Subject: sticky windows and changing desks

From: [email-masked] (Greg Klanderman)
Date: Wed, 25 Feb 1998 19:03:01 -0500 (EST)

When focus-follows-mouse is set and you're focused on a sticky window, 
changing desks results in no window having the focus, even though the
sticky window remains under the mouse.

The code in fvwm/virtual.c (function changeDesks) has a bit of code
commented out which as far as I can tell does the right thing.  There
is a cryptic comment indicating that it doesn't work.  If someone
could explain it I would greatly appreciate it.  The only thing I can
guess is that it might be buggy due to the variable StickyWin being
static in the function.  I uncommented the code and made StickyWin
non-static and it all seems to work right.  I can't see any problem
with sticky click-to-focus windows.  Am I missing something?

thank you for your time,
Greg

ps - Could you please include me directly in followups.  
     I am not on either list.  

Also, I sent a few patches last November and December and have not
heard anything.  Would it be possible to get some feedback as to
whether these have been accepted?

Finally, on your TODO list on the web you mention you'd like FvwmAuto
to be customizable on a per- window-{name,class..} basis.  I've got a
fvwmperl module that does this - its rather general.  If you'd like to 
include it I'd be happy to let you have it.

--- ../../.backups/virtual.c!!!proj!mstar!software!fvwm!fvwm-2.0.46!fvwm!.~1~	Thu Aug 14 16:21:17 1997
+++ virtual.c	Wed Feb 25 18:23:49 1998
@@ -442,7 +442,8 @@
 {
   int oldDesk;
   FvwmWindow *FocusWin = 0, *t;
-  static FvwmWindow *StickyWin = 0;
+  /* static below seems wrong.. -gk */
+  /* static */ FvwmWindow *StickyWin = 0;
 
   oldDesk = Scr.CurrentDesk;
 
@@ -514,8 +515,10 @@
    * focus-follows-mouse person, but put in one sticky click-to-focus window
    * (typically because you don't really want to give focus to this window),
    * then the following lines are screwed up. */
-/*  else if (StickyWin && (StickyWin->flags && STICKY))
-    SetFocus(StickyWin->w, StickyWin,1);*/
+
+  /* Uncommented next 2 lines - this seems totally reasonable... -gk */
+  else if (StickyWin && (StickyWin->flags && STICKY))
+    SetFocus(StickyWin->w, StickyWin,1);
   else
 #endif
     SetFocus(Scr.NoFocusWin,NULL,1);
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
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].