summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-05-16 18:34:59 +0200
committerRobin Gareus <robin@gareus.org>2014-05-16 18:34:59 +0200
commit030a8f189de2c5666a08f010fb398e39f240d816 (patch)
treedc29e52d05d1ab8097124c5b6ae6a6b37448e477 /libs
parent827388ffdd0e320eabda14efec2803c43c9fabee (diff)
yet another gettimeofday() removal (glibmm idle)
Diffstat (limited to 'libs')
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h2
-rw-r--r--libs/gtkmm2ext/idle_adjustment.cc17
2 files changed, 8 insertions, 11 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h b/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h
index 58e2f8f5bd..00b65f21d8 100644
--- a/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h
+++ b/libs/gtkmm2ext/gtkmm2ext/idle_adjustment.h
@@ -37,7 +37,7 @@ class LIBGTKMM2EXT_API IdleAdjustment : public sigc::trackable
private:
void underlying_adjustment_value_changed();
- struct timeval last_vc;
+ int64_t last_vc;
gint timeout_handler();
bool timeout_queued;
};
diff --git a/libs/gtkmm2ext/idle_adjustment.cc b/libs/gtkmm2ext/idle_adjustment.cc
index edf5517fff..030d717133 100644
--- a/libs/gtkmm2ext/idle_adjustment.cc
+++ b/libs/gtkmm2ext/idle_adjustment.cc
@@ -33,7 +33,7 @@ IdleAdjustment::IdleAdjustment (Gtk::Adjustment& adj)
{
adj.signal_value_changed().connect (mem_fun (*this, &IdleAdjustment::underlying_adjustment_value_changed));
timeout_queued = 0;
- gettimeofday (&last_vc, 0);
+ last_vc = g_get_monotonic_time();
}
IdleAdjustment::~IdleAdjustment ()
@@ -43,7 +43,7 @@ IdleAdjustment::~IdleAdjustment ()
void
IdleAdjustment::underlying_adjustment_value_changed ()
{
- gettimeofday (&last_vc, 0);
+ last_vc = g_get_monotonic_time();
if (timeout_queued) {
return;
@@ -56,16 +56,13 @@ IdleAdjustment::underlying_adjustment_value_changed ()
gint
IdleAdjustment::timeout_handler ()
{
- struct timeval now;
- struct timeval tdiff;
+ int64_t now, tdiff;
+ now = g_get_monotonic_time();
+ tdiff = now - last_vc;
- gettimeofday (&now, 0);
+ std::cerr << "timer elapsed, diff = " << tdiff << " usec" << std::endl;
- timersub (&now, &last_vc, &tdiff);
-
- std::cerr << "timer elapsed, diff = " << tdiff.tv_sec << " + " << tdiff.tv_usec << std::endl;
-
- if (tdiff.tv_sec > 0 || tdiff.tv_usec > 250000) {
+ if (tdiff > 250000) {
std::cerr << "send signal\n";
value_changed ();
timeout_queued = false;