Jump to content
The simFlight Network Forums

Managing the FSX Right-Click Context Menu


Recommended Posts

Hi,

I run a multi-monitor touchscreen-based setup, with FSX and FS9 (both with registered FSUIPC) on Win7 x64.

I have been experiencing an annoying problem with the undocked 2-D cockpit panels on my touchscreens. Sometimes, while attempting to right-click on a button or knob I 'miss' the location, and touch an adjacent area where there is no clickspot, thus invoking instead the right-click context menu, with the options: Undock Window (ticked)/ Close Window/Hide Menu Bar, as seen in the screenshot:

post-17243-0-29946600-1364089585_thumb.j

A second (inadvertent) click on this will untick the option "Undock Window" causing the panel window to re-dock, thus upsetting the panel layout. I don't know if others have also experienced this while operating FS.

I am wondering if there is any way (lua script or xml gauge or windows registry edit) of managing the FSX Right-Click Context Menu. Possible strategies might include: (1) disable or toggle availability of the FSX right-click context menu, (2) edit (add an item to) the right-click context menu, so that the first item is "close the menu".

I would be grateful if others could share their thoughts or ideas about this.

Regards,

Chakko.

[also posted at Avsim: http://forum.avsim.net/topic/403159-managing-the-fsx-right-click-context-menu/ ]

Link to comment
Share on other sites

Hello Reinhard,

I am so happy you have replied, as I had first tried to PM you about this. Please check your PM.

In fact I have been using your NoDrag.xml gauge with great effect, and my first attempt to solve the problem was to create a similar gauge to inhibit right-clicks, like this:

<Gauge Name="NoRightClick" Version="1.0">

<Size X="10" Y="10"/>

<!-- Inhibit clicking of panel windows by reacting with dummy event (turn the sound on) -->

<Mouse>

<Area Left="0" Top="0" Width="10" Height="10">

<Click Kind="RightClick" Event="SOUND_ON"/>

</Area>

</Mouse>

</Gauge>

Of course the gauge would have to be 'sent to the back' so that other gauges with genuine right-click-spots are not affected. However, this does not work. The context menu cannot be suppressed this way. I do not understand why.

Regards,

Chakko.

Link to comment
Share on other sites

Hi,

Really a nice setup which you have built ;-)

I tried to avoid right mouse clicks at all in my panels, which I adopted for my touch screen setup. I use special touch screen drivers from Touch Base:

http://www.touch-base.com/

With these drivers I can better control the touch settings. Not cheap but worth the money. If the panel doesn't allow to avoid the right click, I also have no idea, how to avoid the context menu.

Rgds

Reinhard

Link to comment
Share on other sites

Hello Reinhard,

Thanks for your reply.

There are many payware aircraft which use right-clicks: the PMDG aircraft use L/R clicks for turning knobs in different directions, and also for increment/decrement of multi-position switches; so do the Flight-One ATR72, Simcheck A300B4 and DA Fokker 100. Others like the LSH MD82, LD B767, and iFly B737, mercifully, do not. So one cannot avoid right-clicks on some panels.

However, Pete added the mousebutton-swap facility to FSUIPC in order to help manage this; see the thread: http://forum.simflig...ght-click +swap

So I currently have mousebutton-swap mapped to a joystick button and the facility works remarkably well.

Guess we will have to wait for Pete to return and tell us if he has a solution.

Regards,

Chakko.

Link to comment
Share on other sites

Hi,

Another idea: Have you tried to combine the NoDrag and the NoRightClick in one single gauge already? You can listen to both events in one single gauge. Maybe this works better than having two seperate gauges covering the complete window. Not tried it out but maybe an option. In this tutorial you can see, how to realize this:

http://www.fs2x.com/Tutorials_files/XML%20Gauge%20Programming%20for%20FS2004.%20Chapter%202.%20Interaction%20Sections.pdf

Rgds

Reinhard

Link to comment
Share on other sites

Hi Reinhard,

