Здравствуйте!
В моей программе необходимо реагировать определенным образом на создание окон, изменение их размеров, перемещении и т. д. Для этого я получаю сообщения от рутового окна с маской SubstructureNotifyMask. Но вся беда в том, что, например, при создании окна (я запускаю какое-либо приложение) начинают приходить не только сообщения CreateNotify, ConfigureNotify и MapNotify. А так же приходят сообщения и DestroyNotify. Получается, что создается не только одно окно, а несколько, а некоторые из них сразу же после создания уничтожаются. Такое же происходит и при попытке реагировать на другие действия с окнами.
Подскажите пожалуйста:
1. Есть ли другой способ реагировать на описанные действия с конами?
2. Почему приходят сообщения о создании еще каких-то окон и об уничтожении каких-то окон?
Привожу небольшой лог (запускал клнсоль из KDE):
defRootWnd = 0x44
The dispatching of events:
'DestroyNotify' event come for window 0x1000003
event = 0x44
serial = 7
send_event = 0
'CreateNotify' event come for window 0x1000004
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 1
height = 1
border_width = 0
'CreateNotify' event come for window 0x16000F2
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x1000004
override_redirect = 1
serial = 7
send_event = 0
x = 320
y = 307
width = 16
height = 16
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x1000004
override_redirect = 1
serial = 7
send_event = 0
x = 320
y = 307
width = 20
height = 20
border_width = 0
'CreateNotify' event come for window 0x3A00001
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 1
height = 1
border_width = 0
'DestroyNotify' event come for window 0x3A00001
event = 0x44
serial = 7
send_event = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x1000004
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1029
width = 20
height = 20
border_width = 0
'MapNotify' event come for window 0x16000F2
event = 0x44
override_redirect = 1
serial = 7
send_event = 0
'CreateNotify' event come for window 0x3A00002
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 1
height = 1
border_width = 0
'DestroyNotify' event come for window 0x3A00002
event = 0x44
serial = 7
send_event = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x1000004
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1033
width = 20
height = 20
border_width = 0
'CreateNotify' event come for window 0x3C00001
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C00002
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 1
height = 1
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x1000004
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1036
width = 20
height = 20
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C00002
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1036
width = 20
height = 20
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C00002
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1039
width = 20
height = 20
border_width = 0
'CreateNotify' event come for window 0x3C00007
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C00018
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C00002
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1042
width = 20
height = 20
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C00018
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1042
width = 20
height = 20
border_width = 0
'CreateNotify' event come for window 0x3C0001A
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0001B
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0001C
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0001D
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0001E
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0001F
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'ConfigureNotify' event come for window 0x3C00007
event = 0x44
above = 0x3C00002
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 321
height = 321
border_width = 0
'CreateNotify' event come for window 0x3C00020
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C00021
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0002C
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0002D
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0002E
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'CreateNotify' event come for window 0x3C0002F
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C00018
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1044
width = 20
height = 20
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C0002F
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1044
width = 20
height = 20
border_width = 0
'DestroyNotify' event come for window 0x3C00047
event = 0x44
serial = 7
send_event = 0
'ConfigureNotify' event come for window 0x3C00007
event = 0x44
above = 0x3C00002
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 746
height = 430
border_width = 0
'CreateNotify' event come for window 0x1201070
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 1
height = 1
border_width = 0
'ConfigureNotify' event come for window 0x1200032
event = 0x44
above = 0x160003E
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 100
height = 100
border_width = 0
'CreateNotify' event come for window 0x1201088
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'ConfigureNotify' event come for window 0x1201088
event = 0x44
above = 0x1201070
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 100
height = 100
border_width = 0
'ConfigureNotify' event come for window 0x1200032
event = 0x44
above = 0x160003E
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 754
height = 462
border_width = 0
'ConfigureNotify' event come for window 0x1201070
event = 0x44
above = 0x0
override_redirect = 0
serial = 7
send_event = 0
x = 0
y = 0
width = 1
height = 1
border_width = 0
'ConfigureNotify' event come for window 0x1201070
event = 0x44
above = 0x0
override_redirect = 0
serial = 7
send_event = 0
x = 526
y = 0
width = 754
height = 462
border_width = 0
'MapNotify' event come for window 0x1201070
event = 0x44
override_redirect = 0
serial = 7
send_event = 0
'ConfigureNotify' event come for window 0x1201070
event = 0x44
above = 0x120003F
override_redirect = 0
serial = 7
send_event = 0
x = 526
y = 0
width = 754
height = 462
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C0002F
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1046
width = 20
height = 20
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C0002F
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1047
width = 20
height = 20
border_width = 0
'ConfigureNotify' event come for window 0x16000F2
event = 0x44
above = 0x3C0002F
override_redirect = 1
serial = 7
send_event = 0
x = 129
y = 1049
width = 20
height = 20
border_width = 0
'CreateNotify' event come for window 0x3C000B8
parent = 0x44
override_redirect = 0
serial = 7
send_event = 0
x = 320
y = 307
width = 640
height = 409
border_width = 0
'UnmapNotify' event come for window 0x16000F2
event = 0x44
serial = 7
send_event = 0
from_configure = 0
'UnmapNotify' event come for window 0x16000F2
event = 0x44
serial = 7
send_event = 1
from_configure = 0
'DestroyNotify' event come for window 0x16000F2
event = 0x44
serial = 7
send_event = 0
'DestroyNotify' event come for window 0x3C000B8
event = 0x44
serial = 7
send_event = 0
'ConfigureNotify' event come for window 0x180011A
event = 0x44
above = 0x18000F9
override_redirect = 1
serial = 7
send_event = 0
x = 93
y = 898
width = 206
height = 86
border_width = 0
'ConfigureNotify' event come for window 0x180011A
event = 0x44
above = 0x18000F9
override_redirect = 1
serial = 7
send_event = 0
x = 133
y = 898
width = 206
height = 86
border_width = 0
Оконные сообщения X Windows
Модератор: Модераторы разделов