aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2013-01-15Simplifies and fix bugs in FbTk::TimerMathias Gumz2-41/+36
* Calling Timer::setTimeout() from within Timer::start() might lead to ugly behavior (as experienced in bugs #3590078, #3600143, etc; see commit 4d307dcd10af9d817ff5c05fc40ae7487564cb31, fixes the problem partially). * Stop a timer first, then call the handler (via Timer::fireTimeout()). A given handler might call Timer::start() again, which (re)adds the Timer to the control list .. the following Timer::stop() would remove it again. * Use 'm_start' as indicator if timer is running. * Move the (now quite short) code of ::addTimer / ::removeTimer into the Timer::start() and Timer::stop() functions.
2013-01-13Ensure textures have the correct size bevor applying 'bevel'Mathias Gumz1-7/+8
2013-01-13Optimize inner loop of pixel transfer in TrueColorMathias Gumz1-65/+61
Testing bits-per-pixel in the inner loop is suboptimal, especially since that value does not change. A little helper macro helps to keep the code readable, also improves the situation for StaticGray and PseudoColor.
2013-01-13Use the same lookup-tables for solid and gradient texturesMathias Gumz5-164/+237
2013-01-13improved code documentationMathias Gumz2-14/+3
2013-01-13Minor optimization of handling the timersMathias Gumz1-15/+15
2013-01-12Fix bug: handle the list of Timers not in-placeMathias Gumz1-14/+18
With commit 541c8c4 we switched from an (manually) ordered list to a std::set<> to handle the active timers. The code which checks for overdue timers now traverses and modifies the std::set<> in place. This might lead to an infinite loop. Examples of such bad behavior are "flickering of the tooltip" (bug #3590078) or crashes (bug #3600143) or just insanely high cpu load when autoraising windows or submenus. We now make a copy of the std::set<> traverse this instead of the original.
2013-01-10Optional removal of SystemTray toolMathias Gumz4-4/+18
Added the option to remove the SystemTray tool completely from fluxbox.
2013-01-10Reduced lagging begind of windows on slower displaysAymeric Vincent1-1/+7
In certain situations a speedy mouse might generate more move-events than fluxbox can handle: The event queue will fill up faster than the repositioning of the window is finished. The user will experience a window which lags behind the mouse cursor, aka the window-dance. We now check the next event in the queue and postpone the move a little bit so the queue does not fill up that fast.
2013-01-03automake: use AM_CPPFLAGS rather than INCLUDESSami Kerola1-1/+1
The INCLUDES macro deprecated in favour of AM_CPPFLAGS. References: http://www.gnu.org/software/automake/manual/html_node/Program-Variables.html
2013-01-02do not try to reach $(top_srcdir)/.git directory contents when building a ↵Sami Kerola1-1/+5
release tar ball
2013-01-02Compile fix: forgotten parentheses around valueMathias Gumz1-1/+1
2012-12-30replace XKeycodeToKeysym() with XkbKeycodeToKeysym()Sami Kerola1-2/+3
The XKeycodeToKeysym() is deprecated. References: http://comments.gmane.org/gmane.comp.misc.suckless/9403
2012-12-30Fix double text rendering if using parentRelativeVladimir A. Pavlov1-2/+0
2012-12-30src/WinButton.{cc,hh}: cosmeticVladimir A. Pavlov2-43/+16
2012-12-30Make use of window.stuck.pressed.pixmapVladimir A. Pavlov2-1/+4
2012-12-30Set WM_WINDOW_ROLE for fluxbox windowsVladimir A. Pavlov6-0/+15
2012-12-12Minor cleaning of 'class Fluxbox'Mathias Gumz2-3/+3
2012-12-12Fix build regression: enable XRANDR support by defaultMathias Gumz4-37/+63
The changes made in b178bed60b5bd8b2c9ed0cbc67fd729ff3820589 used the wrong variable to set the default state of '--enable-randr' in configure.in, that is fixed now. I also removed '--enable-randr12': If support for the Xrandr-extension is available at compile time we set HAVE_RANDR; if there is also support for Xrandr-1.2 (or higher), we also set HAVE_RANDR1_2 automatically. Other changes: * cleaned out public interface of 'class Fluxbox' * added 'RANDR' to output of 'fluxbox -info'
2012-12-11Fixed bug: use expanded style/theme filenameMathias Gumz1-1/+2
'filename' might contain a '~' which has to be expanded to work for regular system calls. We expanded 'filename' already but then did not use it. Fixes bug #3576586.
2012-12-05Simplified 'configure' / build systemMathias Gumz4-23/+28
* reduced duplicated auto-code * renamed '--enable-newwmspec' to '--enable-ewmh' * don't compile 'Slit'-code when '--disable-slit' * use AS_IF() in configure.in * use AS_HELP_STRING() instead of obsolete AC_HELP_STRING in configure.in * removed redundant calls to 'imlib2-config' to fill in $IMLIB2_CFLAGS and $IMLIB2_LIBS, AC_PATH_GENERIC() does that out of the box already
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 Iben3-0/+30
2012-11-08Rewrite of FbTk::TextureRenderMathias Gumz3-1131/+635
* much more readable and easier to read code * smaller code * reduced binary size due to removed big lookup-table for square root * simple 'optimizations (lookup tables, packing of data), nothing too fancy
2012-11-07Adds the OnTab keyword for the keys fileJulien Viard de Galbert4-53/+60
Adding the following lines to the keys file restore the old behaviour to use Mouse2 on tabs to start tabbing, and keep OnTitlebar Mouse2 to lower the window. OnTab Mouse2 :StartTabbing OnTab Move1 :StartMoving Note: Internal tabs are triggering both OnTab and OnTitlebar events.
2012-10-04minor cosmeticMathias Gumz1-8/+8
2012-10-04Add support for nearest corner or edge resizingMichael Abbott4-31/+86
2012-10-03Improved vertical alignment of text in FbTk::TextButtonMathias Gumz6-173/+215
The old formula for vertical align text inside FbTk::TextButton ('height/2 + font_ascent/2 - 1') produced not always good looking results, escpecially when different fonts are involved (eg, ClockTool and WorkspaceName have different fonts and font-sizes). '(height - font_ascent) / 2 - 1' produces better results. Additional changes: * added ASCII-Art to document the involved entities when calculating the baseline * rewritten tests/testFont.cc to accept multiples texts and multiple fonts * removed some internal parts of FbTk::Font from the public interface
2012-09-14removed duplicate function signature for FbTk::StringUtil::extractNumber()Mathias Gumz1-1/+1
2012-09-14minor cosmeticMathias Gumz2-7/+6
2012-09-14Fix regression: switch back to microseconds for DelayCmdMathias Gumz2-8/+12
2012-09-14Fix bug: (re)setting timeouts on a running FbTk::Timer might lead to broken ↵Mathias Gumz1-0/+9
timer list Setting a new timeout on a running FbTk::Timer must remove it from the timerlist, otherwise the list is not ordered correctly anymore. So, we stop the running FbTk::Timer, set the new timeout and restart it.
2012-08-28changed timing functions to use a monotonic increasing clockMathias Gumz18-266/+315
gettimeofday() is subject to be changed on daylight-saving or to ntp-related (think leap-seconds). even worse, it is subject to be changed BACK in time. this is hard to fix correctly (see commit 45726d3016e and bug #3560509). it is irrelevant for timers to know the nano-seconds since the epoch anyways.
2012-08-22fix sanity check for transient and explicitly placed windowsPeter Hercek1-5/+9
When a screen has more heads and some part of the screen is not on any head and some window is placed into this invisible area then the window is invisible which sucks. This patch repositions such windows so that they are visible. Example: * head 1 is at (0,120) (size 640x480) * head 2 is at (480,0) (size 800x600) * whole screen virtual size is 1440x600 * that means rectangle from (0,0) to (640,120) is not visible on any head and any windows placed there would not be visible; for example wireshark likes to place dialog boxes at (0,0)
2012-08-03Add menu.hilite.font and menu.hilite.justify style resourcesVladimir A. Pavlov3-20/+37
2012-08-03FbTk/ThemeItems.cc: move loading additional font resources to load()Vladimir A. Pavlov1-24/+20
The same logic had been already implemented for texture resources.
2012-08-03FbTk/ThemeItems.cc: don't use style resources in ↵Vladimir A. Pavlov1-16/+2
ThemeItem<Font>::setDefaultValue()
2012-07-09make the menu bit of decoration masks control whether or not menu button is ↵Mark Tiefenbruck2-12/+13
shown on window (it did nothing before)
2012-07-07make alt-tab skip modal windowsMark Tiefenbruck4-2/+9
2012-07-02add fullscreen, maximizedhorizontal, and maximizedvertical tests to ↵Mark Tiefenbruck2-2/+18
ClientPattern
2012-04-10removed 'always-true' expressionPaul Tagliamonte1-1/+1
2012-04-10use the 'z' modifier for printing 'size_t' like variablesPaul Tagliamonte1-2/+2
2012-04-10Bugfix: Don't draw the interlace lines 1px too farMathias Gumz1-1/+1
2012-04-06Allow percentage values for some Window commandsLajos Koszti12-88/+386
2012-01-04FocusableList.cc,.hh: Pass string arguments by const reference.Ryan Pavlik2-4/+4
Found by cppcheck
2012-01-04FbTk/XrmDatabaseHelper.hh: operator== can be const.Ryan Pavlik1-1/+1
Found with cppcheck.
2012-01-04Check .empty() instead of .size() == 0Ryan Pavlik1-2/+2
Found with cppcheck.
2012-01-04Pre-increment non-primitive types.Ryan Pavlik16-36/+36
Found with cppcheck: "Prefix ++/-- operators should be preferred for non-primitive types. Pre-increment/decrement can be more efficient than post-increment/decrement. Post-increment/decrement usually involves keeping a copy of the previous value around and adds a little extra code."
2012-01-04Exceptions should be caught by reference.Ryan Pavlik4-4/+4
Found using cppcheck.
2012-01-04Add mwm _MOTIF_WM_INFO atom to advertise mwm hints capabilityDaniel Diaz2-0/+2
Applications like urxvt look for the _MOTIF_WM_INFO atom in order to know if the window manager implements mwm hints. If this atom is not found, then urxvt sets override_redirect when started with the borderless option and falls out of the control of Fluxbox.