aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
AgeCommit message (Collapse)AuthorFilesLines
2011-07-18Attach modifiedSig handlers to the session.screenX.defaultDeco resourcePavel Labath1-2/+11
2011-07-15Attach modifiedSig handlers to the session.autoRaiseDelay resourcePavel Labath1-3/+3
2011-07-13Emit the "modified" signal when a resource value is changed through C++ codePavel Labath1-1/+1
2011-07-12Enable the resource traits classes to hold non-static membersPavel Labath1-6/+3
ps: the Resource class inherits from the Traits class instead of holding it as a member because it's more size-efficient (base classes can have zero size, members cannot).
2011-07-11Attach a modifiedSig handler to the session.tabPadding resourcePavel Labath1-1/+3
ps: this is a bonus, without this one needed to completely restart fluxbox for the updates to tabPadding to take effect.
2011-06-16Vector resources can now specify which char to use as delimitersPavel Labath1-1/+2
when saving/loading to/from string representation. This is needed for the next commit.
2011-06-16Replace ResourceManager with the lua versionPavel Labath1-7/+3
Loading of an init file with the new manager works ok. Saving and restarting is still not completed. This touches many files because i removed the alternative name of resources. Unlike Xrm, lua does not have native support for alt names. It should be fairly easy to add them, but I think that is unnecessary and would be confusing.
2011-06-15Simplify FbTk::Resource template classPavel Labath1-4/+5
by outsourcing the conversion from string/lua to the specific type (and back) to a separate class. This change touches a lot of files because the interface of FbTk::Resource changed slightly. However, the changes are minor.
2011-05-10Convert FbWinFrame::frameExtentSig to FbTk::SignalPavel Labath1-4/+5
Also, I spotted a potential bug in the code. I marked the place with XXX. Someone should take a look at that.
2011-05-10Convert FluxboxWindow::hintSig to FbTk::SignalPavel Labath1-2/+1
2011-05-10Convert FluxboxWindow::layerSig to FbTk::SignalPavel Labath1-3/+2
2011-05-10Convert FluxboxWindow::stateSig to FbTk::SignalPavel Labath1-19/+21
2011-05-10Convert FluxboxWindow::workspaceSig to FbTk::SignalPavel Labath1-6/+5
2011-05-10Convert Focusable::dieSig to FbTk::SignalPavel Labath1-1/+1
2011-05-10Convert FbTk::Theme::reconfigSig and friends to the new Signal systemPavel Labath1-5/+7
I removed the const versions of reconfigSig() in the process since FbTk::Signal has no const methods anyway.
2011-05-08Can check CARDINAL properties in CLIENT PATTERNSnacitar sevaht1-2/+6
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-03-23compile fix: sunCC 5.11 (sunstudio 12) compiles and links againMathias Gumz1-11/+11
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-02-24better solution for warping transient windowsMathias Gumz1-1/+1
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-24moved Menu placement into ScreenPlacement::placeAndShowMenu()Mathias Gumz1-21/+5
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.
2010-09-14cleanup and code deduplicationMathias Gumz1-20/+14
* ClientPattern.cc: make compiler happy (complaints about XPROP not handled in switch) * FbTk/FbPixmap.cc FbTk/StringUtil.cc: signed vs unsigned * FbTk/FbString.cc: missing return * WinClient.cc: create atoms only once; use helper function * Window.cc: use a helper function
2010-09-11added 'SetXProp' action and (@PROP=foo) clientpatternMathias Gumz1-0/+4
these two allow 'tagging' of arbitrary windows with 'tags' (or 'labels'). such 'tagged' windows can then be used in ':NextWindow (@PROP=foo)' commands to quickly cycle through a subset of available windows. since the 'tags' are applied as real xproperties to a window they survive a restart of fluxbox or even another windowmanager. the user can also set the tags by using xprop(1). the next step regarding the UI should be to visualize the tags of a window.
2010-09-08introduced FbTk::BidiStringMathias Gumz1-20/+20
a 'BidiString' holds both the logical content and the visual reordered version of the content of a string. this helps to reduce the number of calls to reorder the string before drawing it (as introduced in the patch from Ken Bloom) and to be more consistent in menus and textboxes (drawing cursors and underlining text).
2010-08-23reenable clickRaise(), but on any button press if no key-action was foundMathias Gumz1-1/+17
2010-08-22fixed compiler warnings regarding signed/unsigned and () around expressionsMathias Gumz1-7/+14
2010-08-20implemented 'ActivateTab' action to (re)allow activation of tabs via mouseMathias Gumz1-71/+30
2010-05-06bugfix: when maximizing a shaded window, unshade it beforeMathias Gumz1-0/+6
2010-05-06added little helper function to disable the maximization state of a window ↵Mathias Gumz1-5/+13
while keeping its current position / size
2010-05-05bugfix: resizing stops _NET_WM_STATE_MAXIMIZED*, so trigger signal to set ↵Mathias Gumz1-0/+2
the properties correct fixes partly #2980313, resize with keys still does not trigger _NET_WM props to be correct
2010-05-05use maximize options for fullscreen as wellMathias Gumz1-2/+2
2010-05-05added OnLeftGrip, OnRightGrip, OnWindowBorder modifiers for keys fileMathias Gumz1-161/+149
this allows to move some hardcoded keysbindings into the keys file and makes the code simpler
2010-03-26Changed title signal in Focusable to new signal systemHenrik Kinnunen1-15/+19
2010-03-18Changed Focusable::focusSig() to new signal system.Henrik Kinnunen1-4/+4
The focus signal emits the window that had the focus status changed.
2010-03-17Changed #ifdef DEBUG ... cerr << to using fbdbg.Henrik Kinnunen1-101/+64
This will reduce the number of #ifdef DEBUG for simple debug messages. include "Debug.hh" and use fbdbg instead of cerr for debug.
2009-12-18implemented 'MoveN' and 'ClickN' support in keys file.Mathias Gumz1-7/+36
the hardcoded 'OnTitlebar Mouse1 :Raise' (see Window.cc, FluxboxWindow::buttonPressEvent()) is disabled for now, should be added to fluxbox-update_configs
2009-11-23Keep 'maximum/fullscreen' when moving a window between different headsMichal Zime1-0/+14
2009-10-03compile fixes for sun compiler 5.10: 'i want an extern C function ptr'Mathias Gumz1-1/+1
2009-10-03compile fixes for sun compiler 5.10: complains about 'not beeing able to ↵Mathias Gumz1-2/+3
initialize this from that'
2009-09-30cosmetic fixes: removed redundant ';' + some whitespacesMathias Gumz1-1/+1
2009-09-14mwm hints can't control the close buttonMark Tiefenbruck1-2/+2
2009-09-12implemented visibility of titlebar buttons via the apps fileMathias Gumz1-18/+23
2009-06-28hide the menu when you click on a windowMark Tiefenbruck1-2/+1
2009-06-28make Raise/LowerLayer accept integer argument for number of layers, default 2Mark Tiefenbruck1-7/+2
2009-06-28allow "lower" as a reference point for MoveTo, etc.Mark Tiefenbruck1-1/+1
2009-05-26Merge branch 'mousefocus'Jim Ramsay1-2/+13
2009-03-04buildfix: fluxbox didnt link when configured with --disable-rememberMathias Gumz1-0/+4
2009-02-27Ignore EnterNotify on Move or ResizeJim Ramsay1-0/+3
Moving and Resizing windows can reveal other windows, which of course can change unexpected focus changes in focus-follows-mouse.
2009-02-27Ignore EnterNotify on LowerJim Ramsay1-0/+4
Lower is one of the actions which may reveal a window under the current mouse pointer which would unexpectedly change focus under focus-folows-mouse.
2009-02-27Added facility to selectively ignore EnterNotify eventsJim Ramsay1-2/+6
This will be used to avoid some situations where an EnterNotify event should not focus the window beneath the mouse cursor. For example, when a menu (or any window for that matter) is unmapped, focus should not pass to whatever window is beneath the current location of the mouse cursor, but to the previous window in the focus list. This was first noticed when using the ClientMenu feature with focus-follows-mouse on -> The focus would always end up on the window beneath the mouse pointer, not the window selected in the menu.