doc/lispref/frames.texi (Multiple Terminals): Improve the description of X
display names. Add index entries.
(Basic Parameters): Add a cross-reference to where X display names
are described.
(Position Parameters): Mention that positional parameters of the
form (+ POS) can be negative if they are on a non-primary monitor
of a multi-monitor display.
(Creating Frames): Mention that on multi-monitor displays the
frame might be positioned differently than specified by the frame
parameters alist.
lisp/faces.el (display-grayscale-p): Mention in the doc string that
the argument can be either a display name or a frame.
lisp/frame.el (display-pixel-height, display-pixel-width)
(display-mm-height, display-mm-width, display-backing-store)
(display-save-under, display-planes, display-color-cells)
(display-visual-class, display-monitor-attributes-list)
(display-screens): Mention in the doc string that the argument can
be either a display name or a frame. Improve the docs of the
monitor attributes.
* frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
In doc-string mention need of setting `frame-resize-pixelwise'.
* frames.texi (Frame Commands):
* cmdargs.texi (Window Size X): Mention the use of
`frame-resize-pixelwise' to make frames truly fullscreen or
maximized.
* frames.texi (Size Parameters, Size and Position): Mention that
with some window managers you have to set
`frame-resize-pixelwise' in order make a frame truly fullscreen
or maximized.
lisp/frame.el (set-frame-font): Doc fix.
lisp/menu-bar.el (menu-set-font): Doc fix.
doc/emacs/frames.texi (Fonts): Clarify which frames are affected by
setting font from the menu and in default-frame-alist.
lisp/frame.el (blink-cursor-blinks, blink-cursor-blinks-done): Doc fixes.
(blink-cursor-mode): Mention customization variables and the
effect of 'blink-cursor-blinks'.
doc/emacs/display.texi (Cursor Display): Explain better how to customize
'blink-cursor-blinks'.
* lisp/frame.el (display-pixel-height, display-pixel-width)
(display-mm-dimensions-alist, display-mm-height)
(display-mm-width): Doc tweaks.
* doc/lispref/frames.texi: Remove FIXME comments. The x- versions of
these functions are internal details that do not need documenting.
* etc/NEWS: Related markup.
src/w32fns.c (Fx_create_frame): Error out if called from a TTY
session.
lisp/frame.el (window-system-for-display): Don't allow to create a
GUI frame from a -nw session on MS-Windows.
* src/frame.h (x_focus_frame): New prototype.
* src/xfns.c (Fx_focus_frame): Remove.
(syms_of_xfns): Do not defsubr it.
(x_focus_frame): X implementation.
* src/nsfns.m (Fx_focus_frame): Remove.
(syms_of_nsfns): Do not defsubr it.
(x_focus_frame): NS implementation.
* src/w32term.c (Fx_focus_frame): Remove.
(x_focus_on_frame): Rename to...
(x_focus_frame): W32 implementation.
* src/w32term.h (x_focus_on_frame): Remove prototype.
* src/w32fns.c (Fx_focus_frame): Remove.
(syms_of_w32fns): Do not defsubr it.
* src/frame.c (Fx_focus_frame): Define here.
(syms_of_frame): Defsubr here.
* src/gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
* lisp/frame.el (x-focus-frame): Mark as declared in frame.c.
* etc/NEWS: Document blink-cursor-blinks and blink timers stopped.
* lisp/frame.el (blink-cursor-blinks): New defcustom.
(blink-cursor-blinks-done): New defvar.
(blink-cursor-start): Set blink-cursor-blinks-done to 1.
(blink-cursor-timer-function): Check if number of blinks has been
done on X and NS.
(blink-cursor-suspend, blink-cursor-check): New defuns.
* src/frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
(Fhandle_switch_frame): Call Fhandle_focus_in.
(syms_of_frame): defsubr handle-focus-in/out.
* src/keyboard.c (Qfocus_in, Qfocus_out): New static objects.
(make_lispy_focus_in, make_lispy_focus_out): Declare and define.
(kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
switch frame event is made. Check ! NILP (event->arg) if X11 (moved
from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
and there is a focused frame.
(head_table): Add focus-in and focus-out.
(keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
bind to handle-focus-in/out.
* src/nsterm.m (windowDidResignKey): If this is the focused frame, generate
FOCUS_OUT_EVENT.
* src/termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
* src/xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
Set event->arg to Qt if switch-event shall be generated.
Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
This is needed to prevent from weird situation described at
<http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00212.html>.
* frame.el (make-frame): Set x-display-name after call to
window system initialization function, not before.
* term/x-win.el (x-initialize-window-system): Add optional
display argument and use it.
* term/w32-win.el (w32-initialize-window-system):
* term/ns-win.el (ns-initialize-window-system):
* term/pc-win.el (msdos-initialize-window-system):
Add compatible optional display argument.
(toggle-frame-maximized): Toggle frame maximization according to
`frame-maximization-style', bound to <f11>.
(cycle-frame-maximized): Cycle between all maximization styles and
non-maximized frame, bound to shift-<f11>.
Here, we use the generic window-system configuration system we just
implemented to support the w32 window-system in the mainline build
under Cygwin. (Previously, the w32 window system could only be
compiled as part of the NT-native Emacs build process.)
The changes in this patch need to be applied atomically in order to
avoid breaking Emacs. The changes include:
- Changes throughout the Lisp and C code to not assume that
NT Emacs and the w32 window system are synonymous.
- Wiring up the regular select(2) event loop to Windows messages
- Cleaning up the w32 drag-and-drop receiving code.
- Exposing Cygwin path conversion functions to elisp.
- Unicode file dialog support when compiling for Cygwin.
- Splitting the w32 term lisp initialization code into code
applicable to any w32 window-system and code specific to
system-type windows-nt.
- Integrating the old and new w32 code into the build system.