aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
AgeCommit message (Collapse)AuthorFilesLines
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
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.
2008-10-15unrevert 1fdef35e51Mark Tiefenbruck1-14/+0
x Mathias should listen to me when I say "by the way, I know you liked the code I just removed; you should change your keys file to use :MacroCmd {Focus} {Raise} {StartMoving}". Behavior in 1.0.0 and previous was that alt+click would focus and raise, regardless of whether the window was moved or not. If mathias really wants his alt+drag to preserve stacking order, he should add Mouse<N>Move events to the keys file to distinguish moving from clicking. I've been planning on doing it anyway.
2008-10-15reverted 1fdef35e51, added more info about that featureMathias Gumz1-0/+14