aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.hh
AgeCommit message (Collapse)AuthorFilesLines
2021-07-06Patch from Glen WhitneyMark Tiefenbruck1-1/+3
A priori, there is no reason why the workspace warping functionality should treat the horizontal and vertical directions at all differently. Even if traditionally horizontal warping was more common, for some in recent times as aspect ratios tend to become larger, stacking virtual workspaces vertically may make more sense. Similarly, some might want to traverse an array of workspaces in column-major, rather than row-major, order. Prior to this commit, there were extra parameters for vertical warping (a controlling flag and an offset for how many workspaces to jump) as opposed to horizontal warping. Also it was impossible to allow vertical warping while disallowing vertical warping. This commit makes all of the parameters and behavior for horizontal and vertical warping equivalent. For backwards compatibility, there is an overarching flag controlling whether warping occurs at all, as well as a separate control flag and offset for each of horizontal and vertical warping. The relevant init file resources and default values are: session.screen0.workspaceWarping: true session.screen0.workspaceWarpingHorizontal: true session.screen0.workspaceWarpingVertical: true session.screen0.workspaceWarpingHorizontalOffset: 1 session.screen0.workspaceWarpingVerticalOffset: 1
2021-07-06Patch from Thomas LuebkingMark Tiefenbruck1-0/+2
Adds (secret) opaque resize mode. It sure would be nice if it was documented.... The relevant init file resources and their default values are: session.screen0.opaqueResize: False session.screen0.opaqueResizeDelay: 40
2017-11-19Support 'vertical' Workspace warpingMark Murawski1-0/+2
'Vertical' Workspace warping is a variant of the existing Workspace warping feature: When a user drags a window to the edge of the Screen, the window is warped to the next / previous workspace. 'Vertical' Workspace warping detects a drag towards the upper / lower border of the screen and warps the current workspace about an 'offset'. Example given, lets say the user has 9 workspaces and considers them to form a 3x3 grid: +-+-+-+ |1|2|3| +-+-+-+ |4|5|6| +-+-+-+ |7|8|9| +-+-+-+ An 'offset' of 3 warps from workspaces 2 to workspace 5 (or 8), when a window is dragged to the bottom / top border. New configuration ressources: session.screenN.workspacewarpingvertical: true session.screenN.workspacewarpingverticaloffset: X
2016-09-03Next|PrevWorkspace 0 toggles former WorkspaceThomas Lübking1-0/+1
REQUEST: 185 also PATCH 92
2016-08-28fix compiler warning about std::auto_ptrMathias Gumz1-12/+12
fluxbox uses std::unique_ptr<> where it previously used std::auto_ptr<>. C++0X was approved in 2011. among other things, it deprecates std::auto_ptr. 5 years is long enough for compilers to catch up the standard.
2016-08-26allow to alter button labels via fluxbox-remoteThomas Lübking1-0/+11
Command is "RelabelButton button.foo $LABEL" This is useful to eg. hint the amount of unread mails in a button to start your MUA, reflect the $USER in a session menu button etc.
2016-08-26add commands to toggle toolbar and slit layerThomas Lübking1-0/+5
toggle(Toolbar|Slit)Above toggles the resp. item between its regular and the AboveDock layer (ie. above everything, even visible on active fullscreen windows) Also required step for autoraising. REQUEST: 222
2016-08-26add support for artificial struts (per head)Thomas Lübking1-0/+2
Allows to maintain access to desktop fractions etc. against maximized windows. Also permits to OnToolbar clicks in this case, eg. to raise it. REQUEST: 150
2016-07-30reconfigTheme's on loading a new styleThomas Lübking1-0/+1
Also reconfigure menus (recursively) on style load The most critical call is the shape update - the menus often become cut-off, preventing mouse interaction with lower items, but also colors are not applied correctly to menus w/o updating them. BUG 1022 is most likely this and only a misinterpretation (for the mentioned items are those with lacking color updates on style updates) BUG: 1146 BUG: 1017 CCBUG: 1022
2016-01-04Add Resize SnapNephiel1-0/+2
Make windows snap to edges when resizing them, as well as when moving. From http://darkshed.net/files/patches/fluxbox/fluxbox-resize-snap-try2.diff
2015-01-22Add -no-slit and -no-toolbar flagsMathias Gumz1-12/+13
Sometimes fluxbox is used as a component of a desktop environment ( e.g., the "Lumina Desktop"). It's easier and more stable for this kind of "users" to disable the toolbar or the slit alltogether. Why not configure these features out? Because then they would need 2 installations of fluxbox: One without the slit and the toolbar (and perhaps other components) and one with them. This implements feature request #314, at least partially. This commit also looks bigger than it actually is: I refactored and cleaned up classes Fluxbox and BScreen.
2015-01-21Fix segfault on shutdownMathias Gumz1-5/+0
There was a problem deep within how the menus were connected and when and what gets deleted. It was clearly related to a menu which was kind of global. In order to better understand the code flow I eliminated the ExtraMenu code: it was used only to get the Remember-Menu into the Window-Menu. Instead of having a singleton of the Remember-Menu and fight against the shaky interconnections we just create a new one on demand and delete when the menu gets deleted. Looks like this fixes the problem. The menu code needs more love anyway. Closes #1118
2015-01-16Refactor: bundle xinerama-info together, simpler codeMathias Gumz1-12/+17
Part of this massive looking but simple rather simple change is a the way we check for active Xinerama: XineramaIsActive() was used before. The docs for XineramaQueryScreens() state that XineramaQueryScreens() returns NULL and sets number to 0 if Xinerama is not active. Sold.
2015-01-16Refactor: move some menu-creation functions to MenuCreatorMathias Gumz1-20/+1
Another patch to trim down the code that needs to be part of BScreen
2015-01-16Reduce number of allocations for menu creationMathias Gumz1-4/+0
Every time either the Slit menu or the Toolbar menu were added to the root menu, the whole root menu was (re)created from scratch. Now we create and remove only the menus needed. Side effect: the position of these menus is now at the end of the root menu and not somewhere in between. If users complaint, I' ll think about it.
2015-01-15Refactor: split out menu generation from BScreenMathias Gumz1-23/+4
Again, it's easier to read the code when the whole menu-generation is out of the way.
2012-04-06Allow percentage values for some Window commandsLajos Koszti1-0/+17
2011-05-10Remove all trace of Observers and SubjectsPavel Labath1-2/+0
this marks the completion of the transition to FbTk::Signal
2011-05-10Convert Screen::reconfigureSig to FbTk::SignalPavel Labath1-15/+2
2011-05-10Last round of simplification of Signal/Slot classesPavel Labath1-3/+3
- 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-10Convert FbTk::Theme::reconfigSig and friends to the new Signal systemPavel Labath1-6/+3
I removed the const versions of reconfigSig() in the process since FbTk::Signal has no const methods anyway.
2011-04-25bugfix: do not warp workspaces with only one workspaceMathias Gumz1-1/+1
2011-03-23removed useless codeMathias Gumz1-6/+2
2011-03-19prepare BScreen::XineramaHeadInfo to be 'RectangleLike'Mathias Gumz1-1/+5
2011-03-18compile fix for clang, forward declaration of FocusControl was not enoughMathias Gumz1-1/+2
2011-02-23renamed FbTk::XLayer to FbTk::Layer and FbTk::XLayerItem to FbTk::LayerItemMathias Gumz1-2/+2
2010-09-09removed dead codeMathias Gumz1-3/+0
2010-09-08introduced FbTk::BidiStringMathias Gumz1-1/+1
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).
2008-10-13merge menuDelay and menuDelayClose optionsMark Tiefenbruck1-1/+1
2008-10-05remove menu modesMark Tiefenbruck1-1/+0
2008-10-05remove follow modelsMark Tiefenbruck1-12/+0
2008-10-05remove line style resources from init fileMark Tiefenbruck1-5/+0
2008-10-05remove rootcommand from init fileMark Tiefenbruck1-1/+0
2008-09-28Changed resize signal in BScreen to use the new signal systemHenrik Kinnunen1-4/+4
2008-09-28Changed workspace area signal to use the new signal systemHenrik Kinnunen1-2/+2
2008-09-28Merge branch 'master' of fluxbox@git.fluxbox.org:fluxboxHenrik Kinnunen1-1/+2
Conflicts: ChangeLog
2008-09-28Change focused signal to use the new signal systemHenrik Kinnunen1-2/+2
2008-09-28don't let KeyRelease events propagate to windowsMark Tiefenbruck1-1/+2
2008-09-21Changed icon list signal in BScreen to use the new signal systemHenrik Kinnunen1-2/+2
2008-09-21Changed client list signal in BScreen to use the new signal systemHenrik Kinnunen1-2/+2
2008-09-21Changed background changed signal in BScreen to use the new signal systemHenrik Kinnunen1-10/+10
2008-09-21Changed workspace names signal in BScreen to use the new signal systemHenrik Kinnunen1-2/+4
2008-09-21Changed current workspace signal in BScreen to use the new signal systemHenrik Kinnunen1-2/+2
2008-09-18Changed workspace count signal in BScreen to use the new signal system.Henrik Kinnunen1-2/+3
2008-09-11fix some default valuesMark Tiefenbruck1-5/+0
2008-09-08update workspace names atoms/resources when adding a new workspaceMark Tiefenbruck1-2/+0
also removed unnecessary items from default init file
2008-08-27remove option to disable decorations on transient windowsMark Tiefenbruck1-3/+1
2008-08-15move some frame size calculations to FbWinFrameMark Tiefenbruck1-1/+1
2008-06-26remove dithering codeMark Tiefenbruck1-2/+1
2008-06-20move default window menu to ~/.fluxbox/windowmenuMark Tiefenbruck1-1/+1