- Shade - just like the "Stick"-button
Styleresources:
window.shade.pixmap, window.shade.unfocus.pixmap, window.shade.pressed.pixmap
window.unshade.pixmap, window.unshade.unfocus.pixmap, window.unshade.pressed.pixmap
etc.
- MenuIcon - click on it provides the windowmenu, if the app
contains a pixmap (gvim, konqueror etc etc) the pixmap is displayed, a
little menu otherwise.
Styleresources:
windowmenu.pixmap, windowmenu.unfocus.pixmap windowmenu.pressed.pixmap
etc.
Example ~/.fluxbox/init - entry:
session.titlebar.left: MenuIcon Stick
session.titlebar.right: Shade Minimize Maximize Close
hint: if the app HAS a pixmap i use window.title.focus.pixmap (look
WinButtonTheme for reference)in pixmap-based-styles. this looks excellent and dont need
much extra-code to pipe that info into WinButtons.
if the xkb-extension is enabled and the user switches between his/her
keyboardlayouts fluxbox's keybhandling doesn't work well anymore because
xkeyevent.state contains also xkb-related flags and thus we have to handle
that with caution.
KeyUtils now contain 'isolateModifierMask()' to really work only on the
modifiers. why not as part of cleanMods() ? because the XLookupString return
false results, eg TextBox's would only print chars from the first
keyboardlayout.
we now place shaded Windows above the normal windows. ArrangeWindows
touches only windows on the current (xinerama)-head.
there are still some open issues with this, look at my notes at the function
itself.
NoIcons - display all noniconified windows
WorkspaceNoIcons - display all noniconified windows on the current
workspace
modified the nls-files accordingly
"carrier" (maybe a temporarly name?) ... carriers dont need background-updates
.. ever.
this leads to a big performance"boost" over the last commits. before we
updated also the windows which are the hosts for the apps (m_window and
m_clientarea in FbWinFrame) -> bad idea.
if someone changed the session.screen0.workspaces:<int> value and fired a
"reload config"/reconfigure-Command fluxbox crashed.
changes:
- cleaner way of reading in the workspacenames
- cleaner way of initialize the workspaces in BScreen()
- on BScreen::reconfigure we add/delete Workspaces to the
current screen until init-file and fluxbox are in sync
-> the user changed the initfile and pressed reload, so
imho he wants to have the changes in the init-file realized.
fluxbox should handle the windows. default behavior is to handle
each available screen. closes#1159809. usage:
-screen <"all"|int[,int]>
eg:
$> fluxbox -screen 0,2 will run fluxbox on 0.0 and 0.2 so
one can run any other wm on 0.1.
$> fluxbox -screen all default, fluxbox manages all screens
called too often:
m_root_menu is locked for the current screen when loading the
style for the current screen, but not for the screens already
initialized and thus its executed when called thru Theme::reconfigure();
now only the themes on the same screen are affected by the load-routine.
notempty (eg :NextWorkspace or :PrevWorkspace want to have the 'argument'
really empty).
now the first thing we do is to remove whitespaces from begin and end of the
line.
SIGHUP: restartfluxbox
SIGUSR1: load configuration
SIGUSR2: reload configuration
TODO:
whats the essential difference between "loading" and "reloading"?
maybe we can drop one of that functions
an XWithdrawWindow unmaps a window and sends a synthetic UnmapEvent after
that. when the second UnmapEvent arrives we have to set either the WM_STATE to
WithdrawnState or delete it. i decided for deletion so its absolutly clear
its not any longer under our control