aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
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-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-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-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 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-09minor code cosmeticsMathias Gumz2-18/+27
2016-01-09send ConfigureNotify using root coordinatesfoobar08151-1/+27
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-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).
2015-05-01Make sure render new styles into full menuLajos Koszti1-0/+2
Different styles makes the menu width different. When the original menu width is bigger than the newly selected style's width, the rendering produces pretty strange effects: The old style's frame not cleared, so it was rendered and visible next to the new style edge. With this change, the menu width will be as wide as the widest menu item. Style switching still not perfect, because the height of a menu item is from the "first" selected menu, also font color are not updated.
2015-05-01Fix RIGHTCENTER placement of the toolbar. Instead of subtracting borderwidth ↵Peter Ganzhorn1-1/+1
(bw) from (frame.height))/2 they were multiplied causing wrong placement for this case.
2015-05-01Shape only toolbar corners not touching any edges of the screen. It just ↵Peter Ganzhorn1-12/+12
looks better this way.
2015-05-01Fix shaped toolbar being drawn incorrectly at TOPCENTER Fix round corners ↵Peter Ganzhorn1-10/+10
being drawn incorrectly on the TOP instead BOTTOM of the toolbar when toolbar placement is TOPCENTER. Also align the _values[] table a bit more nicely to make it easier to spot bugs like this. The bug was introduced in commit 67c31b49bdeab40fea37719cd6cfa06b37507e3e 'Refactor Toolbar.cc, less noise'.
2015-05-01roll back 7e17056: m_index does not exist anymoreMathias Gumz1-6/+1
m_index was removed in 03ce82a.
2015-05-01TextBox::textStartPos can be const.Mario J. Rugiero1-1/+1
2015-05-01ButtonTheme::name can be const.Mario J. Rugiero1-1/+1
2015-05-01Make Layer::getLayerNum() const.Mario J. Rugiero1-1/+1
2015-05-01Initialize m_index in MenuItem's constructors.Mario J. Rugiero1-1/+6
2015-05-01Reduce the scope of the variable err in stringTokensBetween.Mario J. Rugiero1-2/+2
2015-05-01doSubmenu function in menutest.cc avoids copying labelstr by using a const ↵Mario J. Rugiero1-1/+1
reference.
2015-05-01addMatching and insertFromParent functions from FocusableList now avoid ↵Mario J. Rugiero1-2/+2
copying m_parent->clientList() and use a const reference instead.
2015-05-01Pass pre_command to CommandDialog as const reference to avoid unnecessary ↵Mario J. Rugiero2-2/+2
copying.
2015-04-11Don't assume ICONV_NULL = 0Casey Dahlin1-5/+9
We define the value ICONV_NULL = -1, but when we attempt to set the s_iconv_convs array to all NULL values, we zero the array instead of setting its entries to -1. This patch properly initializes and wipes s_iconv_convs.
2015-02-08Fix: typo during refactoringArkadiusz Bokowy1-2/+2
Commit 63d9d69 introduced a bug, which has manifested itself by setting window transparent state to the fully opaque (255).
2015-02-08Move internal code to internal side of FbTk::TransparentMathias Gumz2-20/+23