On Tue, 06 Feb 2007 13:55:28 -0200 Luiz Americo Pereira Camara <[EMAIL PROTECTED]> wrote:
> Marc Weustink wrote: > > Luiz Americo Pereira Camara wrote: > >> Marc Weustink wrote: > >>> Luiz Americo Pereira Camara wrote: > >>>> Marc Weustink wrote: > >>>>> Luiz Americo Pereira Camara wrote: > >>>>> > >>>>>> I fixed the double fire of MouseUp event when using right > >>>>>> mouse button > >>>>>> under win32. See > >>>>>> http://www.freepascal.org/mantis/view.php?id=8276. But > >>>>>> one issue remained. If the Shift-F10 key is used both events > >>>>>> will be called: MouseUp and DoContextMenu. I can fix it in two > >>>>>> ways: > >>>>>> > >>>>>> 1) Implementing LM_CONTEXTMENU > >>>>>> 2) Using the Dummy field of TLMMouse as a flag (Maybe renaming > >>>>>> it?) > >>>>>> > >>>>>> What do you think is the better? > >>>>>> Anyone can think of another way? > >>>>>> > >>>>> > >>>>> 3) similar to 1, add a IntfContextMenu, which gets called form > >>>>> the widgetset. IIRC I was discussing this issue with Boguslaw a > >>>>> while ago The widgetset itself knows best when a contextmenu is > >>>>> shown, so the LCL > >>>>> doesn't have to figure out which key/mouse combo is responsible > >>>>> for it. > >>>>> > >>>> Implementing 1 the key handling will be handled by the widgetset > >>>> and not by LCL > >>>> > >>>> Anyway i did not understand how it should work. > >>>> What are the advantages over 1? > >>> > >>> Only that it skips sending a message. If possible we prefer > >>> direct calls unless needed for compatibility. > >> I can not see another way to the WidgetSet notify the LCL. > > > > Wincontrol.IntfContextMenu(some_params...) > > > > So it is not a message, but a call > > > >> This message is sent from WidgetSet to LCL and not the contrary. > >> The LCL will not call the widgetset asking for a response. > > > > I didn't suggest that. > > > >> It's up to the widgetset determine when to call the contextmenu. > >> Win32 has hardcorded the Shift-F10 key. I don't know the if gtk/qt > >> has one, but it can be easily added. > >> > >> Anyway, i already implemented LM_CONTEXTMENU. It was quite simple, > >> non intrusive patch and also compatible with delphi. See my > >> previous email. > > > > Thats not the point, but to repeat: > > > > >> Only that it skips sending a message. If possible we prefer > > >> direct calls unless needed for compatibility. > It was exactly what i said. Implementing the Message you gain Delphi > compatibility at a low cost. Some components use it. If for > compatibility a big LCL change would be necessary i was against also > but in this case the changes are minimal (in fact there's no new > code, it was just a refactoring). Its a matter of see if the Delphi > compatiblity outweigth the additional message. I think yes. > > PS: If the majority of the Lazarus developers decide i will implement > the other way. In general: we want to avoid as much the winapi messages, as they create a lot of trouble and maintaince. But the WM_CONTEXTMENU message is simple, so that I don't see a problem. Marc? Mattias _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives