LINUX.ORG.RU

История изменений

Исправление Zubok, (текущая версия) :

Кликнули мышкой на W2, сигнал получило W2.

Или сигнал должно получить W2, как получившее до этого фокус а я что-то делаю неправильно?

То, что ты кликнул, еще не значит, что W2 получило фокус. Фокус, скорее всего, у тебя имеет W1, которому оконный менеджер его дал. W1 — top-level окно. Для того, чтобы W2 получило фокус, надо его ему явно передать при помощи XSetInputFocus по клику в нем. К сожалению, я не вижу кода. Может быть, ты и передаешь фокус W2. но в посте об этом не сказано. А так как W3 не есть подокно W2, то в этом случае я ожидаю, что после XSetInputFocus(...W2...) клавиатура будет все время слать сообщения в W2, пока оно не потеряет фокус.

Исходная версия Zubok, :

Кликнули мышкой на W2, сигнал получило W2.

Или сигнал должно получить W2, как получившее до этого фокус а я что-то делаю неправильно?

То, что ты кликнул, еще не значит, что W2 получило фокус. Фокус, скорее всего, у тебя имеет W1, которому оконный менедлжер его дал. W1 — top-level окно. Для того, чтобы W2 получило фокус, надо его ему явно передать при помощи XSetInputFocus по клику в нем. К сожалению, я не вижу кода. Может быть, ты и передаешь фокус W2. но в посте об этом не сказано. А так как W3 не есть подокно W2, то в этом случае я ожидаю, что после XSetInputFocus(...W2...) клавиатура будет все время слать сообщения в W2, пока оно не потеряет фокус.