GNOME Bugzilla – Bug 322032
permanent visual bell hangs metacity
Last modified: 2006-01-20 22:27:29 UTC
Distribution/Version: SuSE Linux 10.0 + supplementary GNOME 2.12.1 How to reproduce: 1. Set single window visual bell 2. while : ; do echo -en '\007' ; done Actual behavior: metacity stops responding Related: bug 170006
Created attachment 57073 [details] [review] Don't respond to visual bells more than once per second Wow, that was really annoying. I had to run a couple different killall's after sshing in from my laptop to recover. Anyway, also fixes bug 170006 since the rate limiting isn't specific to the flashing type.
Comment on attachment 57073 [details] [review] Don't respond to visual bells more than once per second If inserting parens around time1/time2 in the time_is_before macro, should probably do it for all occurrences of time1/time2 in the macro. I think the static variable feels ugly, and also wouldn't we want to rate limit audible bell too? I would think the last bell time should go in the display object, and we should filter out the bell event completely (don't handle it either audible or visible)
Perhaps I'm being dense, but I don't see what you mean by filtering out the audible bell since we I don't see where we handle it. It does look like we're instructing XKB to turn the audible bell off when we turn the visible bell on, but isn't that the limit of what we do. Wasn't helped by the fact that I had a hard time finding documentation for XKB functions...have any helpful pointers? Adding extra parens in the macro and moving to display all seem fine. I'm just not sure what you want or mean in regards to the audible bell.
I thought we did do the audible bell, in order to get a better sound than the PC speaker beep. I guess I was thinking of some patch or bug and not actual code.
Ah, ok, makes more sense now. And now that you put it in those terms, a quick bugzilla query makes me think that you probably had bug 315859 in mind...sound right?
Created attachment 57193 [details] [review] Add parentheses, move code to display.c, replace static var with entry in MetaDisplay I think this covers everything you suggested. Did I miss anything?