Bug 302051 - Toolbars can be dragged outside the window, doing so renders toolbar unusable
Summary: Toolbars can be dragged outside the window, doing so renders toolbar unusable
Status: RESOLVED FIXED
Alias: None
Product: Oxygen
Classification: Unclassified
Component: style (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Hugo Pereira Da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-17 12:23 UTC by Janek Bevendorff
Modified: 2012-07-03 12:30 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Janek Bevendorff 2012-06-17 12:23:17 UTC
When right clicking on a toolbar and removing the tick for "Lock Toolbar Positions", the toolbar can be dragged outside the window. This results in a gray toolbar with white intersections and without any icons.

Reproducible: Always

Steps to Reproduce:
1. Right click on a blank area on a toolbar
2. Remove the tick for "Lock Toolbar Positions"
3. Drag the toolbar outside the window



Expected Results:  
Dragging the toolbar outside the window doesn't make much sense, but if this ought to be possible, the toolbar should still be usable.
If this is not intended, it shouldn't be possible to move the toolbar outside the window.
Comment 1 Christoph Feck 2012-06-17 12:45:16 UTC
I can only reproduce using Oxygen style. Works fine using Skulpture and Plastique.
Comment 2 Hugo Pereira Da Costa 2012-06-18 15:43:26 UTC
iirc this is due to a conflict between *KDE* toolbars, and ARGB windows, used -by oxygen and oxygen only- to get nice rounded corners for detached toolbars.

Just to make sure this is true, can you
- check whether it also happens with a QT (non KDE) application, e.g. Qt designerr
- check whether it also happens if you disable compositing (kwin desktop effects) ?
- check whether it also happens with detached *dock* panels (e.g. Dolphin side panel).
- report whether you have crappy "X Error: BadMatch (invalid parameter attributes) 8
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x56000e2" error messages dumped when you trigger the bug.

Result (from my recollection) should be "no, no, no and yes".

I have some sort of workaround at hand for the toolbars, although I have been reluctant to push it, because if 'breaks' if you don't use Kwin as a window manager (namely the idea is to pass the nice round corners to kwin together with the shadows, so that I can keep the toolbar as non-argb), and because I was assuming it was more of an issue with kdeui than with oxygen (though I have had no time to investigate further). (and last but not least: because not so many users use detached toolbars anyway).

Keep me posted !
Comment 3 Janek Bevendorff 2012-06-18 16:06:35 UTC
Answer to the first question: I don't know, I don't have any Qt apps in 
which the toolbars can be dragged and Qt Designer is apparently not in 
the repositories. If this is really important, I can download and 
install it, but you should be able to test that on your computer as 
well. The described behavior is reproducible on other systems, so you 
should be able to do that as well.

2nd question: yes, also happens with disabled compositing (I disabled 
it with Shift+Alt+F12),

3rd question: no, it does not happen with detached Dolphin panels

4th question: the message looks slightly different, but yes:

X Error: BadMatch (invalid parameter attributes) 8
  Extension:    139 (MIT-SHM)
  Minor opcode: 3 (X_ShmPutImage)
  Resource id:  0x68000ec


> (and last but not least: because not so
> many users use detached toolbars anyway)
Yes, indeed. But it is possible to detach the toolbars and therefore 
this should be fixed. If the fix is to disable this function 
altogether, that's fine with me. But as long as it is possible, it 
should at least work.
Comment 4 Hugo Pereira Da Costa 2012-06-18 16:14:45 UTC
Well, since 2/ behaves differently between you're system and mine (in my case there is no issue after Shift+Alt+F12), and the error message in 4/ is different, yes, I'd be interested if you could also test 1/
(for Qt Designer, the app itself is called "designer", and usually located at /usr/lib/qt4/bin/designer)
As for the packages providing it, I guess it depends on the distro ... (but I'd be surprised it is not provided by yours, in some kind of "dev" package).

Cheers,

Hugo

Note: I do agree that when available,the feature should work. Just trying to pinpoint who is the guilty guy, and look for a clean fix, instead of using the "dirty" oxygen fixed which I have implemented already for dock panels (here also the bug was present only for KDE dock panels and not Qt docks).
Comment 5 Janek Bevendorff 2012-06-18 16:21:13 UTC
Ah, okay. I was looking for qtdesigner or qt-designer and wondered why 
it wasn't there. But "designer" is there. :)
And no, it does not happen in that application. I can also confirm 
what's been said above that the bug only happens with the Oxygen style. 
When changing the style to, e.g. Plastique the bug does not appear in 
newly started KDE apps.
Comment 6 Hugo Pereira Da Costa 2012-06-18 16:22:31 UTC
"I can also confirm what's been said above that the bug only happens with the Oxygen style"
yes :) expected. We are the only style to use this ARGB colormap.
Ok. I guess I'll push the same dirty trick as for docks.
Will keep you posted.
Comment 7 Hugo Pereira Da Costa 2012-06-20 09:31:24 UTC
Git commit 9962939ffae0b64304cc2240d261536a6a17cd6a by Hugo Pereira Da Costa.
Committed on 20/06/2012 at 10:47.
Pushed by hpereiradacosta into branch 'master'.

Remove Alpha channel from detached toolbars.
Use Mask instead.
Render anti-aliased corners in the shadows passed to kwin.
This is similar to what is done for detached Dock Widgets.
Changed margins for detached toolbars; cleanup widget type detection in shadowHelper.

M  +10   -2    kstyles/oxygen/oxygenshadowhelper.cpp
M  +6    -0    kstyles/oxygen/oxygenshadowhelper.h
M  +31   -52   kstyles/oxygen/oxygenstyle.cpp

http://commits.kde.org/kde-workspace/9962939ffae0b64304cc2240d261536a6a17cd6a
Comment 8 Hugo Pereira Da Costa 2012-06-20 09:32:33 UTC
ok. All should be fixed (using same trick as DockWidgets).
Will not backport to KDE/4.8 
Hopefully the patch will be tested in 4.9 betas and RC's.
Will close once fix is confirmed.

Hugo