Bug 330596

Summary: Impossible to change folders in file open dialog
Product: [Plasma] Oxygen Reporter: nucleo <nucleo>
Component: gtk3-engineAssignee: Hugo Pereira Da Costa <hugo.pereira.da.costa>
Status: RESOLVED FIXED    
Severity: normal CC: b7.10110111, hugo.pereira.da.costa, rdieter, web, yyc1992
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: open file dialog
Patch fixing the issue

Description nucleo 2014-01-30 21:36:42 UTC
Impossible to change folders in file open dialog when clicking on folders names in row at window top.

Reproducible: Always




oxygen-gtk3-1.3.2, gtk3-3.10.6
Comment 1 nucleo 2014-01-30 21:37:08 UTC
Created attachment 84909 [details]
open file dialog
Comment 2 nucleo 2014-01-30 21:37:29 UTC
See bug https://bugzilla.redhat.com/show_bug.cgi?id=1059795
Comment 3 Rex Dieter 2014-01-30 21:42:48 UTC
Seems may not a recent regression, I tested oxygen-gtk3-1.2.0 too, same problem.
Comment 4 Hugo Pereira Da Costa 2014-01-30 23:32:13 UTC
can reproduce
some problem with window grabbing in empty area. Will investigate
(in the meanwhile you can advocate to disable the feature)

thanks for reporting.
Comment 5 Hugo Pereira Da Costa 2014-01-31 09:04:58 UTC
Created attachment 84918 [details]
Patch fixing the issue

Attached patch can be applied to gtk3, gtk3-1.2 and gtk3-1.3 branches.
It should fix the issue.
Can you confirm ? 

Now I realized that the drag window code is quite flawed (not my code, and I guess it was not reviewed well enough), in the sense that there are many more checks done on a give widget's children than on the widget itself. (they should, at least, be the same).

So I'll redesign this quite some more, will submit a new (more complex) patch that would apply to both gtk2 and gtk3 code, and will commit when this is tested enough

Best,

Hugo
Comment 6 Hugo Pereira Da Costa 2014-01-31 11:33:20 UTC
Git commit 3e83da8b3967a6ae60c5c207496cc5b5192d65e9 by Hugo Pereira Da Costa.
Committed on 31/01/2014 at 10:10.
Pushed by hpereiradacosta into branch 'gtk3'.

Rewrite window dragging logic, so that (almost) the same tests are performed on parent widget and on children.
Added more debugging information

M  +170  -67   src/oxygenwindowmanager.cpp
M  +22   -5    src/oxygenwindowmanager.h

http://commits.kde.org/oxygen-gtk/3e83da8b3967a6ae60c5c207496cc5b5192d65e9
Comment 7 Hugo Pereira Da Costa 2014-01-31 11:33:23 UTC
Git commit 64e3f8132ca8fadbe4ccf07451e4ebc6a7b0bf23 by Hugo Pereira Da Costa.
Committed on 31/01/2014 at 10:10.
Pushed by hpereiradacosta into branch 'master'.

Rewrite window dragging logic, so that (almost) the same tests are performed on parent widget and on children.
Added more debugging information

M  +170  -67   src/oxygenwindowmanager.cpp
M  +22   -5    src/oxygenwindowmanager.h

http://commits.kde.org/oxygen-gtk/64e3f8132ca8fadbe4ccf07451e4ebc6a7b0bf23
Comment 8 Hugo Pereira Da Costa 2014-01-31 11:42:19 UTC
Patch from comment 6 applies to gtk3 branches (either gtk3 or gtk3-1.3 series).
They fix the problem and improve the code. If you have a chance to test (instead of the previous patch), it would be great. 
I will test on both gtk2 and gtk3 for a while, before backporting to the stable branches.
(Ruslan, testing is welcome too !)

In any case, closing the bug: it is fixed (twice)

Hugo
Comment 9 nucleo 2014-02-01 02:07:00 UTC
Patch from Comment 6 fixes folder toolbar (applied to oxygen-gtk3-1.3.3).
Comment 10 Hugo Pereira Da Costa 2014-02-12 09:18:05 UTC
Git commit ec52847592889941b67fd7e2831ab7563e90e66b by Hugo Pereira Da Costa.
Committed on 31/01/2014 at 10:10.
Pushed by hpereiradacosta into branch '1.4'.

Rewrite window dragging logic, so that (almost) the same tests are performed on parent widget and on children.
Added more debugging information

M  +170  -67   src/oxygenwindowmanager.cpp
M  +22   -5    src/oxygenwindowmanager.h

http://commits.kde.org/oxygen-gtk/ec52847592889941b67fd7e2831ab7563e90e66b
Comment 11 Hugo Pereira Da Costa 2014-02-12 09:26:26 UTC
Git commit 21c941a4c681121f6e9e6937e43c016076fc3f82 by Hugo Pereira Da Costa.
Committed on 31/01/2014 at 10:10.
Pushed by hpereiradacosta into branch 'gtk3'.

Rewrite window dragging logic, so that (almost) the same tests are performed on parent widget and on children.
Added more debugging information

M  +170  -67   src/oxygenwindowmanager.cpp
M  +22   -5    src/oxygenwindowmanager.h

http://commits.kde.org/oxygen-gtk/21c941a4c681121f6e9e6937e43c016076fc3f82