diff options
Diffstat (limited to 'c')
-rw-r--r-- | c/defs.h | 2 | ||||
-rw-r--r-- | c/episodelistview.c | 6 | ||||
-rw-r--r-- | c/main.c | 19 | ||||
-rw-r--r-- | c/resource.h | 5 | ||||
-rw-r--r-- | c/resource.rc | 1 |
5 files changed, 20 insertions, 13 deletions
@@ -20,7 +20,7 @@ void ElvDoSort(void); LRESULT ElvHandleNotify(LPARAM); void ElvRedraw(void); void ElvSetTop(int); -void ElvSelectRecent(void); +void ElvSelectFocus(void); void ElvSelectUnwatched(int); void ElvShowFocus(void); void ElvUpdate(void); diff --git a/c/episodelistview.c b/c/episodelistview.c index e932ba7..ac1ac2f 100644 --- a/c/episodelistview.c +++ b/c/episodelistview.c @@ -172,9 +172,9 @@ ElvSetTop(int iItem) ListView_EnsureVisible(HElv, iItem, TRUE); } -/* Select most recent episode. */ +/* Select previously focused episode. */ void -ElvSelectRecent() +ElvSelectFocus() { int i, iEpisode, iItem; LVFINDINFO lvfi; @@ -182,7 +182,7 @@ ElvSelectRecent() t = T(1); iItem = 0; - P("track_episodes","most_recently_watched",1,t) goto s; + P("cfg","get_focus",1,t) goto s; GI(t,&iEpisode) return; lvfi.flags = LVFI_PARAM; @@ -92,7 +92,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, t = T(0); P("track_episodes","update_tracked_episodes",0,t); ElvUpdate(); - ElvSelectRecent(); + ElvSelectFocus(); while (GetMessage(&msg, NULL, 0, 0) > 0) { if (IsDialogMessage(hWnd, &msg)) continue; @@ -162,8 +162,20 @@ WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) DestroyWindow(hWnd); break; case WM_DESTROY: - PostQuitMessage(0); + { + LVITEM lvi; + extern HWND HElv; + lvi.mask = LVIF_PARAM; + if ((lvi.iItem=ListView_GetNextItem(HElv,-1,LVNI_FOCUSED)) != -1 + && ListView_GetItem(HElv, &lvi)) { + term_t t; + t = T(1); + PI(t,lvi.lParam) goto q; + P("cfg","set_focus",1,t); + } + q: PostQuitMessage(0); break; + } case WM_SIZE: SendMessage(HWndStatus, WM_SIZE, wParam, lParam); UpdateLayout(); @@ -221,9 +233,6 @@ WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case IDM_FILE_REFRESH: ElvUpdate(); break; - case IDM_FILE_RESET: - ElvSelectRecent(); - break; case IDM_FILE_FETCH_DATA: { term_t t; diff --git a/c/resource.h b/c/resource.h index 0d626b8..e41eb6c 100644 --- a/c/resource.h +++ b/c/resource.h @@ -10,9 +10,8 @@ #define IDC_DATALISTVIEW 303 #define IDM_FILE_EXIT 401 #define IDM_FILE_REFRESH 402 -#define IDM_FILE_RESET 403 -#define IDM_FILE_FETCH_DATA 404 -#define IDM_FILE_FETCH_SCREENWRITERS 405 +#define IDM_FILE_FETCH_DATA 403 +#define IDM_FILE_FETCH_SCREENWRITERS 404 #define IDM_FILE_ABOUT 411 #define IDM_VIEW_WATCHED 421 #define IDM_VIEW_TV_ORIGINAL 422 diff --git a/c/resource.rc b/c/resource.rc index d0eef28..8e96357 100644 --- a/c/resource.rc +++ b/c/resource.rc @@ -13,7 +13,6 @@ BEGIN MENUITEM "&Screenwriters", IDM_FILE_FETCH_SCREENWRITERS END MENUITEM "&Refresh", IDM_FILE_REFRESH - MENUITEM "Re&set", IDM_FILE_RESET MENUITEM "E&xit", IDM_FILE_EXIT END POPUP "&View" |