Re: Cross-talk between move and maximize bindings in 1.5.3
- From: Teika Kazura <teika lavabit com>
- To: sawfish-list gnome org
- Subject: Re: Cross-talk between move and maximize bindings in 1.5.3
- Date: Mon, 04 Jan 2010 16:12:29 +0900 (JST)
Hi. I can't reproduce the symptom reported by Derek Upham. See the
quotation at the bottom. I can't understand his theory, since I don't
know X.
By the way, I can't bind interactively to double-click. It's grabbed
as single-click, so I had to hand-edit ~/.sawfish/custom. (But the
double click works to execute a command.)
Teika (Teika kazura)
On Sun, 29 Nov 2009 19:45:48 -0800, sand blarg net wrote:
> I use the following bindings in Sawfish:
>
> "A-Button1-Move" move-window-interactively
> "A-Button1-Click2" maximize-window-toggle
>
> Holding down the Alt key and mouse button 1 and dragging anywhere in a
> window or its frame moves the window. Holding down the Alt key and
> double clicking mouse button 1 anywhere maximizes or unmaximizes the
> window.
>
> With version 1.5.3, there is a bad interaction between the two
> bindings with the new warp-to-window feature at unmaximize time.
>
> 1. Set up the bindings:
>
> (bind-keys window-keymap
> "A-Button1-Move" 'move-window-interactively
> "A-Button1-Click2" 'maximize-window-toggle)
>
> 2. Bring up some window that can be sized to roughly 1/4 of
> the screen. I use xmessage, and stretch it. Move it to the
> bottom-right corner of the screen.
>
> 3. Maximize the xmessage window by any means.
>
> 4. Move the cursor to the bottom-left quadrant of the screen, such
> that it is (a) just to the left of the original location of the
> window, and (b) much lower than the top of the original location of
> the window.
>
> 5. Hold down the Alt key and double-click with mouse button 1 to
> unmaximize the window.
>
> For me, the window unmaximizes, the cursor warps to the expected
> "origin" location of the xmessage window, and *the xmessage window
> shifts upwards to maintain the relative position of the cursor*. If
> the cursor is 50 pixels from the bottom of the screen (and the bottom
> of the original xmessage window), then the cursor warps to the
> original xmessage window origin and the unmaximized xmessage window
> moves up such that the pointer is once again 50 pixels from the bottom
> of the window. (Your behavior may vary, as I have custom "hard
> boundaries" support enabled; move your mouse too far to the left and
> your xmessage window might get pushed all the way off the screen.)
>
> This appears to be a bad interaction between the two bindings. The
> first click sets up internal state for moving the window. The second
> click begins the unmaximization process. The warping adjusts the
> cursor position, and then the move teardown process adjusts the window
> position to match the updated cursor position. I suspect that this
> problem has been in the code for years, but it wasn't noticeable
> because the code didn't warp the cursor on unmaximize until now. (On
> maximize, warping is never necessary.)
>
> So we need to fix the event handling, such that all movement work ends
> once we go to the double-click.
>
> I would also appreciate it if we could make the warping optional, by
> wrapping it in a window-warp-when-unmaximized test---I'd rather not
> warp the cursor in any case, even with the long-term fix. Of course,
> that variable would work as a short-term fix for me as well, until the
> event problem is fixed.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]