aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-08-02Add support for stacked tiling via ArrangeWindows*John Sennesael3-17/+124
2013-08-02Fix lost keypresses after workspace change (#1067)Ed Martin2-11/+2
Do not Ungrab the keyboard for a KeyPress event, this causes us to lose the KeyRelease event which is needed to ungrab the keyboard after the event happened.
2013-08-02update hebrew translationIsratine Citizen1-16/+16
2013-08-02Updated Japanese TranslationTakeshi Hamasaki1-4/+82
2013-07-03Constify the type passed to std::equal_to.Raphael Kubo da Costa1-1/+1
std::bind2nd() has problems with the existing call because it uses the argument type passed to std::equal_to() in std::binder2nd()'s constructor, but WinClient* does not have the const specifier that `client' does. The call works fine with libstdc++ because of the way it implements std::bind2nd(), but fails with libc++ and possibly with other STL implementations as well.
2013-06-29fix detection of $HOME folderMathias Gumz4-19/+44
usually $HOME is set when fluxbox runs. in some rare scenarios (eg., fuzzying binaries to detect bugs) one could launch fluxbox by using 'env -i' and thus eliminating $HOME from the environment. to prevent crashes fluxbox uses now 'getpwuid()' when $HOME is not set to detect the home folder.
2013-06-22cosmeticsMathias Gumz2-9/+8
2013-06-18Returning EXIT_FAILURE on exit in fluxbox-remote.Paul Tagliamonte1-0/+1
2013-06-18Speedup overlong text detectionMathias Gumz3-26/+70
Detecting very long window titles is done via FbTk::TextUtils::doAlignment(). Instead of removing one char from the title at a time to see if it fits into a given 'max_width', we now use a binary-search like approach to get faster to the right value. This massively improves the speed for windows with (arbitrary) long window titles (see bug #1090, javascript document.title = new Array(4999).join("."); leads to massive waiting for fluxbox to detect that this window has a very long title). In addition to that Xft returns 'wrapped' shorts ('integer overflows') for long texts: XGlpyhInfo.xOff is declared as signed short, it's able to hold ~32k pixels. A monospace font with font-size 10 produces an integer overflow after 3276 chars / glyphs, thus rendering the check if (text_width < max_width) { /* ... */ } pointless and leading rendering the whole title. By calculating some kind of upper limit for a pseudo-wide glyph ("WW") and strictly cutting off the input string at that limit prevents this issue.
2013-05-26build-sys: move to non-recursive buildSami Kerola56-653/+1013
This rather large change will attempts to make 'make' to work better. See excellent paper 'Recursive Make Considered Harmful' by Peter Miller for further explanation why several make files is worse than one for whole project. Note. The tests are build with 'make check' rather than defining TEST. Reference: http://miller.emu.id.au/pmiller/books/rmch/ Reference: http://karelzak.blogspot.co.uk/2013/02/non-recursive-automake.html
2013-05-26build-sys: use iconv library detections from gettextSami Kerola3-65/+696
This patch took copy of config.rpath from gettext 0.18.2 to build-aux/ directory. Software projects usually does not need to do that, because the file is copied by gettext autopoint in autogen.sh or bootstrap. In Fluxbox case calling autopoint seems wrong, as it would generate po/ directory with necessary make automation, adn 'msgid' & 'msgstr' files, but that is not how the translations are done in this project.
2013-05-26build-sys: unify configure.ac syntaxSami Kerola1-230/+318
2013-05-26build-sys: add test programs to .gitinore fileSami Kerola1-0/+8
2013-05-26build-sys: use pkg-config to locate dependenciesSami Kerola10-447/+175
This commit alters XRANDR (X Resize And Rotate) extension dependency, which is expected to have at least version 1.4. Earlier old versions of xrandr were supported, at least to some extent.
2013-05-26build-sys: move autotools files to subdirectoriesSami Kerola5-7/+6
2013-05-26build-sys: use AC_USE_SYSTEM_EXTENSIONSSami Kerola20-91/+1
The earlier _GNU_SOURCE definitions possibly did not take effect everywhere where it was intended.
2013-05-26build-sys: include config.h to all files using automakeSami Kerola41-149/+7
Do not try to be too smart which compilations need config.h, as most of them will simply because of the config.h has information about system capabilities.
2013-05-26docs: update DoxyfileSami Kerola1-491/+1282
Just a simple 'doxygen -u' version update.
2013-05-26build-sys: remove unnecessary filesSami Kerola3-5/+0
2013-05-26build-sys: use automake subdir-objectSami Kerola1-1/+1
2013-05-24Removing a blank line in nls/it_IT/Translation.m that breaks the -help output.skizzhg1-1/+0
2013-05-23more compact codeMathias Gumz1-19/+12
2013-05-23Use shared code, minor code simplificationMathias Gumz2-14/+19
2013-05-23minorMathias Gumz1-1/+1
2013-05-23fix initial window placement to allow proper head detection and window ↵Peter Hercek1-14/+21
placement based on apps file * a reasonable initial placement is important for later movements to different heads and correct head detection (required by apps file) * it did not work well in case when (0,0) was not near any head
2013-05-23fix head detection for adjacent heads of too different sizes and window ↵Peter Hercek1-11/+14
placement based on apps file * if you have e.g a 1920x1200 monitor and a small 800x600 monitor to the right of the bigger one and a small window at the right side of the big monitor (but still the whole window area at the big monitor) then the original head detection would claim the window is on the small monitor because (800/2+windowWidth/2 < 1920/2+windowWidth/2) is true for small windows; but that is obviously wrong, the window is entirely on the big monitor * these incorrect head detections did lead to incorrect window placements as they were required in the apps file
2013-05-16Fix regression in rendering the Window-Motion-OutlineMathias Gumz1-4/+6
Commit 79fe2fca1de5140f538e68f6981b27cf7f917e7a checks for pending motion events and drops out of the FluxboxWindow::motionNotifyEvent() function early if so. When the user does not use the opaque window movement method an outline will be drawn to the screen. That outline was not cleaned correctly with commit 79..
2013-02-27minor code simplificationsMathias Gumz2-18/+7
2013-02-27Workspace switching on the toolbar via the mouse buttonsSoeren Beye3-6/+12
2013-02-14Trigger ClockTool every second, independent of the format stringMathias Gumz2-63/+44
It's hard to hit right moment to update the clock correctly: Either we are a bit too early and the 'old time' is the same as the 'new time' and the clock looks 'a bit off' or we are too late and the clock is 'a bit off'. This is especially the case for format strings which do not show the second and thus are updated only at the full minute (see bug #1082): if fluxbox does not update the clock 'now' it would do it one minute later and thus the clock might show the wrong time for roughly 1 minute. Instead of coming up with something immensely clever we just trigger the ClockTool every second. If no update of the shown time is needed fluxbox won't do anything. Some minor code reordering as byproduct.
2013-02-14Updates copyright date information in some binariesMathias Gumz2-2/+2
2013-02-13mpfMathias Gumz1-1/+1
2013-02-13Updated Changelog, NEWS, man-pages for 1.3.5Release-1_3_5Mathias Gumz22-49/+44
2013-02-13Fix missing LogicCommandsMathias Gumz1-0/+6
By removing FbTk/LogicCommands.o from LDADD in src/Makefile.am (commit 06655f6) I prevented the linker to pick up FbTk/LogicCommands.o and thus rendered all logic-commands useless. Using a small helper object to pull in the dependency fixes this problem without relying on manually tweaking the build system.
2013-02-13Initialize FbTk::Timer.m_timeout correctlyMathias Gumz1-2/+4
2013-02-10Updated Changelog, NEWS, man-pages for 1.3.4Release-1_3_4Mathias Gumz23-120/+190
2013-02-10Remove unused variables, cosmeticsMathias Gumz1-16/+16
2013-02-10FbTk::FbTime::mono() yields microseconds since fluxbox startedMathias Gumz1-3/+2
2013-02-10CleanupMathias Gumz2-31/+31
2013-02-10More subtle brightening of texturesMathias Gumz1-5/+5
2013-02-06Feature #3602124: 'LHalf' and 'RHalf' buttons to the titlebarMathias Gumz6-19/+85
First draft of feature request of #3602124: Having 2 buttons in the titlebar which allow quick positioning of a Window into the left or right half of the current monitor.
2013-02-06Fix bug in renderEllipticGradient()Mathias Gumz1-17/+20
For odd 'widths' and 'heigths' the texture would not be filled completely: Given a 'width' of 5 we would render only 4 instances of x (-2, 1, 0, 1) instead of the needed 5. This results in a texture which looks a bit cut off to the bottom right side.
2013-02-06Minor cosmeticsMathias Gumz1-38/+41
2013-02-06Fix integer overflowMathias Gumz1-1/+1
I forgot this piece in 779618e45d4571bb6a4866aa2e398780f4b4da5d.
2013-02-06Reduces memory footprintMathias Gumz1-7/+5
The buffer for some gradients does not have to be width * height big when two lines are sufficient.
2013-02-06Branchless code for interlacing a textureMathias Gumz1-25/+15
2013-02-06Fix integer overflow for bigger texturesMathias Gumz1-2/+6
2013-02-01Fix regression regarding timers with equal end-timeMathias Gumz1-2/+6
std::set<Key, Comp> stores Key only if Comp(Key) yields a unique result (My mistake: I was under the impression Comp is only used for the ordering). This prevents FbTk::Timers with equal end-times from actually being started. Escpecially in situation with multiple ClockTools this lead to stopped timers (see bug #3600694). Kudos to Adam Majer for enlightening discussions.
2013-01-31Adds 'ClientPatternTest' commandMathias Gumz7-53/+177
ClientPatterns might be tricky to get right. Instead of fiddling around in either the keys-file or the apps-file and restarting fluxbox to see if the changes had any effect / matched the right windows, 'ClientPatternTest' and the fluxbox-remote should make this easier: $> fluxbox-remote "clientpatterntest (title=.*vim*)" This causes fluxbox to store the list of matched windows in the _FLUXBOX_ACTION_RESULT property onto the rootwindow. This property might then be read by: $> xprop -root _FLUXBOX_ACTION_RESULT or $> fluxbox-remote result The format of the list is: win_id \t title_of_window \n win_id is '-1' when fluxbox wasn't able to parse the given ClientPattern. win_id is '0' when there are no windows matching the given ClientPattern.
2013-01-26Calculates timeouts of ClockTool based upon System ClockMathias Gumz5-26/+36
Users expect time switches to happen upon system clock times. Calculating the timeout for the next refresh of the shown time via the monotonic clock is wrong: The monotonic clock yields values based upon some arbitrary point in time which might be off a little bit to the system clock, a 'full' minute of the monotonic clock might be in the midst of a system clock minute.