Release v0.6.44: select newest item when opening clipboard history

This commit is contained in:
2026-11-05 00:15:54 +02:00
parent 6621a49022
commit 90b2e0841f
9 changed files with 44 additions and 17 deletions
+17
View File
@@ -2,6 +2,7 @@
#include "ui_scroll.h"
#include "ui_geometry.h"
#include "screenshot.h"
#include "ocr.h"
#include <commctrl.h>
#include <iostream>
#include <cmath>
@@ -980,6 +981,22 @@ int main(int argc, char **argv) {
require(pumpUntil(2),"history reloads after releasing hidden rows");
require(SendDlgItemMessageW(history,102,LB_GETCURSEL,0,0)==1,
"history retains selected record across close and reload");
SendMessageW(history,WM_CLOSE,0,0);
ks::Pixels screenshot{2,2,ks::Bytes(16,255)};
app.history->add(ks::Clip{{ks::imageDib(screenshot)}},L"screenshot",app.settings);
require(app.history->entries().front().image,"new screenshot is the newest history entry");
ks::showHistory(app);
require(pumpUntil(3),"reopening history loads the new screenshot");
require(SendDlgItemMessageW(history,102,LB_GETCURSEL,0,0)==0 &&
SendDlgItemMessageW(history,102,LB_GETTOPINDEX,0,0)==0,
"fresh history invocation selects and reveals newest screenshot instead of saved selection");
SendDlgItemMessageW(history,102,LB_SETCURSEL,2,0);
app.history->add(ks::textClip(L"background clipboard update"),L"test",app.settings);
ks::refreshHistory(app);
require(pumpUntil(4),"background refresh loads a new item");
require(SendDlgItemMessageW(history,102,LB_GETCURSEL,0,0)==3,
"background refresh preserves the selected record while browsing");
ShowWindow(history,SW_HIDE);
}
auto childRect=[&](int id) { RECT r{}; GetWindowRect(GetDlgItem(history,id),&r); MapWindowPoints(nullptr,history,(POINT*)&r,2); return r; };
RECT historyFrame{}; GetWindowRect(history,&historyFrame);