The body of this if runs when an FFC that was being dragged is dropped:

Code:
	if((ffx != offx) || (ffy != offy))
	{
		auto set_ffc_data = set_ffc_command::create_data(Map.CurrScr()->ffcs[i]);
		set_ffc_data.x = ffx;
		set_ffc_data.y = ffy;
		Map.DoSetFFCCommand(Map.getCurrMap(), Map.getCurrScr(), i, set_ffc_data);
		saved = false;
	}
Subtracting constants from ffx and ffy in the set_ffc_data.{x,y} assigments does result in FFCs straddling the north and west screen edges.