aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/WinClient.cc19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/WinClient.cc b/src/WinClient.cc
index 7ed3c64..69260a8 100644
--- a/src/WinClient.cc
+++ b/src/WinClient.cc
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: WinClient.cc,v 1.33 2003/12/15 20:20:20 rathnor Exp $ 22// $Id: WinClient.cc,v 1.34 2003/12/21 13:31:12 fluxgen Exp $
23 23
24#include "WinClient.hh" 24#include "WinClient.hh"
25 25
@@ -386,6 +386,20 @@ void WinClient::updateWMHints() {
386 initial_state = NormalState; 386 initial_state = NormalState;
387 } else { 387 } else {
388 wm_hint_flags = wmhint->flags; 388 wm_hint_flags = wmhint->flags;
389 /*
390 * ICCCM 4.1.7
391 *---------------------------------------------
392 * Input Model Input Field WM_TAKE_FOCUS
393 *---------------------------------------------
394 * No Input False Absent
395 * Passive True Absent
396 * Locally Active True Present
397 * Globally Active False Present
398 *---------------------------------------------
399 * Here: WM_TAKE_FOCUS = send_focus_message
400 * Input Field = wmhint->input
401 * Input Model = m_focus_mode
402 */
389 if (wmhint->flags & InputHint) { 403 if (wmhint->flags & InputHint) {
390 if (wmhint->input) { 404 if (wmhint->input) {
391 if (send_focus_message) 405 if (send_focus_message)
@@ -398,13 +412,14 @@ void WinClient::updateWMHints() {
398 else 412 else
399 m_focus_mode = F_NOINPUT; 413 m_focus_mode = F_NOINPUT;
400 } 414 }
401 } else // not present => false (check?). 415 } else { // not present => assuming False.
402 // note that mozilla has no value, and has send_focus 416 // note that mozilla has no value, and has send_focus
403 // and requires globally active 417 // and requires globally active
404 if (send_focus_message) 418 if (send_focus_message)
405 m_focus_mode = F_GLOBALLYACTIVE; 419 m_focus_mode = F_GLOBALLYACTIVE;
406 else // lots of apps have no hint, but need focus 420 else // lots of apps have no hint, but need focus
407 m_focus_mode = F_PASSIVE; 421 m_focus_mode = F_PASSIVE;
422 }
408 423
409 if (wmhint->flags & StateHint) 424 if (wmhint->flags & StateHint)
410 initial_state = wmhint->initial_state; 425 initial_state = wmhint->initial_state;