summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2011-09-29 12:44:11 +0200
committerLukas Fleischer <calcurse@cryptocrack.de>2011-10-06 12:37:05 +0200
commit70a488a64ed2c6def092c3242c99fd41bb2efcdd (patch)
tree9a03ed1348c53805845de5c0409f837ea1788190
parent146877a7daa0c0ce4794c8d33c647622fb1935e1 (diff)
downloadcalcurse-70a488a64ed2c6def092c3242c99fd41bb2efcdd.tar.gz
calcurse-70a488a64ed2c6def092c3242c99fd41bb2efcdd.zip
Remove temporary highlight pointers
Add an additional check to apoint_update_panel() and todo_update_panel() and only highlight currently selected items if the corresponding panel is active. This allows us to remove all the highlight pointer juggling that we used whenever the panel selection changed. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
-rw-r--r--src/apoint.c2
-rw-r--r--src/calcurse.c31
-rw-r--r--src/todo.c2
3 files changed, 6 insertions, 29 deletions
diff --git a/src/apoint.c b/src/apoint.c
index a49b156..f99b94d 100644
--- a/src/apoint.c
+++ b/src/apoint.c
@@ -684,7 +684,7 @@ apoint_update_panel (int which_pan)
if (slctd_date.dd < 10)
title_xpos++;
date = date2sec (slctd_date, 0, 0);
- day_write_pad (date, app_width, app_length, hilt);
+ day_write_pad (date, app_width, app_length, (which_pan == APP) ? hilt : 0);
/* Print current date in the top right window corner. */
erase_window_part (win[APP].p, 1, title_lines, win[APP].w - 2,
diff --git a/src/calcurse.c b/src/calcurse.c
index 7dae864..e6d37ed 100644
--- a/src/calcurse.c
+++ b/src/calcurse.c
@@ -52,8 +52,6 @@ main (int argc, char **argv)
struct day_items_nb inday;
int non_interactive;
int no_data_file = 1;
- int sav_hilt_app = 0;
- int sav_hilt_tod = 0;
int cut_item = 0;
unsigned do_storage = 0;
unsigned do_update = 1;
@@ -183,37 +181,19 @@ main (int argc, char **argv)
case KEY_GENERIC_CHANGE_VIEW:
wins_reset_status_page ();
- /* Need to save the previously highlighted event. */
- switch (wins_slctd ())
- {
- case TOD:
- sav_hilt_tod = todo_hilt ();
- todo_hilt_set (0);
- break;
- case APP:
- sav_hilt_app = apoint_hilt ();
- apoint_hilt_set (0);
- break;
- default:
- break;
- }
wins_slctd_next ();
/* Select the event to highlight. */
switch (wins_slctd ())
{
case TOD:
- if ((sav_hilt_tod == 0) && (todo_nb () != 0))
+ if ((todo_hilt () == 0) && (todo_nb () > 0))
todo_hilt_set (1);
- else
- todo_hilt_set (sav_hilt_tod);
break;
case APP:
- if ((sav_hilt_app == 0)
- && ((inday.nb_events + inday.nb_apoints) != 0))
+ if ((apoint_hilt () == 0) &&
+ ((inday.nb_events + inday.nb_apoints) > 0))
apoint_hilt_set (1);
- else
- apoint_hilt_set (sav_hilt_app);
break;
default:
break;
@@ -568,11 +548,8 @@ main (int argc, char **argv)
do_storage = !do_storage;
if (day_changed)
{
- sav_hilt_app = 0;
+ apoint_hilt_set (1);
day_changed = !day_changed;
- if ((wins_slctd () == APP) &&
- (inday.nb_events + inday.nb_apoints != 0))
- apoint_hilt_set (1);
}
}
diff --git a/src/todo.c b/src/todo.c
index 1ccd9f1..8977a06 100644
--- a/src/todo.c
+++ b/src/todo.c
@@ -437,7 +437,7 @@ todo_update_panel (int which_pan)
struct todo *todo = LLIST_TS_GET_DATA (i);
num_todo++;
t_realpos = num_todo - first;
- incolor = num_todo - hilt;
+ incolor = (which_pan == TOD) ? num_todo - hilt : num_todo;
if (incolor == 0)
msgsav = todo->mesg;
if (t_realpos >= 0 && t_realpos < max_items)