При открытии трех окон (журналов, отчетов, справочников и т.д.) 1С позволяет переключаться между ними комбинациями: Ctrl-Tab - вперед, Ctrl-Shift-Tab - назад по списку окон. Ctrl-Tab - работает правильно. Ctrl-Shift-Tab - переключает на одно окно назад, следущее нажатие - возврат к предыдущему окну, т.е. нажатие этой комбинации меняет окна последнее и предпоследнее. Под MSwindows - переключает правильно ... порядок обратного переключения (с нажатой Shift) полностью соответствует порядку прямого, только задом наперед. Прочитал написанное и сам ничего не понял :о))
Проверил, именно так всё и есть. В windows - мы идёт по списку назад. В wine - прыгаем с предыдущего на текущее и наоборот, т.е. дальше чем за два окна назад выбраться горячими клавишами невозможно.
Мой патч на mdi на это не влияет.
Посмотрел код wine - неправильно реализовано определение предыдущего окна в MDI_GetWindow. Напишу тест и исправление.
Только все должно быть наоборот (по крайней мере так в windows): Ctrl + Tab - назад, а Ctrl + Tab + Shift вперед. Направление назад, имеется в виду, - к ранее созданному окну.
Сделал и выложил патч. Проблема была в процедуре MDI_GetWindow. Для получения списка дочерних MDI окон использовалась функция WIN_ListChildren, которая ставила активное окно всегда первым в списке. Вместо нее теперь для получения этого списка используется поле структуры MDICLIENTINFO, указывающее на массив дочерних окон. Порядок окон в этом массиве не изменяется при смене активного окна.
Слегка поправил патч. Выложил TRY 2. Теперь благодаря присвоению: list = clientInfo->child Значительно меньше изменений в коде функции.
Думаю багу можно закрыть.
Ну пока закрывать рано, т.к. патч в сборку еще не включили. Поэтому ждем новой сборки.
Проверил на новой сборке, не воспоризвелось.
Странно,бутылки стали пропадать все чаще... $ swine -h eter-2.1 1c77/1c77 Error: '1c77/1c77' bottle does NOT exist, run with -c key for create Создала новую одноименную. Присутствует: * Пт июн 07 2013 Etersoft Builder <builder@etersoft.ru> 2.1.2-alt17 - user32: Bring reference MDI child to bottom when switching to next. (eterbug #1129) (cherry picked from commit e90418d31cc6fd299fed2afa972cc82433cf33db) WINE@Etersoft SQL 2.1.2/2.1.0-eter17/3 Проблемы нет.