aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
AgeCommit message (Collapse)AuthorFilesLines
2013-01-26Calculates timeouts of ClockTool based upon System ClockMathias Gumz1-4/+4
Users expect time switches to happen upon system clock times. Calculating the timeout for the next refresh of the shown time via the monotonic clock is wrong: The monotonic clock yields values based upon some arbitrary point in time which might be off a little bit to the system clock, a 'full' minute of the monotonic clock might be in the midst of a system clock minute.
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.
2012-11-07Adds the OnTab keyword for the keys fileJulien Viard de Galbert1-53/+5
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 Abbott1-20/+46
2012-08-28changed timing functions to use a monotonic increasing clockMathias Gumz1-23/+11
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-07-09make the menu bit of decoration masks control whether or not menu button is ↵Mark Tiefenbruck1-8/+9
shown on window (it did nothing before)
2012-07-07make alt-tab skip modal windowsMark Tiefenbruck1-0/+4
2012-04-06Allow percentage values for some Window commandsLajos Koszti1-3/+13
2012-01-04Pre-increment non-primitive types.Ryan Pavlik1-2/+2
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."
2011-10-20Added support for ARGB visual, patch #3284774Gediminas Liktaras1-1/+1
fluxbox now properly displays windows that require ARGB visuals when an external compositor is running. This was done by creating the container window with the correct visual and colormap when needed. Closes #2874629
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