bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #19098] NSDocumentController: documents can open twice in same app


From: Günther Noack
Subject: [bug #19098] NSDocumentController: documents can open twice in same app (easy to fix)
Date: Mon, 19 Feb 2007 18:30:21 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

URL:
  <http://savannah.gnu.org/bugs/?19098>

                 Summary: NSDocumentController: documents can open twice in
same app (easy to fix)
                 Project: GNUstep
            Submitted by: guenthernoack
            Submitted on: Monday 19/02/07 at 18:30
                Category: Gui/AppKit
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

When opening a document in a NSDocument-based application, it's possible to
open a document in two different document windows at once by using different
workflows "instance" 1 and 2 of the document:

a) double clicking it in GWorkspace
b) opening it using the "Document/Open..." dialog

Comparing the used path name, it's one time /home/guenther/Desktop/Test.rtf
(when using GWorkspace) and it's one time /usr/home/guenther/Desktop/Test.rtf
(when using the open panel). So the problem only applies when a parent
directory of the file is symlinked.

This can be fixed by calling -stringByResolvingAllSymlinksInPath on the file
name somewhere. In NSDocument.m, line 405 (GNUstep-stable), there's a note
that Apple doesn't do this, but I find it hard to believe Apple also fails at
this issue. (I can't verify it.) In case Apple really doesn't do it, this
would probably be a place where GNUstep can be better. ;-)

There are two ways to solve the problem. It's all about where to place that
call. 
* In GWorkspace: If Apple doesn't replace symlinks when opening files, which
I highly doubt, this is probably how they do it.
* In NSDocument & NSDocumentController: In NSDocument, normalize the file
name when setting it for the first time. In NSDocumentController, in
openDocumentWithContentsOfFile:display: and
openDocumentWithContentsOfURL:display:, normalize it as well. (BTW, in the
latter the check if a URL has been opened twice also doesn't work for
non-file:// URLs)






    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?19098>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]