May be this is not good solution, but works fine on my system.

It is necessary to make a few changes in ksnapashot.cpp.
Add header unistd.h: 
ksnapashot.cpp:29
#include <unistd.h>
And set delay to give time for 3d effects to finish the job:
ksnapashot.cpp:405
void KSnapshot::startUndelayedGrab()
{
    if (mode() == Region) {
        usleep(140000); // 0.14 sec delay for fix bug 279615.
        grabRegion();
    }
    else if ( mode() == FreeRegion ) {
        usleep(140000); // 0.14 sec delay for fix bug 279615.
        grabFreeRegion();
    }
    else {
        grabber->show();
        grabber->grabMouse(Qt::CrossCursor);
    }
}
If 3d effects enabled 0.14 seconds not visible for users.
But, theoretically, this delay may irritate users which disabled 3d effects and 
for which capture start delay is critical. (For example, when capturing the 
movie)
I tried to capture film with disabled 3d effects with delay 0.14 sec and 
without delay and didn't see the difference.

I don't know how it works in different systems with different 3D effect 
settings but in my system work fine, with this changes.
Debian GNU/Linux jessie/sid
KDE 4.11.5
X.Org X Server 1.14.5

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1252235

Title:
  Ksnapshot captures its window if "Snapshot delay" is "No delay" and
  window hide effect is enabled

To manage notifications about this bug go to:
https://bugs.launchpad.net/kdegraphics/+bug/1252235/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to