aboutsummaryrefslogtreecommitdiff
path: root/src/FocusControl.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-07-30handle both Focusable's as m_cycling_nextThomas Lübking1-2/+5
m_cycling_next can either be WinClient or a FluxboxWindow In case of the latter, client->fbwindow() needs to be matched in setFocusedWindow when protecting against client side focus juggling. BUG: 1148
2016-07-30explicitly set s_focusedWindow for cycle protectionThomas Lübking1-0/+2
2016-07-30Do not reset cycle focus when unsetting focus onlyThomas Lübking1-1/+1
2016-07-30Do not protect focus while cyclingThomas Lübking1-0/+1
We've better things to do and the focus is moving around anyway BUG: 1048
2016-07-30do not lock focus against unfocusing.Thomas Lübking1-1/+1
Latter happens when eg. closing windows, including such with locked focus
2016-07-30prefer m_cycling_next over s_focused_windowThomas Lübking1-1/+6
as cycle start (former is where we wanted to go and X11 is still async)
2016-07-01re-fix alt+tab'bing through tabbed windowsThomas Lübking1-5/+11
commit 98313bf broke (i'm terribly sorry) this because m_cycling_last stores the first client in a tabgroup, thus cannot be abused for this purpose. So we explicitly store a value and btw. do it before sending the focus, ie. "in time" for sure instead of "for sure™"
2016-06-26Add FocusProtection featuresThomas Lübking1-0/+7
The apps file gets a new key FocusProtection supporting a comma separated list. * None : regular behavior * Lock : If this window has the focus, no other may claim it * Deny : This window is not allowed to focus itself I addition there's preparation for a follow-up patch to incorporate and substitute the present FocusNewWindow feature: * Gain : Pass focus to new window * Refuse : Do not pass focus to new window rationale: clients stealing the focus sucks badly and while there's an input driven timeout, that only protects actual typing flow, but if eg. vlc proceeds on the playlist, you'll suddenly control vlc instead of your browser (ie. typing ctrl+w doesn't close the tab, but the playlist ...)
2016-05-28harden focus cycling against client focussingThomas Lübking1-1/+15
Clients which implement a client-side modality might cause livelocks by reverting the focus to the transient (after the WM tried to put it on the leader as the transient's modality is unknown) So while cycling we revert the focus whenever it moves somewhere where we don't expect it. When done, we also focus the window that should have the focus anyway to allow the client to redistribute the focus (as we prevented it during cycling) Hall of Shame: Softmaker Freeoffice uses (only) client side modality.
2012-11-25Fixed lost focus glitch on multihead-ws-warpingHendrik Iben1-0/+6
2012-11-20Added option for focus revert to stay on current headHendrik Iben1-0/+12
2012-07-07make alt-tab skip modal windowsMark Tiefenbruck1-1/+1
2011-02-23disabled overhead base classes 'FbTk::Layer' and 'FbTk::LayerItem'Mathias Gumz1-0/+1
had to add <algorithm> at various other files as a result of this change.
2011-02-22bugfix: consistent use of 'int' for alpha values (#3187373)Mathias Gumz1-1/+1
WindowMenuAccessor returned strange alpha values if compiled with 'g++ -Os'; unholy black magic happens if template<int> faces functions returning only 'usigned char'.
2010-09-10removed hardcoded limitation to cycle/focus windows on all workspacesMathias Gumz1-3/+1
reasons: * fixes #1732115, allows to have chatwindows on another workspaces and reach them via :NextWindow (urgent=yes) * old behavior can be achieve by using the (workspace=[current]) pattern
2010-09-08introduced FbTk::BidiStringMathias Gumz1-1/+1
a 'BidiString' holds both the logical content and the visual reordered version of the content of a string. this helps to reduce the number of calls to reorder the string before drawing it (as introduced in the patch from Ken Bloom) and to be more consistent in menus and textboxes (drawing cursors and underlining text).
2010-05-28Implement StrictMouseFocusJim Ramsay1-5/+14
As noted in the previous commit, StrictMouseFocus now works as advertised: Focus follows mouse on every EnterNotify event (except when the "ClientMenu" closes or during alt+tab window cycling)
2010-05-28Add new focus model: StrictMouseFocusJim Ramsay1-0/+5
This is not actually implemented yet, but from now on, "MouseFocus" means: Focus follows mouse only when you are moving the mouse, any EnterNotify events caused by non-mouse operations (window closing, keycommands, changing desktops) will *not* shift focus And once fully-implemented, "StrictMouseFocus" will mean: Focus follows mouse on every EnterNotify event (except when the "ClientMenu" closes or during alt+tab window cycling)
2010-03-17Changed #ifdef DEBUG ... cerr << to using fbdbg.Henrik Kinnunen1-8/+7
This will reduce the number of #ifdef DEBUG for simple debug messages. include "Debug.hh" and use fbdbg instead of cerr for debug.
2009-09-30cosmetic fixes: removed redundant ';' + some whitespacesMathias Gumz1-31/+33
2009-02-27Added facility to selectively ignore EnterNotify eventsJim Ramsay1-1/+24
This will be used to avoid some situations where an EnterNotify event should not focus the window beneath the mouse cursor. For example, when a menu (or any window for that matter) is unmapped, focus should not pass to whatever window is beneath the current location of the mouse cursor, but to the previous window in the focus list. This was first noticed when using the ClientMenu feature with focus-follows-mouse on -> The focus would always end up on the window beneath the mouse pointer, not the window selected in the menu.
2008-10-01don't flash original window in the middle of cycling focusMark Tiefenbruck1-2/+0
2008-09-28Merge branch 'master' of fluxbox@git.fluxbox.org:fluxboxHenrik Kinnunen1-1/+1
Conflicts: ChangeLog
2008-09-28Change focused signal to use the new signal systemHenrik Kinnunen1-2/+2
2008-09-28don't let KeyRelease events propagate to windowsMark Tiefenbruck1-1/+1
2008-09-21Changed client list signal in BScreen to use the new signal systemHenrik Kinnunen1-2/+2
2008-08-31fix focus after tabbingMark Tiefenbruck1-1/+2
2008-08-23when a transient dies, revert focus to its parentMark Tiefenbruck1-4/+4
2008-08-21fix cycling with minimized windowsMark Tiefenbruck1-0/+3
2008-05-21fix negative arguments to :GoToWindowMark Tiefenbruck1-4/+8
2008-05-21if argument to :GoToWindow is too large, select the last windowMark Tiefenbruck1-5/+7
2008-01-13fix some issues with reverting focusMark Tiefenbruck1-1/+4
2008-01-04remove old svn $Id$ tagsMark Tiefenbruck1-2/+0
2008-01-01fix some flickering on focus changeMark Tiefenbruck1-4/+4
2007-12-23added focused/unfocused borders to stylesMark Tiefenbruck1-1/+1
2007-11-12allow arbitrary window patterns in iconbarmarkt1-79/+48
2007-11-08one more fixmarkt1-8/+8
2007-11-08fix crash bug when cycling focusmarkt1-15/+18
2007-11-05various refactoring and minor changesmarkt1-25/+10
2007-11-04update autoraise delay for open windows on reconfiguremarkt1-1/+5
2007-10-31move fullscreen windows to normal layer when they lose focusmarkt1-3/+1
2007-10-24fix _NET_CLIENT_LIST updating on window closemarkt1-0/+2
2007-10-24introduced workspacename for ClientPattern, and some miscellaneous cleanupmarkt1-11/+11
2007-10-13merged changes from pre-develmarkt1-60/+127
2007-08-20fix problems with focus order when changing workspacesmarkt1-2/+4
2007-07-19minor fix for alt-tabfluxgen1-1/+5
2007-07-17updated behavior of alt-tab to match pre-devel, fixing bug #1755698markt1-41/+49
2007-06-29updates for compiling with gcc 4.3markt1-0/+5
2007-03-06I seem to have forgotten this in the last patchmarkt1-18/+0
2007-03-04moved some code around (regarding event handling) in preparation for ↵markt1-1/+3
upcoming features