X11 window freezes if not touched for a few seconds - keyboard

We have a custom built X11 app for running simulations.
The problem is if the window sits without any form of input, the window freezes. We found that the mouse input is hanging in the event dispatch. It appears to be an input lock.
Is there a way to fix this?
Since, normally we do not interact with the window, is there a way to turn off input (mouse and keyboard) without hanging (input lock)?

Related

Windows touch keyboard appearing in controls without text input

In MFC, how do I stop the touch keyboard from appearing when selecting controls without text inputs? Specifically, CComboBox-derived and original CListBox controls. The issue occurs in a large C++ application for touchscreen tablets running Windows 10. Bizarrely, selecting any CEdit control in the application solves the issue until the application restarts.
I've been looking at InputScope, AutomationPeer, and even killing the keyboard process TabTip.exe after it appears, but none of these prevent the keyboard from showing in the first place.
A previous solution involved changing the "Automatically show touch keyboard" registry setting SOFTWARE\Microsoft\TabletTip\1.7\EnableDesktopModeAutoInvoke on focus change, but alerting the touch keyboard with SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE) added unacceptable delay to the UI.

Disabling minimize feature in qml

Is there a way to make a Qt window (qml with pyside2) to never minimize?
(Not the minimize button)
I'm trying to achieve something like conky (Linux) or rainmeter (Windows) with python 3 and qml (Qt).
I want a borderless window to stay on the back of the screen and stay there no matter what as if it's part of the wallpaper. Making the window borderless was achieved with the Qt.SplashScreen flag but disabling minimize turns out to be much harder than I initially thought. All the methods I've tried hides the window when win+D is pressed.

Window manager for linux, supporting focusless windows

On my arm embedded device with a touchscreen, I have a 3rd party program (program A), that creates a window which handle keyboard presses. Because of that, this window always has to have focus. This is a closed source, and I do not have options to modify it.
I need to create a window in linux, that never grabs focus. It just shows an image, some times full screen. However, I have options not to make it full screen (1 pixel less, so window below is visible.).
Right now, I am using only X server, but I can install (almost) any window manager.
Is there a way to create a window in X, that never gets focus? If I understand X correctly, a window bellow mouse will get focus.
Is there a window manager, which supports such feature?
Is this possible to do with with xcb or wayland?
On Wayland, it's up to the compositor to tell the client whether it has focus or not, and which surface(s) to send key events to. So it would depend on the compositor or compositor toolkit you're using if it's possible.
KWin has an option that sounds like it does what you want. Right click the window title bar and choose more actions -> special window settings -> accept focus
Of the compositor toolkits, I only know the Qt Wayland Compositor API, and with that it should be possible (assuming your application can run as a Wayland client). The easiest thing would be to just show the image in the compositor using the QML APIs, or you could set enabled: false on the WaylandQuickItem or ShellSurfaceItem that you don't want to grab input focus.

Mouse gets stuck in "drag and drop mode" when I break into the debugger during a drag and drop operation

I have this weird problem. I'm writing a GUI app in Qt and I have a crash during a drag and drop operation. If I run this app in a debugger, then when this crash occurs and the app breaks into the debugger, the mouse cursor gets stuck in "drag and drop mode" and I can't click on anything until the app is killed. How can i get around that?
Your app crashes in a GUI thread. Try to move the operations you are doing there to a new thread.
On your DragDrop event:
start a new thread doing your job
return from your event without waiting for results
I have the same issue.
I found that when a breakpoint was hit when mouse is dragging or mouseDown, GUI will get stuck and mouse will become unable to response.
For example:
A. Drag&Drop
1) Eclipse SWT: create Drag and Drop for a control
2) set breakpoint within dragging
B. Mouse Down & Mouse Up
1) use mouse down / mouse up to implement behavior of Drag&Drop
2) set breakpoint to dragging action/mouse moving
The mouse will stuck when breakpoint occurred, no matter which DnD happened.
To get mouse back, I'll need to use CTRL+ALT+F1 and use command to kill my process.
Perhaps working in VM or remote desktop can get rid of it.

Block keyboard for embedded xterm, in PyQt4

I'm trying to embed xterm in a PyQt application window for tailing a log file. However, I want to block keyboard input from the user in the embedded terminal, so that they don't, for example, press CTRL-C or CTRL-D, and kill the process.
I'm able to embed the terminal just fine. Is there a setting for xterm or PyQt that can be used to block user input? I want this to be a read-only terminal, that just displays the content of the log file.
I've searched the manpage for xterm, and haven't found anything.
The way to approach this would be to construct a transparent (actually "uncolored") window which overlays the embedded xterm window.
There is an example described in Basic X Window keyboard and mouse input blocking which is essentially a screensaver written in Python. For lower-level (X documentation) on window properties, the links in How to prevent an X Window from receiving user input? may be useful to you.
The main problems to solve would be (in your program) how to ensure that the overlaid window comes on top, and of course how to keep it transparent (since that diverges from the example). The latter is more complicated:
Transparent window in Xwindow parent
Empty or transparent window with Xlib showing border lines only

Resources