Go to the source code of this file.
Functions | |
| void | meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev) |
| Gives the user some kind of visual bell; in fact, this is our response to any kind of bell request, but we set it up so that we only get notified about visual bells, and X deals with audible ones. | |
| void | meta_bell_set_audible (MetaDisplay *display, gboolean audible) |
| Turns the bell to audible or visual. | |
| gboolean | meta_bell_init (MetaDisplay *display) |
| Initialises the bell subsystem. | |
| void | meta_bell_shutdown (MetaDisplay *display) |
| Shuts down the bell subsystem. | |
| void | meta_bell_notify_frame_destroy (MetaFrame *frame) |
| Deals with a frame being destroyed. | |
Sometimes, X programs "ring the bell", whatever that means. Metacity lets the user configure the bell to be audible or visible (aka visual), and if it's visual it can be configured to be frame-flash or fullscreen-flash. We never get told about audible bells; X handles them just fine by itself.
The visual bell was the result of a discussion in Bugzilla here: <http://bugzilla.gnome.org/show_bug.cgi?id=99886>.
Definition in file bell.h.
| gboolean meta_bell_init | ( | MetaDisplay * | display | ) |
Initialises the bell subsystem.
This involves intialising XKB (which, despite being a keyboard extension, is the place to look for bell notifications), then asking it to send us bell notifications, and then also switching off the audible bell if we're using a visual one ourselves.
Unlike most X extensions we use, we only initialise XKB here (rather than in main()). It's possible that XKB is not installed at all, but if that was known at build time we will have HAVE_XKB undefined, which will cause this function to be a no-op.
| display | The display which is opening |
Definition at line 298 of file bell.c.
References FALSE, meta_prefs_bell_is_audible(), NULL, TRUE, and _MetaDisplay::xdisplay.
| void meta_bell_notify | ( | MetaDisplay * | display, | |
| XkbAnyEvent * | xkb_ev | |||
| ) |
Gives the user some kind of visual bell; in fact, this is our response to any kind of bell request, but we set it up so that we only get notified about visual bells, and X deals with audible ones.
If the configure script found we had no XKB, this does not exist.
| display | The display the bell event came in on | |
| xkb_ev | The bell event we just received |
Definition at line 277 of file bell.c.
References bell_visual_notify(), and meta_prefs_get_visual_bell().
Referenced by event_callback().
| void meta_bell_notify_frame_destroy | ( | MetaFrame * | frame | ) |
Deals with a frame being destroyed.
This is important because if we're using a visual bell, we might be flashing the edges of the frame, and so we'd have a timeout function waiting ready to un-flash them. If the frame's going away, we can tell the timeout not to bother.
| frame | The frame which is being destroyed |
Definition at line 359 of file bell.c.
References _MetaFrame::is_flashing.
Referenced by meta_window_destroy_frame().
| void meta_bell_set_audible | ( | MetaDisplay * | display, | |
| gboolean | audible | |||
| ) |
Turns the bell to audible or visual.
This tells X what to do, but not Metacity; you will need to set the "visual bell" pref for that.
If the configure script found we had no XKB, this is a no-op.
| display | The display we're configuring | |
| audible | True for an audible bell, false for a visual bell |
Definition at line 287 of file bell.c.
References _MetaDisplay::xdisplay.
Referenced by prefs_changed_callback().
| void meta_bell_shutdown | ( | MetaDisplay * | display | ) |
Shuts down the bell subsystem.
| display | The display which is closing |
Definition at line 339 of file bell.c.
References _MetaDisplay::xdisplay.
1.5.5