]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Input panel selection highlight position fix when list sort order was changed.
authorToni Wilen <twilen@winuae.net>
Sat, 31 Aug 2019 07:49:23 +0000 (10:49 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 31 Aug 2019 07:49:23 +0000 (10:49 +0300)
od-win32/win32gui.cpp

index d1b14cc81cabdf65e831b74954eea017777914ea..ef55766a603b49fb6c3a1a5fde0e181e372022d2 100644 (file)
@@ -17871,9 +17871,11 @@ static void CALLBACK timerfunc (HWND hDlg, UINT uMsg, UINT_PTR idEvent, DWORD dw
                                        inputdevice_set_device_status (devnum, TRUE);
                                        values_to_inputdlg (hDlg);
                                }
-                               ListView_EnsureVisible (GetDlgItem (hDlg, IDC_INPUTLIST), input_selected_widget, FALSE);
-                               ListView_SetItemState (GetDlgItem (hDlg, IDC_INPUTLIST), -1, 0, LVIS_SELECTED | LVIS_FOCUSED);
-                               ListView_SetItemState (GetDlgItem (hDlg, IDC_INPUTLIST), input_selected_widget, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
+                               HWND list = GetDlgItem(hDlg, IDC_INPUTLIST);
+                               int itemindex = input_get_lv_index(list, input_selected_widget);
+                               ListView_EnsureVisible (list, itemindex, FALSE);
+                               ListView_SetItemState (list, -1, 0, LVIS_SELECTED | LVIS_FOCUSED);
+                               ListView_SetItemState (list, itemindex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
                                if (rawmode == 1) {
                                        input_find (hDlg, myDlg, 0, FALSE, false);
                                        if (IsWindowEnabled (GetDlgItem (hDlg, IDC_INPUTAMIGA))) {