Age | Commit message (Collapse) | Author |
|
|
|
The output just stopped at some point until a new XEvent was received
As XLockDisplay is in theory a good idea, with XNextEvent blocking its
not usable.
As it turned out, a window can be shared between display connections.
Now the eventloop has its own display connection (which also removes the
need for the lock introduced before).
Additionally the screeninfo doesn't need to be fetched into a TVar in
the eventerloop anymore.
Also this was needed for the signalHandlers to work correctly again.
|
|
*) replaced window destroy and create with a reposition
*) replaced the exception for redraw with an MVar
*) put nextEvent into an own thread, communication over the MVar
*) signal handlers for repositioning and screen swap
Notes:
*) getScreenInfo is a parameter of eventLoop because it blocks when there
is an nextEvent waiting for an new event
|
|
The last commit removed the exposure event which turned out to be a big
problem.
Although the bug still exists that not all xrandr events are received
when normal events are enabled.
To work around this problem a second display is created on which only
the xrandr events are enabled.
On an exposure event the eventqueue for this display is processed.
The results are very good, in the worst case an exposure event must be
triggered by the user on xmobar to update its position.
|
|
But I'm not sure if something is broken now...
|
|
handle doesn't get all events.
simple c program and simple haskell program are getting all of them.
there must be something in xmobar which catches about 3 of the
screenchange events ...
|
|
As a side-effect, parts without substitution vars will be displayed
as-is, fixing a bug reported by RC in the mailing list.
|
|
|
|
|
|
This solves the common case of a template separator character (such as
{) popping up in xmobar's input (e.g., inside a window title) and
confusing the parser.
|
|
|
|
|
|
|
|
|
|
|