You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bakkeby ee81c6572d Fix for dwm randomly crashing when the first systray application starts
The crash error was:

dwm: fatal error: request code=12, error code=11
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  12 (X_ConfigureWindow)
  Serial number of failed request:  3333
  Current serial number in output stream:  3338

This was backtracked to function updatesystray where XConfigureWindow was
called with large negative X positions (e.g. -836585). The large number
coming from the width of the systray icon.

w += i->w;

The systray icon width is set through the updatesystrayicongeom function
and this is called by resizerequest, clientmessage and propertynotify.

The height and width would appear to come from the X window attributes and
sometimes have random values (e.g. height 32708 and width 1369918222).

updatesystrayicongeom restricts the height of the icon to that of the bar,
but did not have any restictions on the icon width. This fix limits the
icon width to that of the bar height if it is greater than twice the bar
height, leaving room for systray icons that are slightly wider than they
are tall.
4 years ago
dmenu
dwm Fix for dwm randomly crashing when the first systray application starts 4 years ago
README.md

README.md

Patches

This repository contains a selection of patches for suckless projects.

Most of these are derived from the flexipatch projects, e.g. dwm-flexipatch, and it should be noted that some of them have cross-patch compatibility built-in using the same preprocessor directives as used in the flexipatch builds. One good example of this is the dragmfact patch which can involve up to 11 additional patches. Due to the many possible patch combinations I have decided to leave these preprocessor directives in there as a form of guide for integrating this into your own build - the idea being that you manually delete the code that you don't need.

For cases where one patch changes another, e.g. adding additional fields on top of pertag, individual patches should exist as far as feasible.