aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2011-02-24intermediate fix for segfault when warping transient windows to different ↵Mathias Gumz1-1/+1
workspace, see #3088856 warping a transient window to the next workspace creates a cycle between BScreen::changeWorkspaceID(), BScreen::reassociateWindow(), Workspace::removeWindow(), FocusControl::unfocusWindow(), FluxboxWindow::setCurrentClient(), FluxboxWindow::focus() and so on. for now we just stop allowing transient windows to be warped, it is most likely a bad idea anyway having the modal dialog on one workspace and the (dead) main window on another one. this issue must be analyzed further, since there might be a deeper problem with the way the focus code works.
2011-02-24fix calculating the width / height of SystemTray (closes #3150939)Mathias Gumz1-2/+2
2011-02-24SystemTray tool should use the right fallback resourceMathias Gumz1-1/+1
2011-02-24removed unused headersMathias Gumz1-4/+0
2011-02-24moved Menu placement into ScreenPlacement::placeAndShowMenu()Mathias Gumz8-103/+88
2011-02-24little helper function 'isTitleVisible()' for FbTk::MenuMathias Gumz1-0/+1
2011-02-24code deduplicationMathias Gumz1-27/+20
2011-02-23bugfix: place WindowMenu correctly upon first call (closes #2731524)Mathias Gumz1-1/+2
FbTk::Menu::updateMenu() recalculates the width() and height() of the window. this must be done before the menu is moved to fit completely onto the screen. the 'menu().raise()' command is not needed, that is done inside 'menu().show()' already.
2011-02-23renamed FbTk::XLayer to FbTk::Layer and FbTk::XLayerItem to FbTk::LayerItemMathias Gumz28-379/+229
2011-02-23disabled overhead base classes 'FbTk::Layer' and 'FbTk::LayerItem'Mathias Gumz9-21/+30
had to add <algorithm> at various other files as a result of this change.
2011-02-23irrelevant 'virtual' destructorMathias Gumz1-1/+1
2011-02-23code deduplicationMathias Gumz3-94/+68
2011-02-23updated year and copyright infoMathias Gumz1-2/+2
2011-02-23almost 10 years of fluxboxMathias Gumz1-1/+1
2011-02-23merged crash fixHenrik Kinnunen1-4/+3
2011-02-23Fixed possible crash issue when getting an unmap before a focus in event.Henrik Kinnunen1-4/+3
The issue was caused by a client that got an unmap notify and had a FocusIn event directly after in the event queue. The focus in event was handled by Fluxbox::revertFocus before the WinClient.cc removed itself from the search window list.
2011-02-22moved rarely used 'cpccpc' out of class declarationMathias Gumz2-12/+13
2011-02-22don't use hardcoded references to positions in the menuMathias Gumz2-11/+16
2011-02-22bugfix: consistent use of 'int' for alpha values (#3187373)Mathias Gumz26-61/+65
WindowMenuAccessor returned strange alpha values if compiled with 'g++ -Os'; unholy black magic happens if template<int> faces functions returning only 'usigned char'.
2011-02-22bugfix: render 'sunken' gradients correctlyMathias Gumz1-1/+1
2011-02-22use FbTk::StringUtil APIMathias Gumz1-15/+4
2011-02-22renamed Texture:DEFAULT_BEVEL to Texture::DEFAULT_LEVELMathias Gumz3-3/+3
2011-02-22cosmeticsMathias Gumz1-15/+6
2011-02-22Bugfix: don't render textures with dimension of 0Mathias Gumz1-1/+4
At least 'invertRGB()' does not like 'width' or 'height' being 0. 341b2f43e511e39dd was triggered by this problem as well.
2011-02-21Render rectangles instead of squares to test TextureRender.ccMathias Gumz1-13/+9
2011-02-21Fix bug: 'src_image' might be NULL if width||height are 0 (#3188223)Mathias Gumz1-40/+49
With ROT90-SystemTray fluxbox crashed. It is a bit unclear of where to catch pixmaps / windows with either width or height equal to 0; IMHO this needs more investigation.
2011-02-20Fixed a possible crash when using a slot m_holder = 0Henrik Kinnunen1-5/+9
2011-02-03allow to override 'FocusNewWindow' via .fluxbox/appsPeter Hercek3-0/+26
2011-02-03bug fix: semantic differences between WinState::Decoration and Remember::save()Peter Hercek1-11/+5
2011-01-18bug fix: make fluxbox work under nxserver, closes #2813828Mathias Gumz1-0/+50
nxserver-3.x creates a XExposeEvent for the unmapped FbTk::Menu(), which is not configured completely yet (hence unmapped). this causes a call to FbTk::Menu::clearItem() which then uses a value of 0 for m_rows_per_column to divide the current index which triggers a SIGFPE. it is still unclear, why nxserver-3.x creates the XExposeEvent for the unmapped (menu) window. doing nothing if the menu is unmapped 'fixes' the problem for now. many thanks to Lars Engels (bsd-geek.de) to assist me in debugging this issue.
2011-01-16compile fix, new name of setMinimumSublevels() is setMinimumColumns()Mathias Gumz1-1/+1
2011-01-15removed useless include statementsMathias Gumz1-4/+0
'typeinfo' was needed for RTTI in isItemSelectable() (see last commit) 'algorithm' is already included some lines above
2011-01-15better use of API, no need for 'timeval' in MenuMathias Gumz1-4/+1
2011-01-15MenuItem::isEnabled() is sufficient to decide Menu::isItemSelectable()Mathias Gumz1-3/+1
MenuSeparator is never enabled since it returns always 'false' in its implementation of isEnabled(). no need to use RTTI imho.
2011-01-15small refactoring of FbTk/Menu codeMathias Gumz4-229/+254
* removed useless struct _menu * code deduplication via renderMenuPixmap() * improved documentation: - 'sublevel' actually means 'column' - 'persub' means 'row_per_column'
2011-01-13compile fix: missing symbol (SystemTray::getNetSystemTray()) when configured ↵Mathias Gumz1-1/+4
--disable-toolbar
2011-01-06bugfix: do not assume ':number.screen' as the result of 'DisplayString()'Mathias Gumz1-4/+15
a newer xlib recently changed the result of 'DisplayString()' a little bit: instead of returning ':0.0' or ':1.0' it yields ':0' or ':1'. our code to transform this string into something that includes the currently used Screen worked only on something like ':0.0'. we now find the '.' after the ':' and strip that part away.
2010-10-13bugfix: std::string() does not like NULL on constructionMathias Gumz1-6/+19
not having DISPLAY set (eg: on a headless system) caused fluxbox to crash.
2010-09-20use 'system()' to run 'fluxbox-update_configs'Mathias Gumz1-3/+1
by using FbCommands::ExecureCmd() we run 'fluxbox-update_configs' in the bacground while booting a new fluxbox instance already. 'system()' waits until 'fluxbox-update_configs' is done and then gives the control back to fluxbox.
2010-09-20updated 'texturetest.cc' to work with current APIMathias Gumz1-4/+6
2010-09-20bugfix: ' floating point exception' due wrongly placed codeMathias Gumz1-1/+2
while integrating the old 'getSqrt()' function into the 'bsqrt()' function i misplaced some code. this lead to 'r' being 0 on the first run. doh.
2010-09-19pushed to early ...Mathias Gumz1-16/+64
2010-09-18changed the way we create the '~/.fluxbox' directory to avoid race conditionsMathias Gumz4-103/+140
before bringing up the first instance of Fluxbox we prepare the directory and the files it needs. if the config version of exiting files is lower than what we expect, we upgrade the config files. after that we bring up Fluxbox. the old way was problematic because setupConfigFiles() calls 'fluxbox-update_configs' which does its job in the background while fluxbox continues to boot. 'fluxbox-update_configs' sends a USR2 signal to the booting fluxbox (it might even be finished, no one knows) which triggers 'load_rc()' which triggered 'setupConfigFiles()' again which might trigger 'fluxbox-update_configs' again (on my machine 'fluxbox-update_configs' was called 3 times and left a pretty crippled 'keys' file when it was done). bootstrapping before bringing up fluxbox resolves the issue. as a bonus: no need to send USR2 to fluxbox to reload the config file because fluxbox has not even tried to read it yet.
2010-09-18cosmeticMathias Gumz2-63/+120
2010-09-18recovered lost change from 041d586972db4da170123f5468d7b11d4eda8ae5Mathias Gumz1-96/+65
got lost in d3eabeb805fdbd162c0743ed86a67e014e37c097 somehow
2010-09-17bugfix: avoid naive use of 'putenv' by providing 'FbTk::App::setenv()'Mathias Gumz4-36/+66
to quote from 'man putenv': The string pointed to by string becomes part of the environment, so altering the string changes the environment. so, using putenv like { std::string foo("FOO=bar"); putenv(foo.c_str()); } is wrong and leads to a potentially corrupted environment. valgrind complaint correctly. FbTk::App seems to be the appropriate place to hold '::seten()' because it alters the environment of the application.
2010-09-17missing initializationsMathias Gumz3-1/+4
'valgrind' reported a lot of code branches based upon uninitialized variables. some are not identified yet.
2010-09-17request explicitly as many elements for the gradient tables as we needMathias Gumz2-18/+8
the next step is to not use 'unsigned int' and then only store 'chars' in it, maybe even using RGBA data instead of separated arrays for r, g and b.
2010-09-17bugfix: forgot to resize 'pixels' before putting values into it (facepalm)Mathias Gumz1-2/+2
2010-09-17added 'ArrangeWindowsVertical' to actionsJohn K Pate2-4/+22