From: Jason Rumney <jasonr@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 13065@debbugs.gnu.org, Du Yanning <duyanning@gmail.com>
Subject: bug#13065: Bug in x-file-dialog with GetOpenFileName
Date: Tue, 08 Jan 2013 21:10:35 +0800 [thread overview]
Message-ID: <87pq1fhlbo.fsf@gnu.org> (raw)
In-Reply-To: <83liddr5u8.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 04 Dec 2012 21:10:39 +0200")
Sorry for the late reply.
Eli Zaretskii <eliz@gnu.org> writes:
> a) Windows 7 deprecated this kind of dialogs and instead wants us to
> use some hotshot new ones. So it could be simply a bug in the
> implementation of this dialog on Windows 7.
Is it not just a case of doing the same as we did previously?
/* If we compile with _WIN32_WINNT set to 0x0400 (for NT4
compatibility) we end up with the old file dialogs. Define a big
enough struct for the new dialog to trick GetOpenFileName into
giving us the new dialogs on newer versions of Windows. */
> b) We use a file selection dialog in non-standard ways, to be able to
> open directories, not just files. The way we do this employs some
> undocumented tricks which I don't fully understand. E.g., when
> the hook gets the CDN_INITDONE notification, we access the File
> Name field of the dialog, but don't do anything with it, and just
> call EnableWindow. Is that really necessary, and if so, why?
The purpose is to disable the File Name field when "Directories" is
selected so the user does not try to type a filename (which will
subsequently be ignored). "Current Directory" is put into the field
when it is disabled to indicate to the user that the current directory
will be chosen if they press OK.
>
> c) The filter string uses some "*|*" magic in the directory filter,
> which doesn't seem to be documented anywhere. What does it do?
Nothing. It has to be different than the *.* that is used for normal
file selection, but couldn't be simply * IIRC. The magic is in the
callback function and the code that strips away the filename when the
dialog call has finished if the "Directories" option is selected.
But in this report, the Directory filter was never chosen, so I don't
think it is related. You could try removing the Directories portion of
the filter string and the callback to be sure.
next prev parent reply other threads:[~2013-01-08 13:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-03 11:09 bug#13065: Bug in x-file-dialog with GetOpenFileName Du Yanning
2012-12-04 19:10 ` Eli Zaretskii
2013-01-08 13:10 ` Jason Rumney [this message]
2013-01-08 21:26 ` Eli Zaretskii
2013-01-13 12:52 ` Jason Rumney
2013-01-13 16:35 ` Eli Zaretskii
2013-01-15 18:03 ` Eli Zaretskii
2013-01-16 12:23 ` Jason Rumney
2013-01-16 18:54 ` Eli Zaretskii
2013-01-22 13:32 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pq1fhlbo.fsf@gnu.org \
--to=jasonr@gnu.org \
--cc=13065@debbugs.gnu.org \
--cc=duyanning@gmail.com \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.