diff --git a/AUTHORS b/AUTHORS
index ab4fa93..87d85c1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -22,5 +22,5 @@ Contributors:
Marcelo Vianna : taskbar sorting
Xico Atelo : startup notifications
Craig Oakes : WM flags, issue tracker organization
-
+ Jeff Blake (https://gitlab.com/u/berkley4) : more mouse event handlers
diff --git a/src/tint2conf/properties.c b/src/tint2conf/properties.c
index ad3eebf..4e4b678 100644
--- a/src/tint2conf/properties.c
+++ b/src/tint2conf/properties.c
@@ -84,6 +84,7 @@ GtkWidget *task_iconified_color, *task_iconified_color_set,
// clock
GtkWidget *clock_format_line1, *clock_format_line2, *clock_tmz_line1, *clock_tmz_line2;
GtkWidget *clock_left_command, *clock_right_command;
+GtkWidget *clock_mclick_command, *clock_rclick_command, *clock_uwheel_command, *clock_dwheel_command;
GtkWidget *clock_padding_x, *clock_padding_y, *clock_font_line1, *clock_font_line2, *clock_font_color;
GtkWidget *clock_background;
@@ -91,6 +92,7 @@ GtkWidget *clock_background;
GtkWidget *battery_hide_if_higher, *battery_alert_if_lower, *battery_alert_cmd;
GtkWidget *battery_padding_x, *battery_padding_y, *battery_font_line1, *battery_font_line2, *battery_font_color;
GtkWidget *battery_background;
+GtkWidget *battery_left_command, *battery_mclick_command, *battery_right_command, *battery_uwheel_command, *battery_dwheel_command;
// systray
GtkWidget *systray_icon_order, *systray_padding_x, *systray_padding_y, *systray_spacing;
@@ -3316,7 +3318,7 @@ void create_clock(GtkWidget *parent)
gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(parent), label, FALSE, FALSE, 0);
- table = gtk_table_new(2, 10, FALSE);
+ table = gtk_table_new(5, 10, FALSE);
gtk_widget_show(table);
gtk_box_pack_start(GTK_BOX(parent), table, FALSE, FALSE, 0);
gtk_table_set_row_spacings(GTK_TABLE(table), ROW_SPACING);
@@ -3352,6 +3354,51 @@ void create_clock(GtkWidget *parent)
gtk_tooltips_set_tip(tooltips, clock_right_command,
_("Specifies a command that will be executed when the clock receives a right click."), NULL);
+ row++, col = 2;
+ label = gtk_label_new(_("Middle click command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ clock_mclick_command = gtk_entry_new();
+ gtk_widget_show(clock_mclick_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(clock_mclick_command), 50);
+ gtk_table_attach(GTK_TABLE(table), clock_mclick_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, clock_mclick_command,
+ _("Specifies a command that will be executed when the clock receives a middle click."), NULL);
+
+ row++, col = 2;
+ label = gtk_label_new(_("Wheel scroll up command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ clock_uwheel_command = gtk_entry_new();
+ gtk_widget_show(clock_uwheel_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(clock_uwheel_command), 50);
+ gtk_table_attach(GTK_TABLE(table), clock_uwheel_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, clock_uwheel_command,
+ _("Specifies a command that will be executed when the clock receives a mouse scroll up."), NULL);
+
+ row++, col = 2;
+ label = gtk_label_new(_("Wheel scroll down command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ clock_dwheel_command = gtk_entry_new();
+ gtk_widget_show(clock_dwheel_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(clock_dwheel_command), 50);
+ gtk_table_attach(GTK_TABLE(table), clock_dwheel_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, clock_dwheel_command,
+ _("Specifies a command that will be executed when the clock receives a mouse scroll down."), NULL);
+
change_paragraph(parent);
label = gtk_label_new(_("Appearance"));
@@ -3769,6 +3816,95 @@ void create_battery(GtkWidget *parent)
change_paragraph(parent);
+ label = gtk_label_new(_("Mouse events"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(parent), label, FALSE, FALSE, 0);
+
+ table = gtk_table_new(5, 10, FALSE);
+ gtk_widget_show(table);
+ gtk_box_pack_start(GTK_BOX(parent), table, FALSE, FALSE, 0);
+ gtk_table_set_row_spacings(GTK_TABLE(table), ROW_SPACING);
+ gtk_table_set_col_spacings(GTK_TABLE(table), COL_SPACING);
+ row = 0, col = 2;
+
+ label = gtk_label_new(_("Left click command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ battery_left_command = gtk_entry_new();
+ gtk_widget_show(battery_left_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(battery_left_command), 50);
+ gtk_table_attach(GTK_TABLE(table), battery_left_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, battery_left_command,
+ _("Specifies a command that will be executed when the battery receives a left click."), NULL);
+
+ row++, col = 2;
+ label = gtk_label_new(_("Right click command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ battery_right_command = gtk_entry_new();
+ gtk_widget_show(battery_right_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(battery_right_command), 50);
+ gtk_table_attach(GTK_TABLE(table), battery_right_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, battery_right_command,
+ _("Specifies a command that will be executed when the battery receives a right click."), NULL);
+
+ row++, col = 2;
+ label = gtk_label_new(_("Middle click command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ battery_mclick_command = gtk_entry_new();
+ gtk_widget_show(battery_mclick_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(battery_mclick_command), 50);
+ gtk_table_attach(GTK_TABLE(table), battery_mclick_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, battery_mclick_command,
+ _("Specifies a command that will be executed when the battery receives a middle click."), NULL);
+
+ row++, col = 2;
+ label = gtk_label_new(_("Wheel scroll up command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ battery_uwheel_command = gtk_entry_new();
+ gtk_widget_show(battery_uwheel_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(battery_uwheel_command), 50);
+ gtk_table_attach(GTK_TABLE(table), battery_uwheel_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, battery_uwheel_command,
+ _("Specifies a command that will be executed when the battery receives a mouse scroll up."), NULL);
+
+ row++, col = 2;
+ label = gtk_label_new(_("Wheel scroll down command"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ gtk_widget_show(label);
+ gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+
+ battery_dwheel_command = gtk_entry_new();
+ gtk_widget_show(battery_dwheel_command);
+ gtk_entry_set_width_chars(GTK_ENTRY(battery_dwheel_command), 50);
+ gtk_table_attach(GTK_TABLE(table), battery_dwheel_command, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
+ col++;
+ gtk_tooltips_set_tip(tooltips, battery_dwheel_command,
+ _("Specifies a command that will be executed when the battery receives a mouse scroll down."), NULL);
+
+ change_paragraph(parent);
+
label = gtk_label_new(_("Appearance"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
diff --git a/src/tint2conf/properties.h b/src/tint2conf/properties.h
index c299abe..268b20d 100644
--- a/src/tint2conf/properties.h
+++ b/src/tint2conf/properties.h
@@ -87,6 +87,7 @@ extern GtkWidget *task_iconified_color, *task_iconified_color_set,
// clock
extern GtkWidget *clock_format_line1, *clock_format_line2, *clock_tmz_line1, *clock_tmz_line2;
extern GtkWidget *clock_left_command, *clock_right_command;
+extern GtkWidget *clock_mclick_command, *clock_rclick_command, *clock_uwheel_command, *clock_dwheel_command;
extern GtkWidget *clock_padding_x, *clock_padding_y, *clock_font_line1, *clock_font_line2, *clock_font_color;
extern GtkWidget *clock_background;
@@ -94,6 +95,7 @@ extern GtkWidget *clock_background;
extern GtkWidget *battery_hide_if_higher, *battery_alert_if_lower, *battery_alert_cmd;
extern GtkWidget *battery_padding_x, *battery_padding_y, *battery_font_line1, *battery_font_line2, *battery_font_color;
extern GtkWidget *battery_background;
+extern GtkWidget *battery_left_command, *battery_mclick_command, *battery_right_command, *battery_uwheel_command, *battery_dwheel_command;
// systray
extern GtkWidget *systray_icon_order, *systray_padding_x, *systray_padding_y, *systray_spacing;
diff --git a/src/tint2conf/properties_rw.c b/src/tint2conf/properties_rw.c
index 5f958bb..ab75c1a 100644
--- a/src/tint2conf/properties_rw.c
+++ b/src/tint2conf/properties_rw.c
@@ -548,6 +548,9 @@ void config_write_clock(FILE *fp)
fprintf(fp, "clock_tooltip_timezone = %s\n", gtk_entry_get_text(GTK_ENTRY(clock_tmz_tooltip)));
fprintf(fp, "clock_lclick_command = %s\n", gtk_entry_get_text(GTK_ENTRY(clock_left_command)));
fprintf(fp, "clock_rclick_command = %s\n", gtk_entry_get_text(GTK_ENTRY(clock_right_command)));
+ fprintf(fp, "clock_mclick_command = %s\n", gtk_entry_get_text(GTK_ENTRY(clock_mclick_command)));
+ fprintf(fp, "clock_uwheel_command = %s\n", gtk_entry_get_text(GTK_ENTRY(clock_uwheel_command)));
+ fprintf(fp, "clock_dwheel_command = %s\n", gtk_entry_get_text(GTK_ENTRY(clock_dwheel_command)));
fprintf(fp, "\n");
}
@@ -573,6 +576,11 @@ void config_write_battery(FILE *fp)
(int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(battery_padding_y)));
fprintf(fp, "battery_background_id = %d\n", gtk_combo_box_get_active(GTK_COMBO_BOX(battery_background)));
fprintf(fp, "battery_hide = %d\n", (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(battery_hide_if_higher)));
+ fprintf(fp, "battery_lclick_command = %s\n", gtk_entry_get_text(GTK_ENTRY(battery_left_command)));
+ fprintf(fp, "battery_rclick_command = %s\n", gtk_entry_get_text(GTK_ENTRY(battery_right_command)));
+ fprintf(fp, "battery_mclick_command = %s\n", gtk_entry_get_text(GTK_ENTRY(battery_mclick_command)));
+ fprintf(fp, "battery_uwheel_command = %s\n", gtk_entry_get_text(GTK_ENTRY(battery_uwheel_command)));
+ fprintf(fp, "battery_dwheel_command = %s\n", gtk_entry_get_text(GTK_ENTRY(battery_dwheel_command)));
fprintf(fp, "\n");
}
@@ -935,6 +943,21 @@ void add_entry(char *key, char *value)
else
gtk_spin_button_set_value(GTK_SPIN_BUTTON(battery_hide_if_higher), atoi(value));
}
+ else if (strcmp(key, "battery_lclick_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(battery_left_command), value);
+ }
+ else if (strcmp(key, "battery_rclick_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(battery_right_command), value);
+ }
+ else if (strcmp(key, "battery_mclick_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(battery_mclick_command), value);
+ }
+ else if (strcmp(key, "battery_uwheel_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(battery_uwheel_command), value);
+ }
+ else if (strcmp(key, "battery_dwheel_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(battery_dwheel_command), value);
+ }
/* Clock */
else if (strcmp(key, "time1_format") == 0) {
@@ -987,6 +1010,15 @@ void add_entry(char *key, char *value)
else if (strcmp(key, "clock_rclick_command") == 0) {
gtk_entry_set_text(GTK_ENTRY(clock_right_command), value);
}
+ else if (strcmp(key, "clock_mclick_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(clock_mclick_command), value);
+ }
+ else if (strcmp(key, "clock_uwheel_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(clock_uwheel_command), value);
+ }
+ else if (strcmp(key, "clock_dwheel_command") == 0) {
+ gtk_entry_set_text(GTK_ENTRY(clock_dwheel_command), value);
+ }
/* Taskbar */
else if (strcmp(key, "taskbar_mode") == 0) {