unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#23690: 25.0.94; Window resizing regression
@ 2016-06-03 12:23 Stephen Berman
  2016-06-03 13:54 ` martin rudalics
  0 siblings, 1 reply; 9+ messages in thread
From: Stephen Berman @ 2016-06-03 12:23 UTC (permalink / raw)
  To: 23690

0. emacs -Q
1. Type `C-x 3' to split the selected window into two side-by-side
   windows.
2. Sanity check: click mouse-1 on the divider between the mode lines,
   and observe that by dragging the mouse you can move the vertical
   boundary between the windows to the left or right.
3. In the menu Options->Show/Hide->Scroll-bar click the "On the Left"
   button to make the scroll bars appear on the left side of the
   windows.
4. Repeat step 2.
=> The vertical boundary between the windows does not change, but
   instead the echo area displays the message "No window on the right of
   this one" (although the selected window is the one on the left).

This is a regression from Emacs 24.5, where step 4 works just like step
2.  Git bisect identifies the following as the responsible commit:

commit 3110159d1fb6b6071803355951d9ae314095df36
Author: Martin Rudalics <rudalics@gmx.at>
Date:   Fri Oct 24 11:58:43 2014 +0200

    Improve mouse dragging of frame edges.
    
    * keyboard.c (make_lispy_position): Return coordinates also when
    on scroll bars, fringes, margins or not in a window.
    * xdisp.c (show_mouse_face): Don't change cursor face during
    mouse tracking.
    * mouse.el (mouse-drag-line): Don't use mouse-pixel-position.
    Calculate increment from last position instead of window edge.
    Add right- and bottom-divider bindings to transient map.



In GNU Emacs 25.0.94.1 (x86_64-suse-linux-gnu, GTK+ Version 3.14.15)
 of 2016-06-03 built on rosalinde
Repository revision: 9c28e70b4b4b1887030e41103b5f6dd8304585e6
Windowing system distributor 'The X.Org Foundation', version 11.0.11601000
System Description:	openSUSE 13.2 (Harlequin) (x86_64)

Configured using:
 'configure --with-xwidgets 'CFLAGS=-Og -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 XWIDGETS





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-03 12:23 bug#23690: 25.0.94; Window resizing regression Stephen Berman
@ 2016-06-03 13:54 ` martin rudalics
  2016-06-03 14:30   ` Stephen Berman
  0 siblings, 1 reply; 9+ messages in thread
From: martin rudalics @ 2016-06-03 13:54 UTC (permalink / raw)
  To: Stephen Berman, 23690

