[kde-doc-english] [kscreengenie] /: Abort On-Click on non-left clicks
Boudhayan Gupta
me at BaloneyGeek.com
Tue Jul 7 16:04:35 UTC 2015
Git commit f5848bef6999a93c93f033e8e7cd425260db8e0c by Boudhayan Gupta.
Committed on 07/07/2015 at 16:04.
Pushed by bgupta into branch 'master'.
Abort On-Click on non-left clicks
M +1 -1 doc/index.docbook
M +11 -3 src/PlatformBackends/X11ImageGrabber.cpp
http://commits.kde.org/kscreengenie/f5848bef6999a93c93f033e8e7cd425260db8e0c
diff --git a/doc/index.docbook b/doc/index.docbook
index 6185420..9120978 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -149,7 +149,7 @@
<para>The <guilabel>Delay</guilabel> spin-box allows you to set the delay between pressing the <guibutton>Take New Screenshot</guibutton> (<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>) button and taking the screenshot. This delay can be set in increments of 0.1 seconds, or 100 milliseconds.</para>
- <para>Enabling the <guilabel>On Click</guilabel> checkbox overrides the delay. When this checkbox is enabled, pressing the <guibutton>Take New Screenshot</guibutton> (<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>) button hides the &kscreengenie; window and changes the mouse cursor to a crosshair. The screenshot is captured when the mouse is clicked. Note that you cannot interact with the desktop using the mouse while the cursor is a crosshair, but you can use the keyboard.</para>
+ <para>Enabling the <guilabel>On Click</guilabel> checkbox overrides the delay. When this checkbox is enabled, pressing the <guibutton>Take New Screenshot</guibutton> (<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>) button hides the &kscreengenie; window and changes the mouse cursor to a crosshair. The screenshot is captured when the mouse is left-clicked, or aborted if the mouse is right-clicked. Note that you cannot interact with the desktop using the mouse while the cursor is a crosshair, but you can use the keyboard.</para>
</sect2>
<sect2>
diff --git a/src/PlatformBackends/X11ImageGrabber.cpp b/src/PlatformBackends/X11ImageGrabber.cpp
index 22fa177..354b984 100644
--- a/src/PlatformBackends/X11ImageGrabber.cpp
+++ b/src/PlatformBackends/X11ImageGrabber.cpp
@@ -55,15 +55,23 @@ bool OnClickEventFilter::nativeEventFilter(const QByteArray &eventType, void *me
case XCB_BUTTON_RELEASE:
// uninstall the event filter first
+
qApp->removeNativeEventFilter(this);
// ungrab the mouse
+
xcb_ungrab_pointer(QX11Info::connection(), XCB_TIME_CURRENT_TIME);
- // grab the image
- QMetaObject::invokeMethod(mImageGrabber, "doImageGrab", Qt::QueuedConnection);
+ // decide whether to grab or abort
- // done
+ {
+ xcb_button_release_event_t *ev2 = static_cast<xcb_button_release_event_t *>(message);
+ if (ev2->state == XCB_BUTTON_MASK_1) {
+ QMetaObject::invokeMethod(mImageGrabber, "doImageGrab", Qt::QueuedConnection);
+ } else {
+ emit mImageGrabber->imageGrabFailed();
+ }
+ }
return true;
default:
return false;
More information about the kde-doc-english
mailing list