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 594-599
std::string FbTk::Resource<FocusControl::FocusModel>::getString() const {
Link Here
|
594 |
switch (m_value) { |
604 |
switch (m_value) { |
595 |
case FocusControl::MOUSEFOCUS: |
605 |
case FocusControl::MOUSEFOCUS: |
596 |
return string("MouseFocus"); |
606 |
return string("MouseFocus"); |
|
|
607 |
case FocusControl::STRICTMOUSEFOCUS: |
608 |
return string("StrictMouseFocus"); |
597 |
case FocusControl::CLICKFOCUS: |
609 |
case FocusControl::CLICKFOCUS: |
598 |
return string("ClickFocus"); |
610 |
return string("ClickFocus"); |
599 |
} |
611 |
} |
Lines 606-611
void FbTk::Resource<FocusControl::FocusModel>::
Link Here
|
606 |
setFromString(char const *strval) { |
618 |
setFromString(char const *strval) { |
607 |
if (strcasecmp(strval, "MouseFocus") == 0) |
619 |
if (strcasecmp(strval, "MouseFocus") == 0) |
608 |
m_value = FocusControl::MOUSEFOCUS; |
620 |
m_value = FocusControl::MOUSEFOCUS; |
|
|
621 |
else if (strcasecmp(strval, "StrictMouseFocus") == 0) |
622 |
m_value = FocusControl::STRICTMOUSEFOCUS; |
609 |
else if (strcasecmp(strval, "ClickToFocus") == 0) |
623 |
else if (strcasecmp(strval, "ClickToFocus") == 0) |
610 |
m_value = FocusControl::CLICKFOCUS; |
624 |
m_value = FocusControl::CLICKFOCUS; |
611 |
else |
625 |
else |