Bennett Helm wrote:
On Feb 25, 2008, at 3:18 PM, Abdelrazak Younes wrote:

Concerning arranging tabs: can't this be done instead by dragging and dropping the tabs -- both to change the order within a window and to move a tab from one window to a different window?

Sure, every thing's possible and drag&drop would be nice. Maybe for 1.7 :-)

In the short term, then, perhaps an alternative would work for you: a new lfun to open the last-closed document. Then you could close a document in one window, switch to another window, and invoke this function. (Perhaps there could be a stack of last-closed documents this would apply to.) That I think is better from a UI model than invisible yet still open documents.

Isn't that what we have already with the "File->Open recent" menu?
...

So you are advocating to not let the user able to effectively close a child buffer if its master is still open? I don't say this is a bad idea but we have to think a bit more about this. Especially since a child document can have multiple master depending on which master is current.

I'm not sure whether we're understanding each other here, so let me try again. My thought is that *users* should understand documents to be either open (and so visible in the UI) or closed (and so not visible). That is, from the user's perspective there shouldn't be a 1/2-way state of being open but invisible. From the *developer's* perspective, however, documents can be in a third state -- "loaded" (as I called it) into memory so that their labels are available for cross-references, etc.

Yes, that's exactly what I understood from you. But you are mixing two things. This third "loaded" state is user oriented; from a developer's perspective a document is opened or it is not. The user will notice that this document is "loaded" because of label, toc, etc.


Now what's the difference between "loaded" and "open but invisible"? -- "Open but invisible" implies a certain status in relation to the user experience. Thus, open but invisible documents can have changes that are unsaved or can be saved in a sessions file; "loaded" documents as I understand them cannot: the user should be completely unaware that a document can be in such an intermediate state, and so its being in that state should have no discernible effects on the user experience.

So, I think users should be able to *close* child documents even while the master document is still open; they would remain "loaded" and so in this sense would be available to even multiple master documents that are still open. (This is not quite how you've described my proposal.)

But that's what I understood :-)

OK, I propose then that hidden document are *always* in a saved state. Or at least that we ask the user if he wants to save the about-to-be-hidden document (like a child document).

But imagine that a "loaded" document is changed by an external process, what should we do? Ask the user if he wants to load a document?

...
Oh your suggestions make sense, I don't deny that. But I am not sure I want to degrade the advanced user experience because newbies are subject to panic :-)

I agree: we should not degrade user experience for anyone. If my suggestions above wouldn't be satisfactory for advanced users, perhaps it would be possible to have a (hidden?) preference to turn on the "hide document" button. That would give you what you want but also make it hard for novices to encounter a feature that could cause them problems.

Before going the preference way, let's see first if we can compromise on a few items.

...
2. Closing the last window causes LyX to exit. This should not happen on Mac.

This is related to a bugzilla entry about unique instance. How would you exit LyX on Mac.
Only by direct user request: LyX > Quit or <Cmd>Q.

This is not too difficult to achieve but the implication are not obvious for Windows and X11 platforms.

Can't this be done only on Mac?

I'd rather do it on all platforms and provide a setting to switch this feature off. Maybe...

Abdel.

Reply via email to