@@ -338,15 +338,43 @@ public class Views.Today : Adw.Bin {
338338 Services.Store.instance ().item_unarchived.connect (valid_add_item );
339339
340340 Services.EventBus.get_default ().item_moved.connect ((item ) => {
341+ // Handle existing items that may no longer belong in Today view
341342 if (items. has_key (item. id)) {
342- items[item. id]. update_request ();
343+ if (Services . Store . instance (). valid_item_by_date (item, date, false )) {
344+ items[item. id]. update_request ();
345+ } else {
346+ // Remove item that no longer belongs in today
347+ items[item. id]. hide_destroy ();
348+ items. unset (item. id);
349+ }
343350 }
344351
345352 if (overdue_items. has_key (item. id)) {
346- items[item. id]. update_request ();
353+ if (Services . Store . instance (). valid_item_by_overdue (item, date, false )) {
354+ overdue_items[item. id]. update_request ();
355+ } else {
356+ // Remove item that no longer belongs in overdue
357+ overdue_items[item. id]. hide_destroy ();
358+ overdue_items. unset (item. id);
359+ }
360+ }
361+
362+ // Check if item should be added to Today view (wasn't there before but should be now)
363+ if (! items. has_key (item. id) &&
364+ Services . Store . instance (). valid_item_by_date (item, date, false )) {
365+ add_item (item);
347366 }
348367
368+ if (! overdue_items. has_key (item. id) &&
369+ Services . Store . instance (). valid_item_by_overdue (item, date, false )) {
370+ add_overdue_item (item);
371+ }
372+
373+ // Update UI state
374+ update_headers ();
375+ check_placeholder ();
349376 listbox. invalidate_filter ();
377+ overdue_listbox. invalidate_filter ();
350378 });
351379
352380 magic_button.clicked.connect (() => {
0 commit comments