emacs-devel
[Top][All Lists]
Advanced

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

Re: "CHANGED outside Customize" in frames customization group


From: martin rudalics
Subject: Re: "CHANGED outside Customize" in frames customization group
Date: Tue, 01 Jan 2008 11:24:18 +0100
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

>     Do I understand you correctly that `frame-notice-user-settings' and
>     `modify-all-frames-parameters' should set the `command-args-...' values
>     (one for the initial and one for the default frame)?
>
> Yes, that's what I've proposed.  Do you see any flaws in the idea?
>       This would require
>     a non-trivial reorganization of frame.el.
>
> I think it should be pretty simple.  Only 4 functions in frame.el
> seem to refer to default-frame-alist or initial-frame-alist.
> So I think that not much change would be needed.

In addition I would have to change x-win.el, mac-win.el, pc-win.el,
and w32-win.el for the x-handle-... stuff.

>
>     Note that I was not looking into the command-line arguments and X
>     resources issues yet.
>
> Yes, but I think this same approach would work for x-win.el
> and would be simple there too.

So I would reflect any attempts to set `default-frame-alist' and
`initial-frame-alist' via (1) command-line arguments, (2) x-resources,
and (3) settings of `fringe-mode', `tool-bar-mode', `menu-bar-mode', and
possibly `scroll-bar-mode' (I don't understand the latter yet) in the
initial file, in two variables say `overriding-default-frame-alist' and
`overriding-initial-frame-alist'.  (I think the "command-" prefix is
somewhat misleading for .emacs related settings, but I don't have a
strong point here.)

The final merging of parameters would then happen in `frame-initialize'
for the initial and in `x-handle-named-frame-geometry' for additional
frames where the "overriding-" parameters would be appropriately
prepended.

>      >     Customizing `fringe-mode' calls `modify-all-frames-parameters' 
which
>      >     sets `default-frame-alist'.  I'm now told that 
`default-frame-alist' was
>      >     CHANGED outside Customize although all I actually did was 
_customizing_
>      >     some option.
>      >
>      > The solution to that is just to inform Custom about the change, so it
>      > will realize that the change to `default-frame-alist' was made within
>      > Custom.
>      >
>      > It's just a bug, it just needs to be fixed.
>
>     I wouldn't know how.  If I simply set `default-frame-alist' in some
>     "Custom" way I'll be told that there are unsaved changes.
>
> It looks like `customize-set-variable' does the right job.
>
> So I think this won't be very hard.  Want to give it a try?

I have to avoid an

"Attempt to autoload customize-set-variable while preparing to dump"

error here.  Hence setting `default-frame-alist' via
`customize-set-variable' would have to be forked by an optional argument
to `modify-all-frames-parameters'.  Such an optional argument would then
have to be passed down by `set-fringe-mode-1' to `set-fringe-mode', for
example, and similarly for the others.  Correct?





reply via email to

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