Raspbian: javaFX Application is not waking up touchscree display after power safe - javafx

I played around with javaFX on a rPi 3 and the official 7" touchscreen. I know that javaFX is not using X11 when showing an application and there are some limitations after all (fullscreen mode, hide cursor, alt-C not workling by default).
But my main problem is the power safe of the touchscreen. After some minutes the display goes black and it is then impossible to reactivate it. Not by touching the screen, nor by clicking with a mouse or typing on a keyboard. It is not limited to my application, every simple hello World with a small UI has the same problem.
Has anybody an idea what to do?
I call my app simply by
sudo java -cp "./lib/myJar.jar" my.pack.Test
Is there some option or varaible that I maybe forgot to set?
Thank you and BR
Stefan

Related

Is there a way to disable virtual keyboard in JavaFX for ARM?

I'm using ARM build of JavaFX from Gluon on my Raspberry Pi. It has Virtual Keyboard enabled, so every time I touch an input field -- the keyboard pops up. Is there a way to disable it? I've tried using -Dcom.sun.javafx.isEmbedded=false -Dcom.sun.javafx.touch=false -Dcom.sun.javafx.virtualKeyboard=none but that has no effect.
I need to do this to replace the default VK with a custom one, that supports different layouts and locales (and looks better, tbh). Right now both of them pop up, overlapping each other.
With JavaFX 11 -Dcom.sun.javafx.virtualKeyboard="none" works for Gluon builds. For JavaFX8 I haven't found a solution at the time except rebuilding from source.

How to prevent QT from drawing to the screen? (prevent flickering when video played with gstreamer)

This is QT5. Its on an embedded Yocto system, with QT drawing to the framebuffer, no X11. The problem is this. I want to play a video using gstreamer. So, I tried to launch gstreamer with gst-launch-1.0 linked to a touch event in QT. Problem is, it flickers as QT also tries to render frames.
Next, we tried Q media player. However, this proprietary gstreamer doesn't support playbin, so, I went into QGstreamerPlayerSession and modified the constructor to use gst_parse_launch to set up my pipeline instead of playbin.
This works, in that my video plays. However, there is still the same flickering! I tried to throw up a white rectangle before launching the video, but it still flickers.
How could I prevent QT from redrawing? Do I need an empty scene before playing the video? Or is there a function call to pause redrawing?
I could of course send a SIGSTOP to QT, play the video in an external application, then resume with a SIGCONT. That works, but is obviously a very inelegant and restrictive solution (I need the app to be processing in the background still as its controlling other things as well).

Keep QDialog on top of everything, even fullscreen applications?

On a project I work on, using Python3 + PySide, I try to print a popup-message as some sort of notification.
This popup needs to be on top of everything, this includes fullscreen applications like games or browsers. And that's the point that does not work. It works fine for all windows on my Desktop, normal windows, maximized, but as soon as there is a fullscreen application or a borderless window ("pseudo fullscreen") the popup is created, but "behind" the fullscreen app.
I already use self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint) but this flag does get ignored by other fullscreen apps.
How do I fix this? Also without giving focus to the popup.
It is just there to present information, and it is not good when your window looses focus while playing a game.
My code can be found here: https://github.com/GosuSan/PyECM
additional Info:
- my project aims to be cross-platform, so I need a platform-independend solution
- I am running linux, without having a windows machine atm,
so I can't test stuff there.
If you need any more info, let me know!
Edit:
It seems that PySide.QtGui.QSystemTrayIcon.showMessage does what I want, it works on fullscreen as well as on borderless-windows. So I will try to either find out how those messages are displayed on top, or just use them, not sure for now.

Java FX system tray message

I'm developping an application that needs to run silently in the system tray.
That's why i used this SOLUTION first to hide my application in the System Tray, which is working really nicely.
However at some point my users will need to be notified about things. Like on Skype or Msn, when you get a message you are being notified of it with a popup in the right bottom zone of your display.
I'm looking for a way to reproduce this, i couldn't find anything in the java.awt.SystemTray doc. Is there any native class doing this or should i try to reproduce it by generating a window myself ?
First there is the answer from JavaFX: what is the best way to display a simple message?. This uses a custom popup as javafx from java 8 could not be used by the implementor.
If you can use javafx2 (the one with java 8) you can look at the Controlsfx library found here: Notifications with Controlsfx

Flex On Touch Screen System: Does web sites in flex works on touch screen system?

I build a web site in flex that some time take input. Will this website works on Touch Screen environment(KIOSK).My question is we have to make any change to handle input such as prompt on screen keyboard when input fields are get focused or it will manage my device and OS of system(KIOSK, Touch screen system) itself.
I'm unclear exactly what your question is. But, yes, Flex should work on touch screens and traditional screens with a mouse and keyboard.
It is likely that you'll need project modifications for each environment. The size of a button to accept a mouse click is going to be much smaller than what you need to accept a finger click, for example.
You can use a library project to share code between these two projects / interfaces.
I remember using Flex applications on touch screen monitors running Windows/Linux. These operating systems treat/converts touches as/into mouse actions and hence Flex apps doesn't know the difference.
Whether you'll be able to run it on a kiosk depends on the underlying OS. If the OS converts touches to mouse movements, then yeah, your app will run seamlessly.

Resources