[xmonad] darcs patch: Decoration: add a mouseEventHook methohd... (and 2 more)

Andrea Rossato andrea.rossato at unibz.it
Fri Feb 8 06:49:09 EST 2008


Hi,

these 3 patches are going to enable mouse dragging of decorated
windows. Mouse dragging is going to work only with layouts using the
windowArranger layer (obviously), which, at the present time, means
only the SimpleFloat - and any layout using SimpleDecoration together
with the windowArranger. DwmStyle is obviously excluded (see below to
understand why).

Since I'm experiencing some problems with focus changes and decoration
I'm not pushing till I have some tester confirming I'm not breaking
anything with those patches.

The first patch is just for moving code: I added a mouseEventHook
method to the DecorationStyle class (does it make sense? I thought
different styles may have different event handling mechanisms).

The second is just to enable mouse UI support in the windowArranger.

The third should be safe: if the decoration we are clicking on is the
decoration of the focused window we start grabbing it with the mouse.
If it is not the focused window we focus it.

The problem is that focus change, here, seems to be broken: the focus
changes but the decoration colors do not, as if the decoration state
was not being updated. I thought that could be related to issue #111
(by reading David's patch description) and I changed broadcastMessage
to sendMessage in Main.handle. Still I didn't notice any effect (but I
need to double check since perhaps I'm messing up my source trees).

This is going to interfere with mouseDrag, which will check the
decoration state to see if a decoration belongs to the focused window.

One more thing: now, when I start dragging I do not calculate the
distance between the mouse and the origin of the window, and so, at
first, the window origin will abruptly change to reflect the mouse
position. I know it's probably just a line of code but I didn't write
it so far...

I also need some advise on how to implement mouse resize: how do other
WMs handle that? Should I check for a small area around the window's
border? Just an area around the bottom right corner? Any idea?

Cheers,
Andrea

Fri Feb  8 08:35:14 CET 2008  Andrea Rossato <andrea.rossato at unibz.it>
  * Decoration: add a mouseEventHook methohd and move mouse button event there

Fri Feb  8 09:34:13 CET 2008  Andrea Rossato <andrea.rossato at unibz.it>
  * WindowArranger: add a SetGeometry message - needed to enable mouseDrag

Fri Feb  8 09:36:02 CET 2008  Andrea Rossato <andrea.rossato at unibz.it>
  * Decoration: enable mouse dragging of windows
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/x-darcs-patch
Size: 30624 bytes
Desc: A darcs patch for your repository!
Url : http://www.haskell.org/pipermail/xmonad/attachments/20080208/f35231ac/attachment-0001.bin


More information about the xmonad mailing list