История изменений
Исправление KivApple, (текущая версия) :
У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).
Про нефокусируемые окна:
1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.
2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.
3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).
4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).
То есть по сути просто сделать доступным вызов уже имеющегося метода setFocusable com.sun.glass.ui.Window из пользовательского кода.
Сделать такой патч - дело 15 минут максимум. Но примут ли его?
UPD: Немного соврал. В методе setFocusable класса javafx.stage.Window надо проверять, если impl_peer == null, то сохранять значение параметра до лучших времён, а внутри impl_visibleChanging вызывать setFocusable повторно после создания impl_peer.
Исправление KivApple, :
У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).
Про нефокусируемые окна:
1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.
2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.
3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).
4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).
То есть по сути просто сделать доступным вызов уже имеющегося метода setFocusable com.sun.glass.ui.Window из пользовательского кода.
Сделать такой патч - дело 15 минут максимум. Но примут ли его?
Исправление KivApple, :
У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).
Про нефокусируемые окна:
1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.
2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.
3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).
4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).
То есть по сути просто сделать доступным вызов уже имеющегося метода setFocusable com.sun.glass.ui.Window из пользовательского кода.
Исходная версия KivApple, :
У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).
Про нефокусируемые окна:
1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.
2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.
3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).
4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).
То есть по сути просто сделать доступным вызов уже имеющегося метода com.sun.glass.ui.Window из пользовательского кода.