From 5f3cb410cdda9f94e99f17a60fc0456ca41bf1e0 Mon Sep 17 00:00:00 2001 From: Mark Tiefenbruck Date: Wed, 7 Jul 2021 06:58:42 -0700 Subject: Patch from Thomas Luebking Documents Opaque Resizing and adds a fancy config menu item --- doc/asciidoc/fluxbox.txt | 22 ++++++++++++++++++++++ doc/fluxbox.1.in | 35 +++++++++++++++++++++++------------ nls/fluxbox-nls.hh | 1 + src/ConfigMenu.cc | 4 ++++ 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/doc/asciidoc/fluxbox.txt b/doc/asciidoc/fluxbox.txt index a646a66..c0b1860 100644 --- a/doc/asciidoc/fluxbox.txt +++ b/doc/asciidoc/fluxbox.txt @@ -414,6 +414,10 @@ titlebars, not window contents. If enabled, you will see the window content while dragging it. Otherwise only an outline of the window will be shown. +*Opaque Window Resizing*::: + If enabled, you will see the window content while resizing it. Otherwise + only an outline of the window will be shown. + *Workspace Warping*::: If enabled, you can drag windows from one workspace to another. There are parameters to set independently whether this warping happens horizontally @@ -1169,6 +1173,24 @@ will only draw an outline of the window border. + Default: *True* +*session.screen0.opaqueResize*: 'boolean':: +When resizing a window, setting this to True will draw the window +contents as it resizes (this is nasty on slow systems). If False, it +will only draw an outline of the window border. ++ +Default: *False* + +*session.screen0.opaqueResizeDelay*: 'integer':: +When resizing a window in opaque mode, this controls the resize clock pulse in +ms. +Low values resize "smoother" but slow clients (browser etc. which are expensive +to resize) can put too much stress on the system (stalling everything) +High values will cause notable latency (delay before the size is aligned to +the mouse position) ++ +Default: *40* + + *session.screen0.workspaces*: 'integer':: Set this to the number of workspaces the users wants. + diff --git a/doc/fluxbox.1.in b/doc/fluxbox.1.in index b86ef41..16924ac 100644 --- a/doc/fluxbox.1.in +++ b/doc/fluxbox.1.in @@ -1,7 +1,7 @@ '\" t .\" Title: fluxbox .\" Author: Henrik Kinnunen -.\" Generator: DocBook XSL Stylesheets v1.78.1 +.\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08 February 2015 .\" Manual: Fluxbox Manual .\" Source: fluxbox.txt @@ -826,14 +826,14 @@ option will force fluxbox to ignore the xcomposite extension and use pseudo\-tra If enabled, you will see the window content while dragging it\&. Otherwise only an outline of the window will be shown\&. .RE .PP +\fBOpaque Window Resizing\fR +.RS 4 +If enabled, you will see the window content while resizing it\&. Otherwise only an outline of the window will be shown\&. +.RE +.PP \fBWorkspace Warping\fR .RS 4 -If enabled, you can drag windows from one workspace to another\&. There are -parameters to set independently whether this warping happens horizontally -and/or vertically, and in each direction you can set the number of workspaces -to jump when warping (to allow for a virtual rectangular grid of -workspaces)\&. When warping, lower-numbered workspaces are above/to the left, and -higher-numbered workspaces below/to the right\&. +If enabled, you can drag windows from one workspace to another\&. There are parameters to set independently whether this warping happens horizontally and/or vertically, and in each direction you can set the number of workspaces to jump when warping (to allow for a virtual rectangular grid of workspaces)\&. When warping, lower\-numbered workspaces are above/to the left, and higher\-numbered workspaces below/to the right\&. .RE .SS "Window Menu" .sp @@ -1206,11 +1206,6 @@ All icons will be left\-aligned with the width set in the \(oqinit\(cq file All icons will be sized evenly to fill the iconbar completely .RE .PP -\fBRelativeSmart\fR: -.RS 4 -All icons will initially be sized evenly, but icons with long titles will be larger -.RE -.PP \fBRight\fR: .RS 4 All icons will be right\-aligned with the width set in the \(oqinit\(cq file @@ -1934,6 +1929,22 @@ Default: \fBTrue\fR .RE .PP +\fBsession\&.screen0\&.opaqueResize\fR: \fIboolean\fR +.RS 4 +When resizing a window, setting this to True will draw the window contents as it resizes (this is nasty on slow systems)\&. If False, it will only draw an outline of the window border\&. +.sp +Default: +\fBFalse\fR +.RE +.PP +\fBsession\&.screen0\&.opaqueResizeDelay\fR: \fIinteger\fR +.RS 4 +When resizing a window in opaque mode, this controls the resize clock pulse in ms\&. Low values resize "smoother" but slow clients (browser etc\&. which are expensive to resize) can put too much stress on the system (stalling everything) High values will cause notable latency (delay before the size is aligned to the mouse position) +.sp +Default: +\fB40\fR +.RE +.PP \fBsession\&.screen0\&.workspaces\fR: \fIinteger\fR .RS 4 Set this to the number of workspaces the users wants\&. diff --git a/nls/fluxbox-nls.hh b/nls/fluxbox-nls.hh index e614525..39d5084 100644 --- a/nls/fluxbox-nls.hh +++ b/nls/fluxbox-nls.hh @@ -89,6 +89,7 @@ enum { ConfigmenuMaxDisableResize = 29, ConfigmenuStrictMouseFocus = 30, ConfigmenuFocusSameHead = 31, + ConfigmenuOpaqueResize = 32, EwmhSet = 5, EwmhOutOfMemoryClientList = 1, diff --git a/src/ConfigMenu.cc b/src/ConfigMenu.cc index 58bd5b4..592adee 100644 --- a/src/ConfigMenu.cc +++ b/src/ConfigMenu.cc @@ -336,6 +336,10 @@ void ConfigMenu::setup(FbTk::Menu& menu, ConfigMenu::SetupHelper& sh) { "Opaque Window Moving", "Window Moving with whole window visible (as opposed to outline moving)", sh.resource.opaque_move, saverc_cmd); + _BOOLITEM(menu, Configmenu, OpaqueResize, + "Opaque Window Resizing", + "Window Resizing with whole window visible (as opposed to outline resizing)", + sh.resource.opaque_resize, saverc_cmd); _BOOLITEM(menu, Configmenu, WorkspaceWarping, "Workspace Warping", "Workspace Warping - dragging windows to the edge and onto the next workspace", -- cgit v0.11.2