It turns out qutebrowser will place an entire `data:` URL in
`_NET_WM_NAME`, up to at least 389K characters including
newlines and possibly binary characters.
Clamping window titles to the first line, and to 2K chars
because `defaultShrinker` is quadratic in the title length.
This is a convenience module in order to have less import noise. It
re-exports the following:
a) Commonly used modules in full (Data.Foldable, Data.Applicative, and
so on); though only those that play nicely with each other, so that
XMonad.Prelude can be imported unqualified without any problems.
This prevents things like `Prelude.(.)` and `Control.Category.(.)`
fighting with each other.
b) Helper functions that don't necessarily fit in any other module;
e.g., the often used abbreviation `fi = fromIntegral`.
The silent error `user error (createFontSet)` would break certain
modules (like the prompt) by simply not showing anything.
Pango 1.44 dropped support for FreeType in favor of HarfBuzz, losing
support for traditional BDF/PCF bitmap fonts. Hence, some distributions
don't ship `xorg-fonts-misc` anymore.
Fixes https://github.com/xmonad/xmonad-contrib/issues/348
* Added a XMonad.Util.Image module to manipulate simple images
and show them into an X drawable
* Added the possibility of using image buttons instead of plain
text buttons into the title bar
* Added a XMonad.Layout.ImageButtonDecoration as an example of
how to use the image buttons
In order to enable user to write custom `decorationMouseFocusHook' and
`decorationMouseDragHook' hooks we need to provide him with means to
lookup original window by its decoration.
Module Decoration has internal function `lookFor' for exactly the same
purpose. I exported it under a slightly different name and without
exposing internals of DecorationState.
This removes the emptyLayoutMod method from the LayoutModifier class, and
change the Stack parameter to redoLayout to a Maybe Stack one. It also changes
all affected code. This should should be a refactoring without any change in
program behaviour.
- fix a bug reported by Roman Cheplyaka: when decorate returned
Nothing the window was never going to be created, even if decorate
was reporting a Just Rectangle in the next run. Quite a deep issue,
still visible only with TabbedDecoration at the present time.
- remove decorateFirst (decorate has enough information to decide
whether a window is the first one or not, am I right, David?)
- some point free.
With this patch Decoration will first generate a rectangle and only if
there is a rectangle available a window will be created.
This makes the Decoration state a bit more difficult to process, but
should reduce resource consumption.
This patch includes several changes, which are strictly related and
cannot be recorded separately:
- remove Decoraion.isDecoartion and introduce Decoration.isInStack
(with the related change to LayoutHints)
- in Decoration introduce useful utilities: isVisible, isInvisible,
isWithin and lookFor'
- MouseResize: - invisible inputOnly windows will not be created;
- fix a bug in the read instance which caused a failure
in the state deserialization.
- since mouse resize is not related to decoration, I removed the code
from here. Mouse resize will be handled by a separated layout
modifier (in a separated module)
- now also stacked decoration will be removed (I separated insert_dwr
from remove_stacked)
- moved decoEventHook to decorationEventHook
- added decorationMouseFocusHook, decorationMouseDragHook,
decorationMouseResizeHook methods
- added a handleMouseFocusDrag to focus and drag a window (which makes
it possible to focus *and* drag unfocused windows too
Note that this patch doesn't work with
Thu Dec 27 03:03:56 EST 2007 Spencer Janssen <sjanssen@cse.unl.edu>
* Broadcast button events to all layouts, fix for issue #111
but this isn't a regression, since button events have never worked with
tabbed and this change.