Bug 222 - Breaks overriding each other
Status:
RESOLVED FIXED
Component:
Core
Version:
unspecified
Hardware:
PC Windows 2000
Importance:
P3 normal
Target Milestone:
---
Assignee:
Rob Caelers
URL:
Depends on:
Blocks:
Reported:
Mar 26 2003 04:42:58 UTC
by:
Kees-Jan Dijkzeul
Modified:
Apr 28 2003 01:29:42 UTC
WhoWhenWhatRemovedAdded
Raymond PennersMar 27 2003 07:35:59 UTCsummaryignore funnynessBreaks overriding each other
Rob CaelersApr 8 2003 13:08:00 UTCstatusNEWASSIGNED
Rob CaelersApr 27 2003 05:02:41 UTCstatusASSIGNEDRESOLVED
resolutionFIXED
Description
Kees-Jan Dijkzeul  Mar 26 2003 04:42:58 UTC
Just now, something very odd happened (I'm not sure whether it was with 1.2.2
final or with b2): I had a restbreak prelude, but continued working. wr beeped
at me, and almost immediately showed another restbreak prelude.

Maybe my pause was advanced because I had a due micropause, and then later I got
the real thing? I don't know. Whichever way, this should not be happening :-)
Comment 1
Raymond Penners  Mar 26 2003 05:05:48 UTC
I have seen this regularly during testing. I had my time-before-break very low,
for both the daily limit and micropause (low, as in 15secs). I often got a MP
prelude followed by a DL prelude...
Comment 2
Raymond Penners  Mar 27 2003 07:35:59 UTC
How about this one:
- prelude appears.. which I obey
- MP appears, counts-down as usual, until at T=0:13...
- prelude for daily limit appears, followed by
- daily limit window

Looks cool.

Comment 3
Rob Caelers  Apr 8 2003 13:08:00 UTC
Uh.. This is the current behaviour. However, its unlikely this will happen for
MP and RB. The RB timer is stopped when taking a MP (only the DL timer is not
stopped if 'regard MP as activity' is on). So you wil never get a RB during a MP.

This "break advancing" stuff makes sure that *after* a MP, you can work for at
least 1 minute before you get a RB. So, if your MP timer reached 0, you will get
a RB is the RB timer is < 1 minute. If you ignore this RB, you will get the real
RB somewhat later (where somewhat might be way less than the snooze time). I
guess the break should be manually snoozed when it is advanced.
Comment 4
Kees-Jan Dijkzeul  Apr 9 2003 01:32:26 UTC
Uh... I think I'm a bit confused when you say "Manually snoozed". I never get to
see the break window, so I can't manually snooze the timer. I agree with you,
however, that the timer should be snoozed in this case, but automatically.
Basically pretty much the same way it would be snoozed when the break was not
advanced and I would be overdue.

If I understand your description correctly, it is possible to be allowed to work
only 30 seconds between a MP or RB and a daily limit (daily limit is at most 1
minute advanced, MP duration 30 seconds, MP considered activity).

This is a bit short, I think. Maybe the time a break is advanced should depend
on the pause duration or postpone times of the breaks involved, instead of being
fixed at one minute. 

Come to think of it, I would not be happy if my daily limit were advanced by a
significant amount. Maybe it's better to postpone breaks, instead of advancing
them. Proposal for you to think about: If break x is due, then I recommend
postponing break x if break y is due within the configured postpone time of x.
The time that x is postponed should preferably equal the remaining time of y,
not xs actual postpone time.
Comment 5
Rob Caelers  Apr 9 2003 03:47:25 UTC
Manually is not the right word... I meant manually by workrave, instead of
automatically by the Timer. The timer only snoozes automatically when the limit
is reached. So when a break is advanced, workrave (i.e. GUIControl) has to
snooze the timer.

At the moment, only a RB is advanced, I think. 

>If break x is due, then I recommend postponing break x if break y is due within
>the configured postpone time of x. 

Do you want to postpone x? Or just skip it (because postponing break x would
cause x to overlap with y)?

>The time that x is postponed should preferably equal the remaining time of y,
>not xs actual postpone time.

Uhh. So both breaks start at exactly the same time and thus overlap? I think
this is more or less the current behaviour, except for the fixed "within" time.
Comment 6
Rob Caelers  Apr 15 2003 12:32:53 UTC
I fixed the original bug: When an advanced RB is postponed or ignored, Workrave
will wait "postpone time" until the next prompt. It will no longer prompt when
the timer reached 0.
Comment 7
Rob Caelers  Apr 27 2003 05:02:41 UTC
In absense of further comments: closing.
Comment 8
Kees-Jan Dijkzeul  Apr 28 2003 01:29:42 UTC
Ah... Timeouts again... They tend to trick me every time :-)

I did do some thinking on this, though. In general, I feel that breaks should
not be postponed, daily limits should not be advanced, and breaks should not be
too quickly behind eachother.

Assuming this bug is fixed (didn't verify yet), I think current behaviour is not
too annoying. The only time you risk receiving breaks shortly behind eachother
is at your daily limit, which should be at most once a day. (On the other hand,
if I postpone my daily limit, I'm so busy I tend to get annoyed real quickly :-)

There are two alternative approaches I've come up with, neither of which is pretty.

First approach is described in my earlier comment: If x is due, and y is due
within the postpone time of x, then postpone x.

Second approach: The only time you'll ever get a break is when a micropause is
due. Which break you'll get depends on which other breaks are also due.

I do not have a strong preference.