Summary: | Не показывается значок крестик | ||
---|---|---|---|
Product: | Wine School | Reporter: | Денис Баранов <baraka> |
Component: | КМ Школа | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | P3 | CC: | kondratyuk, lav, night, vostok |
Version: | 0.7 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 1837, 1527, 1528, 1638, 1692 | ||
Attachments: |
скрин
Окно после сворачивания-разворачивания |
Ужас какой. Беру себе. Надо снимать декорирование окон оконным менеджером Linux, т.к. похоже используется переопределение вида стандартного окна и стиля ( ПРИВЕТ, Delphi!!) и менеджер окон, черех wine не получает игформацию о том, что есть Close Box у окна (это, конечно, тоже бага, но фишка в том, что такие окна и в Windows так не декорируются стандартным менеджером). Снятие декорирования, конечно, решает проблему кнопок. Но, как замечено в соседней баге: ------- Комментарий #10 от Анатолий Лютин 2008-05-03 15:58:42 ... Без декорирования окно сворачивается в маленькую иконку и эту иконку невозможно никуда перетащить, что в целом совсем неприятно. Created attachment 423 [details]
Окно после сворачивания-разворачивания
Вот так выглядит окно после сворачивания его кнопкой "свернуть" и последующего разворачивания. Окно - это та полоска в середине скриншота :)
Это если без декорирования. С декорированием разворачивается нормально.
На самом деле в этой баге две большие проблемы в архитектуре wine: 1. Это реализованное Windows 3.1 like минимизация. 2. Это неполная связь между X-вым менеджером и wine-скими окнами. Кстати, по каждой их этих проблем есть отдельные баги в багзилле, просто для КМ-школы это стало серьёзным препятствием в работе. В общем править надо, всё и сразу, но это может потребовать значительное время. Я думаю для начала не надо запрещать управление окнами со стороны WM, и не будет проблем с Windows 3.1 like... А уж с тем, почему не показывается X, можно и разобраться. Кстати, пока самый лучший и прекрасно работающий вариант - это в winecfg отключить декорирование окон, но оставить управление менеджером - и крестик показывается и глюков с окнами нет. Поэтому юзайте все на здоровье! (In reply to comment #7) > работающий вариант - это в winecfg отключить > декорирование окон, но оставить управление > менеджером Скриншот из четвёртого комментария - иллюстрация этой схемы. 1. Хотелось бы понять, поменяла ли возможность управления декорированием окон на поведение Wine по умолчанию? 2. Совет про декорирование может быть только конкретным для конкретной программы. Мы можем добавить в реестр запись об отключении декорирования именно для этого бинарника. Подтверждаю проблему (комм. 4,7,8) на euclid'е на новой сборке: Build Date: Сбт 10 Май 2008 13:53:44 Таким образом, отключение декорирования недопустимо, по крайней мере на моей машине проблема выглядит очень неприятной. Проблема проявляется везде (проверил atlant, builder, cellar, freebsd). Бутылка km-school-kondratyuk WINE@Etersoft School на euclid: всё те же проблемы Короче wine тут не виноват, просмотрел я код, который сообщает, какие кнопки куда добавлять.. Так вот для окна такого стиля ( 0x096C00000) заголовок должен быть вообще без кнопок (проверил созданием окна с таким стилем в win), поэтому при декорировании wine, правильно считает, что такой кнопки нет ( а кнопку "свернуть" добавлять, кстати, он тоже не должен) и правильно сообщает какой заголовок делать KDE - без кнопки "закрыть". Эти кнопки создаются самой программой. Поэтому, если перекрыть их любым менеджером (даже в винде типа talisman), то эти кнопки не должны показываться. Сейчас посмотрю, может быть смогу что-нибудь ещё сделать. А ещё такая бага есть в некоторых всплывающих окнах 1с 8.1 (In reply to comment #14) > А ещё такая бага есть в некоторых > всплывающих окнах 1с 8.1 > Модальные всплывающие окна не должны декорироваться... (In reply to comment #15) > > Модальные всплывающие окна не должны > декорироваться... > Управление оставил, а декорирование снял - в итоге получилось очень хорошо, доволен.. Толь, точно нормально? У меня окно неизменно в полоску разворачивалось... (In reply to comment #17) > Толь, точно нормально? > У меня окно неизменно в полоску > разворачивалось... > Я разве что-то говорил, что именно это исправил? Я имел ввиду только то,что я исправил, то что нашёл сам. Смотри 14 комментарий. Так в итоге - можно именно для этого окна отключить декорирование? (In reply to comment #19) > Так в итоге - можно именно для этого окна > отключить декорирование? > Декорирование, по-моему, я уже давно отключил. Проблема состоит в том, что при развётке из минимизированного состояния окно разворачивается с неправильным размером. Я так понял... Надо проверить на wine-school-0.8: какое состояние сейчас? Крестик так и не работает.. (In reply to comment #22) > Крестик так и не работает.. > Хорошо, сейчас у себя проверю, возможно я просто не поделился со всеми хаком.. Если бы приложение было цельным, было бы достаточно в user.reg добавить [Software\\Wine\\AppDefaults\\KMSchool.exe\\X11 Driver] "Decorated"="N" Но так как рабочие места *.arm - это вызываемые исполняемые файлы, и на всех не напасёшься отключения декорирования, принято решение отключить декорирование для окон, имеющих стиль WS_OVERLAPPEDWINDOW. Толя, проверь пожалуйста, и если решение подходит, прокомментируй здесь что получилось. (In reply to comment #24) > Если бы приложение было цельным, было бы > достаточно в user.reg добавить > [Software\\Wine\\AppDefaults\\KMSchool.exe\\X11 Driver] > "Decorated"="N" > Но так как рабочие места *.arm - это > вызываемые исполняемые файлы, > и на всех не напасёшься отключения > декорирования, принято решение отключить > декорирование для окон, имеющих стиль > WS_OVERLAPPEDWINDOW. > > Толя, проверь пожалуйста, и если решение > подходит, прокомментируй здесь что > получилось. > Слишком поспешный комментарий. WS_OVERLAPPEDWINDOW и WS_OVERLAPPED никакого отношения к оверлаппингу в смысле подмены стандартной обработки не имеют. Классы КМ-ШКОЛЫ не имеют шаблона названий (типа KM-TMainWindow и т.д.) чтобы можно было по ключу убирать декорирование. Поэтому вариантов несколько : отключаем декор для всех окон, отключаем декор для окон с конкретным классом, ищём какой-то общий знаменатель стилей для необходимых окон и отключаем декорирование для него. Временно отключено декорирование для КМ-Школы: Created commit 0a01bb5: disable main window decoration for KM-School (fix eterbug #1628) Работает только для главного окна. В модулях всё так же нет крестика. Не моя ошибка. Давно сделал для всех модулей commit cdc4ffc9deecbc464da2f21a9dee7c53fa8240f7 Author: Vitaly Lipatov <lav@etersoft.ru> Date: Sun Jun 29 22:21:56 2008 +0400 disable decoration for all KM-School *.arm modules (see #1628) Закрываю. Сборка 0.9.4 |
Created attachment 374 [details] скрин Тем самым делается невозможным закрыть нормально программу.