aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2021-07-07Patch from Thomas LuebkingMark Tiefenbruck1-0/+4
Documents Opaque Resizing and adds a fancy config menu item
2021-07-06Patch from Glen WhitneyMark Tiefenbruck4-5/+13
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 Tiefenbruck5-33/+57
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
2021-07-06Patch from Denis GantsevMark Tiefenbruck1-0/+4
Fluxbox would segfault when no fonts were available. Now it just exits with an error.
2021-07-06Patch from Bo Simonsen.Mark Tiefenbruck3-6/+18
Improve switching between 12H and 24H in Clock Tool configuration Having: session.screen0.strftimeFormat: %d-%m-%y %02k:%M The switch[1] between 12H and 24H did not work due to the digits (02).
2021-07-06Patch from Bo Simonsen.Mark Tiefenbruck4-13/+28
Max size per client (setMaxSizePerClient) was computed for iconbar.alignment = Relative not taking into account that a fixed size can be given when iconbar.alignment = Left/Right. In a "recent" change, relative alignment was changed, to better handle items with long titles. This is breaking existing behavior, the new behavior is (with this commit) now denoted RelativeSmart.
2020-04-19Handle sizehint base_width / base_height being less than 0Bo Simonsen1-2/+3
Some applications supply -1 in base_width / base_height. One example is the Preferences dialog of pcmanfm-qt: WM_NORMAL_HINTS(WM_SIZE_HINTS): ... program specified base size: -1 by -1 Without this commit the program will crash due to overflow of unsigned int.
2020-04-05Add missing scope to a method definitionJan Sucan1-1/+1
2020-04-05Const ref instead of const for string vector.Gregor Bollerhey1-3/+3
2020-04-05Ignore case when matching window classnames.Gregor Bollerhey1-2/+5
2020-04-05Corrected comment (now member and returns nothing).Gregor Bollerhey1-2/+2
2020-04-05Use FbTk::StringUtils instead of own tokenizer.Gregor Bollerhey1-28/+9
2020-04-05Sort on remove isn't needed.Gregor Bollerhey1-2/+0
2020-04-05Icon order now is property of the SystemTray.Gregor Bollerhey2-68/+64
This way it is only parsed once in the constructor. Updating the TrayWindow order is now a method which is called once when the icon is created. sortClients/rearrange is now only called on adding and removing icons.
2020-04-05XFree must not be called with 0.Gregor Bollerhey1-2/+4
2020-04-05Thought BadWindow was a return status on failure.Gregor Bollerhey1-5/+3
In fact its 0, thats why fluxbox sometimes crashes when freeing the malformed structure.
2020-04-05Store order in TrayWindow instead of using expensive comperator.Gregor Bollerhey1-13/+12
2020-04-05Use XFree to free memory (not the default "delete").Gregor Bollerhey1-1/+5
2020-04-05Make systray icon pinning available.Gregor Bollerhey2-5/+91
The user options screenname.systray.pinLeft and screenname.systray.pinRight in .fluxbox/init are read as comma sperated list of window classnames. While preserving the order of the lists, systray icons are sorted so that pinLeft'ed classnames appear left and vice versa.
2019-08-06explicitly expect unsigned intChristian Hesse1-1/+1
This fixes: src/FbTk/XftFontImp.cc: In member function ‘virtual bool FbTk::XftFontImp::load(const string&)’: src/FbTk/XftFontImp.cc:81:53: error: no matching function for call to ‘max(unsigned int, int)’
2019-07-07zero check now uses std::max()ryluchs171-2/+2
2019-07-06removed potential division by zero with size zero fontsRyan Luchs1-1/+1
2018-03-14fbtk, textbox, support horizontal paddingPete Beardmore2-13/+36
-add 'setPadding' function
2018-03-14fbtk, textbox, overflow selection deselectionPete Beardmore1-2/+27
changes the selection's deselection mechanism for oversized (e.g larger than window width) text new behaviour ensures the maximum selection width remains whilst the selection length is 'oversized'. only when the selection length has a width less than the window width will the selection (i.e. the highlight / inverted colours) reduce in size this is in contrast to the existing approach which would immediately decrease an oversized selection down to nothing visually, leaving the remainder of the selection 'off screen'. this 'looks like nothing is selected' when in fact it is, gives a poor UX
2018-03-14fbtk, textbox, fix selection release on clickPete Beardmore1-0/+2
2018-03-14fbtk, textbox, limit selection height to font sizePete Beardmore1-1/+1
2018-03-14fbtk, textbox, fix cursor position and sizePete Beardmore1-1/+1
-use font height for cursor -prefer 'descent to ascent' coverage as opposed to 'baseline plus way too high'!
2018-03-14fbtk, textbox, fix text vertical centeringPete Beardmore1-1/+1
2018-03-11Fix evaluating variables in ExportCmdMaik Broemme1-1/+1
Don't evaluate trusted variables in *ExportCmd::parse as they will be always false for SetEnv, Export and SetResourceValue and never executed via fluxbox-remote.
2017-11-19Rotate toolbar button on rotated toolbarLajos Koszti2-2/+16
In 393ba45f91480bb10f510248837c6051b7ff6a03 added the possibility to add custom buttons to the toolbar. However, if the toolbar is rotated the buttons stays horizontal. Update the button to rotate the text and update the width/height of the button if rotated
2017-11-19Support 'vertical' Workspace warpingMark Murawski4-16/+58
'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
2017-03-01slit: Add missing headerPetr Vorel1-0/+1
Signed-off-by: Petr Vorel <pvorel@suse.cz>
2016-11-20stop focus cycling on explicit workspace changesThomas Lübking2-0/+5
Otherwise implicit focus changes by the workspace change would be perceived as focus stealing and the focus restored to the last window on the original desktop
2016-11-20delay repositioning of labelsThomas Lübking5-2/+15
The iconbuttons delay their update to cover multiple changes, so if the labels are repositioned early, they'll operate on dated titles BUG: 1155 On the run, centralize the delay value in IconButton::updateLaziness()
2016-10-09prevent range overflowThomas Lübking1-1/+1
whenever dealing with unsigned, there's better no "-" in the line ...
2016-10-02Make preferredWidth max from un- and focused widthThomas Lübking1-0/+6
This is notably an issue if the focused font differs from the unfocused font (eg. is bold or bigger) Updating the value with the state leads to ugly judder (nasty when minimizing a window through the iconbar) and not handling this causes random button widths (depending on whether the button was focused when checking the value)
2016-10-02attempt a more fair container item squeezingThomas Lübking1-0/+29
Ein Schrumpffreibetrag, faktisch schon Kommunismus ;-) When short on space, items would be squeezed evenly, but this can turn "a" and "a very long item with useless information text" into "a very long item" and "", so in a pre-pass we check whether some very large items cause the shortage and preferably squeeze them.
2016-10-02compress resize signalsThomas Lübking2-3/+17
typically buttons will call for this quite some, eg. when switching workspace or (now) when altering the focused window. This compresses various changes happening at the same time and re-layout the toolbar only once for them
2016-09-22"the least oversight", part #2Thomas Lübking3-0/+4
playing with the side borders I figured that clicking them (after ading them ;-) would freeze the pointer. In addition harden the menu-triggering paths for slit and toolbar. The menu will implicitly grba/release stuff, but in case it fails to show up .... better safe than sorry.
2016-09-21show tooltips for tabsThomas Lübking3-5/+14
on the run (yes sucks, sorry) fixes a bug where windows were not activated on hovering the tab (for focus-follows-mouse policies) REQUEST: 95 The iconbar already shows tooltips and I doubt the claim that (untabbed) titlebars are "often" too short for the window title.
2016-09-21allow to drag tabs to other workspacesThomas Lübking1-32/+16
We simply re-use the move code. The major pitfall is that we must not unmap the dragged window, since it holds a pointer grab (which will break by unmapping it, so we fail to continue or finish the tab drag) Instead, the window is always send to the current workspace and if detached, all other clients in the group are send back to their original desktop. REQUEST: 234
2016-09-21implement ON_SLIT actionsThomas Lübking2-9/+32
On the run, make it raise on left-clicks (like the toolbar) The enum already existed ;-) REQUEST: 113
2016-09-21support OnWinButton, OnMinButton & OnMaxButtonThomas Lübking3-5/+40
... actions in keys. This allows to override the default behavior as well as adding actions for the mouse wheel. Special casing of the two "geometry" related buttons (eg. to perform smart maximization, reverse the partial maximzation, add shading to the min button or whatnot) All other buttons have a rather dedicated meaning and are only really interesting for adding mouse wheels or eg. the window menu on rmb clicks. Needs docu.
2016-09-21button: export pressed state and assigned commandsThomas Lübking1-0/+7
latter protected only.
2016-09-21"the least oversight" #1Thomas Lübking1-2/+6
The fixes a permanent (sync) button grab. Well, oversaw global buttonpresses. Let's wait for more to come ;-)
2016-09-21only call applySizeHints when desiredThomas Lübking1-3/+2
passing the "make_fit" parameter isn't sufficient to ignore constraints
2016-09-11resolve handle/grip context conflictThomas Lübking1-1/+6
2016-09-11introduce autotabplacementThomas Lübking3-9/+21
2016-09-11Do not break server grabsThomas Lübking1-2/+2
We have a nifty counter-based grab, so use it
2016-09-11std::auto_ptr to std::unique_ptrMathias Gumz2-5/+3