[-- Attachment #1: Type: text/plain, Size: 1534 bytes --]

 > 0. emacs -Q
 > 1. Type `C-x 3' to split the selected window into two side-by-side
 >     windows.
 > 2. Sanity check: click mouse-1 on the divider between the mode lines,
 >     and observe that by dragging the mouse you can move the vertical
 >     boundary between the windows to the left or right.
 > 3. In the menu Options->Show/Hide->Scroll-bar click the "On the Left"
 >     button to make the scroll bars appear on the left side of the
 >     windows.
 > 4. Repeat step 2.
 > => The vertical boundary between the windows does not change, but
 >     instead the echo area displays the message "No window on the right of
 >     this one" (although the selected window is the one on the left).
 >
 > This is a regression from Emacs 24.5, where step 4 works just like step
 > 2.  Git bisect identifies the following as the responsible commit:
 >
 > commit 3110159d1fb6b6071803355951d9ae314095df36
 > Author: Martin Rudalics <rudalics@gmx.at>
 > Date:   Fri Oct 24 11:58:43 2014 +0200
 >
 >      Improve mouse dragging of frame edges.
 >
 >      * keyboard.c (make_lispy_position): Return coordinates also when
 >      on scroll bars, fringes, margins or not in a window.
 >      * xdisp.c (show_mouse_face): Don't change cursor face during
 >      mouse tracking.
 >      * mouse.el (mouse-drag-line): Don't use mouse-pixel-position.
 >      Calculate increment from last position instead of window edge.
 >      Add right- and bottom-divider bindings to transient map.

Would the attached patch fix it for you?

Thanks, martin

[-- Attachment #2: mouse.diff --]
[-- Type: text/plain, Size: 762 bytes --]

diff --git a/lisp/mouse.el b/lisp/mouse.el
index fa355ff..592338a 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -406,7 +406,15 @@ mouse-drag-line
 			   (or (not resize-mini-windows)
 			       (eq minibuffer-window
 				   (active-minibuffer-window)))))))
-	  (setq draggable nil))))
+	  (setq draggable nil)))
+     ((eq line 'vertical)
+      (let ((divider-width (frame-right-divider-width frame)))
+        (when (and (or (not (numberp divider-width))
+                       (zerop divider-width))
+                   (eq (cdr (assq 'vertical-scroll-bars
+                                  (frame-parameters frame)))
+                       'left))
+	(setq window (window-in-direction 'left window t))))))

     (let* ((exitfun nil)
            (move


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-03 13:54 ` martin rudalics
@ 2016-06-03 14:30   ` Stephen Berman
  2016-06-04  9:48     ` martin rudalics
  0 siblings, 1 reply; 9+ messages in thread
From: Stephen Berman @ 2016-06-03 14:30 UTC (permalink / raw)
  To: martin rudalics; +Cc: 23690

On Fri, 03 Jun 2016 15:54:11 +0200 martin rudalics <rudalics@gmx.at> wrote:

>> 0. emacs -Q
>> 1. Type `C-x 3' to split the selected window into two side-by-side
>>     windows.
>> 2. Sanity check: click mouse-1 on the divider between the mode lines,
>>     and observe that by dragging the mouse you can move the vertical
>>     boundary between the windows to the left or right.
>> 3. In the menu Options->Show/Hide->Scroll-bar click the "On the Left"
>>     button to make the scroll bars appear on the left side of the
>>     windows.
>> 4. Repeat step 2.
>> => The vertical boundary between the windows does not change, but
>>     instead the echo area displays the message "No window on the right of
>>     this one" (although the selected window is the one on the left).
>>
>> This is a regression from Emacs 24.5, where step 4 works just like step
>> 2.  Git bisect identifies the following as the responsible commit:
>>
>> commit 3110159d1fb6b6071803355951d9ae314095df36
>> Author: Martin Rudalics <rudalics@gmx.at>
>> Date:   Fri Oct 24 11:58:43 2014 +0200
>>
>>      Improve mouse dragging of frame edges.
>>
>>      * keyboard.c (make_lispy_position): Return coordinates also when
>>      on scroll bars, fringes, margins or not in a window.
>>      * xdisp.c (show_mouse_face): Don't change cursor face during
>>      mouse tracking.
>>      * mouse.el (mouse-drag-line): Don't use mouse-pixel-position.
>>      Calculate increment from last position instead of window edge.
>>      Add right- and bottom-divider bindings to transient map.
>
> Would the attached patch fix it for you?

It does indeed; thanks!

Steve Berman





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-03 14:30   ` Stephen Berman
@ 2016-06-04  9:48     ` martin rudalics
  2016-06-04 10:53       ` Eli Zaretskii
  0 siblings, 1 reply; 9+ messages in thread
From: martin rudalics @ 2016-06-04  9:48 UTC (permalink / raw)
  To: Stephen Berman; +Cc: 23690

 >> Would the attached patch fix it for you?
 >
 > It does indeed; thanks!

I'd very much like to push this to the release branch.  As it stands,
the behavior of this is botched on Lucid and Motif which both put the
scroll bar on left by default.  Eli?

Thanks for testing, martin





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-04  9:48     ` martin rudalics
@ 2016-06-04 10:53       ` Eli Zaretskii
  2016-06-04 11:12         ` Stephen Berman
  2016-06-04 13:07         ` martin rudalics
  0 siblings, 2 replies; 9+ messages in thread
From: Eli Zaretskii @ 2016-06-04 10:53 UTC (permalink / raw)
  To: martin rudalics; +Cc: 23690, stephen.berman

> Date: Sat, 04 Jun 2016 11:48:24 +0200
> From: martin rudalics <rudalics@gmx.at>
> Cc: 23690@debbugs.gnu.org
> 
>  >> Would the attached patch fix it for you?
>  >
>  > It does indeed; thanks!
> 
> I'd very much like to push this to the release branch.  As it stands,
> the behavior of this is botched on Lucid and Motif which both put the
> scroll bar on left by default.  Eli?

You'll have to convince me.  It sounds like the problem is triggered
by a combination of 2 unlikely events, so I'm unsure why we should
risk last-minute problems.

Thanks.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-04 10:53       ` Eli Zaretskii
@ 2016-06-04 11:12         ` Stephen Berman
  2016-06-04 13:07         ` martin rudalics
  1 sibling, 0 replies; 9+ messages in thread
From: Stephen Berman @ 2016-06-04 11:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 23690

On Sat, 04 Jun 2016 13:53:47 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

>> Date: Sat, 04 Jun 2016 11:48:24 +0200
>> From: martin rudalics <rudalics@gmx.at>
>> Cc: 23690@debbugs.gnu.org
>> 
>>  >> Would the attached patch fix it for you?
>>  >
>>  > It does indeed; thanks!
>> 
>> I'd very much like to push this to the release branch.  As it stands,
>> the behavior of this is botched on Lucid and Motif which both put the
>> scroll bar on left by default.  Eli?
>
> You'll have to convince me.  It sounds like the problem is triggered
> by a combination of 2 unlikely events, so I'm unsure why we should
> risk last-minute problems.

It is a regression from 24.5 (and earlier).  It is also documented in
(emacs)Mode Line Mouse: "Furthermore, by clicking and dragging ‘mouse-1’
on the divider between two side-by-side mode lines, you can move the
vertical boundary to the left or right."  On the other hand there's also
window-divider-mode, which is new in 25.1 provides the full behavior
that is currently missing due to this bug; however, it is not enabled by
default.  But if the fix is safe (it seems so to me, but I'm not
familiar enough with the code to be certain), I would like it in 25.1.
(I use the Gtk+ toolkit but also have the scroll bar on the left).

Steve Berman





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-04 10:53       ` Eli Zaretskii
  2016-06-04 11:12         ` Stephen Berman
@ 2016-06-04 13:07         ` martin rudalics
  2016-06-04 15:05           ` Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: martin rudalics @ 2016-06-04 13:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 23690, stephen.berman

 > You'll have to convince me.  It sounds like the problem is triggered
 > by a combination of 2 unlikely events,

When you build with Lucid, Motif or without toolkit support, the scroll
bars appear by default on the left.  After C-x 3 you cannot use the
mouse to resize the windows.  No unlikely event here.  This is a clear
regression.

 > so I'm unsure why we should
 > risk last-minute problems.

The fix is governed by two conditions - that there are no window
dividers and that the scroll bars are on the left.  Everbody else should
be unaffected.  How much time do we have left until the last minute?

martin





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-04 13:07         ` martin rudalics
@ 2016-06-04 15:05           ` Eli Zaretskii
  2016-06-05  9:53             ` martin rudalics
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2016-06-04 15:05 UTC (permalink / raw)
  To: martin rudalics; +Cc: 23690, stephen.berman

> Date: Sat, 04 Jun 2016 15:07:42 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: stephen.berman@gmx.net, 23690@debbugs.gnu.org
> 
>  > You'll have to convince me.  It sounds like the problem is triggered
>  > by a combination of 2 unlikely events,
> 
> When you build with Lucid, Motif or without toolkit support, the scroll
> bars appear by default on the left.  After C-x 3 you cannot use the
> mouse to resize the windows.  No unlikely event here.  This is a clear
> regression.

OK, let's push to emacs-25.

Thanks.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#23690: 25.0.94; Window resizing regression
  2016-06-04 15:05           ` Eli Zaretskii
@ 2016-06-05  9:53             ` martin rudalics
  0 siblings, 0 replies; 9+ messages in thread
From: martin rudalics @ 2016-06-05  9:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: stephen.berman, 23690-done

 > OK, let's push to emacs-25.

Done.  Closing this bug.

Thanks, martin





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-06-05  9:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-03 12:23 bug#23690: 25.0.94; Window resizing regression Stephen Berman
2016-06-03 13:54 ` martin rudalics
2016-06-03 14:30   ` Stephen Berman
2016-06-04  9:48     ` martin rudalics
2016-06-04 10:53       ` Eli Zaretskii
2016-06-04 11:12         ` Stephen Berman
2016-06-04 13:07         ` martin rudalics
2016-06-04 15:05           ` Eli Zaretskii
2016-06-05  9:53             ` martin rudalics

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).