Subject: re: fix for 2.5.4 xview

From: Elliot Sowadsky <[email-masked]>
Date: Sat, 16 Nov 2002 22:35:11 -0800 (PST)

< From elliot Sat Nov 16 00:37:22 2002
< To: [email-masked]
< Subject: re: fix for 2.5.4 xview
< 
< <<
< > During this time (key held down), a mouse click should not cause
< > a change in focus.  2.5.3 and prior didnt not cause change in
< > focus. 2.5.4 does.
< 
< Finally, I think I understand what your problem is.  How am I
< supposed to know that you have configured your paste key as a
< *modifier* key?  The behaviour you describe is 100% correct, exect
< for modifier key.  I can take care of this.
< >>

It would seem that reinserting the 2.5.3 focus.c "for loop" brings back the
working 2.5.3 L8 (Paste) behavior.

static void __focus_grab_one_button(
	FvwmWindow *fw, int button, int grab_buttons)
{
	Bool do_grab;
	unsigned int mods;
	unsigned int max = GetUnusedModifiers();
	unsigned int living_modifiers = ~max;

	do_grab = (grab_buttons & (1 << button));
	if ((do_grab & (1 << button)) == (fw->grabbed_buttons & (1 << button)))
	{
		return;
	}

	/* handle all bindings for the dead modifiers */
	for (mods = 0; mods <= max; mods++)
	{
		/* Since mods starts with 1 we don't need to test if
		 * mods contains a dead modifier. Otherwise both, dead
		 * and living modifiers would be zero ==> mods == 0 */
		if (mods & living_modifiers)
		{
			continue;
		}
		if (do_grab)
		{
			XGrabButton(
				dpy, button + 1, mods, FW_W_PARENT(fw), True,
				ButtonPressMask, GrabModeSync, GrabModeAsync,
				None, None);
			/* Set window flags accordingly as we grab or ungrab. */
			fw->grabbed_buttons |= (1 << button);
		}
		else
		{
			XUngrabButton(dpy, button + 1, mods, FW_W_PARENT(fw));
			fw->grabbed_buttons &= ~(1 << button);
		}
	}

	return;
}
--
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]