bugGNU Octave - Bugs: bug #55669, Drag to rearrange docked panels...

 
 

bug #55669: Drag to rearrange docked panels like Command Window no longer works

Submitted by:  Andrew Janke <apjanke>
Submitted on:  Thu 07 Feb 2019 07:28:19 PM UTC  
 
Category:  GUI Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  None Assigned to:  None
Originator Name:  Open/Closed:  Open
Release:  5.1.0 Operating System:  Mac OS

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Sun 17 Mar 2019 02:33:48 PM UTC, comment #19: 

No worries.

Qt 5.12.1.

The behavior in the actual Octave 5.1.0 release is much better than the behavior in the prereleases: Now, when I do this, the widget pops out to floating, but the window re-arrangement still takes effect, so if I just hit the "Dock" button on the floating widget, it pops back in to where I wanted it. This is now just an annoyance instead of a real usability issue.

Andrew Janke <apjanke>
Sun 17 Mar 2019 02:06:38 PM UTC, comment #18: 

Andrew, sorry for coming back to this issue late.

Indeed, the test indicates that on your system the widget's state is immediately changed to "floating" when you start dragging it.

Which Qt version are you using?

Torsten Lilge <ttl>
Project Member
Sat 02 Mar 2019 10:20:41 PM UTC, comment #17: 

I built the most recent default Octave with that patch. Here's what happens when I blow away ~/.config/octave to get a clean start and do the drag that behaves badly:

>> ver
----------------------------------------------------------------------
GNU Octave Version: 6.0.0 (hg id: 92ecc4a97b5c + patches)
GNU Octave License: GNU General Public License
Operating System: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Dec 20 21:47:19 PST 2018; root:xnu-4570.71.22~1/RELEASE_X86_64 x86_64
----------------------------------------------------------------------
Package Name   | Version | Installation directory
---------------+---------+-----------------------
      control  |   3.1.0 | /Users/janke/octave/control-3.1.0
generate_html  |   0.3.1 | /Users/janke/octave/generate_html-0.3.1
           io  |  2.4.12 | /Users/janke/octave/io-2.4.12
>> EVENT
  Type = 99, isFloating = 1, wait_release = 1
>>

I can grab the floating window and move it around some more, but no further events are generated.

Re-docking the command window (using the Dock button in the upper-right) and repeating the drag produces the same event:

>> EVENT
  Type = 99, isFloating = 1, wait_release = 1

Andrew Janke <apjanke>
Sat 02 Mar 2019 11:10:23 AM UTC, comment #16: 

Andrew, for getting a better insight what is going on, could you please apply the attached patch and report back the output in the command window when the issue happens?

