Patch by: Andrey Gusev <ronne@list.ru>
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
This commit is contained in:
parent
96fa8aee25
commit
f02941bf84
2 changed files with 33 additions and 26 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
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)
|
||||||
|
|
||||||
==================== 2.23.2 ====================
|
==================== 2.23.2 ====================
|
||||||
|
|
||||||
2008-03-24 Jens Granseuer <jensgr@gmx.net>
|
2008-03-24 Jens Granseuer <jensgr@gmx.net>
|
||||||
|
|
|
@ -69,6 +69,7 @@ struct _DrWright {
|
||||||
GTimer *idle_timer;
|
GTimer *idle_timer;
|
||||||
|
|
||||||
gint last_elapsed_time;
|
gint last_elapsed_time;
|
||||||
|
gint save_last_time;
|
||||||
|
|
||||||
gboolean is_active;
|
gboolean is_active;
|
||||||
|
|
||||||
|
@ -177,14 +178,9 @@ update_icon (DrWright *dr)
|
||||||
r = 0;
|
r = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_WARN_IDLE:
|
|
||||||
case STATE_WARN_TYPE:
|
|
||||||
r = ((float)(dr->type_time - dr->warn_time) / dr->type_time) +
|
|
||||||
(float) g_timer_elapsed (dr->timer, NULL) / (float) dr->warn_time;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
r = (float) g_timer_elapsed (dr->timer, NULL) / (float) dr->type_time;
|
r = (float) (g_timer_elapsed (dr->timer, NULL) + dr->save_last_time) /
|
||||||
|
(float) dr->type_time;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,7 +233,7 @@ blink_timeout_cb (DrWright *dr)
|
||||||
gfloat r;
|
gfloat r;
|
||||||
gint timeout;
|
gint timeout;
|
||||||
|
|
||||||
r = (dr->warn_time - g_timer_elapsed (dr->timer, NULL)) / dr->warn_time;
|
r = (dr->type_time - g_timer_elapsed (dr->timer, NULL) - dr->save_last_time) / dr->warn_time;
|
||||||
timeout = BLINK_TIMEOUT + BLINK_TIMEOUT_FACTOR * r;
|
timeout = BLINK_TIMEOUT + BLINK_TIMEOUT_FACTOR * r;
|
||||||
|
|
||||||
if (timeout < BLINK_TIMEOUT_MIN) {
|
if (timeout < BLINK_TIMEOUT_MIN) {
|
||||||
|
@ -321,7 +317,7 @@ maybe_change_state (DrWright *dr)
|
||||||
g_timer_reset (dr->idle_timer);
|
g_timer_reset (dr->idle_timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
elapsed_time = g_timer_elapsed (dr->timer, NULL);
|
elapsed_time = g_timer_elapsed (dr->timer, NULL) + dr->save_last_time;
|
||||||
elapsed_idle_time = g_timer_elapsed (dr->idle_timer, NULL);
|
elapsed_idle_time = g_timer_elapsed (dr->idle_timer, NULL);
|
||||||
|
|
||||||
if (elapsed_time > dr->last_elapsed_time + dr->warn_time) {
|
if (elapsed_time > dr->last_elapsed_time + dr->warn_time) {
|
||||||
|
@ -342,6 +338,8 @@ maybe_change_state (DrWright *dr)
|
||||||
gtk_status_icon_set_from_pixbuf (dr->icon,
|
gtk_status_icon_set_from_pixbuf (dr->icon,
|
||||||
dr->neutral_bar);
|
dr->neutral_bar);
|
||||||
|
|
||||||
|
dr->save_last_time = 0;
|
||||||
|
|
||||||
g_timer_start (dr->timer);
|
g_timer_start (dr->timer);
|
||||||
g_timer_start (dr->idle_timer);
|
g_timer_start (dr->idle_timer);
|
||||||
|
|
||||||
|
@ -355,8 +353,7 @@ maybe_change_state (DrWright *dr)
|
||||||
|
|
||||||
case STATE_IDLE:
|
case STATE_IDLE:
|
||||||
if (elapsed_idle_time >= dr->break_time) {
|
if (elapsed_idle_time >= dr->break_time) {
|
||||||
g_timer_start (dr->timer);
|
dr->state = STATE_BREAK_DONE_SETUP;
|
||||||
g_timer_start (dr->idle_timer);
|
|
||||||
} else if (dr->is_active) {
|
} else if (dr->is_active) {
|
||||||
dr->state = STATE_TYPE;
|
dr->state = STATE_TYPE;
|
||||||
}
|
}
|
||||||
|
@ -365,7 +362,6 @@ maybe_change_state (DrWright *dr)
|
||||||
case STATE_TYPE:
|
case STATE_TYPE:
|
||||||
if (elapsed_time >= dr->type_time - dr->warn_time) {
|
if (elapsed_time >= dr->type_time - dr->warn_time) {
|
||||||
dr->state = STATE_WARN_TYPE;
|
dr->state = STATE_WARN_TYPE;
|
||||||
g_timer_start (dr->timer);
|
|
||||||
|
|
||||||
start_blinking (dr);
|
start_blinking (dr);
|
||||||
} else if (elapsed_time >= dr->type_time) {
|
} else if (elapsed_time >= dr->type_time) {
|
||||||
|
@ -378,7 +374,7 @@ maybe_change_state (DrWright *dr)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_WARN_TYPE:
|
case STATE_WARN_TYPE:
|
||||||
if (elapsed_time >= dr->warn_time) {
|
if (elapsed_time >= dr->type_time) {
|
||||||
dr->state = STATE_BREAK_SETUP;
|
dr->state = STATE_BREAK_SETUP;
|
||||||
}
|
}
|
||||||
else if (!dr->is_active) {
|
else if (!dr->is_active) {
|
||||||
|
@ -436,11 +432,12 @@ maybe_change_state (DrWright *dr)
|
||||||
|
|
||||||
gtk_widget_show (dr->break_window);
|
gtk_widget_show (dr->break_window);
|
||||||
|
|
||||||
|
dr->save_last_time = elapsed_time;
|
||||||
dr->state = STATE_BREAK;
|
dr->state = STATE_BREAK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_BREAK:
|
case STATE_BREAK:
|
||||||
if (elapsed_time >= dr->break_time) {
|
if (elapsed_time - dr->save_last_time >= dr->break_time) {
|
||||||
dr->state = STATE_BREAK_DONE_SETUP;
|
dr->state = STATE_BREAK_DONE_SETUP;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -486,16 +483,7 @@ update_tooltip (DrWright *dr)
|
||||||
|
|
||||||
elapsed_time = g_timer_elapsed (dr->timer, NULL);
|
elapsed_time = g_timer_elapsed (dr->timer, NULL);
|
||||||
|
|
||||||
switch (dr->state) {
|
min = floor (0.5 + (dr->type_time - elapsed_time - dr->save_last_time) / 60.0);
|
||||||
case STATE_WARN_TYPE:
|
|
||||||
case STATE_WARN_IDLE:
|
|
||||||
min = floor (0.5 + (dr->warn_time - elapsed_time) / 60.0);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
min = floor (0.5 + (dr->type_time - elapsed_time) / 60.0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (min >= 1) {
|
if (min >= 1) {
|
||||||
str = g_strdup_printf (ngettext("%d minute until the next break",
|
str = g_strdup_printf (ngettext("%d minute until the next break",
|
||||||
|
@ -661,13 +649,22 @@ static void
|
||||||
break_window_postpone_cb (GtkWidget *window,
|
break_window_postpone_cb (GtkWidget *window,
|
||||||
DrWright *dr)
|
DrWright *dr)
|
||||||
{
|
{
|
||||||
|
gint elapsed_time;
|
||||||
|
|
||||||
gtk_widget_destroy (dr->break_window);
|
gtk_widget_destroy (dr->break_window);
|
||||||
|
|
||||||
dr->state = STATE_WARN_TYPE;
|
dr->state = STATE_TYPE;
|
||||||
dr->break_window = NULL;
|
dr->break_window = NULL;
|
||||||
|
|
||||||
|
elapsed_time = g_timer_elapsed (dr->timer, NULL) + dr->save_last_time;
|
||||||
|
|
||||||
|
if (elapsed_time >= dr->type_time) {
|
||||||
|
/* time is expired, but break was postponed */
|
||||||
|
dr->save_last_time = dr->type_time - dr->warn_time;
|
||||||
|
}
|
||||||
|
|
||||||
g_timer_start (dr->timer);
|
g_timer_start (dr->timer);
|
||||||
start_blinking (dr);
|
maybe_change_state (dr);
|
||||||
update_icon (dr);
|
update_icon (dr);
|
||||||
update_tooltip (dr);
|
update_tooltip (dr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue