Algoritmo de detecção de tela cheia para lockscreen / screensaver

1

Estou trabalhando em um algoritmo de detecção de tela cheia de cross linux, para uso na detecção de tela de bloqueio e proteção de tela.

Isso é o que eu tenho até agora:

  1. Verifique se _NET_WM_STATE_FULLSCREEN é suportado, se é então buscar _WM_STATE átomos na janela e procurar pelo átomo _NET_WM_STATE_FULLSCREEN
  2. Se _NET_WM_STATE_FULLSCREEN NÃO for suportado, ele usará XGetWindowRect e, em seguida, comprimirá a largura e hegiht (ret [2] e ret [3]) para a largura e a altura da tela obtidas por meio das macros WidthOfScreen e HeightOfScreen .

O problema com isso é que quando meu script verifica a tela de bloqueio WM_NAME da "janela de entrada nux" está descobrindo que _NET_WM_STATE_FULLSCREEN átomo é suportado, mas não encontra esse átomo nos átomos _NET_WM_STATE buscados, os átomos de estado buscados são:

  • 298 _NET_WM_STATE_STICK
  • 296 _NET_WM_STATE_SKIP_TASKBAR
  • 297 _NET_WM_STATE_SKIP_PAGER
  • 315 _NET_WM_STATE_FOCUSED

Nós vemos que o átomo em tela cheia de 291 não está presente. Mas nós achamos que window_rect width e heiht são iguais a largura e altura da tela.

Como o átomo em tela cheia não está sendo mostrado para "janela de entrada nux", que é a tela de bloqueio?

    
por Noitidart 02.01.2015 / 00:44

0 respostas