(file #46391)

Torsten Lilge <ttl>
Project Member
Thu 14 Feb 2019 09:30:01 PM UTC, comment #15: 

> It looks like a widget goes into the state "floating" as soon as you start dragging.


Yeah, that sounds right. And what's more, the "drag" action seems to be interrupted as soon as that happens: even though I'm still holding down the mouse button, the "floating" window no longer follows the mouse cursor motion until I let up on the mouse button and re-click the title bar.

> Since I can not reproduce this on my system, are you able to build octave from current sources for providing patches for testing?


Yes, from either stable or default. I've actually made the build scripts public at https://github.com/octave-app/homebrew-octave-app-bases so anyone with a Mac and Homebrew can do so. The octave-stable formula will build from the stable branch and octave-default will build from the default branch. It's also easy to incorporate additional patches from attachments to the Savannah issue tracker for testing.

Andrew Janke <apjanke>
Thu 14 Feb 2019 09:18:10 PM UTC, comment #14: 

It looks like a widget goes into the state "floating" as soon as you start dragging. This can be seen by the window deccoration that is added to the widget. In general, the widget is a usual widget (not a top level window with decoration) until it is dropped outside the main window.

Since I can not reproduce this on my system, are you able to build octave from current sources for providing patches for testing?

Torsten Lilge <ttl>
Project Member
Thu 14 Feb 2019 08:44:03 PM UTC, comment #13: 

> Dan made a very useful "Easter Egg" patch to use Ctrl-Alt-D / Ctrl-Alt-U for docking / undocking panes that have the focus. Unfortunately it hasn't been included in Octave.


I'm not sure that would help me in this case. I can toggle the widget between docked/undocked state. The issue is that when it is docked again, it goes back to the same arrangement of docked subwidgets, and I can't alter their arrangement.

Andrew Janke <apjanke>
Thu 14 Feb 2019 08:41:31 PM UTC, comment #12: 

> There are several extensive bug reports related to this issue.


I wasn't able to find a dupe of this bug report by searching for things like "drag" and "panel". Is there some other term I should be looking for?

> Please be very specific on what platform you are using and what framework.


I'm using macOS and the native framework ("Aqua", I think). I've set the Operating System for this bug report to "Mac OS". Is there other framework info you need?

> Also, investigate if you are able to drop outside the main dock window then

grab and drag back into the main window.  Or is there no way to reattach other than press the upper right button?

Once the Command Window pops out and becomes undocked, I can't drag it back over the main window and have it re-doc. Pressing the upper right button, double-clicking the sub-widget's header, or choosing Window > Reset Default Window Layout are the only ways I've found to restore it to a docked state. Double-clicking the sub-widget's header when it is docked causes it to become undocked.

Andrew Janke <apjanke>
Thu 14 Feb 2019 08:37:35 PM UTC, comment #11: 

> How big is the zip-file? The Savannah file size limit is pretty small at ~2MB.


That was probably the problem. I had thrown away the old file, but recreated it now and it's clocking in at 3 MB.

Here's a copy of a video of the problematic drag behavior hosted on GitHub:

https://user-images.githubusercontent.com/2618447/52815970-1813d700-306e-11e9-8ebd-595e2c448adb.gif

Andrew Janke <apjanke>
Wed 13 Feb 2019 07:29:18 PM UTC, comment #10: 

Torsten, it seems you're right. I just checked with Matlab (r2019a) and while any panel can be dragged to undock it, undocked panels can only be redocked by accessing a tiny drop-down menu in the panel and selecting "Dock".  So one can say that Octave is beautifully Matlab compatible here isn't it :-)

