Skip to content

Commit b5de3b0

Browse files
committed
bell: Restore configurability.
Previously cinnamon took a signal from MetaDisplay to ding the bell (when event-sounds were enabled). Now it's all contained in muffin, we lost the ability to configure the bell sound.
1 parent 74d1205 commit b5de3b0

File tree

4 files changed

+39
-5
lines changed

4 files changed

+39
-5
lines changed

src/core/bell.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ prefs_changed_callback (MetaPreference pref,
7575
g_signal_emit (bell, bell_signals[IS_AUDIBLE_CHANGED], 0,
7676
meta_prefs_bell_is_audible ());
7777
}
78+
else
79+
if (pref == META_PREF_BELL_SOUND)
80+
{
81+
g_clear_object (&bell->bell_sound_file);
82+
83+
bell->bell_sound_file = g_file_new_for_path (meta_prefs_get_bell_sound ());
84+
}
7885
}
7986

8087
static void
@@ -83,6 +90,7 @@ meta_bell_finalize (GObject *object)
8390
MetaBell *bell = META_BELL (object);
8491

8592
meta_prefs_remove_listener (prefs_changed_callback, bell);
93+
g_clear_object (&bell->bell_sound_file);
8694

8795
G_OBJECT_CLASS (meta_bell_parent_class)->finalize (object);
8896
}
@@ -108,6 +116,7 @@ static void
108116
meta_bell_init (MetaBell *bell)
109117
{
110118
meta_prefs_add_listener (prefs_changed_callback, bell);
119+
bell->bell_sound_file = g_file_new_for_path (meta_prefs_get_bell_sound ());
111120
}
112121

113122
MetaBell *
@@ -187,10 +196,10 @@ bell_audible_notify (MetaDisplay *display,
187196
MetaSoundPlayer *player;
188197

189198
player = meta_display_get_sound_player (display);
190-
meta_sound_player_play_from_theme (player,
191-
"bell-window-system",
192-
_("Bell event"),
193-
NULL);
199+
meta_sound_player_play_from_file (player,
200+
display->bell->bell_sound_file,
201+
_("Bell event"),
202+
NULL);
194203
return TRUE;
195204
}
196205

src/core/bell.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
struct _MetaBell
2424
{
2525
GObject parent;
26+
27+
GFile *bell_sound_file;
2628
};
2729

2830
#define META_TYPE_BELL (meta_bell_get_type ())

src/core/prefs.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ static MetaX11BackgroundTransition background_transition = META_X11_BACKGROUND_T
140140
static gboolean unredirect_fullscreen_windows = FALSE;
141141
static gboolean tile_maximize = FALSE;
142142
static char *gtk_theme = NULL;
143+
static char *bell_sound = NULL;
143144

144145
static void handle_preference_update_enum (GSettings *settings,
145146
gchar *key);
@@ -529,6 +530,14 @@ static MetaStringPreference preferences_string[] =
529530
NULL,
530531
&gtk_theme,
531532
},
533+
{
534+
{ "bell-sound",
535+
SCHEMA_GENERAL,
536+
META_PREF_BELL_SOUND,
537+
},
538+
NULL,
539+
&bell_sound,
540+
},
532541
{ { NULL, 0, 0 }, NULL },
533542
};
534543

@@ -1917,6 +1926,9 @@ meta_preference_to_string (MetaPreference pref)
19171926

19181927
case META_PREF_GTK_THEME:
19191928
return "GTK_THEME";
1929+
1930+
case META_PREF_BELL_SOUND:
1931+
return "BELL_SOUND";
19201932
}
19211933

19221934
return "(unknown)";
@@ -2435,3 +2447,9 @@ meta_prefs_get_min_win_opacity (void)
24352447
{
24362448
return min_window_opacity;
24372449
}
2450+
2451+
const char *
2452+
meta_prefs_get_bell_sound (void)
2453+
{
2454+
return bell_sound;
2455+
}

src/meta/prefs.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
* @META_PREF_DRAG_THRESHOLD: drag threshold
7070
* @META_PREF_LOCATE_POINTER: show pointer location
7171
* @META_PREF_GTK_THEME: gtk theme name
72+
* @META_PREF_BELL_SOUND: sound to use for audible event bell
7273
*/
7374

7475
/* Keep in sync with GSettings schemas! */
@@ -117,7 +118,8 @@ typedef enum
117118
META_PREF_MIN_WIN_OPACITY,
118119
META_PREF_MOUSE_ZOOM_ENABLED,
119120
META_PREF_TILE_MAXIMIZE,
120-
META_PREF_GTK_THEME
121+
META_PREF_GTK_THEME,
122+
META_PREF_BELL_SOUND
121123
} MetaPreference;
122124

123125
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
@@ -269,6 +271,9 @@ gboolean meta_prefs_get_workspace_cycle (void);
269271
META_EXPORT
270272
gint meta_prefs_get_min_win_opacity (void);
271273

274+
META_EXPORT
275+
const char* meta_prefs_get_bell_sound (void);
276+
272277
/**
273278
* MetaKeyBindingAction:
274279
* @META_KEYBINDING_ACTION_NONE: FILLME

0 commit comments

Comments
 (0)