Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropbox icon looks... interesting #6

Open
vanoudt opened this issue Oct 3, 2015 · 16 comments
Open

Dropbox icon looks... interesting #6

vanoudt opened this issue Oct 3, 2015 · 16 comments

Comments

@vanoudt
Copy link

vanoudt commented Oct 3, 2015

Very useful extension for apps that don't work properly with SNI! Thank you. :-) I've got a COPR repo of this already since it's such a lot of use!

I'm having an issue with Dropbox. [Well, the first is that it's a Qt app that doesn't work with SNI... but I digress! :-)] The icon appears and can be interacted with, but is tiny and... strange! Here's a screenshot!
dropboxisodd

@paulolieuthier
Copy link

@vanoudt Dropbox doesn't work because it is bundled with its own compiled version of the Qt libraries. It you delete $installdir/libQt5*, $installdir/qt.conf and $installdir/plugins/platforms/libqxcb.so, Dropbox will become an SNI.

@vanoudt
Copy link
Author

vanoudt commented Oct 3, 2015

Yep - I've been doing that for ages (on Fedora 22)! The problem is that now
that I'm on Fedora 23, with Qt 5.5.0, it doesn't work. It just says:

!! (Qt:Fatal) This application failed to start because it could not find
or load the Qt platform plugin "xcb".

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl,
offscreen, xcb.

Reinstalling the application may fix this problem.
Alarm clock

I've contacted Dropbox support about this - nothing much from their side
yet. At the moment, for me, the xembed stuff is all that works...

On Sat, Oct 3, 2015 at 8:16 PM, Paulo Lieuthier [email protected]
wrote:

@vanoudt https://github.com/vanoudt Dropbox doesn't work because it is
bundled with its own compiled version of the Qt libraries. It you delete
$installdir/libQt5*, $installdir/qt.conf and
$installdir/plugins/platforms/libqxcb.so, Dropbox will become an SNI.


Reply to this email directly or view it on GitHub
#6 (comment)
.

@davidedmundson
Copy link
Owner

You need your xcb plugin to match the Qt version that DropBox uses.

I've heard new dropbox uses a newer Qt so that gives us the automatic SNI support.

However, as for this: It's something I need to fix in here anyway, if it affects dropbox, it's doubtlessly going to affect $otherStupidApp.

@vanoudt
Copy link
Author

vanoudt commented Oct 3, 2015

:-) That makes sense. (From what I can tell, they're on a 5.4ish version!)
If there's anything I can do to help/test/whatever - just say!

@vanoudt
Copy link
Author

vanoudt commented Oct 3, 2015

Looks like it might be picking up some memory somewhere. Relaunched it and got this. Note the very small icon, and also the 3 copies of a mouse cursor!
dropbox-xembed

@vanoudt
Copy link
Author

vanoudt commented Oct 9, 2015

With the latest revision, (77d78c3), the icon is now the right size, but the background is still corrupted. (Sometimes black, sometimes not, sometimes grabbing other bits of screen real-estate from memory)

@tehnick
Copy link
Contributor

tehnick commented Oct 28, 2015

@vanoudt

Yep - I've been doing that for ages (on Fedora 22)! The problem is that now that I'm on Fedora 23, with Qt 5.5.0, it doesn't work.

You may download Qt 5.4.2 libraries from official Qt website and replace libraries from Dropbox package by them.

@tehnick
Copy link
Contributor

tehnick commented Oct 28, 2015

@davidedmundson

However, as for this: It's something I need to fix in here anyway, if it affects dropbox, it's doubtlessly going to affect $otherStupidApp.

I think you are mistaken here. Have you heard about any other proprietary program which uses Qt5 libraries in the same way as Dropbox?

@tehnick
Copy link
Contributor

tehnick commented Oct 28, 2015

@vanoudt

but the background is still corrupted. (Sometimes black, sometimes not, sometimes grabbing other bits of screen real-estate from memory)

I failed to see how such bugs in Qt5 xembed systray may be fixed in xembed-sni-proxy.
(The size of icon completely is another issue.)

@minlexx
Copy link

minlexx commented Oct 28, 2015

Have you heard about any other proprietary program which uses Qt5 libraries in the same way as Dropbox?

Teamspeak 3 client, for example (no systray icon by default). But if you remove libQt5*.so shipped with it or symlink them to system ones, it will suddenly show systray icon ;) sni-qt working.

@Crazy-Hopper
Copy link
Contributor

@tehnick

I failed to see how such bugs in Qt5 xembed systray may be fixed in xembed-sni-proxy.

Note has to be taken that wmsystemtray (pure xembed) works correctly with dropbox. So does libappindicator.

@davidedmundson
Copy link
Owner

I know why Dropbox looks "interesting".

Qt tries to be clever and take a snapshot of the container window before it paints on top of it. It's to give the illusion of alpha in older rubbish systrays.

For me generally I "solve" this alpha problem by only copying the embedded window, not the full container - but Qt trying to be clever ends up hurting itself.

Will try turning my container into a QRasterWindow and paint known contents in there.

@Crazy-Hopper
Copy link
Contributor

That behaviour was probably introduced in Qt5, because neither Psi, nor Skype exhibit this.

@davidedmundson
Copy link
Owner

it seems it's been here for a while, but it depends on how the sys tray widget is created

Dropbox must be doing something weird.

@davidedmundson
Copy link
Owner

Bah, made that change in a branch. Didn't do anything.
Wish I could see Dropbox code, could solve this in minutes.

@vanoudt
Copy link
Author

vanoudt commented Oct 31, 2015

:-) Then again, if we could see the dropbox code we'd just enable the SNI support!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants