Bug 91

Summary: 1Cv77: Не запоминается развёрнутость окон 1С и не восстанавливаются свёрнутые
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: Окна / фокус / перерисовкаAssignee: Vitaly Lipatov <lav>
Status: CLOSED FIXED QA Contact: Vitaly Lipatov <lav>
Severity: critical    
Priority: P3 CC: baraka, vostok
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 50, 90    
Bug Blocks: 760, 35, 42, 120, 777, 1010    
Attachments: Образец реализации в gtk
Тест на TopLevel окна (GetWindowPlacement)
Схема переходов и состояний окна

Description Vitaly Lipatov 2006-04-19 17:06:21 MSD
Главное окно программы 1С и все окна журналов отчётов и пр. всегда открываются 
в неполноэкранном режиме, причём в таком виде не помещаются на экране. 
Приходится их каждый раз разворачивать.
Comment 1 Vitaly Lipatov 2006-04-19 17:07:39 MSD
Скорее всего это связано с отключенным хранением информации о вкладках 
Comment 2 Pivnev, Eugene 2006-04-21 14:58:18 MSD
1. Запускаем бухгалтерию
2. Разворачиваем на весь экран
3. Делаем сальдовку
4. Разворачиваем на весь экран
5. Закрываем 1С - всю сразу

6. повторить 1..3
Результат - нет верхней части подокна сальдовки - вместе с кнопками _X[ ]
Comment 3 Pivnev, Eugene 2006-04-21 15:48:20 MSD
В определенный момент в одной из печатных форм (максимизированных?) блокируется
кнопка [X] окна. При этом кнопка Max-Restore остается доступной, но не реагирует
на нажатия. Т.е. окно перестает максимизироваться-восстанавливаться (хотя и
минимизируется.
Пользователи говорят - после этого ч-з непродолжительное время 1С вешается.
Поэтому Серъезность считаю нужным повысить до major.
Comment 4 Vitaly Lipatov 2006-04-21 15:53:03 MSD
последний комментарий не совсем к этой баге (перевесил на #50) 
Comment 5 Vitaly Lipatov 2006-05-02 14:03:55 MSD
При этом после повторного открытия программы и любого окна в ней, которое было 
максимизировано, кнопки окна "исчезают". 
Кнопки "исчезают", потому что окно не максимизировано сейчас, имея размер 
максимизированного. Внизу и справа при этом появляются полосы прокрутки. 
Продвинув окно можно увидеть кнопки. 
Comment 6 Vitaly Lipatov 2006-05-02 14:30:22 MSD
эти данные записаны в реестре 
<hostname>/HKCU/Software/1C/1Cv7/7.7/<dbname>/V7/<username>/Windows/<windowname> 
 
 
Comment 7 Vitaly Lipatov 2006-05-02 15:03:33 MSD
Eugene Pivnev 2 мая 2006 14:49:47 
Работаем с окном ОСВР (оборотка). 
что запоминается в реестре в w2ks: 
1. делаем оборотку, НЕмаксимизируем, закрываем 1С: 
0,1,-1,-1,-4,-23,60,23,904,404 
2. п.1., но - Максимизируем: 
2,3,-1,-1,-4,-23,60,23,904,404 
 
Последние 4 числа - это X0, Y0, X1, Y1 
Перед ними 4 - тоже какие-то координаты, где участвуют - не в курсе (возможно 
- описание границ печати) 
Первые 2 - это, собсно, статус окна. при максимизированном там стоит 2,3 
При всем при этом восстанавливается до немакс-ного размера (последние 4 числа) 
 
Теперь wine: 
0,1,-1,-1,-4,-23,64,27,704,467 
0,1,-1,-1,-4,-23,-4,-23,1028,568 
 
Глюков - 2 шт: 
1. не запоминается статус "Макс" (но это можно и задвинуть) 
2. координаты окна списываются максимизированные 
 
Comment 8 Pivnev, Eugene 2006-05-10 18:22:22 MSD
Судя по всему, падает как раз из-за этого.
Сегодня попросил бухгалтера (у которой падает по 20 раз на день) НЕ
максимизировать окна. Говорит - вроде бы нормально всё, не падало.
IMHO, СРОЧНО это надо решить.
А то терпение испытательного полигона лопнет - и не на ком будет пробовать (в
таких масштабах).
Comment 10 Vitaly Lipatov 2006-05-11 19:18:42 MSD
Проблема связана с реализацией GetWindowPlacement, 
в режиме Managed=Y (is_window_managed()==TRUE) не работает вообще (определение 
максимизированности). 
 
Comment 12 Vitaly Lipatov 2006-05-12 01:33:09 MSD
Created attachment 22 [details]
Образец реализации в gtk
Comment 13 Vitaly Lipatov 2006-05-12 01:33:57 MSD
Created attachment 23 [details]
Тест на TopLevel окна (GetWindowPlacement)
Comment 15 Vitaly Lipatov 2006-05-14 15:21:58 MSD
1. При SetWindowPlacement не появляется в трее свёрнутое окно (то есть вообще 
не отображается).
2. Не изменяется флаг WS_MAXIMIZE при максимизации и минимизации окна 
пользователем.
3. Для MDI также не запоминает положение (см. программу DC). Какие-то патчи 
шли недавно.
flag show
0     1     NORMAL (обычное)
2     3     WS_MAXIMIZE (максим)
0     2     WS_MINIMIZE (миним)
0     0     WS_HIDE (бывает ли?)
при этом размер окна всегда нормализованного.
Поведение зависит от is_window_managed (но не влияет на MDI)

шспользуется IsZoomed (проверяющая на WS_MAXIMIZE)

callback от шксов:
X11DRV_UnmapNotify при убирании с экрана
X11DRV_MapNotify   при появлении на экране
X11DRV_ConfigureNotify при изменении размера и положения

WIN_SetStyle устанавливает стили
Comment 16 Vitaly Lipatov 2006-05-14 15:54:54 MSD
Created attachment 24 [details]
Схема переходов и состояний окна
Comment 17 Vitaly Lipatov 2006-05-18 04:52:48 MSD
в 1.0.2 проблема с MDI-окнами решена.
Comment 18 Vitaly Lipatov 2006-05-22 16:19:39 MSD
Патчи по максимизации и минимизации добавлены в 1.0.2 
Comment 19 Vitaly Lipatov 2006-12-25 02:26:45 MSK
В 1.0.5 (0.9.28) подошли исправления, теперь минимизированное окно восстанавливается не в исходный размер, а в 32x32.
Comment 20 Vitaly Lipatov 2007-12-20 20:47:07 MSK
Проблемы нет, по данной баге всё решено.
Все новые проблемы в другой баге.
Comment 21 Анатолий Лютин 2008-03-04 19:08:50 MSK
Надо проверить в 1.0.9