CPThemeStateSelectedTableDataView and CPThemeStateSelectedDataView were the same, and were not used in any consistent or meaningful way.
This commit eliminates CPThemeStateSelectedTableDataView, only CPThemeStateSelectedDataView is used now.
Previously, all window subclasses were constrained to the usable screen content. Unfortunately that included the menu bar window, which ended up appearing below itself!
This commit introduces an ivar that indicates whether instances of the window subclass should be constrained or not.
Without this fix, the presence of a modal ancestor window to a token field would lock down the autocomplete menu from mouse interaction.
This fix ensures the token field autocomplete menu accepts mouse events even during the presence of modal widows, just like other auxiliary windows such as pop up menus.
Not clear why this worked before but not now. This fix makes sense regardless.
Without this fix, clicks would not be sent through to the token field menu because its window wasn't the key window.
This fix makes the autocomplete menu declare it does not need to and does not want to become the key window.
Fixes#1807.
Without this fix, grey lines were showing in the background of token field autocomplete menus in recent versions.
This fix removes the grid lines which were never intended to be there to begin with.
Fixes#1806.
If the parent or grandparent window of a token field which was showing an autocomplete menu was closed, the menu would stick around even that the token field was gone.
This fix makes the token field autocomplete menu a proper child window which should also ensure it moves as needed if the parent window moves.
Without this fix, the autocomplete field would try to select the CPNotFound index from time to time which has always been wrong but is now specifically an error in Cappuccino.
The fix is to select nothing instead.
Without this fix, the scroll handle in the token field autocomplete menu could not be moved using the mouse. Only scroll wheel or keyboard based scrolling was possible.
This fix enables regular mouse interaction with the scrollbar.
After recent changes clicking on an autocomplete item in the pop up did nothing. Now this works and in conjunction with the new non-key-window-change update it's likely to work better than before.
If the token field was in a window not placed in the upper left corner of the screen (like regular platform windows are), the autocomplete menu would show up in the wrong spot.
If an autocomplete choice was made followed by immediately focusing on another control, the token field would reclaim first responder status a moment later.
The new menu is much more efficient for the user:
* Less tall items makes it much easier to select among many completions.
* Exactly wide enough for widest item.
* Tall enough to show all items (instead of just 3 as before).
* Uses a maximum width and height defined by the screen edges and some Cocoa-like constants.
The menu should appear above other normal windows and controls like a regular CPMenu. To do this, put the pop up in its own window with the `CPPopUpMenuWindowLevel` window level.