aboutsummaryrefslogtreecommitdiffstats
path: root/gterm.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2019-05-23 22:44:29 +0200
committerGerd Hoffmann <kraxel@redhat.com>2019-05-23 22:44:29 +0200
commitda55132dbdf254816ba03f9bdcaad966d504b17d (patch)
treed1eaffd4fbbe1c5bdb89a8ceacc701c478289db5 /gterm.c
parentf4de62e8152a72e7fd4d78b5b190585ed7a2308d (diff)
downloadgterm-da55132dbdf254816ba03f9bdcaad966d504b17d.tar.gz
make bell rumtime-switchable
Diffstat (limited to 'gterm.c')
-rw-r--r--gterm.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/gterm.c b/gterm.c
index c25cba7..5f073c6 100644
--- a/gterm.c
+++ b/gterm.c
@@ -136,6 +136,7 @@ typedef struct gterm {
GtkWidget *popup;
GtkWidget *fullscreen;
+ GtkWidget *bell;
GKeyFile *cfg;
GPid pid;
@@ -235,6 +236,7 @@ static void gterm_vte_configure(gterm *gt)
char *fontsize;
char *str;
gterm_bool b;
+ gboolean state;
GdkRGBA color;
unsigned int cols, rows;
@@ -272,12 +274,14 @@ static void gterm_vte_configure(gterm *gt)
b = gterm_cfg_get_bool(gt->cfg, GTERM_CFG_KEY_VISUAL_BELL);
if (b == GTERM_BOOL_TRUE) {
- vte_terminal_set_audible_bell(VTE_TERMINAL(gt->terminal),
- false);
+ state = false;
} else if (b == GTERM_BOOL_FALSE) {
- vte_terminal_set_audible_bell(VTE_TERMINAL(gt->terminal),
- true);
+ state = true;
+ } else {
+ state = vte_terminal_get_audible_bell(VTE_TERMINAL(gt->terminal));
}
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gt->bell), state);
+ vte_terminal_set_audible_bell(VTE_TERMINAL(gt->terminal), state);
str = gterm_cfg_get(gt->cfg, GTERM_CFG_KEY_CURSOR_COLOR);
if (str) {
@@ -310,6 +314,16 @@ static void gterm_menu_fullscreen(GtkCheckMenuItem *item,
}
}
+static void gterm_menu_bell(GtkCheckMenuItem *item,
+ gpointer user_data)
+{
+ gterm *gt = user_data;
+ gboolean state;
+
+ state = gtk_check_menu_item_get_active(item);
+ vte_terminal_set_audible_bell(VTE_TERMINAL(gt->terminal), state);
+}
+
static void gterm_fill_menu(gterm *gt)
{
// GtkWidget *item;
@@ -319,6 +333,11 @@ static void gterm_fill_menu(gterm *gt)
G_CALLBACK(gterm_menu_fullscreen), gt);
gtk_container_add(GTK_CONTAINER(gt->popup), gt->fullscreen);
+ gt->bell = gtk_check_menu_item_new_with_label("Audible bell");
+ g_signal_connect(G_OBJECT(gt->bell), "toggled",
+ G_CALLBACK(gterm_menu_bell), gt);
+ gtk_container_add(GTK_CONTAINER(gt->popup), gt->bell);
+
gtk_widget_show_all(gt->popup);
}