Lines 401-421
void FocusControl::dirFocus(FluxboxWindow &win, FocusDir dir) {
Link Here
|
401 |
|
401 |
|
402 |
} |
402 |
} |
403 |
|
403 |
|
404 |
void FocusControl::ignoreAtPointer() |
404 |
void FocusControl::ignoreAtPointer(bool force) |
405 |
{ |
405 |
{ |
406 |
int ignore_i; |
406 |
int ignore_i, ignore_x, ignore_y; |
407 |
unsigned int ignore_ui; |
407 |
unsigned int ignore_ui; |
408 |
Window ignore_w; |
408 |
Window ignore_w; |
409 |
|
409 |
|
410 |
XQueryPointer(m_screen.rootWindow().display(), |
410 |
XQueryPointer(m_screen.rootWindow().display(), |
411 |
m_screen.rootWindow().window(), &ignore_w, &ignore_w, |
411 |
m_screen.rootWindow().window(), &ignore_w, &ignore_w, |
412 |
&m_ignore_mouse_x, &m_ignore_mouse_y, |
412 |
&ignore_x, &ignore_y, |
413 |
&ignore_i, &ignore_i, &ignore_ui); |
413 |
&ignore_i, &ignore_i, &ignore_ui); |
|
|
414 |
|
415 |
this->ignoreAt(ignore_x, ignore_y, force); |
416 |
} |
417 |
|
418 |
void FocusControl::ignoreAt(int x, int y, bool force) |
419 |
{ |
420 |
if (force || this->focusModel() == MOUSEFOCUS) { |
421 |
m_ignore_mouse_x = x; m_ignore_mouse_y = y; |
422 |
} |
414 |
} |
423 |
} |
415 |
|
424 |
|
416 |
void FocusControl::ignoreAt(int x, int y) |
425 |
void FocusControl::ignoreCancel() |
417 |
{ |
426 |
{ |
418 |
m_ignore_mouse_x = x; m_ignore_mouse_y = y; |
427 |
m_ignore_mouse_x = m_ignore_mouse_y = -1; |
419 |
} |
428 |
} |
420 |
|
429 |
|
421 |
bool FocusControl::isIgnored(int x, int y) |
430 |
bool FocusControl::isIgnored(int x, int y) |
Lines 489-494
void FocusControl::revertFocus(BScreen &screen) {
Link Here
|
489 |
else { |
498 |
else { |
490 |
switch (screen.focusControl().focusModel()) { |
499 |
switch (screen.focusControl().focusModel()) { |
491 |
case FocusControl::MOUSEFOCUS: |
500 |
case FocusControl::MOUSEFOCUS: |
|
|
501 |
case FocusControl::STRICTMOUSEFOCUS: |
492 |
XSetInputFocus(screen.rootWindow().display(), |
502 |
XSetInputFocus(screen.rootWindow().display(), |
493 |
PointerRoot, None, CurrentTime); |
503 |
PointerRoot, None, CurrentTime); |
494 |
break; |
504 |
break; |
Lines 593-598
std::string FbTk::Resource<FocusControl::FocusModel>::getString() const {
Link Here
|
593 |
switch (m_value) { |
603 |
switch (m_value) { |
594 |
case FocusControl::MOUSEFOCUS: |
604 |
case FocusControl::MOUSEFOCUS: |
595 |
return string("MouseFocus"); |
605 |
return string("MouseFocus"); |
|
|
606 |
case FocusControl::STRICTMOUSEFOCUS: |
607 |
return string("StrictMouseFocus"); |
596 |
case FocusControl::CLICKFOCUS: |
608 |
case FocusControl::CLICKFOCUS: |
597 |
return string("ClickFocus"); |
609 |
return string("ClickFocus"); |
598 |
} |
610 |
} |
Lines 605-610
void FbTk::Resource<FocusControl::FocusModel>::
Link Here
|
605 |
setFromString(char const *strval) { |
617 |
setFromString(char const *strval) { |
606 |
if (strcasecmp(strval, "MouseFocus") == 0) |
618 |
if (strcasecmp(strval, "MouseFocus") == 0) |
607 |
m_value = FocusControl::MOUSEFOCUS; |
619 |
m_value = FocusControl::MOUSEFOCUS; |
|
|
620 |
else if (strcasecmp(strval, "StrictMouseFocus") == 0) |
621 |
m_value = FocusControl::STRICTMOUSEFOCUS; |
608 |
else if (strcasecmp(strval, "ClickToFocus") == 0) |
622 |
else if (strcasecmp(strval, "ClickToFocus") == 0) |
609 |
m_value = FocusControl::CLICKFOCUS; |
623 |
m_value = FocusControl::CLICKFOCUS; |
610 |
else |
624 |
else |