Wine. Проблема с docked-окнами ("прилипающие" окна) в 1С Бухгалтерия
Проблема в том, что под wine поведение ОП не корректно. Т.е. несколько раз оно отображается нормально - а затем отображения не происходит. Проблема исключительно возникает только под wine - в нативной винде подобных проблем нет. Я подозреваю что это и бока 1с-гавноподелия - так как с другими программами проблем вроде нет (да собственно другие и не используются :) ), но и в тоже время огрехи самой вайны - т.к. еще ряд окон подобного типа (в 1с) хотя и отображаются нормально - но есть проблемы с элементами управления - их не возможно закрыть.
Кто нибудь сталкивался с подобным? Сейчас сижу копаюсь в исходниках вайна - но может есть уже опробованные решения?
З.Ы. Попытки играться с видеорежимами, типами ОС и нативными библиотеками внятного решения не принесли.
нет. путь использования бесплатно/честноспизженой версии не годится.
Во первых какой тогда смысл менять шило на мыло - один закрытый код на другой? Во вторых - вариант использования платной версии - нет резона ради небольшого бага покупать платную версию - если это устранено энтерософтом - то значит это возможно устранить в принципе.
2all ищется не костыль, потому как в принципе пока проблема особо остро не стоит - но интересно найти решение. Потому предложение типа "попробуйте ..." не интересны - вопрос именно в источниках проблемы. Сейчас по мере наличия времени ковыряю механизм управления окнами под вайном - если у кого есть сведенья о структуре механизмах и принципах работы с окнами - то поделитесь.
За участие спасибо. :)
Там можно подглядеть патчи, и собственно решение самих проблем, возникающих при интеграции этих двух продуктов. Ну и спроицировать какие-то идеи на вашу задачу.
собственно проект
Вероятно патч, который исправляет мою проблему я нашел. За попробую за сегодня-завтра наложить патч и пересобрать вайну. По результатам отпишусь.
Выполняю конфигурацию все проходит нормально.
Выполняю make depend - получаю следующую ошибку:
../../tools/makedep -C. -S../.. -T../.. main.c rsrc.rc
make[2]: Выход из каталога `/home/konstantin/Project/wine/programs/uninstaller'
make[2]: Вход в каталог `/home/konstantin/Project/wine/programs/uninstaller'
../../tools/makedep -C. -S../.. -T../.. main.c rsrc.rc
make[2]: Выход из каталога `/home/konstantin/Project/wine/programs/uninstaller'
make[2]: Вход в каталог `/home/konstantin/Project/wine/programs/view'
../../tools/makedep -C. -S../.. -T../.. init.c view.c winmain.c viewrc.rc
make[2]: Выход из каталога `/home/konstantin/Project/wine/programs/view'
make[2]: Вход в каталог `/home/konstantin/Project/wine/programs/view'
../../tools/makedep -C. -S../.. -T../.. init.c view.c winmain.c viewrc.rc
make[2]: Выход из каталога `/home/konstantin/Project/wine/programs/view'
make[2]: Вход в каталог `/home/konstantin/Project/wine/programs/wdi'
make[2]: *** Нет правила для сборки цели `depend'. Останов.
make[2]: Выход из каталога `/home/konstantin/Project/wine/programs/wdi'
make[1]: *** [wdi/__depend__] Ошибка 2
make[1]: Выход из каталога `/home/konstantin/Project/wine/programs'
make: *** [programs/__depend__] Ошибка 2
В каталоге содержится Makefile.in следующего содержания:
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = wdi.exe
APPMODE = -mwindows
IMPORTS = user32 kernel32 advapi32 shlwapi
EXTRALIBS = -lX11 -L/usr/X11R6/lib $(LIBUNICODE)
EXTRADEFS = -DUNICODE
C_SRCS = \
explorer.c \
http.c \
mailto.c \
mime.c \
theme.c \
wallpaper.c \
wdi.c
RC_SRCS = \
rsrc.rc
@MAKE_PROG_RULES@
### Dependencies:
в чем может быть проблема? В оригинальной вайне данная директория отсутсвует. Попытался сконфигурировать с флагом --without-wdi - результата не дало.
Собрал снапшот вайна 1.1.35 - сейчас пытаюсь воспороизвести ошибку.
Как бы не наоборот и вот эта "компания" не пошла по пути проекта оптимизации запуска Picasa под wine..... Пытался где-то с пол года назад контактировать с главным руководителем этой, с позволения сказать, компании. Получил достаточно странный и наполовину понятный ответ... смысл такой - "покупайте нашу фигню, лицензию и прочие приблуды, а о сотрудничестве не может быть и речи (или что-то в этом духе). или будьте распространителем нашей фигни". а мне оно надо?!.... совместная разработка и интеграция не рассматривалась. или может я дурак и не понял глубокого смысла, заточенного в его фразе.
[QUOTE=kot_]Точнее я не совсем так выразился. Так как пикаса-вайна основана на ветке 0.9 - а я хочу опираться на чтото поновее - то сам патч наложить не получится.[/QUOTE]А этот проект и не будет развиваться. Пока google не найдет исходники от Picasa, кот. были странным образом потеряны. И это не шутка, это серьезная и злая правда. Как они умудрились никто теперь не знает. Хорошо, что хоть не пару кластеров потеряли :)
[QUOTE=kot_]Чтото не могу разобраться. Пытаюсь собрать пикаса-вайну под Ubuntu.
Выполняю конфигурацию все проходит нормально.
Выполняю make depend - получаю следующую ошибку:[/QUOTE]
make depend не всегда необходимо выполнять. только когда это предусмотренно программописателями для проверки целей сборки и зависимостей. бывает, что make depend не проходит, а конфигурация и сборка нормально заканчиваются.....
[QUOTE=kot_]в чем может быть проблема? В оригинальной вайне данная директория отсутсвует. Попытался сконфигурировать с флагом --without-wdi - результата не дало. Вобщем из пикасовских проектов собрать не удалось - вышеозначенную ошибку устранить удалось путем исключения из сборки wdi и еще ряд модулей - но при компиляции начали вылазить ошибки и на третьем круге я задолбался :) [/QUOTE]
попробую собрать этот проект на солярке. на линухе не получится, так как нигде его не имею вообще... отпишусь позже, что получится.
[QUOTE=kot_]Собрал снапшот вайна 1.1.35 - сейчас пытаюсь воспороизвести ошибку. [/QUOTE]
Я в своих целях использую таки старенький wine - 1.0.xx не помню точно какой.
Пытался собирать последний снапшот или самый последний релиз и после запуска многое поломалось, кирилица вообще сломалась напрочь. удалил его и откатился к старому релизу.
Вообщем, отпишусь об успехах/неудачах сборки pica-wine'а.
сборка не выполняется - ошибку при make depend я убрал (исключив проблемные модули) - но полезли другие ошибки и я честно говоря подумал что слишком много трудов ради того, что бы посмотреть устранена ли ошибка.
Вайновский снапшот собрался абсолютно без всяких проблем.
Я его собрал, и обнаружил что отключение режима декорирования окон теперь приводит к желаемому результату (т.е. появляются стандартные кнопки управления окном на отдельных окнах выбора). В прикрепленных файлах видна эта разница - в первом показано как выглядит окно без декорирования, а во втором - с декорированием. Тут бок в том, что разработчики данного участка кода для менеджера окон тупо и прямолинейно решили - если окно модальное и имеет определенный тип - закрывать его допустимо только модальными баттомами. Вполне в принципе логично. Правда не понятно почему нельзя закрывать его через меню управления окнами.
А одинсышники в свою очередь решили что если человек подобное окно открыл - он должен что либо выбрать обязательно. инииибет. Либо закрывать его через заголовок окна. В общем ступили и те и другие.
Но что интересно - в данной версии мне пока не удается воспроизвести ошибку открытия "прилипающего" окна. Вобщем перед пользователями поставил задачу, что бы как только появится сразу сообщили.
программка ./wine/programs/wdi не включена вообще в цели конфига и сборку. Флагов касающихся ее нет, т.е. --without-wdi такого флага нет, если почитать даже ./configure -h
дальше немного покопавшись в файле configure обнаружил, что wdi полностью отсутствует в целях конфигурирования... со строки 22690:
ac_config_files="$ac_config_files programs/wineboot/Makefile"
ac_config_files="$ac_config_files programs/winebrowser/Makefile"
ac_config_files="$ac_config_files programs/winecfg/Makefile"
что-то отдаленно напоминающее нашел вот здесь, но результат нулевой.... этот модуль видимо как-то используется picasa, вобщем что-то приросшее и не доделанное.
Последний снапшот не пробовал, а взял сорцы от сюда
wdi так же отсутствует и все проходит гут.
Проект совсем заморожен и только оставшиеся патчи могут нести полезность.... :)
Заморожен и хрен с ним. После нового года займусь отладкой и попробую поймать момент создания проблемного окна. Т.к. эта проблема характерна для всех окон подобного типа - думаю что найти причину удасться.
Ну а счас главное обеспечить работу бухгалтеров с отчетами - до 5 числа эта задача приоритетнейшая. И как обычно 1С позволяет им создать себе проблемы абсолютно на пустом месте - видимо дабы не скучали. Да и сами бухгалтера надо сказать неблещут - итого - гремучая смесь получается :)
Всех с наступающим Новым Годом!