aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-07-23Allow to center fbrunThomas Lübking2-16/+32
While any window can be centered using the apps file, fbrun can serve many purposes and sometimes (runner) makes sense being centered, sometimes (button/menu triggered input) near the mouse, sometimes ("application") regularily placed. REQUEST: 282
2016-07-23limit fbrun history sizeThomas Lübking1-4/+13
the default is 1024-1025, values are read from the FBRUN_HISTORY_SIZE environment variable NOTICE: the limit isn't hard, but will typically be n+1 and only n if the new entry is already present in the last n entries REQUEST: 202
2016-07-23add autocompletion support to fbrunThomas Lübking4-1/+20
2016-07-23improve fbrun completionThomas Lübking2-127/+125
- streamline code - indicate completion by making use of selection - fix buggy behavior (notably subsequent completions and FS path following) - support "~" in paths - support chunk completion (ie. "mp[layer] ~/vid[eos/favporn.mp4]" can be completed in both tokens; buggy with paths including spaces in non-leafs) REQUEST: 223
2016-07-23clear selection on text inputThomas Lübking1-0/+1
Entering upcase chars would auto-select them Seems I don't need upcase chars very often ;-)
2016-07-03list strict mouse focus in FOCUS POLICY sectionThomas Lübking1-0/+2
of man 1 fluxbox. BUG: 950
2016-07-03less bashisms in fluxbox-generate_menuThomas Lübking1-9/+10
still works with bash or zsh, but fish (now) complains about "cat << EOF" ... no "grep -q" BUG: 961 echo is troublesome POSIX doesn't know a "local" keyword BUG: 975 seems double comments ## aren't supported everywhere BUG: 1057
2016-07-03smart handling of NotifyUngrab crossing eventsThomas Lübking2-5/+12
closing a keyboard driven popup had the sideeffect to return the focus where the pointer is, regardless of whether that window had the focus before (due to a NotifyUngrab crossing event), bug #597 This was resolved by simply ignoring NotifyUngrab mode crossings, but that had the unfortunate sideeffects to break focus passing when the mouse was actually moved (in a DnD operation, 730) or the focus shall be passed on for strict mouse focus and a mouse triggered lower action (1012) So instead we record the window that was last entered by a *real* crossing and only ignore the NotifyUngrab event if this window didn't change. BUG: 1012 BUG: 730 CCBUG: 597
2016-07-02Revert "bugfix: fbsetroot needs to use 24bit visuals as well"Thomas Lübking1-9/+4
This reverts commit 4f4d5e25d9a0cf1fc4c0d1a8b7777a560494b7a4. The patch resolved a problem introduced by the ::setDepth abuse in FbRootWindow, but this fails if the root window is *really* 32bit With commit dcdde4d, the broken workaround depth selection is no longer required. BUG: 1093
2016-07-02document "transient" sectionThomas Lübking1-0/+9
BUG: 1092
2016-07-01ignore font for empty title height calculationThomas Lübking3-22/+23
and align calculation on init and reconfigure As a result, if a menu has no label, the title height is determined only by menu.titleHeight (and the border sizes), not by the unused font.
2016-07-01re-fix alt+tab'bing through tabbed windowsThomas Lübking2-5/+12
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-07-01fix tabbing of unfocusable clientsThomas Lübking1-1/+4
this affects all java clients, because java uses the retarded WM_TAKE_FOCUS protocol, but also very important clients like xeyes ;-) BUG: 1055
2016-07-01do not leave stale oplock behindThomas Lübking1-1/+3
deiconify'ing a client on a different workspace left an oplock by a shortcut return, turning the client semi- to inaccessible BUG: 1010
2016-07-01avoid calling into XLibThomas Lübking1-4/+12
Testing one bug, the function seems usually be called with the root window as parameter, so we can save a pointless lookup for the root of the root by testing against window before testing against window_root. Elegantly, this will "fix" the bug where XGetGeometry of the second heads root will either report the first heads root or some junk (xephyr case?) BUG: 1128
2016-07-01ensure to update the current client tab from menuThomas Lübking1-0/+3
the menu focuses which tries to set the current tab, but fails because the iconified client won't have the input focus (yet), so we pass it a dedicated "set this client and do not try to set input because we're going to do next anyway explicitly" call =) BUG: 997
2016-07-01do not move unfocused windows to the desktop layerThomas Lübking1-1/+2
While usually™ the window is just reset to its original layer, ensuring to show the active window is certainly a good idea, but it's not required to lower the fullscreen window to the desktop layer, the other windows layer + an extra raise is entirely sufficient and it's rather odd to see conky when activating a utility window to a video player ;-) CCBUG: 894
2016-07-01add _NET_WM_NAME to FbWindow::setNameThomas Lübking1-0/+8
since fluxbox is a f**** WM it should be able to use f**** NETWM hints in its toolkit ;-) CCBUG: 702 (does not fix input)
2016-07-01fix tab selection by mousepressThomas Lübking1-0/+16
Tabs outside the titlebar are not selectable by mouseclicks (ie. the feature does not work) The patch clones the enterNotifyEvent code and ignores (for now) the actual button (no idea whether it makes any sense to restrict it the left button?) BUG: 1103
2016-06-26document FocusProtection featureThomas Lübking1-0/+18
2016-06-26merge remember focusnew into focusprotectionThomas Lübking4-36/+33
The FocusNewWindow key is still read, but not written and OVERRIDDEN in case of conflict with the FocusProtection key
2016-06-26Add FocusProtection featuresThomas Lübking5-2/+102
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-06-26remove strut when property is withdrawnThomas Lübking1-0/+2
CCBUG: 1133
2016-06-26fix tracking of MWM hints in case of removalThomas Lübking1-4/+8
2016-06-26replace FbRootWindow::depth with maxDepthThomas Lübking4-6/+9
The depth member of FbWindow was abused to store the maximum depth but that gets overridden with geometry changes of the root window (screen layout changes) so we store and read the value explicitly while ::depth() maintains the actual depth of the root window The result of this is that frames for ARGB windows were created with a wrong depth and failed to reparent the client window. BUG: 1102 BUG: 1058
2016-06-26prevent clients from positioning out of workspaceThomas Lübking1-6/+35
Still enough stupid ones around which ask for 0,0 (despite there's a panel ...) or restore a position on a VGA screen which they stored while being on a 4k screen. Otoh, do not forcefully position the window just because the topleft position is outside any head, this can still be desired and isn't a problem. Actually, the corner could be covered by the close button and if *only* it is onscreen the window can hardly by used or seen.
2016-06-26keep cmd menus off struts when the mouse is in itThomas Lübking1-2/+7
the mouse is likely the trigger, so the popup would cover the trigger item. The present behavior of the iconbar suggests such behavior is desired.
2016-05-28improve consistencyMathias Gumz2-9/+10
for a std::string::size_type, the right value to use is not "-1", but std::string::npos.
2016-05-28fix broken text selection for FbTk::TextBoxMathias Gumz1-1/+2
uninitialized variables cause all kind of problems.
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.
2016-05-28document -preselect in fbrun manpageThomas Lübking2-0/+8
2016-04-25fix fbsetbg in combination with picky shellsMathias Gumz2-10/+36
in *BSD, /bin/sh is Almquist Shell(ash). the 'hash' built-in command of ash returns 0, always. 'hash' is not usable for find_it() function in util/fbsetbg and util/fluxbox-generate_menu.in. this patch changes the behavior of find_it(): when 'hash' is detected to not work correctly, switch back to 'which'. this patch is the work of Yamashiro, Jun and appeared first as patch-160 on sourceforge: https://sourceforge.net/p/fluxbox/patches/160/. i submit it on behalf of the author.
2016-04-25Fix menus over a single column wideJuan Gonzalez Lopez1-3/+4
Fixes menus more than 1 column wide (such as the Placement menus for the Toolbar/Slit/Tabs) which stopped working with commit 3e4570b.
2016-04-25Allow to preselect preset textThomas Lübking1-0/+6
2016-04-25Allow text selectionThomas Lübking2-62/+151
FbTk::TextBox now acts like any contemporary input field ;-)
2016-04-06place transient centered on its parentThomas Lübking1-6/+9
so far, transients are simply unplaced, resulting in a static 0,0 position.
2016-02-28Mixed relative and absolute values for appsArkadiusz Bokowy3-84/+98
Allow setting relative value for x and y or width and height separately in the apps configuration file. This makes these settings compatible with ones available in the keys file. Previous buggy behavior: If someone has specified, e.g. "[Dimensions] {50% 100}" it was parsed as "{50% 100%}" not as "{50% 100px}" which was inconsistent with the "keys" configuration file. From now on it is possible to write something like this: [app] [Position] (RIGHT) {50% 0} [Dimensions] {300 100%} [end] Signed-off-by: Arkadiusz Bokowy <arkadiusz.bokowy@gmail.com>
2016-01-09fixes bug #1138John Sennesael1-1/+1
2016-01-09minor code cosmeticsMathias Gumz2-18/+27
2016-01-09send ConfigureNotify using root coordinatesfoobar08151-1/+27
2016-01-04Add documentation for edge snap feature when resizing.Ulrich Eckhardt3-1/+23
2016-01-04Add Resize SnapNephiel5-18/+114
Make windows snap to edges when resizing them, as well as when moving. From http://darkshed.net/files/patches/fluxbox/fluxbox-resize-snap-try2.diff
2016-01-04merge pull-request 14Mathias Gumz1-0/+2
2015-08-10fbsetbg: Report wallpaper directory path when invalidOliver Gondža1-1/+1
2015-07-29Update MinOverlapPlacement.ccKen Moore1-1/+2
Skip any windows which are not in the same layer as the window to be placed.
2015-07-29Update ColSmartPlacement.ccKen Moore1-0/+2
Skip any window that is not in the same layer as the window to be placed.
2015-07-29Update RowSmartPlacement.ccKen Moore1-0/+1
Skip any window that does not exist in the same layer as the window to be placed.
2015-05-14Fix hidden toolbar placementPeter Ganzhorn1-3/+11
2015-05-02Simplify codeMathias Gumz2-20/+22
* assume 'pattern' to always be lowercase * rename some variables
2015-05-02Fix bug in detecting text in MenuSearchMathias Gumz1-1/+1
A bug sneaked into my implementation of Boyer-Moore-Horspool. This lead to not finding certain patterns. Given the text 'abcdde' and the pattern 'dd', the faulty implementation would not find 'dd': 1. 'ab' does not match, skip 2 (length of pattern) 2. 'cd' does not match, skip 2 (length of pattern) <- the bug. 3. 'de' does not match, end of string The bug in step 2 is to not use 'd' to detect how far to skip but to use 'c' (which is not in the skip-table) and thus 2 bytes are skipped).