[TxMt] SVN Bug
Chris Thomas
chris at cjack.com
Tue Mar 13 01:04:51 UTC 2007
On Mar 12, 2007, at 4:10 AM, Allan Odgaard wrote:
>
>>
>>>
>>>> in your project, have a few items already added, and ready to be
>>>> commited. Have a new item in your tree. Bring up the commit
>>>> window. Click add next to that file, and click the checkbox,
>>>> type your message in and hit enter. The commit will fail.
>>
>>> I’ll try it the next time I get the chance (I ought to have a test
>>> svn repository ;) )
>> It does not reproduce for me. It must be that something is writing
>> the text "CMPluginExamineContext" to stdout when you invoke the
>> popup menu,
>
> But weird that someone writing to stdout, fools the process, no?!?
No, CommitWindow returns data via stdout, because it's called from the
commit script like a normal tool. Things like NSLog write to stderr,
which is why this is not usually a problem. Ultimately, probably, some
small bits of CommitWindow should be added to a plugin and the main
logic should be implemented through tm_dialog, which will eliminate
the possibility of this sort of problem.
> An alternative is either using an NSPopUpButtonCell or so, but I ran
> into problems with that approach (it is sort of hacky, because you’d
> use a cell without a view, or a view outside a view hierarchy), so I
> use the Carbon Menu Manager for custom pop-ups, there is some code
> for this in the Dialog plug-in (if you wish to switch the current
> code, or I could do it ;) ) -- the only tricky part with Menu
> Manager is, that it uses global coordinates relative to the main
> screen, where I found, by experimentation, that the main screen is
> the one with its origin in (0, 0), not feeling overly confident
> though, that this is really how it is defined. But [NSMenu
> mainScreen] was not (always) the right one…
In Carbon, IIRC, the screen at topleft (0,0) is always the screen
containing the menubar. This would have been necessary for
compatibility with apps written before multiple monitor support (which
arrived in 1987). According to the docs, [NSScreen mainScreen]
returns the screen containing the key window, which probably made
sense in menubarless NeXTstep... although, even then, why not just get
the key window and ask for its screen?
Chris
More information about the textmate
mailing list