BlackBerry touchEvent fora do campo dispara fieldChanged

Estou com um problema em que, se pressionar / tocar fora de um campo, ofieldChanged() evento é acionado para o campo em foco.

O layout para o meuMainScreen é bem direto, algo assim:

public class myMainScreen extends MainScreen implements FieldChangeListener{

    public myMainScreen(){
        CustomFM1 fm1 = new CustomFM1();
        CustomFM2 fm2 = new CustomFM2();

        add(fm1);
        add(fm2);
    }

}

Se eu pressionar um botão / campo dentro deFieldManager Funciona bem. O problema é quando pressiono o espaço vazio. Então, se eu pressionar dentro do espaço vazio emfm2 eField dentrofm1 tinha foco, seu evento alterado no campo seria acionad

No momento, meu remédio é pegar otouchEvent e passe para o @ apropriaFieldManager. OtouchEvent para o meuCustomFM lidaria com a obtenção do campo e a chamada fieldChanged, se um campo fosse realmente pressionado

Então emmyMainScreen touchEvent parece com:

protected boolean touchEvent(TouchEvent message){

    int index = this.getFieldAtLocation(message.getX(1), message.getY(1));

    switch(index){

        case 0:
           fm1.touchEvent(message);
           break;       

        case 1:
           fm2.touchEvent(message);
           break;

    }

    return true;
}

E meutouchEvent para o meu CustomFM2 é.OFFSET é a posição superior y de fm2 em relação à tel

protected boolean touchEvent(TouchEvent message){

    switch(message.getEvent()){

    ... 

        case TouchEvent.UP:
            int index = this.getFieldAtLocation(message.getGlobalX(1), message.getGlobalY(1) - OFFSET);
            if(index != -1){
                Field field = getField(index);
                field.getChangeListener().fieldChanged(field, 0);

            }

            break;

    }

    return true;

}

O que eu quero saber é que, se houver uma solução mais fácil para isso? Estou esquecendo de algo

questionAnswers(3)

yourAnswerToTheQuestion