diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-08-04 13:29:13 -0400 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-08-04 13:29:13 -0400 |
| commit | 0cfd92ab9e56d8f790c92b83436e981fa46efe20 (patch) | |
| tree | 0742fe9d489d5ba1c32ba754ed90d0ba4e4c3208 /openbox/focus.c | |
| parent | ac59dd4fe53330d717a12f55f6bfc17467ad2ae2 (diff) | |
don't make omnipresent windows lose focus when changing desktops. this is done by allowing focus_fallback to specify if focus has been lost or not. usually if you're call it, focus is lost, but not always.
Diffstat (limited to 'openbox/focus.c')
| -rw-r--r-- | openbox/focus.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/openbox/focus.c b/openbox/focus.c index 0dafd799..b056db7e 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -159,7 +159,7 @@ static ObClient* focus_fallback_target(gboolean allow_refocus, } ObClient* focus_fallback(gboolean allow_refocus, gboolean allow_pointer, - gboolean allow_omnipresent) + gboolean allow_omnipresent, gboolean focus_lost) { ObClient *new; ObClient *old = focus_client; @@ -167,7 +167,8 @@ ObClient* focus_fallback(gboolean allow_refocus, gboolean allow_pointer, /* unfocus any focused clients.. they can be focused by Pointer events and such, and then when we try focus them, we won't get a FocusIn event at all for them. */ - focus_nothing(); + if (focus_lost) + focus_nothing(); new = focus_fallback_target(allow_refocus, allow_pointer, allow_omnipresent, old); |
