[Lazarus] TStringGrid and cancelling a modal form
zeljko
zeljko at holobit.net
Mon Mar 12 18:37:49 CET 2018
On 03/12/2018 06:25 PM, Mark Morgan Lloyd via Lazarus wrote:
> Running on (Debian) Linux on AMD64 or ARM, Lazarus 1.6.4 and FPC 3.0.2,
> I'm seeing different behaviour depending on whether a program uses Qt or
> GTK2. The program changes the hardware configuration of a mouse
> (Logitech G600) using hidraw, and as such needs to run with root
> privilege (e.g. kdesudo or sudo -E).
>
> On the main form I've got (a tabbed notebook containing multiple
> instances of) a TStringGrid. The OnSelection event invokes a modal form
> (containing nothing of significant complexity) with OK and Cancel
> buttons, and stripped down looks like this:
>
> procedure TFormLG600.StringGridMode1UnshiftedSelection(Sender: TObject;
> aCol, aRow: Integer);
>
> begin
> {...}
> if ButtonsAndKeys.ShowModal() = mrOk then begin
> {...}
> end
> end;
>
> This is fine if built for Qt, but if built for GTK2 what I see is that
> after the modal form is exited any mouse activity over the grid appears
> to cause an erratic multicell selection and the modal form immediately
> pops up again. This is reproducible if the Cancel button is pressed, and
> in at least some cases after OK.
>
> I've seen indeterminate discussion of this in the foramina, and have
> followed up the indicated wiki pages etc. Does anybody have any
> suggestions, preferably not along the lines of "don't use GTK2" since I
> was thinking of sticking this on Sourceforge and that restriction would
> probably be unpopular?
>
hmm, try LCLIntf.SetCapture(0) after closing modal form , just to
isolate capture problems.
zeljko
More information about the Lazarus
mailing list