aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-01-16Reduce number of allocations for menu creationMathias Gumz4-23/+44
Every time either the Slit menu or the Toolbar menu were added to the root menu, the whole root menu was (re)created from scratch. Now we create and remove only the menus needed. Side effect: the position of these menus is now at the end of the root menu and not somewhere in between. If users complaint, I' ll think about it.
2015-01-15Refactor: split out menu generation from BScreenMathias Gumz7-381/+572
Again, it's easier to read the code when the whole menu-generation is out of the way.
2015-01-15Refactor menu code: be more explicit and compactMathias Gumz15-408/+375
This commit is a preparation step for some menu cleanup ahead. To make it easier to understand which types of MenuItems are added where and when, I converted the overloaded FbTk::Menu::insert() functions into explicit ones (Menu::insertSubmenu(), Menu::insertItem(), etc. ). This makes it possible to just grep for 'insertSubmenu()'. Side effect this commit: it trims down the very verbose creation of menu items in regards to how the labels are created. Minor: FbTk::Menu::shown and FbTk::Menu::s_focused are moved out of the class.
2015-01-14Fix broken formattingMathias Gumz1-1/+1
2015-01-11Fix 'configure --help' to match actual default valueMathias Gumz1-1/+1
2015-01-10Code cleanupMathias Gumz3-53/+20
Reorder some includes; remove unused includes
2015-01-10Make use of API instead of hardcoded default fontMathias Gumz1-4/+3
2015-01-10Fix order of reconfigure the theme of an IconButtonMathias Gumz1-15/+11
The font might have an impact to the result of width() and height(). In order to render the new pixmap correctly fluxbox now first sets the font and the width of the border and after that it recreates the pixmap.
2015-01-10Remove dead codeMathias Gumz2-20/+0
2015-01-10Fix bug: integer underflow in startup phaseMathias Gumz1-1/+7
When fluxbox comes up some of it's drawables span a 1x1 area. Subtracting from such small numbers bigger ones always lead to massive problems when 'unsigned int' are involved: 'button_width' is an unsigned int of '1' (this might be caused by another issue or on purpose, anyway), subtracting -10 or any other number should result in something < 0 when in reality an integer underflow happen: max_width is now MAX_INT-something big. This makes fluxbox crash under certain circumstances. This fixes bug #1116.
2015-01-05Fix 'make check'Release-1_3_6Mathias Gumz1-21/+10
2015-01-05Documentation: white-spaces and minor formattingMathias Gumz11-350/+345
2015-01-05Add ArrangeWindowsStack* actions to vim-keysMathias Gumz1-0/+2
2015-01-05Fix build-system: link against libiconvMathias Gumz1-0/+1
Some systems (BSD, MacOSX) need explicit linkage against -liconv.
2015-01-05Fix build-system: install data files (keys, apps, menu ...)Mathias Gumz5-33/+38
* Correctly build data files when operate outside of the $(srcdir) * Actually install data files * Use pkg-config to detect X11, works better on MacOSX. We used pkg-config already anyway, double checking for X11 does not yield better results. * Replace EXEEXT in some files while before installing them
2015-01-04Fix build-system: use xxx_LDADD instead of xxx_LDFLAGSMathias Gumz4-20/+24
xxx_LDFLAGS place the libraries like '-lX11' or '-lXft' at the beginning of the linker command. Some systems were not able to handle the situation and this lead to a lot of unresolved symbols. Reading the documentation of automake: ... you can use LDADD to do so. This variable is used to specify additional objects or libraries to link with; it is inappropriate for specifying specific linker flags, you should use AM_LDFLAGS for this purpose. In addition we link against -lm in order to satisfy symbols refering to 'cos' and 'sin'.
2015-01-03Fix to make clang happyNable 801-3/+5
POSIX states that 'd_name' in 'struct dirent' is char[], so it cannot be NULL. This will result in the compiler complainting about an expression which always evaluates to true ... for this compiler (clang). But in some implementations 'd_name' is a 'char*' that's why it's better to keep the check for possible NULL.
2015-01-03Minor API change for OSDWindowMathias Gumz4-10/+9
OSDWindow::resize(const FbTk::BiDiString&) shadowed FbWindow::resize(x, y). To fix this I renamed the function to OSDWindow::resizeForText() to make the intention clear.
2015-01-03Fix signature ITypeAheadable::isEnabled()Mathias Gumz1-1/+1
2015-01-03Fix signature FbTk::FontImp::rotate()Mathias Gumz1-1/+1
2015-01-03Clean unused variablesMathias Gumz7-10/+1
2015-01-03Fix clang warning 'expression with side effects'Mathias Gumz2-9/+14
2015-01-03Fix number2*() functionsMathias Gumz1-7/+7
As correctly pointed out by 'Nable80': "%llx" does not create the 0x prefix for the hex-string. In addition to that: snprintf() adds a terminating \0.
2015-01-03Update ChangeLogMathias Gumz1-33/+36
2015-01-03Remove dead / unused codeMathias Gumz2-78/+5
Again: Compiler happy, we are happy.
2015-01-03Fix typo / editor bug or something like that.Mathias Gumz1-1/+1
While running code analysis tools this issue popped up. As it is written it is clearly a NOP, but the reason for why it is written that way remains unknown. I suspect that it was a textfragment introduced by some repeat-function of the used editor (think '.' in VIM). The code was introduced by commit a932a7a801 and looked like this in the original form: if(!XQueryTree(FbTk::App::instance()->display(), window().window(), &root_return, &parent_return, &children_return, &nchildren_return)) parent_return=parent_return;//return; Look at the outcommented return statement. I decided to return from that function instead of the NOP.
2015-01-03Remove various unused variablesMathias Gumz8-30/+21
Clang and Gcc-4.9 complaint about some unused variables here and there. And who are we to not make a compiler happy :)
2015-01-03Update copyright infoMathias Gumz1-1/+1
2015-01-03Remove unused code / option from FbRunMathias Gumz2-8/+1
2015-01-03Use correct buffer size for number2*()Mathias Gumz1-3/+6
2015-01-03Identify clang compilerMathias Gumz1-1/+3
2015-01-03Preparation of release 1.3.6Mathias Gumz3-4/+94
2015-01-03Fix build issueMathias Gumz1-1/+1
2015-01-03Remove reference to src/tests/testSignalMathias Gumz1-13/+0
2015-01-03Recreate man-pagesMathias Gumz8-133/+60
2015-01-03Update release versionMathias Gumz12-11/+15
2015-01-03Fix build issue with out-of-src-buildsMathias Gumz1-1/+2
2015-01-02Fix corruption of fbrun-historyMathias Gumz1-42/+20
This commit fixes issues #72 (brought up + different solution by Mattias Guns; I received a similar patch by 'Nable 80' via ML and discussed the issue in #fluxbox with 'Nable 80'), patch #73 (Mattias Guns) and finally patch #162 (Ulrich Eckhardt; this commit is heavily based upon Ulrich's work). The original code was overly complex. It tried to avoid writing bytes to the disk at the expense of comprehensibility and as a result it was buggy. I looked at both patches from Mattias and 'Nable 80' which address the bug with skipping entries in the history-file (my fault: incorrect use of outfile.ignore(1, '\n')): They provided a proper fix for the problem but I decided to use Ulrich's code since it improves the whole code by making it a lot simpler. So, kudos to all of you.
2015-01-02Fix loading fbrun-historyMathias Gumz1-5/+3
Previous code add one additional entry on loading the history. This commit is one part of the patch #162 (see [1] and [2]), written by Ulrich Eckhardt <doomster@knuut.de>. [1]: https://sourceforge.net/p/fluxbox/patches/162/ [2]: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=fbrun-bug636632.patch;att=1;bug=636632
2014-10-27make use of FbTk-apiMathias Gumz1-27/+26
2014-09-29treat windows having WM_CLASS == "DockApp" like DockAppsMathias Gumz2-5/+13
this commit implements feature-request #317: "Add support for GTK dockapps.": "Back in 2010, WindowMaker implemented a system where windows with WM_CLASS res_class = DockApp would be treated as if they had initial_state = WithdrawnState, since GTK refuses to allow this."
2014-09-29Corrections for border width for relative resizeArkadiusz Bokowy1-0/+2
2014-09-14Code cleanupArkadiusz Bokowy1-3/+1
File name expansion is done internally by the Slit::loadClientList, so there is no need to duplicate the code.
2014-09-14fix: check the correct XClassHint propertyMathias Gumz1-8/+3
kudos to Arkadiusz Bokowy (this commit is a slightly changed version of a patch sent to the devel-ml): when retrieving the '.res_name' of a XClassHint we should check '.res_name' and not '.res_class'. the other changes only reduce the code.
2014-07-22fix uninitialized variablesMathias Gumz2-4/+2
2014-07-22fix _NET_MOVERESIZE_WINDOW resize issue (#1108)Mathias Gumz1-6/+6
handing over the dimensions of a WinClient client must not contain properties of the FbWinFrame, otherwise they get added twice in FbWinFrame::moveResizeForClient() and thus result in a resizes when no resize is wanted. other changes: it's easier for me to detect the nth bit when the value looks like (1 << 8) instead of 0x0100 (for the 8th bit). that is why i changed 0x0100, 0x0200 etc. in the nearby code.
2014-05-12allow a timeout of a full 'unit'Mathias Gumz1-1/+1
the -1 in the FbTk::FbTimer::remainingNext() function was pointless in the first place anyway: reducing the timeout by just 1 microsecond improves nothing (in this case). if the timer triggers exactly at a full unit (second) then it's correct to wait for the full next unit.
2014-05-12cosmetic, less codeMathias Gumz1-9/+10
2014-05-12detect minute-based strftime-formats (again)Mathias Gumz3-6/+14
the lag / skipping of the clock was not caused by faulty timer code on fluxbox's side but by the behavior and inner workings of time(). since this is fixed now (913244789f) we can now rollback ec7fe513c8 and detect strftime-formats which need intervals of seconds or minutes. minor: the small change to FbTk::Timer::setTimeout() reduces one start() / stop() cycle for a running timer.
2014-05-12fix clocktool lagging behind and skipping secondsMathias Gumz1-2/+13
from time to time (...) time() might be off to gettimeofday() by a second. the reason for this is that time() is usually implemented by just returning the field 'second' of the struct that represents the clock inside the kernel. gettimeofday() on the other hand also takes the 'fraction' field (mostly 'nanoseconds') into account and thus is closer to the current time than time(). the result of using time() was a perceived 'lag', sometimes the clocktool even skipped a second. by using FbTk::FbTime()::system() instead fixes the issue.