I use the NoDrag.xml gauge only on the single docked parent panel window (which forms my captain's panel window). As far as I know, it is not necessary to use NoDrag.xml on undocked panel windows, because they are not susceptible to inadvertent dragging anyway. My experimentation with NoRightClick.xml was on undocked panel windows (like my centre panel as seen in the first post) where there was no interaction with NoDrag.xml in any case. So I do not think this is the problem.

Thanks anyway,

Regards,

Chakko.

Link to comment
Share on other sites

Hi,

I am running my cockpit in full screen mode with several undocked panel windows moved to the touchscreens. And I had to implement the NoDrag gauge in every single window in my panel.cfg file, as otherwise the windows might be moved by holding and dragging. Therefore I have in every window of my panel the gauge implemented covering the complete window area. By that clicking outside of the defined gauges I have no problem with moving the windows by accidence. Maybe you should overlay all your windows with the NoRightClick gauge too.

The DA Fokker has a mouse interface, based on XML. So I isolated those gauges, needing right clicks in a seperate MyFokker XML gauge set. There I split up the regions in two halfs and I accepted left clicks only. And in the panel I replaced those gauges then by my own modified version. The DA Fokker is here very open.

With other aircrafts having gauges implemented as .GAU files (or using DLL implementations), this typically is no option of course. So I understand your point.

Rgds

Reinhard

Link to comment
Share on other sites

Hi Reinhard,

I should have mentioned that all my cockpit panels are in windowed mode. I do not use full-screen mode, even for my external scenery windows. Perhaps that might account for the different behaviour? I am certain that I do not need to use NoDrag.xml on any of my undocked panels in windowed mode, except for the main FS window (docked captain's panel).

I should also say I am very impressed by the way you have modified your DA Fokker gauges. Really creative!

Regards,

Chakko.

Link to comment
Share on other sites

Hi,

I have now tested and you have been very near. The only mistake you made was, that you used RightClick. Here is a list from the Microsoft ESP manual about the click events:

LeftAll

RightAll

MiddleAll

RightSingle

MiddleSingle

LeftSingle

RightDouble

MiddleDouble

LeftDouble

RightDrag

MiddleDrag

LeftDrag

Move

RightRelease

MiddleRelease

LeftRelease

WheelUp

WheelDown

Leave

So if you replace RightClick by RightSingle you have won. I implemented this in my cockpit and it works in windowed mode and in full screen.

I get no context menu anymore by using this method. You even can combine this by using both events in the NoDrag gauge:

<Gauge Name="NoMove_TouchScreen" Version="1.0">

<!-- inhibit movement via touchscreen via dummy command (turn sound on) -->

<Size X="10" Y="10"/>
<Mouse>
<Area Left="0" Top="0" Width="10" Height="10">
<Click Kind="RightDrag+RightSingle" Event="SOUND_ON"/>
</Area>
</Mouse>

</Gauge>[/CODE]

Rgds

Reinhard

Link to comment
Share on other sites

Hi Reinhard,

I have tried with RightSingle, and it works, just as you say! Thank you for the solution!

Now, the difficulty is that if I draw the gauge to cover the entire window (either as Gauge00 or as Gaugexx (last drawn)) it captures all right-clicks and inhibits them, even the genuine ones directed at the gauges where I need right-click to operate normally. I had originally thought that if NoRightSingle was overlaid with gauges which do accept right-clicks, those would take precedence, but it appears not to be so in this case. So the only way I could use this in a panel where right-clicks are also necessary would be to draw this gauge into specific areas where the problem is more likely to occur, i.e. in the empty areas just adjacent to gauges which accept right-clicks, being careful not to overlap the areas covered by those gauges. It can be done. So you have certainly provided one solution to the problem. Thank you!

Let us keep the discussion open to see if other solutions can be provided. For instance, I would be really interested in knowing if the FS context-menu can be edited in anyway,

I should also mention that I have used NoLeftClick successfully with the SimCheck Airbus A300B4. I have explained the raison d'etre for this gauge in my post #14 in the other thread http://forum.simflig...pos#entry444265 It works, but LeftClick does not appear on the list from Microsoft.

Thank you again, and I will get back to you after drawing NoRightSingle.xml into my right-click-prone areas ;-) .

Regards,

Chakko.

Link to comment
Share on other sites

Hi,

That's not true for me. I have tested it with the DA Fokker. I have added the gauge as gauge00. And I was able to right click on the Xpdr gauge for example but not in areas in between.

I don't know, which gauge you have used. Some aircrafts have one gauge covering the whole window and are bypassing the FSX logic in own DLL code. This might be a problem.

You could also experiment with the DrawOrderXX parameter in the panel.cfg. See the Microsoft ESP documentation for details.

Rgds

Reinhard

Link to comment
Share on other sites

Hello Reinhard,

My tests were carried out on the PMDG 737NGX. That aircraft has several gauges within each window, but each gauge covers several clickspots, and probably bypasses FS logic, as you say, with its own DLL code. The F1 ATR72-500 and the SimCheck A300B4 behave the same way as the NGX, and their gauges, similarly have .GAU and .DLL extensions.

LIke you said, the DA Fokker 100 is the ideal candidate for this solution, and when I inserted NoRightClick.xml as gauge00, I got just the behaviour you describe...non-interference with gauges above, and suppression of the right-click context menu in all other areas.

Thanks again,

Chakko.

Link to comment
Share on other sites

  • 2 weeks later...

Dear Pete,

This is to bring this thread up for your attention, and for your comments/suggestions.

While the NoRightSingle.xml gauge works well with any aircraft with .xml gauges (like the DA Fokker) it cannot easily be implemented with most other payware aircraft which have .dll and .gau gauges.

Would you have any other suggestions as to how the FSX right-click context menu could be suppressed or managed?

Thank you for your help as always,

Regards,

Chakko.

Link to comment
Share on other sites

Would you have any other suggestions as to how the FSX right-click context menu could be suppressed or managed?

Sorry, no. It might be possible for the right click to be trapped and discarded, but wouldn't you need it sometimes? There's really no way I can think of to determine whether the right click, when seen by FS, would result in a context menu or not.

Pete

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.