I hate to pass the buck here, but it seems like this is unlikely to be a GPM bug. The function gpm_button_filter_x_events is set up as a callback from X sending an event. Since it is getting the keypress in that case, I would have to believe that X is continuing to send it. Either that or GDK.
Could you capture the output of xev when pressing the suspend button. This would show whether X is sending the event continually or not.
I hate to pass the buck here, but it seems like this is unlikely to be a GPM bug. The function gpm_button_ filter_ x_events is set up as a callback from X sending an event. Since it is getting the keypress in that case, I would have to believe that X is continuing to send it. Either that or GDK.
Could you capture the output of xev when pressing the suspend button. This would show whether X is sending the event continually or not.