Differential D21278 Diff 62448 head/sysutils/xfce4-wavelan-plugin/files/patch-panel-plugin_wavelan.c
Changeset View
Changeset View
Standalone View
Standalone View
head/sysutils/xfce4-wavelan-plugin/files/patch-panel-plugin_wavelan.c
--- panel-plugin/wavelan.c.orig 2016-10-29 06:46:02 UTC | --- panel-plugin/wavelan.c.orig 2019-08-13 10:29:17 UTC | ||||
+++ panel-plugin/wavelan.c | +++ panel-plugin/wavelan.c | ||||
@@ -64,6 +64,9 @@ typedef struct | @@ -108,11 +108,11 @@ wavelan_set_state(t_wavelan *wavelan, gint state) | ||||
GtkWidget *image; | |||||
GtkWidget *signal; | |||||
GtkWidget *tooltip_text; | |||||
+#if GTK_CHECK_VERSION (3, 16, 0) | |||||
+ GtkCssProvider *css_provider; | |||||
+#endif | |||||
XfcePanelPlugin *plugin; | |||||
@@ -77,7 +80,6 @@ wavelan_set_state(t_wavelan *wavelan, gint state) | |||||
{ | |||||
GdkRGBA color; | |||||
#if GTK_CHECK_VERSION (3, 16, 0) | |||||
- GtkCssProvider *css_provider; | |||||
gchar *css; | |||||
#endif | |||||
@@ -99,11 +101,11 @@ wavelan_set_state(t_wavelan *wavelan, gint state) | |||||
if (wavelan->signal_colors) { | if (wavelan->signal_colors) { | ||||
/* set color */ | /* set color */ | ||||
- if (state > 70) | - if (state > 70) | ||||
+ if (state > 75) | + if (state > 75) | ||||
gdk_rgba_parse(&color, signal_color_strong); | gdk_rgba_parse(&color, signal_color_strong); | ||||
- else if (state > 55) | - else if (state > 55) | ||||
+ else if (state > 50) | + else if (state > 50) | ||||
gdk_rgba_parse(&color, signal_color_good); | gdk_rgba_parse(&color, signal_color_good); | ||||
- else if (state > 40) | - else if (state > 40) | ||||
+ else if (state > 25) | + else if (state > 25) | ||||
gdk_rgba_parse(&color, signal_color_weak); | gdk_rgba_parse(&color, signal_color_weak); | ||||
else | else | ||||
gdk_rgba_parse(&color, signal_color_bad); | gdk_rgba_parse(&color, signal_color_bad); | ||||
@@ -118,12 +120,7 @@ wavelan_set_state(t_wavelan *wavelan, gint state) | @@ -357,11 +357,13 @@ wavelan_new(XfcePanelPlugin *plugin) | ||||
#endif | |||||
gdk_rgba_to_string(&color)); | |||||
/* Setup Gtk style */ | |||||
- css_provider = gtk_css_provider_new (); | |||||
- gtk_css_provider_load_from_data (css_provider, css, strlen(css), NULL); | |||||
- gtk_style_context_add_provider ( | |||||
- GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (wavelan->signal))), | |||||
- GTK_STYLE_PROVIDER (css_provider), | |||||
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); | |||||
+ gtk_css_provider_load_from_data (wavelan->css_provider, css, strlen(css), NULL); | |||||
g_free(css); | |||||
#else | |||||
gtk_widget_override_background_color(GTK_WIDGET(wavelan->signal), | |||||
@@ -183,7 +180,15 @@ wavelan_timer(gpointer data) | |||||
} | |||||
} | |||||
else { | |||||
- wavelan_set_state(wavelan, stats.ws_quality); | |||||
+ /* | |||||
+ * Usual formula is: qual = 4 * (signal - noise) | |||||
+ * where noise is typically about -96dBm, but we don't have | |||||
+ * the actual noise value here, so approximate one. | |||||
+ */ | |||||
+ if (strcmp(stats.ws_qunit, "dBm") == 0) | |||||
+ wavelan_set_state(wavelan, 4 * (stats.ws_quality - (-96))); | |||||
+ else | |||||
+ wavelan_set_state(wavelan, stats.ws_quality); | |||||
if (strlen(stats.ws_netname) > 0) | |||||
/* Translators: net_name: quality quality_unit at rate Mb/s*/ | |||||
@@ -338,6 +343,13 @@ wavelan_new(XfcePanelPlugin *plugin) | |||||
/* setup progressbar */ | /* setup progressbar */ | ||||
wavelan->signal = gtk_progress_bar_new(); | wavelan->signal = gtk_progress_bar_new(); | ||||
+#if GTK_CHECK_VERSION (3, 16, 0) | +#if GTK_CHECK_VERSION (3, 16, 0) | ||||
+ wavelan->css_provider = gtk_css_provider_new (); | wavelan->css_provider = gtk_css_provider_new (); | ||||
+ gtk_style_context_add_provider ( | gtk_style_context_add_provider ( | ||||
+ GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (wavelan->signal))), | GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (wavelan->signal))), | ||||
+ GTK_STYLE_PROVIDER (wavelan->css_provider), | GTK_STYLE_PROVIDER (wavelan->css_provider), | ||||
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); | GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); | ||||
+#endif | +#endif | ||||
wavelan->image = GTK_WIDGET(xfce_panel_image_new_from_source("network-wireless")); | wavelan->image = GTK_WIDGET(xfce_panel_image_new_from_source("network-wireless")); | ||||
gtk_box_pack_start(GTK_BOX(wavelan->box), GTK_WIDGET(wavelan->image), FALSE, FALSE, 0); | gtk_box_pack_start(GTK_BOX(wavelan->box), GTK_WIDGET(wavelan->image), FALSE, FALSE, 0); |