Как приложения, такие как gksu, блокируют фокус при запуске?

378
Monty

Мне любопытно, как приложения, такие как блокировка экрана gksu при запросе пароля. Я вижу, у gksu даже есть опция "-g", которая может отключить это поведение.

Я заинтересован в том, чтобы сделать нечто подобное для приложения Python (я использовал Quickly для создания приложения с графическим интерфейсом - GTK + 3), но я не могу найти информацию о том, как это можно сделать. Я нашел такие вещи, как fullscreen () и т. Д., Но мне действительно нравится, как это делает gksu.

Я использую Lubuntu 14.04 (LXDE)

Любые указатели или предложения будут оценены.

0

1 ответ на вопрос

0
AFH

If you look at the source code you will see the functions grab_keyboard_and_mouse() and ungrab_keyboard_and_mouse(), which do the locking and unlocking.

The core locking and unlocking functions are done by calling the GTK library functions gdk_pointer_grab() and gdk_keyboard_grab() and their ..._ungrab() equivalents.

You would need to make these functions callable from Python, but I don't know if that is a simple task or not. Alternatively, maybe you can find a program which puts up a message box with some input fields and buttons, like an extended xmessage, but locking the screen while it's active.

Спасибо за информацию AFH. Просмотр исходного кода очень помогает и дает мне хорошую отправную точку в том, что делать на стороне Python. Мне также кажется, что они в основном получают размеры экрана x и y и рисуют прямоугольник, который полупрозрачен для «блокировки» экрана. По крайней мере, это то, что мне кажется, и интересная идея о том, как по существу «заблокировать» экран. Monty 9 лет назад 0