Comment 37 for bug 1252235

Revision history for this message
In , Plooges (plooges) wrote :

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