aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2011-05-10Last round of simplification of Signal/Slot classesPavel Labath18-139/+103
- merged all the common stuff from 0,1,2,3 argument versions into one common base class - removed ReturnType template parameter as it was instantiated with "void" everywhere and the current ignores the return value of the callbacks anyway
2011-05-10Don't crash when a slot is deregistered in the middle of signal processingPavel Labath1-15/+46
this was possible (and used) with FbTk::Subject, but the implemetation of FbTk::Signal didn't support it, which made it impossible to continue with conversion.
2011-05-10Simplify Slot.hhPavel Labath2-254/+70
Replace CallbackHolder, FunctorHolder and SlotHolder with a (smaller) set of polymorphic classes. SignalHolder now stores a (smart) pointer to the class.
2011-05-10Make RefCount<> more sensiblePavel Labath12-23/+27
the previous version of operator*() made no sense. E.g., it violated the invariant (*ptr).foo <=> ptr->foo. The dereferencing operator now returns a reference to the pointed-to object, rather than a pointer to it. I also added a bool conversion operator, which can be used in testing the NULL-ness of the pointer. Anyone wondering if that could be done in a simpler way is encouraged to read <http://www.artima.com/cppsource/safebool.html>. And, finally, I removed the mutable flag from the m_data member, since it does not need it.
2011-05-10Remove the Observer dependency from FbTk::MenuPavel Labath4-15/+8
2011-05-10Convert FbTk::Theme::reconfigSig and friends to the new Signal systemPavel Labath34-115/+92
I removed the const versions of reconfigSig() in the process since FbTk::Signal has no const methods anyway.
2011-05-10Simplify FbTk::Signal template classes a bitPavel Labath1-64/+30
basically, i just got rid of Signal[0-3] classes and moved their contents to the appropriate specialization of FbTk::Signal also, this fixes the no matching function for call to 'MemFunIgnoreArgs(FbTk::Signal<void, FbTk::SigImpl::EmptyArg, FbTk::SigImpl::EmptyArg, FbTk::SigImpl::EmptyArg>&, void (FbTk::SigImpl::Signal0<void>::*)())' error i had in the following commit.
2011-05-08Can check CARDINAL properties in CLIENT PATTERNSnacitar sevaht10-63/+69
Introduces a new member function, FbWindow::cardinalProperty() This change also changes other code that previously used FbWindow::property() to do the same thing as the new function; this reduces code duplication. There are still some bits of code (Ewmh.cc, extractNetWmIcon()) that use FbWindow::property() to retrieve XA_CARDINAL values, but as the new method is designed for getting a _single_ property, and that code uses FbWindow::property() to retrieve the number of values present, and then grab all of them; it's a different use case. I opted to not try to make cardinalProperty() into some monolithic all-purpose cardinal method; FbWindow::property() works just fine for that. This change also adds an optional (default=NULL) boolean to FbWindow::textProperty and friends that allows the caller to determine whether or not a value was actually retrieved. This was necessary for integrating FbWindow::cardinalProperty with the codebase, and it seemed to fit with FbWindow::textProperty as well. Prior to this change, if you got a return value of "", you wouldn't know if you successfully retrieved the value which happened to be blank, or if you failed to retrieve the value. Now, you can pass the address of a boolean if you so choose in order to differentiate these situations; the same applies to the new FbWindow::cardinalProperty().
2011-05-07Include src/tests in the distribution tarballPavel Labath1-1/+5
and add a configure option for building them (default: off). This patch fixes an error when configuring the tarball, where configure complained it cannot find src/tests/Makefile.in.
2011-04-27Make sure `make distcheck' is successfulPavel Labath1-2/+2
- added rmdir commands to uninstall rules of all Makefiles under data/styles - added \n at the end of files which had none
2011-04-25bugfix: do not warp workspaces with only one workspaceMathias Gumz1-1/+1
2011-04-18Fix VPATH buildsPavel Labath2-2/+3
2011-04-15Fix a couple of "comparison between signed and unsigned" warningsPavel Labath2-9/+7
2011-04-14bugfix: use 'unsigned long' to feed XChangeProperty, closes #3285968David Coppa1-1/+1
old code crashed on sparc64, pid_t seems to be 32bit on that platform.
2011-04-11Fix a pair of warnings reported by clangPavel Labath1-2/+2
2011-04-11Menu.cc: send debug output to cerr, make the output more sensiblePavel Labath1-9/+15
2011-04-03bugfix: return 'height' if container is rotated vertically, closes #3195728Gediminas Liktaras1-2/+2
iconbar.iconWidth property was ignored due this bug.
2011-03-28compile fix: added <cstdlib> to provide declaration for 'size_t' (gcc-4.6.x ↵Daniel Diaz3-0/+3
likes it that way)
2011-03-23compile fix: arguments must match declarationMathias Gumz1-4/+4
Sun CC++ 5.11 complaint on linking about missing symbols 'nextWorkspace()', 'prevWorkspace()' etc.
2011-03-23removed useless codeMathias Gumz1-6/+2
2011-03-23cosmeticsMathias Gumz2-6/+6
2011-03-23compile fix: sunCC again, wants a compile time constant for arraysMathias Gumz1-2/+2
2011-03-23compile fix: sunCC 5.11 (sunstudio 12) compiles and links againMathias Gumz25-108/+106
biggest change: renaming of 'class Layer' to 'class ResourceLayer' in Layer.hh to handle complaints about 'ambiguous Layer: Layer or FbTk::Layer'. 'ResourceLayer' sounds crappy, but that was the best I could come up with right now.
2011-03-19mergeMathias Gumz1-3/+11
2011-03-19code cleanup: moved code from public API to implementationMathias Gumz4-115/+108
renamed 'Region' to 'Area' to avoid conflicts with 'Region' from Xlib.
2011-03-19delete config menu first at shutdownHenrik Kinnunen1-3/+11
2011-03-19bugfix: reposition windows only if they are invisibleMathias Gumz1-4/+19
changing the layout or the number of the attached monitors might lead to invisible windows. only those windows should be positioned to the closest monitor, if they are not visible already.
2011-03-19code deduplication: use RectangleUtil::insideBorder()Mathias Gumz1-4/+1
2011-03-19prepare BScreen::XineramaHeadInfo to be 'RectangleLike'Mathias Gumz2-10/+15
2011-03-19added RectangleUtil::overlapRectangles() + test casesMathias Gumz2-0/+99
2011-03-18added tests/testRectangleUtil.ccMathias Gumz2-1/+69
2011-03-18some love to src/tests, use automake to use the same build environment as ↵Mathias Gumz8-260/+63
the rest of fluxbox
2011-03-18compile fix for clang, forward declaration of FocusControl was not enoughMathias Gumz2-2/+3
2011-03-18compiler cosmetic: changed return type of ↵Mathias Gumz2-2/+2
ScreenPlacement::placeAndShowMenu() to void, closes #3204402
2011-03-15bugfix: do not use anything from the current ClientMenuItem after ↵Mathias Gumz1-2/+4
m_client.focus(), closes #3210493 m_client.focus() might call ~ClientMenuItem(), thus m_client is not available anymore. the crash was triggered by trying to deiconify a client via the clientmenu. this triggers a signal to remove and destroy the current ClientMenuItem.
2011-03-01fix misordered Toolbar::Placement strings, closes 3195721Mathias Gumz1-3/+3
2011-02-25bugfix: submenus didn't hide if a delay was setMathias Gumz2-3/+3
use the FbTk::Timer API correctly, bug(s) introduced by 1f0adef4daa2da5b08ed7f41e7a0ce1e3f71e46f e68511794130388ab9668fdef0dcf48dbbf002fd
2011-02-24cache result of getWorkspace()Mathias Gumz1-2/+3
2011-02-24better solution for warping transient windowsMathias Gumz2-2/+7
see #3088856 / 09f99a4674a75a201effdc912d79a28c2dad4225. at the moment this fix looks side-effect free, time will tell.
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