View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002337 | JEDI VCL | 00 JVCL Components | public | 2004-11-24 08:25 | 2004-11-30 10:33 |
Reporter | anonymous | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 3.00 BETA 2 | ||||
Target Version | Fixed in Version | 3.00 RC 1 | |||
Summary | 0002337: TJvMouseGestureHook blocks application | ||||
Description | Mouse Gesture demo. Add popup menu and insert some menu items to it. Then assign that popupmenu to TMemo. (Right mouse button must be selected as default for drawing such gesture) Run application and selecte ...Hook as default. Then draw mose gesture over Memo. After you release mouse button popup menu is displayed an then application freeezes for > 20 seconds. | ||||
Tags | No tags attached. | ||||
|
"Run application and selecte ...Hook as default" should be Run application and select "All controls via AppEvents" as detection method. |
|
Obviously, using the right mouse button as the mouse gesture activator and at the same time assigning a popup to the memo, is asking for trouble. I don't see that we can do anything about it. In short: don't combine the two. Unless you can come up with a viable approach to combine the two, I am afraid we will have to close this issue with a "won't fix" status. |
|
Well not excactly. If you see how mouse gestures are implemented in e.g Firefox you'll se that mouse click and drag messages are "eaten" if gesture is executed. e.g no menu is displayed. |
|
The problem seems to be that when the popup is displayed, the message pump for the menu is never started, but I haven't been able to determine why. |
|
Try this: {$IFDEF VCL} function JvMouseGestureHook(Code: Integer; wParam: Word; lParam: Longword): Longword; stdcall; var locY: Integer; locX: Integer; begin if (Code < 0) or not (JvMouseGestureHookActive) then begin Result := CallNextHookEx(JvCurrentHook, Code, wParam, lParam); Exit; end; Result := Code; with PMouseHookStruct(lParam)^ do begin locX := pt.X; locY := pt.Y; end; if wParam = WM_MOUSEMOVE then JvMouseGestureInterpreter.TrailMouseGesture(locX, locY); if wParam = JvMouseButtonDown then JvMouseGestureInterpreter.StartMouseGesture(locX, locY) else if wParam = JvMouseButtonUp then JvMouseGestureInterpreter.EndMouseGesture; Result := CallNextHookEx(JvCurrentHook, Code, wParam, lParam); // NEW! end; {$ENDIF VCL} |
|
Please try with the latest zip files and tell us if the problem is fixed. These files are available here: http://jvcl.sf.net/daily/ http://jcl.sf.net/daily/ If we don't hear from you in the next 7 days, we will consider this issue fixed. |
|
Thanks!! Adding: Result := CallNextHookEx(JvCurrentHook, Code, wParam, lParam); // NEW! solved the problem. Thanks for support guys. |
|
Glad to hear that since I was out of ideas if that one hadn't worked :) Updated in CVS |
Date Modified | Username | Field | Change |
---|---|---|---|
2004-11-24 08:25 | anonymous | New Issue | |
2004-11-24 08:28 | anonymous | Note Added: 0005696 | |
2004-11-25 09:44 |
|
Note Added: 0005706 | |
2004-11-25 09:44 |
|
Status | new => feedback |
2004-11-25 09:56 | anonymous | Note Added: 0005711 | |
2004-11-28 07:13 |
|
Note Added: 0005741 | |
2004-11-28 09:40 |
|
Note Added: 0005743 | |
2004-11-30 04:43 | obones | Note Added: 0005781 | |
2004-11-30 07:52 | anonymous | Note Added: 0005784 | |
2004-11-30 10:33 |
|
Status | feedback => resolved |
2004-11-30 10:33 |
|
Resolution | open => fixed |
2004-11-30 10:33 |
|
Assigned To | => user72 |
2004-11-30 10:33 |
|
Note Added: 0005790 | |
2004-11-30 10:33 |
|
Assigned To | user72 => |