As to the VE widgets / subpanels, they might use some decoration because currently there's no way to resize them by dragging a corner or border (at least not on Windows with 5.0.91).
I might have written that in the long VE bug report where Dan helped out a lot (can't find it now; was it 53046?)

I saw that you entered a bug report for the undocked panel positions, thanks for that.

Philip Nienhuis <philipnienhuis>
Project Member
Wed 13 Feb 2019 05:59:26 AM UTC, comment #9: 

Wasn't that the ususal behavior that it is not possible to drag a widget back into the main window? Whereas the main dock widgets behave like top-level windows with decorations etc. the VE widget are ordinary Qt dock widgets.

Regarding the positioning of widgets dragged outside the main window, their position is restored to the last position when they were floating (or upper left when floating for the first time). I agree that this really should be solved in a more intuitive way when dragged outside.

Torsten Lilge <ttl>
Project Member
Tue 12 Feb 2019 09:36:17 PM UTC, comment #8: 

Torsten, I just wanted to help Andrew with a workaround.

Back to the subject:
On Windows w. octave-5.0.91, I can undock panels by dragging them out of the main GUI, but I cannot re-dock them that way - I need to click the dock button in the panel's toolbar.
BTW However docking AND undocking of subpanels of the Variable Editor by just dragging them works.

Again on Windows, I managed to get together what Andrew wants but it isn't easy - the main GUI is very picky as regards exact position and dragging trajectory to accept side-by-side positioning of docked panels. Often several distinct steps are required.

A very minor annoyance is that when undocking, releasing the mouse button moves the undocked panel into another position (i.e., the panel isn't left where a user leaves it). Maybe for another bug report. I personally can live with it.

Philip Nienhuis <philipnienhuis>
Project Member
Tue 12 Feb 2019 08:46:22 PM UTC, comment #7: 

I have the impression that we are losing track of the main issue of this report. Besides other possibility of docking/undocking widgets dragging them to a new location within the main window still has to work. Is this functionality broken on any other system? For me, it is working as usual with debian/gnome.

Torsten Lilge <ttl>
Project Member
Tue 12 Feb 2019 08:09:03 PM UTC, comment #6: 

@Philip, @Dan: The main reason why the "easter egg" provided by is not yet included in its current form, is the hard coding of the shortcuts. Those should be managed by the shortcut manager otherwise they may be chosen by the user for other actions and can then cause other problems.

Dan, could you provide the "easter egg" in the patch tracker, then I can take care of the required update of the shortcut manager.

Torsten Lilge <ttl>
Project Member
Tue 12 Feb 2019 06:47:39 PM UTC, comment #5: 

@Andrew:
Dan made a very useful "Easter Egg" patch to use Ctrl-Alt-D / Ctrl-Alt-U for docking / undocking panes that have the focus. Unfortunately it hasn't been included in Octave.
See bug #54078 comment #14 and bug $54198.

Philip Nienhuis <philipnienhuis>
Project Member
Tue 12 Feb 2019 08:33:29 AM UTC, comment #4: 

There are several extensive bug reports related to this issue.  Please be very specific on what platform you are using and what framework.  (For example, KDE's Oxygen was a problematic setup.)

Also, investigate if you are able to drop outside the main dock window then grab and drag back into the main window.  Or is there no way to reattach other than press the upper right button?

There is also double clicking in the sub-widget's header.  That is supposed to automatically float the widget.

Dan Sebald <sebald>
Fri 08 Feb 2019 09:50:08 PM UTC, comment #3: 

How big is the zip-file?  The Savannah file size limit is pretty small at ~2MB.  You could use a UNIX utility like split to divide the zip file in to pieces less than 2MB.  Reconstruction would then be

split -b 2M file.zip parts
cat parts* > file.zip
unzip file.zip

Rik <rik5>
Project Administrator
Thu 07 Feb 2019 08:27:35 PM UTC, comment #2: 

Aw, darn. Savannah isn't accepting my upload of the broken case, even if I stick it in a zip-file and rename the file to something unrelated like "broken-case.zip". This happened to me on another bug, too. Anyone know why this might be happening, or have access to the Savannah savane logs to see why the upload is getting rejected?

Andrew Janke <apjanke>
Thu 07 Feb 2019 08:19:15 PM UTC, comment #1: 

Andrew, thanks for the report. The gif for the broken case is missing. I am currently building the latest stable branch and will then test on my upgraded debian system. I am quite sure that this worked as usual recently.

Torsten Lilge <ttl>
Project Member
Thu 07 Feb 2019 07:28:19 PM UTC, original submission:  

In Octave 4.4.1 and earlier, I can rearrange the docked panels like the Command Window, Editor, Documentation, and Variable Editor by grabbing their title bar and dragging them around. This allows me to rearrange the Octave GUI so that the Editor and Command Window are simultaneously visible, with Editor on Top and Command Window on the bottom.

This no longer works in Octave 5.0 RC2 (5.0.91). When I do the drag to move the docked Command Window, it pops out to an undocked state, but no matter where I move it around, it never goes back to being a docked panel in a different arrangement.

It seems like in 5.0.91, as soon as the panel is popped out of the docked state, the drag action ends, even though I haven't released the mouse button: I keep moving the mouse pointer, but the panel/window no longer moves with it.

I'm attaching GIFs of both the 4.4.1 and 5.0.91 behavior. This also happened in 5.0.90.

Andrew Janke <apjanke>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #46391:  bug55669_tt_v01.patch added by ttl (935B - text/x-patch)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by sebald (Posted a comment)
  • -email is unavailable- added by ttl (Posted a comment)
  • -email is unavailable- added by apjanke (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-03-02 ttl Attached File- => Added bug55669_tt_v01.patch, #46391
    2019-02-26 mtmiller Release5.0.91 => 5.1.0
    2019-02-12 rik5 Carbon-CopyRemoved 72865 => -
    2019-02-07 apjanke Attached File- => Added Octave panel drag on 4.4.1 - GOOD.gif, #46205

    Back to the top


    Powered by Savane 3.5