From 4b173480ae03db80724057462a10b29b69f5160d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 25 Dec 2024 14:06:14 +0300 Subject: =?UTF-8?q?fixes=20#4802=20(NewStory:=20=D0=B2=D1=8B=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=BA=D0=B8=D1=85=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9=20=D1=81=20=D0=BA=D0=BB=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=B0=D1=82=D1=83=D1=80=D1=8B=20=D1=81=D0=BB=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/NewStory/src/history_control.cpp | 54 +++++++++++++++++--------------- 1 file changed, 28 insertions(+), 26 deletions(-) (limited to 'plugins') diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp index f7797fc912..4da317179c 100644 --- a/plugins/NewStory/src/history_control.cpp +++ b/plugins/NewStory/src/history_control.cpp @@ -186,10 +186,7 @@ bool NewstoryListData::AtTop(void) const if (scrollTopItem < 0) return true; - if (scrollTopItem == 0 && scrollTopPixel == 0) - return true; - - return false; + return (scrollTopItem == 0 && scrollTopPixel == 0); } ///////////////////////////////////////////////////////////////////////////////////////// @@ -1470,45 +1467,50 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM if (msg == WM_KEYUP) break; + int oldCaret = data->caret; switch (wParam) { case VK_UP: - if (g_plugin.bHppCompat) + if (g_plugin.bHppCompat) { data->EventUp(); - else - data->LineUp(); - if (isShift) - data->SetSelection(data->scrollTopItem, data->caret); + if (isShift) + data->SetSelection(data->caret, oldCaret); + } + else data->LineUp(); break; case VK_DOWN: - if (g_plugin.bHppCompat) + if (g_plugin.bHppCompat) { data->EventDown(); - else - data->LineDown(); - if (isShift) - data->SetSelection(data->scrollTopItem, data->caret); + if (isShift) + data->SetSelection(oldCaret, data->caret); + } + else data->LineDown(); break; case VK_PRIOR: if (isCtrl) data->ScrollTop(); - else if (g_plugin.bHppCompat) - data->EventPageUp(); - else - data->PageUp(); - if (isShift) - data->SetSelection(data->scrollTopItem, data->caret); + else { + if (g_plugin.bHppCompat) { + data->EventPageUp(); + if (isShift) + data->SetSelection(data->caret, oldCaret); + } + else data->PageUp(); + } break; case VK_NEXT: if (isCtrl) data->ScrollBottom(); - else if (g_plugin.bHppCompat) - data->EventPageDown(); - else - data->PageDown(); - if (isShift) - data->SetSelection(data->scrollTopItem, data->caret); + else { + if (g_plugin.bHppCompat) { + data->EventPageDown(); + if (isShift) + data->SetSelection(oldCaret, data->caret); + } + else data->PageDown(); + } break; case VK_HOME: -- cgit v1.2.3