summaryrefslogtreecommitdiffstats
path: root/source/xfce/xfce4-systemload-plugin/xfce4-systemload-plugin.HOVER_TIMEOUT.diff
blob: 2cdd26f82c89d9e6dec5d27f88c812110a6c0d9c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
--- ./panel-plugin/systemload.c.orig	2017-02-09 13:22:46.000000000 -0600
+++ ./panel-plugin/systemload.c	2018-04-15 14:28:15.729304272 -0500
@@ -55,6 +55,8 @@
 static gchar *DEFAULT_COLOR[] = { "#0000c0", "#00c000", "#f0f000" };
 static gchar *DEFAULT_COMMAND_TEXT = "xfce4-taskmanager";
 
+/* HOVER_TIMEOUT is a fixed constant in gtk+-3; this must match - Aargh */
+#define HOVER_TIMEOUT 500
 #define UPDATE_TIMEOUT 250
 #define UPDATE_TIMEOUT_SECONDS 1
 
@@ -107,6 +109,7 @@
     guint             timeout, timeout_seconds;
     gboolean          use_timeout_seconds;
     guint             timeout_id;
+    guint	      tooltip_timeout;
     t_command         command;
     t_monitor         *monitor[3];
     t_uptime_monitor  *uptime;
@@ -174,6 +177,9 @@
                  global->monitor[count]->value_read / 100.0);
         }
     }
+/* don't write tooltip too often */
+    if((global->tooltip_timeout += global->timeout) <= HOVER_TIMEOUT) return TRUE;
+    global->tooltip_timeout = 0;
     if (global->monitor[0]->options.enabled)
     {
         g_snprintf(caption, sizeof(caption), _("System Load: %ld%%"),
@@ -338,6 +344,7 @@
 #endif
     global->plugin = plugin;
     global->timeout = UPDATE_TIMEOUT;
+    global->tooltip_timeout = 0;
     global->timeout_seconds = UPDATE_TIMEOUT_SECONDS;
     global->use_timeout_seconds = TRUE;
     global->timeout_id = 0;
@@ -435,13 +442,6 @@
     }
 #endif
     global->timeout_id = g_timeout_add(global->timeout, (GSourceFunc)update_monitors, global);
-    /* reduce the default tooltip timeout to be smaller than the update interval otherwise
-     * we won't see tooltips on GTK 2.16 or newer */
-    settings = gtk_settings_get_default();
-    if (g_object_class_find_property(G_OBJECT_GET_CLASS(settings), "gtk-tooltip-timeout"))
-        g_object_set(settings, "gtk-tooltip-timeout",
-                     global->timeout - 10, NULL);
-
 }
 
 static void