This patch does 2 things:
1) Defines a DrwTimer that we use instead of GTimer. This is just a thin
wrapper around g_get_current_time, and it means we can accurately track
typing/idle periods based on real-world wall-clock time, which GTimer is
apparently not intended to do.
2) The typing monitor has some complicated state handling where it transitions
between an IDLE state and a TYPING state. This transition is based on running a
callback once per second, and checking whether any keystrokes have been
recorded since the last time the callback was called. The actual idle *time* is
tracked separately, independently of these two states, but only when we are in
the IDLE *state* was the idle *time* checked to see if we should reset the
break timer. This leads to a race condition -- if we suspend while in the
TYPING state, then eventually we will wake up, notice that no key press has
happened in the last second, *reset the idle timer*, transition to the IDLE
state, and then check the amount of time on the idle timer. We will thus never
notice the amount of time that the computer was suspended.
I considered making the IDLE/TYPING transition code smarter, but it turns out
the desired behavior for the two states is entirely identical anyway, so rather
than adding more complexity to this pointless code, I just diked it out and
replaced them both by a single state called RUNNING.
Closes bug #430797.
2008-06-27 Jens Granseuer <jensgr@gmx.net>
Based on a patch by: Andrey Gusev <ronne@list.ru>
* drwright.c: (break_window_postpone_cb): when postponing a break
don't go right back to warn state, but award some bonus time according
to the already elapsed break time (bug #133295)
svn path=/trunk/; revision=8770
2008-06-15 Jens Granseuer <jensgr@gmx.net>
Patch by: Andrey Gusev <ronne@list.ru>
* drwright.c: (update_icon), (blink_timeout_cb),
(maybe_change_state), (update_tooltip), (break_window_postpone_cb):
when postponing a voluntary break, go back to the state before taking
the break instead of going to warn state as we do when a regular
break is postponed (bug #134595)
svn path=/trunk/; revision=8755
2007-06-05 Ross Burton <ross@openedhand.com>
* configure.in:
Bump glib requirement to 2.13, for the ~second-accurate timers.
2007-06-05 Ross Burton <ross@openedhand.com>
* drw-monitor.c:
* drw-break-window.c:
* drwright.c:
Use the second-accurate timers instead of the millisecond timers,
in an attempt to use less processor time (#443547).
svn path=/trunk/; revision=7692
2007-01-09 Vincent Untz <vuntz@gnome.org>
* main.c: (main): set default window icon and application name
* Makefile.am: install icons
* drwright.c: (popup_about_cb): use gtk_about_dialog_show()
* typing-monitor.png:
* typing-monitor.svn: new
Fix bug #348641, icon by Andreas Nilsson <nisses.mail@home.se>, patch
by Luca Cavalli <luca.cavalli@gmail.com>
svn path=/trunk/; revision=7124
2005-11-27 Richard Hult <richard@imendio.com>
* main.c: (main): Don't display a dialog when the monitor is
already running, that's an old remain from when drwright was a
standalone app. Fixes bug #307425.
* drw-break-window.c:
* drwright.c: (popup_break_cb): Use stock icon from GTK+ instead
of libgnomeui and use i18n includes from glib. Fixes bug #171664.
2005-02-04 Richard Hult <richard@imendio.com>
* drwright.c: Revert the patch from below since it fixes#134595
but breaks other things. Keep the tooltip changes though.
2005-02-03 Richard Hult <richard@imendio.com>
* drwright.c (break_window_postpone_cb), (maybe_change_state),
(popup_break_cb): Go back to the timer value from before the break
if postponing a manual break. Fixes bug #134595, based on patch
from Vinay M R <vinay.mandyakoppal@wipro.com>. Modified to use the
right enum type and changed to update the tooltip immendiately
after a break.
2004-07-28 Richard Hult <richard@imendio.com>
* drw-break-window.c: Patch from Markus Berg <mberg@hp.com> to fix
bug #123141.
* drwright.c: Remove some cruft. Shorten the warning period a bit.
2004-02-17 Richard Hult <richard@imendio.com>
* drw-break-window.c (drw_break_window_init): Don't make the
postpone button focused right away, makes the fix for #126179 a
lot better.
* drwright.c: Don't create break window if we already have one,
fixes bug #134455. Don't make about box modal, fixes bug #134594.
* main.c (main): Remove unused variable.
2003-06-27 Richard Hult <richard@imendio.com>
* typing-break/drw-intl.h: Remove this and use gnome-i18n.h
instead.
* typing-break/Makefile.am: Remove drw-intl.h
* typing-break/drwright.c:
* typing-break/drwright.h:
* typing-break/drw-break-window.c: Merge in changes from drwright.