В Gnome при не managed режиме после того, как окно имеющее X фокус (например MessageBox или всплывающее popup окно), становится невидимым или уничтожается приложение запущенное в wine теряет фокус ввода. В KDE с этим все впорядке. В не managed режиме тоже все нормально. Воспроизвести можно так: - бутылка 1c77/1c77-27-OpenConf - база "Зарплата+Кадры" - Конфигуратор Редактируем код какого-либо модуля, чтобы появилась подсказка. Выбираем какой-либо текст из подсказки. Текст вставляется, окно 1с теряет фокус.
Выложил патч. Проблема заключалась в том, что после передачи X-ового фокуса ввода окну, как только окно становилось не видимым или уничтожалось, Gnome передавал X фокус родителю этого окна (если запуск был из консоли то фокус уходил в нее). Поведение KDE в этом случае немного отличается - фокус родителю не передается и ошибки нет. Проблема проявляется только в не managed режиме. В этом случае управление X фокусом осуществляет функция X11DRV_SetFocus. Решение заключается в том, что как только приложение wine получило X фокус (в не managed режиме), все дальнейшие попытки его передать блокируются до тех пор, пока он остается у wine. На самом деле, если фокус оказывается у приложения wine, функций Windows API вполне достаточно для его передачи в пределах приложения и вмешательство X-ов не требуется.
Принято. eter42\eter18