Commit graph

457 commits

Author SHA1 Message Date
Eli Zaretskii
13a83f0501 Fix bug #17532 with unclear docs of setting frame's font.
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.
2014-05-21 19:35:31 +03:00
Stefan Monnier
08a2434e2f * lisp/emacs-lisp/timer.el (timer-event-handler): Don't run if canceled.
Fixes: debbugs:17392
2014-05-18 08:58:30 -04:00
Eli Zaretskii
834511891e Improve documentation of blink-cursor-mode and its customization variables.
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'.
2014-04-13 10:49:23 +03:00
Juanma Barranquero
3ea2c7811b lisp/frame.el (make-frame): Don't quote display name in error message. 2014-03-23 23:11:59 +01:00
Glenn Morris
7ebd57e9d6 Minor doc tweaks for display-*-width, height
* 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.
2014-03-02 17:00:27 -08:00
Juanma Barranquero
5c410a9b80 lisp/frame.el: Remove a couple of obsolete FIXME comments. 2014-03-01 02:32:42 +01:00
Glenn Morris
34dc21db6e Replace "Maintainer: FSF" with the emacs-devel mailing address 2014-02-09 17:34:22 -08:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Eli Zaretskii
bf7bea5de0 Fix bug #14739 with creation of GUI frames from TTY session on Windows.
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.
2013-12-28 13:47:26 +02:00
Martin Rudalics
880e615853 Support resizing frames and windows pixelwise.
* dispextern.h (enum window_part): Add ON_SCROLL_BAR,
ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER.
(struct glyph_matrix): Replace window_left_col and
window_top_line by window_pixel_left and window_pixel_top.
(WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P): Minor
rewrite.
(enum face_id): Add WINDOW_DIVIDER_FACE_ID.
(draw_window_divider, move_it_to, x_draw_right_divider)
(x_draw_bottom_divider, change_frame_size): Add or fix
declarations.
* dispnew.c (change_frame_size_1): Change prototype.
(adjust_glyph_matrix, required_matrix_width)
(adjust_frame_glyphs_for_window_redisplay): Use pixel
values instead of lines and columns.
(marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of
WINDOW_TOTAL_FRINGE_WIDTH.
(handle_window_change_signal, do_pending_window_change)
(init_display): Adjusts calls of change_frame_size.
(change_frame_size, change_frame_size_1): Handle pixelwise
changes.
* frame.c (Qright_divider_width, Qbottom_divider_width): New
Lisp objects.
(set_menu_bar_lines_1, set_menu_bar_lines, make_frame)
(make_terminal_frame, Fmake_terminal_frame, Fframe_parameters)
(x_set_internal_border_width, x_set_vertical_scroll_bars)
(x_set_scroll_bar_width, x_figure_window_size): Handle pixel
values.
(set_frame_param): New function.
(Fframe_text_cols, Fframe_text_lines, Fframe_total_cols)
(Fframe_text_width, Fframe_text_height, Fscroll_bar_width)
(Ffringe_width, Fborder_width, Fright_divider_width)
(Fbottom_divider_width): New functions, defsubr them.
(Fset_frame_height, Fset_frame_width, Fset_frame_size): New
argument pixelwise.
(struct frame_parm_table): New members Qright_divider_width and
Qbottom_divider_width.
(x_set_frame_parameters): Handle parameters for pixelwise sizes.
(x_report_frame_params): Handle Qright_divider_width and
Qbottom_divider_width.
(x_set_right_divider_width, x_set_bottom_divider_width): New
functions.
(frame_resize_pixelwise): New option.
* frame.h (struct frame): Add tool_bar_height, menu_bar_height,
new_pixelwise, right_divider_width and bottom_divider_width;
remove total_lines; rename text_lines, text_cols, new_text_lines
and new_text_cols to text_height, text_width, new_height and
new_width respectively.
(FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and
FRAME_TEXT_WIDTH respectively.
(FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT)
(FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH)
(FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH): New
macros.
(FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
(FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH)
(SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT)
(FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS)
(FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros.
(FRAME_TOTAL_COLS_ARG): Remove macro.
* fringe.c (draw_fringe_bitmap_1): Handle right divder.
* gtkutil.c (xg_frame_resized, xg_frame_set_char_size)
(x_wm_set_size_hint): Handle frame pixel sizes.
* indent.c (compute_motion, Fcompute_motion): Call
window_body_width instead of window_body_cols.
* keyboard.c (Qright_divider, Qbottom_divider): New symbols.
(make_lispy_position): Handle right and bottom dividers.
(Fsuspend_emacs): Pixelize call of change_frame_size.
* keyboard.h: Extern Qright_divider, Qbottom_divider.
* lisp.h: Extern set_frame_param.
* nsfns.m (x_set_tool_bar_lines): Pixelize call of
x_set_window_size.
(Fx_create_frame): Add entry for vertical_drag_cursor.  Pixelize
call of change_frame_size.
* nsterm.h (struct ns_output): Add vertical_drag_cursor.
* nsterm.m (ns_update_window_end): Optionally draw right
divider.
(x_set_window_size): Add argument pixelwise.  Call
check_frame_size and change_frame_size with pixelwise zero.
(ns_draw_window_divider): New function.
(ns_redisplay_interface): Add ns_draw_window_divider.
(updateFrameSize:): Call change_frame_size with pixelwise zero.
(x_new_font): Call x_set_window_size with pixelwise zero.
* print.c (print_object): For a window print its sequence
number again.
* term.c (Fresume_tty): Pixelize call of change_frame_size.
* w32fns.c (x_set_mouse_color): Handle vertical drag cursor.
(x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
(w32_createwindow): Use scroll bar area width.
(w32_wnd_proc): Handle bottom divider width.  For
WM_WINDOWPOSCHANGING return zero if we resize pixelwise.
(Fx_create_frame): Default divider width parameters.  Caclulate
sizes pixelwise.  Add vertical drag cursor support.
(x_create_tip_frame): Default divider widths to zero.  Pixelize
call to change_frame_size.
(Fx_show_tip): Add handling of divider widths.  Pixelize window
position and sizes.
(Fw32_frame_rect): New function.
(frame_parm_handler w32_frame_parm_handlers): Add divider
widths.
(Vx_window_vertical_drag_shape): Add variable.
* w32inevt.c (resize_event, maybe_generate_resize_event):
Pixelize change_frame_size calls.
* w32menu.c (set_frame_menubar): Pixelize x_set_window_size
call.
* w32term.c (w32_draw_window_divider): New function.
(x_update_window_end): Handle right divider.
(w32_draw_fringe_bitmap, x_scroll_run)
(w32_set_vertical_scroll_bar): Pixelize scrollbar widths.
(w32_read_socket): Handle SIZE_MAXIMIZED separately.  Calculate
new frame sizes pixelwise.
(x_new_font): Pixelize call to x_set_window_size.
(x_check_fullscreen): Pixelize call to change_frame_size.
(x_set_window_size_1, x_set_window_size): New argument
pixelwise.  Calculate pixelwise.
(x_wm_set_size_hint): Use scroll bar area width.
(w32_redisplay_interface): Add w32_draw_window_divider.
* w32term.h (struct w32_output): Add vertical drag cursor.
* widget.c (set_frame_size, update_wm_hints)
(EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of
change_frame_size.
(EmacsFrameSetCharSize): Pixelize call of x_set_window_size.
* window.c (sequence_number): Restore.
(Fwindow_pixel_width, Fwindow_pixel_height)
(Fwindow_mode_line_height, Fwindow_header_line_height)
(window_pixel_to_total, Frun_window_scroll_functions)
(Fset_window_new_pixel, window_resize_apply_total)
(Fwindow_resize_apply_total): New functions.
(window_body_height, window_body_width): Rename from
window_body_lines.  New argument PIXELWISE.  Calculate
pixelwise.
(Fwindow_body_height, Fwindow_body_width): New argument
PIXELWISE.
(coordinates_in_window, window_relative_x_coord): Use window's
pixel width instead of total width.
(replace_window, recombine_windows): Initialize pixel values.
(resize_root_window, resize_frame_windows, grow_mini_window)
(shrink_mini_window): New argument PIXELWISE.  Calculate
pixelwise.
(Fdelete_other_windows_internal, adjust_window_margins)
(window_resize_check, window_resize_apply)
(Fdelete_window_internal, Fresize_mini_window_internal)
(Fwindow_text_width, Fwindow_text_height): Calculate pixelwise.
(check_frame_size): Rename arguments.  New argument PIXELWISE.
Calculate pixelwise.
(set_window_buffer): Make samebuf bool.  Run configuration change
hook only if buffer changed.
(Fset_window_buffer): Rewrite doc-string.
(make_window): Initialize new_pixel slot.
(Fwindow_resize_apply): Check pixel size of root window.
(Fsplit_window_internal): Call 2nd argument pixel_size.
Calculate pixelwise.
(Fscroll_left, Fscroll_right): Call window_body_width instead of
window_body_cols.
(save_window_data): New slots frame_text_width,
frame_text_height, frame_menu_bar_height, frame_tool_bar_height.
(saved_window): New slots pixel_left, pixel_top, pixel_height,
pixel_width.
(Fcurrent_window_configuration, Fset_window_configuration)
(save_window_save, compare_window_configurations): Handle new
slots in save_window_data and saved_window.
(Fset_window_scroll_bars): Fix doc-string.
(window_resize_pixelwise): New variable.
(coordinates_in_window, Fcoordinates_in_window_p): Handle
dividers.
(make_parent_window): Adjust sequence_number.
(Fwindow_right_divider_width, Fwindow_bottom_divider_width): New
functions.
* window.h (struct window): New members new_pixel, pixel_left,
pixel_top, pixel_width, pixel_height.  Restore sequence_number.
(wset_new_pixel): New function.
(WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT)
(MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT)
(WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE)
(WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE)
(WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE)
(WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS)
(WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH)
(WINDOW_BOTTOM_DIVIDER_WIDTH): New macros.
(WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH.
(WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros.
(WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y)
(WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P)
(WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X)
(WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS)
(WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT):
Rewrite.
(resize_frame_windows, grow_mini_window, shrink_mini_window)
(window_body_width, check_frame_size): Adapt external declarations.
* xdisp.c (last_max_ascent): New integer.
(window_text_bottom_y): Handle bottom divider.
(window_box_width, window_box_height): Calculate pixelwise.
(get_glyph_string_clip_rects): Handle right divider.
(remember_mouse_glyph): When windows are resized pixelwise
proceed with width and height set to 1.
(init_iterator): Use WINDOW_PIXEL_WIDTH instead of
WINDOW_TOTAL_WIDTH.
(move_it_to): Calculate and return maximum x position
encountered.
(Fwindow_text_pixel_size): New function.
(resize_mini_window, update_tool_bar): Calculate pixelwise.
(tool_bar_lines_needed): Rename to tool_bar_height.  Calculate
pixelwise.
(Ftool_bar_lines_needed): Rename to Ftool_bar_height.  Calculate
pixelwise.
(redisplay_tool_bar): Calculate pixelwise.
(redisplay_window): Calculate pixelwise.  Handle dividers.
(draw_glyphs, x_clear_end_of_line, note_mouse_highlight)
(x_draw_vertical_border): Handle dividers.
(define_frame_cursor1): Handle vertical drag cursor.
(x_draw_right_divider, x_draw_bottom_divider): New functions.
(expose_window): Calculate pixelwise.  Handle dividers.
(init_xdisp): Initialize pixel values.
* xfaces.c (Qwindow_divider): New face.
(realize_basic_faces): Realize it.
* xfns.c (x_set_mouse_color): Handle vertical_drag_cursor.
(x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
(x_set_scroll_bar_default_width): Default actual width to 16.
(Fx_create_frame): Set sizes pixelwise.
(x_create_tip_frame): Default divider widths to zero.  Pixelize
call of change_frame_size.
(Fx_show_tip): Handle divider widths.  Initial pixel position
and sizes.
(frame_parm_handler x_frame_parm_handlers): Add divider widths.
(Vx_window_vertical_drag_shape): New option.
* xmenu.c (free_frame_menubar): Pixelize call of
x_set_window_size.
* xterm.c (x_draw_window_divider): New function.
(x_update_window_end): Optionally draw right divider.
(x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create)
(XTset_vertical_scroll_bar): Use scroll bar pixel width.
(handle_one_xevent, x_new_font): Calculate pixelwise.
(x_set_window_size_1, x_set_window_size): New argument
pixelwise.  Calculate pixelwise.
(x_wm_set_size_hint): Pixelize call of check_frame_size.
(struct x_redisplay_interface): Add x_draw_window_divider.
* xterm.h (struct x_output): Add vertical_drag_cursor.

* cus-start.el (frame-resize-pixelwise)
(window-resize-pixelwise): New entries.
* emacs-lisp/debug.el (debug): Use window-total-height instead
of window-total-size.
* frame.el (tool-bar-lines-needed): Defalias to tool-bar-height.
* help.el (describe-bindings-internal): Call help-buffer
(temp-buffer-max-width): New option.
(resize-temp-buffer-window, help-window-setup)
(with-help-window): Rewrite.
* mouse.el (mouse-drag-line): Rewrite.  Add key bindings for
dragging dividers.
* window.el (frame-char-size, window-min-pixel-height)
(window-safe-min-pixel-height, window-safe-min-pixel-width)
(window-min-pixel-width, window-safe-min-pixel-size)
(window-combination-p, window-safe-min-size)
(window-resizable-p, window--size-to-pixel)
(window--pixel-to-size, window--resize-apply-p): New functions.
(window-safe-min-height): Fix doc-string.
(window-size, window-min-size, window--min-size-1)
(window-sizable, window-sizable-p, window--min-delta-1)
(window-min-delta, window--max-delta-1, window-max-delta)
(window--resizable, window--resizable-p, window-resizable)
(window-full-height-p, window-full-width-p, window-at-side-p)
(window--in-direction-2, window-in-direction)
(window--resize-reset-1, window--resize-mini-window)
(window-resize, window-resize-no-error)
(window--resize-child-windows-normal)
(window--resize-child-windows, window--resize-siblings)
(window--resize-this-window, window--resize-root-window)
(window--resize-root-window-vertically)
(adjust-window-trailing-edge, enlarge-window, shrink-window)
(maximize-window, minimize-window, delete-window)
(quit-restore-window, window-split-min-size, split-window)
(balance-windows-2, balance-windows)
(balance-windows-area-adjust, balance-windows-area)
(window--state-get-1, window-state-get, window--state-put-1)
(window--state-put-2, window-state-put)
(display-buffer-record-window, window--display-buffer): Make
functions handle pixelwise sizing of windows.
(display-buffer--action-function-custom-type)
(display-buffer-fallback-action): Add
display-buffer-in-previous-window.
(display-buffer-use-some-window): Resize window to height it had
before.
(fit-window-to-buffer-horizontally): New option.
(fit-frame-to-buffer): Describe new values.
(fit-frame-to-buffer-bottom-margin): Replace with
fit-frame-to-buffer-margins.
(window--sanitize-margin): New function.
(fit-frame-to-buffer, fit-window-to-buffer): Rewrite completely
using window-text-pixel-size.
2013-11-30 10:25:31 +01:00
Stefan Monnier
623891e5c6 * lisp/frame.el (handle-focus-in, handle-focus-out): Add missing
interactive spec.
2013-11-25 10:05:25 -05:00
Stefan Monnier
511fa0d396 * lisp/frame.el (handle-focus-in, handle-focus-out): Move from frame.c.
Remove blink-cursor code.
(blink-cursor-timer-function, blink-cursor-suspend): Don't special-case GUIs.
(blink-cursor-mode): Use focus-in/out-hook.
* src/frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el.
(syms_of_frame): Don't defsubr them.
2013-11-24 21:41:02 -05:00
Xue Fuqiao
d40a46d75b Mention the optional ‘display’ argument in doc strings.
* frame.el (display-screens, display-pixel-height)
(display-pixel-width, display-mm-width, display-backing-store)
(display-save-under, display-planes, display-color-cells)
(display-visual-class, display-monitor-attributes-list): Mention
the optional ‘display’ argument in doc strings.
2013-10-22 16:07:51 +08:00
Eli Zaretskii
ffe759ebe3 Fix display-mouse-p and display-popup-menus-p for TTYs; menus in Custom work. 2013-10-02 21:44:40 +03:00
Glenn Morris
4bd4c0afe0 * frame.el (x-display-name): Declare. 2013-09-17 20:58:26 -07:00
Glenn Morris
e740f9d245 Silence some --without-x compilation warnings
* custom.el (x-get-resource): Declare.

* frame.el (x-display-grayscale-p): Declare.

* simple.el (font-info): Declare.

* window.el (x-display-pixel-height, tool-bar-lines-needed): Declare.
(fit-frame-to-buffer): Explicit error if --without-x.
(mouse-autoselect-window-select): Silence compiler.
2013-09-17 19:50:04 -07:00
Dmitry Antipov
fcd42c11c0 Unify Fx_focus_frame between all ports.
* 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.
2013-09-13 20:46:18 +04:00
Glenn Morris
2e4a0a9071 Further tweak previous change 2013-08-31 18:52:54 -07:00
Glenn Morris
79a15a36a9 Tweak previous change 2013-08-31 18:32:41 -07:00
Glenn Morris
e73c3a0d89 * lisp/frame.el (frame-background-mode): Doc fix.
Fixes: debbugs:15226
2013-08-31 18:29:50 -07:00
Xue Fuqiao
916119ec9e * doc/lispref/frames.texi (Display Feature Testing): Add indexes. 2013-08-13 10:45:12 +08:00
Dmitry Antipov
c8c2aca8d0 * frame.el (get-other-frame): Tiny cleanup. 2013-08-06 14:59:39 +04:00
Dmitry Antipov
12b4c0ea03 Do not call to `selected-frame' where it is assumed by default.
Affected functions are `raise-frame', `redraw-frame',
`frame-first-window', `frame-terminal' and `delete-frame'.
* lisp/calendar/appt.el (appt-disp-window):
* lisp/epg.el (epg-wait-for-completion):
* lisp/follow.el (follow-delete-other-windows-and-split)
(follow-avoid-tail-recenter):
* lisp/international/mule.el (set-terminal-coding-system):
* lisp/mail/rmail.el (rmail-mail-return):
* lisp/net/newst-plainview.el (newsticker--buffer-set-uptodate):
* lisp/progmodes/f90.el (f90-add-imenu-menu):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar-toggle):
* lisp/server.el (server-switch-buffer):
* lisp/simple.el (delete-completion-window):
* lisp/talk.el (talk):
* lisp/term/xterm.el (terminal-init-xterm-modify-other-keys)
(xterm-turn-on-modify-other-keys, xterm-remove-modify-other-keys):
* lisp/vc/ediff-util.el (ediff-status-info, ediff-show-diff-output):
* lisp/vc/ediff.el (ediff-documentation): Related users changed.
* lisp/frame.el (selected-terminal): Remove the leftover.
2013-08-05 14:35:55 +04:00
Eli Zaretskii
35a89bdd27 Fix infloop on MS-Windows when initial frame lacks minibuffer.
lisp/frame.el (frame-notice-user-settings): Avoid inflooping when the
 initial frame is minibuffer-less.  (Bug#14841)
2013-07-29 19:34:53 +03:00
Paul Eggert
02c66599e3 Spelling fixes. 2013-07-20 21:22:33 -07:00
Juanma Barranquero
945c5bb194 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
* lisp/frame.el (blink-cursor-timer-function, blink-cursor-suspend):
  Add check for W32.
* src/keyboard.c (kbd_buffer_get_event):
* src/w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
2013-07-18 18:50:05 +02:00
Jan Djärv
18c26d81cd Stop cursor blink after blink-cursor-blinks (10), stop timers when not blinking.
* 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.
2013-07-16 13:41:06 +02:00
YAMAMOTO Mitsuharu
cf13177e99 Add multi-monitor support on W32. 2013-07-04 19:25:54 +09:00
Glenn Morris
f20def1f2e Fix some declarations
* lisp/faces.el (internal-face-x-get-resource):
* lisp/frame.el (ns-display-monitor-attributes-list):
* lisp/calc/calc-aent.el (math-to-radians-2):
* lisp/cedet/ede/locate.el (cedet-cscope-version-check)
(cedet-cscope-support-for-directory):
* lisp/cedet/semantic/grammar.el (semantic-grammar-wy--install-parser):
* lisp/emacs-lisp/package.el (tar-header-name, tar-header-link-type):
Fix declarations.
2013-05-10 19:27:28 -07:00
Jan Djärv
4465bfb465 Implement display-monitor-attributes-list for NS.
* lisp/frame.el (display-monitor-attributes-list): Add NS case.
(ns-display-monitor-attributes-list): Declare.

* src/nsfns.m: Include IOGraphicsLib.h if Cocoa.
(Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
(MonitorInfo): New struct.
(free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
(Fns_display_monitor_attributes_list): New functions.
(display-usable-bounds): Remove.
(syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
Qsource.
2013-05-09 17:17:38 +02:00
YAMAMOTO Mitsuharu
4e3f92301d Add multi-monitor support on X11. 2013-05-07 10:12:22 +09:00
Dmitry Antipov
ebb19708e7 Do not set x-display-name until X connection is established.
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.
2013-04-06 18:06:39 +04:00
Juri Linkov
64ced39437 * lisp/frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
Use fullboth as an alias for fullscreen.  Suggested by Jan Djärv in
<http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00203.html>.
2013-01-31 01:50:11 +02:00
Juri Linkov
c84b08818d * lisp/frame.el: Bind f10' in esc-map' to `toggle-frame-maximized'
in addition to existing separate binding `meta f10' in `global-map'.

Fixes: debbugs:13484
2013-01-21 12:45:20 +02:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Juri Linkov
a45b76475e * lisp/frame.el (frame-maximization-style): Remove user option.
(cycle-frame-maximized): Remove function.
(toggle-frame-maximized): Rewrite and bind to M-<f10>.
(toggle-frame-fullscreen): New command bound to <f11> instead of
`toggle-frame-maximized'.
http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00703.html
2012-12-27 22:09:45 +02:00
Sam Steingold
37f38bca1d * lisp/frame.el (frame-maximization-style): New user option.
(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>.
2012-12-12 09:43:45 -05:00
Daniel Colascione
1a6e7e3807 Unbreak starting an X11 frame from a non-X11 Emacs daemon 2012-10-19 19:42:02 -08:00
Daniel Colascione
2ab329f3b5 Merge from trunk 2012-09-17 04:07:36 -08:00
Daniel Colascione
efc3dd3ccc Detect window-system from display name 2012-09-17 03:55:05 -08:00
Daniel Colascione
0fda9b750e Implement cygw32
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.
2012-09-17 03:55:02 -08:00
Chong Yidong
865fe16fd2 Update docstrings and comments to use "init file" terminology.
* bookmark.el (bookmark-bmenu-toggle-filenames): Doc fixes.
* comint.el (comint-prompt-read-only):
* custom.el (defcustom):
* hi-lock.el (hi-lock-mode):
* ibuffer.el (ibuffer-formats):
* ielm.el (ielm-prompt-read-only):
* novice.el (disable-command):
* saveplace.el (toggle-save-place):
* speedbar.el (speedbar-supported-extension-expressions):
* startup.el (auto-save-list-file-prefix, init-file-user)
(after-init-hook, inhibit-startup-echo-area-message):
* strokes.el (strokes-help):
* time-stamp.el (time-stamp):
* calendar/calendar.el (calendar, diary-file):
* calendar/diary-lib.el (diary-mail-entries, diary)
(diary-list-entries-hook):
* calendar/holidays.el (holidays, calendar-holidays):
* calendar/lunar.el (lunar-phases):
* calendar/solar.el (sunrise-sunset):
* emulation/edt.el (edt-load-keys):
* emulation/viper.el (viper-mode):
* eshell/em-alias.el (eshell-command-aliases-list):
* eshell/esh-util.el (eshell-convert-numeric-arguments):
* international/ogonek.el (ogonek-information):
* net/tramp-cmds.el (tramp-bug):
* net/quickurl.el (quickurl-reread-hook-postfix):
* play/decipher.el (decipher-font-lock-keywords):
* progmodes/cc-styles.el (c-set-style):
* progmodes/idlw-shell.el (idlwave-shell-prompt-pattern):
* progmodes/inf-lisp.el (inferior-lisp-prompt):
* progmodes/octave-mod.el (octave-mode):
* progmodes/sql.el (sql-mode, sql-interactive-mode, sql-password):
* progmodes/verilog-mode.el (verilog-read-defines):
* textmodes/two-column.el (2C-mode): Likewise.
2012-09-17 13:41:04 +08:00
Chong Yidong
3424a4f61e * frame.el (window-system-version): Mark as obsolete.
See http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00412.html
2012-09-06 17:29:32 +08:00
Glenn Morris
2a1e24765b Replace version 24.2 with 24.3 where appropriate (hopefully) 2012-08-15 09:29:11 -07:00
Chong Yidong
f2045622a5 Extract better font information from the GTK >= 3.2 font chooser.
* gtkutil.c (xg_get_font): Rename from xg_get_font_name.  When
using the new font chooser, use gtk_font_chooser_get_font_desc to
extract the font descriptor instead of just the font name.  In
that case, return a font spec instead of a string.
(x_last_font_name): Move to this file from xfns.c.

* xfns.c (Fx_select_font): The return value can also be a font
spec.  Move x_last_font_name management to gtkutil.c.

* xfaces.c: Make font weight and style symbols non-static.

* lisp/frame.el (set-frame-font): Accept font objects.
2012-08-15 15:58:34 +08:00
Stefan Monnier
f58e0fd503 Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
Chong Yidong
3726946669 Remove incorrect uses of "modeline".
* ansi-color.el (ansi-color-faces-vector): Change default faces.

* cus-edit.el (mode-line):
* dframe.el (dframe-mouse-hscroll):
* emacs-lisp/re-builder.el:
* emacs-lisp/easy-mmode.el (define-minor-mode):
* frame.el (set-frame-name):
* help.el (lookup-minor-mode-from-indicator):
* net/rcirc.el (rcirc-activity-string, rcirc-short-buffer-name):
* progmodes/cc-cmds.el (c-toggle-auto-newline)
(c-toggle-hungry-state):
* progmodes/antlr-mode.el (antlr-language-alist):
* progmodes/idlw-shell.el (idlwave-shell-electric-stop-line-face):
* progmodes/vhdl-mode.el (vhdl-mode):
* progmodes/which-func.el (which-func, which-func-cleanup-function):
* term/ns-win.el (ns-face-at-pos):
* term/sup-mouse.el (sup-mouse-report):
* textmodes/flyspell.el (flyspell-mode-line-string):
* textmodes/ispell.el (ispell-highlight-face):
* textmodes/reftex-global.el:
* vc/vc-arch.el (vc-arch-mode-line-string):
* vc/vc-cvs.el (vc-cvs-mode-line-string):
* vc/vc-git.el (vc-git-mode-line-string):
* vc/vc-hooks.el (vc-display-status)
(vc-default-mode-line-string):
* vc/vc-mtn.el (vc-mtn-mode-line-string): Doc fixes.

* dired.el (dired-sort-set-mode-line): Rename from
dired-sort-set-modeline.  All callers changed.

* foldout.el (foldout-mode-line-string): Rename from
foldout-modeline-string.  All callers changed.
(foldout-update-mode-line): Rename from foldout-update-modeline.

* strokes.el (strokes-lighter): Rename from
strokes-modeline-string.

* subr.el (redraw-modeline): Make into obsolete alias.

* calendar/timeclock.el (timeclock-mode-line-display): Rename from
timeclock-modeline-display.  Make old name an alias.
(timeclock-update-mode-line): Likewise.  All callers changed.
(timeclock-mode-line-display): No need to check before using
add-hook.
(timeclock-relative, timeclock-day-over-hook)
(timeclock-use-elapsed, timeclock-mode-string)
(timeclock-mode-line-display): Doc fix, "modeline" -> "mode line".

* emulation/crisp.el (crisp-mode-mode-line-string): Rename from
crisp-mode-modeline-string.

* erc-track.el (erc-track, erc-track-faces-priority-list)
(erc-track-faces-normal-list, erc-track-find-face)
(erc-track-modified-channels): Fix modeline -> mode line in docs.

* eshell/esh-mode.el (eshell-status-in-mode-line): Rename from
eshell-status-in-modeline.

* org-clock.el (org-clock-string-limit)
(org-clock-modeline-total, org-clock-task-overrun-text)
(org-clock-mode-line-entry): Doc fix, "modeline" -> "mode line".

* play/solitaire.el (solitaire-build-mode-line): Rename from
solitaire-build-modeline.  All callers changed.

* play/zone.el (zone-hiding-mode-line): Rename from
zone-hiding-modeline.  All callers changed.
(zone): Remove unusued `modeline-hidden-level' property.

* progmodes/xscheme.el (xscheme-mode-line-initialize): Rename from
xscheme-modeline-initialize.  All callers changed.

* textmodes/sgml-mode.el (html-face-tag-alist)
(html-tag-face-alist): Use mode-line face instead of obsolete
alias modeline.

Fixes: debbugs:10329
2012-06-02 18:56:09 +08:00
Stefan Monnier
e5bd0a2895 Move define-obsolete-variable-alias before the var's definition.
* lisp/vc/log-edit.el (vc-comment-ring, vc-comment-ring-index):
* lisp/tooltip.el (tooltip-hook):
* lisp/textmodes/reftex-toc.el (reftex-toc-map):
* lisp/textmodes/reftex-sel.el (reftex-select-label-map)
(reftex-select-bib-map):
* lisp/textmodes/reftex-index.el (reftex-index-map)
(reftex-index-phrases-map):
* lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map):
* lisp/progmodes/meta-mode.el (meta-mode-map):
* lisp/novice.el (disabled-command-hook):
* lisp/loadhist.el (unload-hook-features-list):
* lisp/frame.el (blink-cursor):
* lisp/files.el (find-file-not-found-hooks, write-file-hooks)
(write-contents-hooks):
* lisp/emulation/tpu-edt.el (GOLD-map):
* lisp/emacs-lock.el (emacs-lock-from-exiting):
* lisp/emacs-lisp/generic.el (generic-font-lock-defaults):
* lisp/emacs-lisp/chart.el (chart-map):
* lisp/dos-fns.el (register-name-alist):
* lisp/dired-x.el (dired-omit-files-p):
* lisp/desktop.el (desktop-enable):
* lisp/cus-edit.el (custom-mode-hook):
* lisp/buff-menu.el (buffer-menu-mode-hook):
* lisp/bookmark.el (bookmark-read-annotation-text-func)
(bookmark-exit-hooks):
* lisp/allout.el (allout-mode-deactivate-hook)
(allout-exposure-change-hook, allout-structure-added-hook)
(allout-structure-deleted-hook, allout-structure-shifted-hook):
* lisp/dirtrack.el (dirtrack-toggle, dirtrackp, dirtrack-debug-toggle)
(dirtrack-debug): Move call to define-obsolete-variable-alias so it
comes before the corresponding variable's definition.
2012-05-12 23:05:06 -04:00
Glenn Morris
94ee8db5e0 * lisp/frame.el (automatic-hscrolling): Make this alias obsolete. 2012-04-16 14:41:38 -04:00