bell.h File Reference

Ring the bell or flash the screen. More...

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.


Detailed Description

Ring the bell or flash the screen.

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.


Function Documentation

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.

Parameters:
display The display which is opening
Bug:
There is a line of code that's never run that tells XKB to reset the bell status after we quit. Bill H said (<http://bugzilla.gnome.org/show_bug.cgi?id=99886#c12>) that XFree86's implementation is broken so we shouldn't call it, but that was in 2002. Is it working now?

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
display The display which is closing
Bug:
This is never called! If we had XkbSetAutoResetControls enabled in meta_bell_init(), this wouldn't be a problem, but we don't.

Definition at line 339 of file bell.c.

References _MetaDisplay::xdisplay.


Generated on Sat Aug 23 22:04:19 2008 for metacity by  doxygen 1.5.5