» Home

  » Plugins

      » Mime

            » Exclusions

Brass Plugins: Mime

 

Exclusions

One of the most powerful features of Mime is the ability to recognise gestures in any application. Some applications have a legitimate reason for not appreciating this feature though!

A small number to applications need to take priority over Mime when the right-mouse button is clicked and the mouse is moved. Mime would normally recognise this as a gesture and take control away from the application temporarily. This can sometimes disable vital features in an application.

A great example of this is Paintshop Pro. When editing an image with the Brush tool, if you hold the right mouse button down and move the mouse PaintShop Pro will replace pixels with the background colour. If Mime were to act normally this feature would be completely disabled within PaintShop Pro, leaving a lot of angry artists!

To prevent this from happening Mime has an exclusion system that controls which applications should be left alone and under what circumstances.

 

Configuring Exclusions

The first important thing to understand is that most users should never, ever attempt to alter the exclusion configuration. Changing even a small part of the exclusion system can potentially cause strange side effects, with Mime appearing to work only randomly. That's why Mime does not provide any user interface to edit the exclusions.

You can however view the existing exclusions and download new exclusions from the Internet. To access the exclusions, go to the Mime Gesture Configuration screen and click the "Exclusions" button in the bottom left corner.

 

This is the exclusions list. The interface is deliberately cryptic, because there should be no need to use it!

 

Deleting Exclusions

If you have a specific issue with an exclusion and need to remove it, select it from the list and click the "Delete Exclusion" button. It will be removed from the list. When you OK the dialog you will be asked to restart the Mime plugin so the new exclusions can be processed.

I'll repeat this again - 99.9% of the time there is absolutely no reason for anyone to delete these exclusions!

 

Download Exclusions

Exclusions are designed to prevent issues with other applications. There are millions of applications out there, and we have no way of testing Mime with even 1% of them. When an conflict issue is reported to us we can update the exclusion files stored on the Brass website.

Clicking "Download Exclusions" retrieves this latest exclusion file direct from the Brass website and installs it on your computer. Again, unless you have a specific problem with an application you will most likely not need to do this.

You do not need to update your exclusion file every week, month or year unless you have a problem! If you do have a problem with an application please let us know - we will create an exclusion for it and place it online so all Brass users can benefit.

 

You can really help the entire Brass user community out by letting us know when you find applications that need exclusions. When we know an application needs an exclusion we can create one quickly and update the online exclusion file for everyone to use.

 

As a user of the Mime plugin, this is all you need to know about exclusions. Please return to the main Mime topic list and carry on with the next topic.

 

 


Exclusions for Advanced Users

There are probably a few people out there who really do want to manage their own exclusions. This section will tell you how. First of all, if you don't understand the terms "Window Text", "Class name" and "Parent" in the context of Windows applications, please don't bother reading any further.

You can really help the entire Brass user community out by letting us know when you find applications that need exclusions. When we know an application needs an exclusion we can create one quickly and update the online exclusion file for everyone to use.

The Exclusion File

Mime exclusions are stored in a file called "app.exclusions", inside the <Brass Install Directory>\Plugins\Mime directory. Please only edit this file when Mime is not active.

Inside this file is a comprehensive explanation of how the exclusion system works. Please read it thoroughly before making any changes. It's reproduced below for reference:

; This file contains all the exclusions for the Mime gesture system. It's intended for use where Mime should
; never interfere with an application listed here. For example, to make a Mime gesture you hold the right
; mouse button and move the mouse. When you do this in PaintShop Pro, you might actually want to use the colour
; picker option. If Mime was always active, it would prevent you from using this function. By adding PaintShop
; to this exclusion file, Mime will never interfere with it.
;
;************************************************************************************************************
; End users should NOT edit this file. The Mime config system can auto-download new versions of this file and
; will overwrite what's in here. Only edit this file if you know exactly what you're doing.
;************************************************************************************************************
;
; Format of this file is:
; WindowName::WindowClass::ParentName::ParentClass::OverallParentName::OverallParentClass::QuickDescription
;
; Use 0 for an item where it's not relevant. Note that 'OverallParent' doesn't actually mean the direct parent,
; it means the top level window for the process. In other words, assuming:
; AcmeAppWindow -> AcmeClientFrame -> AcmeDisplay
; the Parent of AcmeDisplay will be AcmeClientFrame, and the OverallParent will be AcmeAppWindow
;
; Also note the 'name' elements (WindowName, ParentName etc) are pattern-matching. So if the window title changes,
; for example 'MS Word' becomes 'MS Word - MyDoc.doc', putting 'MS Word' in a name field will still match the
; window. This is handy for windows that are dynamically created and have their titles changed to reflect what
; they're currently doing. NOTE: there is a very slight extra performance cost for pattern-matching, so where
; possible you should try to match on class fields rather than name fields. Remember that all exclusions have to
; be checked, so obviously pattern-match checking a few hundred exclusions is going to be a little slower than
; explicit-match checking. For clarity, any name field that is only a 0 is ignored and no matching is done.

 

Note the warning in the middle - if you use the "Download Exclusions" function, your manually added exclusions will be overwritten.

 

Creating Exclusions for Apps

When creating an exclusion, be careful with the criteria. Some applications are a complete pain and dynamically change their window class names (PaintShop Pro is a great example). Pattern matching only works for window text/titles, eg: "AcmeApp - Yourfile.acme", not the classname.

Remember not to be too broad or too specific. A good example is editor applications. If you check the classname in the main window of an editor app it's likely to have a classname of "Edit". Unfortunately so will every other app that uses an editcontrol.

Combine fields to tie down the application specifically. If you wanted to disable gestures in Notepad you can set the "WindowClass" to "Edit", then also set the "OverallParentClass" to "Notepad".

If this doesn't immediately make sense to you, please do not change the exclusion system. The Custom Action Wizard: Writing Good Criteria page may help you.

 

The Mime Secret Gesture

Getting the information for an app can be a pain. There is a secret mime gesture that displays an info window with all the names and classnames you'll need. Unfortunately it had to be a gesture unlikely to be accessed by anyone else. Wait for it....

Up Down Up Down Up Down Up Down Up Down Up Down Up Down Up Down

That's 8 "mouse up" and 8 "mouse down". Do this gesture in any window (obviously not one with an exclusion already present) and Mime will display an info dialog for you.

Either that, or you can use a window spy tool :-)

 

Advanced User, but want us to create the exclusion?

You might come across an application that requires an exclusion, and although you're confident with using Windows and Mime, you want a little bit of guidance the first time you do this.

All you need to do is make the Mime secret gesture 3 times in the application's window. Run the application, make the gesture, then exit the application. That's one. Do it twice more. Each time you do it, write down exactly what each field in the secret gesture dialog reports and let us know. We can review the information, make sure the fields don't change between each time the application runs, then create a working exclusion for everyone to use.

Please let us know on the forums if you've found an exclusion for us!