aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/frames.texi (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Improve doc of x-begin-dragPo Lu2022-04-071-7/+8
| | | | | * doc/lispref/frames.texi (Drag and Drop): Fix typos and clarify meaning of XdndActionPrivate.
* Improve behavior of dragging text to windows on top of framesPo Lu2022-04-041-6/+9
| | | | | | | | | | | | | | * doc/lispref/frames.texi (Drag and Drop): Document new meaning of `return-frame' in `x-begin-drag'. * lisp/mouse.el (mouse-drag-and-drop-region): Use `now' when calling `x-begin-drag'. * src/xfns.c (Fx_begin_drag): Update doc string. * src/xterm.c (x_dnd_begin_drag_and_drop): Accept return_frame as a Lisp_Object and handle Qnow correctly. (XTmouse_position): Ignore tooltip frames when processing `drag-source'. (syms_of_xterm): New defsym `now'. * src/xterm.h: Update prototypes.
* Make dragging stuff to a window above a frame workPo Lu2022-04-031-4/+12
| | | | | | | | | | | | | | | * doc/lispref/frames.texi (Mouse Tracking): * etc/NEWS: Announce new `drag-source' value of `track-mouse'. * lisp/mouse.el (mouse-drag-and-drop-region): Use new value of `track-mouse' during interprogram drag and drop. * src/keyboard.c (make_lispy_position): Handle nil values of f correctly. * src/xdisp.c (define_frame_cursor1): Ignore if `drag-source' as well. (syms_of_xdisp): New defsym `drag-source'. * src/xterm.c (XTmouse_position): Implement `drag-source'. (mouse_or_wdesc_frame): Likewise.
* Fix doc of `gui-get-selection' as to what is really valid as `data'Po Lu2022-03-281-5/+5
| | | | | | * doc/lispref/frames.texi (Window System Selections): * lisp/select.el (gui-set-selection): Don't say `data' can be a cons or list of two integers, since that's not supported.
* Allow dragging files from dired to windows on the same framePo Lu2022-03-251-3/+5
| | | | | | | | | | | | | | * doc/lispref/frames.texi (Drag and Drop): Document new parameter to `x-begin-drag'. * lisp/dired.el (dired-mouse-drag): Utilize new parameter. * lisp/term/haiku-win.el (x-begin-drag): Add new parameter. * src/xfns.c (Fx_begin_drag): New parameter `allow-current-frame'. Fix typo and update doc string. * src/xterm.c (x_dnd_get_window_proto): Respect `x_dnd_allow_current_frame'. (x_dnd_begin_drag_and_drop): New parameter `allow_current_frame'. * src/xterm.h: Update prototypes.
* Allow dragging and dropping multiple actionsPo Lu2022-03-241-0/+5
| | | | | | | | | | | | * doc/lispref/frames.texi (Drag and Drop): Document new meaning of `action'. * lisp/term/haiku-win.el (x-begin-drag): Correct for new meaning of `action'. * src/xfns.c (Fx_begin_drag): Handle new alist meaning of `action'. * src/xterm.c (x_dnd_begin_drag_and_drop): New parameters `ask_action_list', `ask_action_names' and `n_ask_actions'. * src/xterm.h: Update prototypes.
* Improve DND documentationPo Lu2022-03-231-1/+4
| | | | | | * doc/lispref/frames.texi (Drag and Drop): * src/xfns.c (Fx_begin_drag): Document meaning of `XdndActionPrivate'.
* Implement cross-program drag-and-drop on HaikuPo Lu2022-03-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/frames.texi (Drag and Drop): Fix documentation of `x-begin-drag' to match actual function arity. * lisp/term/haiku-win.el (haiku-dnd-selection-value): New variable. (haiku-dnd-selection-converters): New variable. (haiku-dnd-convert-string): New function. (gui-backend-get-selection, gui-backend-set-selection): Handle XdndSelection specially. (x-begin-drag): New function. * src/haiku_select.cc (be_create_simple_message) (be_add_message_data): New functions. * src/haiku_support.cc (WAIT_FOR_RELEASE): New message type. (class EmacsView, MouseUp): If waiting for release, reply and drop event. (be_drag_message, be_drag_message_thread_entry): New functions. * src/haiku_support.h: Update prototypes. * src/haikuselect.c (lisp_to_type_code, haiku_lisp_to_message) (Fhaiku_drag_message): New functions. (syms_of_haikuselect): Define new subr. * src/haikuselect.h: Update prototypes.
* * doc/lispref/frames.texi (x-begin-drag): Improve wording.Po Lu2022-03-161-4/+4
|
* Fix last change in frames.texiEli Zaretskii2022-03-161-10/+10
| | | | | * doc/lispref/frames.texi (Drag and Drop): Improve and clarify the wording.
* Better handle drag-and-drop from one Emacs frame to anotherPo Lu2022-03-161-1/+7
| | | | | | | | | | | | | | * doc/lispref/frames.texi (Drag and Drop): Document new parameter `return-frame' to `x-begin-drag'. * lisp/mouse.el (mouse-drag-and-drop-region): Utilize new feature. * src/xfns.c (Fx_begin_drag): New parameter `return-frame'. * src/xterm.c (x_dnd_begin_drag_and_drop): New parameter return_frame_p. (handle_one_xevent): Set new flags and return frame whenever appropriate. * src/xterm.h: Update prototypes.
* Add support for dragging text from Emacs to other programsPo Lu2022-03-161-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This still probably needs some more protection from malfunctioning clients which delete windows at random, but I don't know if that's a problem in practice. * doc/emacs/frames.texi (Drag and Drop): * doc/lispref/frames.texi (Drag and Drop): Document new features. * etc/NEWS: Announce new function `x-begin-drag' and new user option `mouse-drag-and-drop-region-cross-program'. * lisp/mouse.el (mouse-drag-and-drop-region-cross-program): New user option. (x-begin-drag): New variable declaration. (mouse-drag-and-drop-region): If the mouse moves out of an Emacs frame, begin a window system drag. * lisp/x-dnd.el (x-dnd-handle-xdnd): Remove left-over debugging code. * src/xfns.c (Fx_set_mouse_absolute_pixel_position): Fix indentation of opening paren. (Fx_begin_drag): New function. (syms_of_xfns): Define new subr. * src/xselect.c (x_timestamp_for_selection): New function. * src/xterm.c (X_DND_SUPPORTED_VERSION): New preprocessor declaration. (x_dnd_get_window_proto, x_dnd_send_enter, x_dnd_send_position) (x_dnd_send_leave, x_dnd_send_drop, x_set_dnd_targets) (x_dnd_begin_drag_and_drop): New functions. (handle_one_xevent): Handle drag-and-drop motion and button events when active. (x_free_frame_resources): If f is the DND source, stop drag-and-drop. (x_term_init): Intern new atoms. (syms_of_xterm): New symbol QXdndSelection. * src/xterm.h (struct x_display_info): New atoms Xatom_XdndAware, Xatom_XdndSelection, Xatom_XdndTypeList, Xatom_XdndActionCopy, Xatom_XdndActionMove, Xatom_XdndActionLink, Xatom_XdndActionAsk, Xatom_XdndActionPrivate, Xatom_XdndActionList, Xatom_XdndActionDescription, Xatom_XdndProxy, Xatom_XdndEnter, Xatom_XdndPosition, Xatom_XdndStatus, Xatom_XdndLeave, Xatom_XdndDrop, and Xatom_XdndFinished.
* Add support for _NET_WM_STATE_SHADEDPo Lu2022-02-241-0/+5
| | | | | | | | | | | | | | | | | | | * doc/lispref/frames.texi (Management Parameters): Document new frame parameter `shaded'. * etc/NEWS: Announce new frame parameter. * src/frame.c (frame_parms) [HAVE_X_WINDOWS]: New frame parameter `shaded'. (syms_of_frame): New symbol `shaded'. * src/xfns.c (x_frame_parm_handlers): Install handler `x_set_shaded'. * src/xterm.c (x_set_shaded): New frame parameter handler. (x_get_current_wm_state): New parameter `shaded'. All callers changed. (x_net_wm_state): (x_handle_net_wm_state): Handle shaded state. (x_term_init): Intern new atom `shaded'. * src/xterm.h: Update prototypes.
* Add background transparency support for GTK+CairoHåkon Flatval2022-01-301-0/+10
|
* Fix unrelated help text tooltips if a popup is shown during the delayPo Lu2022-01-291-0/+7
| | | | | | | | | | | | * doc/lispref/frames.texi (Pop-Up Menus): Document new hook. * etc/NEWS: Announce `x-pre-popup-menu-hook'. * lisp/tooltip.el (tooltip-mode): Make sure `tooltip-hide' is run before any popup menu is displayed to prevent unrelated help text from obscuring the popup menu if it pops up during the tooltip delay. * src/menu.c (x_popup_menu_1): Run said hook right before the popup menu is displayed. (syms_of_menu): New hook `x-pre-popup-menu-hook'.
* Find a way to make lowering frames work on HaikuPo Lu2022-01-151-4/+2
| | | | | | | * doc/lispref/frames.texi (Raising and Lowering): Document that lowering frames is now supported on Haiku. * src/haikuterm.c (haiku_frame_raise_lower): Implement a hack to lower frames.
* Minor improvements for 'pgtk' documentationEli Zaretskii2022-01-071-0/+2
| | | | | | | | | | * src/dispnew.c (syms_of_display) <initial-window-system> <window-system>: * src/frame.c (Fwindow_system): * doc/lispref/display.texi (Defining Faces, Window Systems): * doc/lispref/frames.texi (Frames): Mention/explain 'pgtk'/'haiku'. * doc/lispref/commands.texi (Misc Events): Fix @example and markup.
* Find a way to make restacking frames work on HaikuPo Lu2022-01-041-2/+1
| | | | | | | | | | | | | * doc/lispref/frames.texi (Raising and Lowering): Update documentation to reflect that restacking frames is now supported on Haiku. * lisp/frame.el (haiku-frame-restack): New declaration. (frame-restack): Use `haiku-frame-restack' on Haiku. * src/haiku_support.cc (BWindow_send_behind): * src/haiku_support.h (BWindow_send_behind): * src/haikufns.c (Fhaiku_frame_restack): New functions. (syms_of_haikufns): New subr `haiku-frame-restack'.
* Merge from origin/emacs-28Eli Zaretskii2022-01-011-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4
| * ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
| |
* | Merge from origin/emacs-28Stefan Kangas2021-12-201-14/+16
|\ \ | |/ | | | | | | 16ed9fad2c ; * doc/lispref/frames.texi (Child Frames): Improve wording. f11b996a3c Clarify description of two mouse dragging parameters (Bug#...
| * ; * doc/lispref/frames.texi (Child Frames): Improve wording.Eli Zaretskii2021-12-191-14/+16
| |
| * Clarify description of two mouse dragging parameters (Bug#52537)Martin Rudalics2021-12-191-14/+14
| | | | | | | | | | * doc/lispref/frames.texi (Child Frames): Clarify description of 'top-visible' and 'bottom-visible' parameters (Bug#52537).
* | Merge remote-tracking branch 'origin/master' into feature/pgtkPo Lu2021-12-081-1/+3
|\ \
| * | Improve before-make-frame-hook and after-make-frame-functions docs.Eli Zaretskii2021-12-071-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/frame.el (before-make-frame-hook) (after-make-frame-functions): * doc/lispref/frames.texi (Creating Frames): Mention that these functions will be run for the initial frame only if added to the hook in early-init file. (Bug#38143)
* | | Merge remote-tracking branch 'origin/master' into feature/pgtkPo Lu2021-12-061-4/+5
|\ \ \ | |/ /
| * | Revert "Clarify Creating Frames documentation"Lars Ingebrigtsen2021-12-051-4/+5
| | | | | | | | | | | | | | | | | | This reverts commit 5d7eb2979bc7eec01cff7e7908dbbd3edb38ea0c. The new documentation was incorrect.
* | | Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtkYuuki Harano2021-12-061-5/+4
|\ \ \ | |/ /
| * | Clarify Creating Frames documentationLars Ingebrigtsen2021-12-051-5/+4
| | | | | | | | | | | | | | | | | | * doc/lispref/frames.texi (Creating Frames): Remove misleading explanation -- even if the hooks are set, they won't be run (bug#38143).
* | | Documentation fixes for pgtk portPo Lu2021-12-021-1/+1
|/ / | | | | | | | | | | * doc/lispref/display.texi (Defining Faces): * doc/lispref/frames.texi (Multiple Terminals): Add references to the `pgtk' terminal type.
* | Add support for the Haiku operating system and its window systemPo Lu2021-11-201-14/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * .gitignore: Add binaries specific to Haiku. * Makefie.in (HAVE_BE_APP): New variable. (install-arch-dep): Install Emacs and Emacs.pdmp when using Haiku. * configure.ac: Detect and configure for Haiku and various related configurations. (be-app, be-freetype, be-cairo): New options. (HAVE_BE_APP, HAIKU_OBJ, HAIKU_CXX_OBJ) (HAIKU_LIBS, HAIKU_CFLAGS): New variables. (HAIKU, HAVE_TINY_SPEED_T): New define. (emacs_config_features): Add BE_APP. * doc/emacs/Makefile.in (EMACSSOURCES): Add Haiku appendix. * doc/emacs/emacs.texi: Add Haiku appendix to menus and include it. * doc/emacs/haiku.texi: New Haiku appendix. * doc/lispref/display.texi (Defining Faces, Window Systems): Explain meaning of `haiku' as a window system identifier. (haiku-use-system-tooltips): Explain meaning of system tooltips on Haiku. * doc/lispref/frames.texi (Multiple Terminals): Explain meaning of haiku as a display type. (Frame Layout): Clarify section for Haiku frames. (Size Parameters): Explain limitations of fullwidth and fullheight on Haiku. (Management Parameters): Explain limitations of inhibiting double buffering on builds with Cairo, and the inability of frames with no-accept-focus to receive keyboard input on Haiku. (Font and Color Parameters): Explain the different font backends available on Haiku. (Raising and Lowering): Explain that lowering and restacking frames doesn't work on Haiku. (Child Frames): Explain oddities of child frame visibility on Haiku. * doc/lispref/os.texi (System Environment): Explain meaning of haiku. * etc/MACHINES: Add appropriate notices for Haiku. * etc/NEWS: Document changes. * etc/PROBLEMS: Document font spacing bug on Haiku. * lib-src/Makefile.in: Build be-resources binary on Haiku. (CXX, CXXFLAGS, NON_CXX_FLAGS, ALL_CXXFLAGS) (HAVE_BE_APP, HAIKU_LIBS, HAIKU_CFLAGS): New variables. (DONT_INSTALL): Add be-resources binary if on Haiku. (be-resources): New target. * lib-src/be_resources: Add helper binary for setting resources on the Emacs application. * lib-src/emacsclient.c (decode_options): Set alt_display to "be" on Haiku. * lisp/cus-edit.el (custom-button, custom-button-mouse) (custom-button-unraised, custom-button-pressed): Update face definitions for Haiku. * lisp/cus-start.el: Add haiku-debug-on-fatal-error and haiku-use-system-tooltips. * lisp/faces.el (face-valid-attribute-values): Clarify attribute comment for Haiku. (tool-bar): Add appropriate toolbar color for Haiku. * lisp/frame.el (haiku-frame-geometry) (haiku-mouse-absolute-pixel-position) (haiku-set-mouse-absolute-pixel-position) (haiku-frame-edges) (haiku-frame-list-z-order): New function declarations. (frame-geometry, frame-edges) (mouse-absolute-pixel-position) (set-mouse-absolute-pixel-position) (frame-list-z-order): Call appropriate window system functions on Haiku. (display-mouse-p, display-graphic-p) (display-images-p, 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): Update type tests for Haiku. * lisp/international/mule-cmds.el (set-coding-system-map): Also prevent set-terminal-coding-system from appearing in the menu bar on Haiku. * lisp/loadup.el: Load Haiku-specific files when built with Haiku, and don't rename newly built Emacs on Haiku as BFS doesn't support hard links. * lisp/menu-bar.el (menu-bar-open): Add for Haiku. * lisp/mwheel.el (mouse-wheel-down-event): Expect wheel-up on Haiku. (mouse-wheel-up-event): Expect wheel-down on Haiku. (mouse-wheel-left-event): Expect wheel-left on Haiku. (mouse-wheel-right-event): Expect wheel-right on Haiku. * lisp/net/browse-url.el (browse-url--browser-defcustom-type): Add option for WebPositive. (browse-url-webpositive-program): New variable. (browse-url-default-program): Search for WebPositive. (browse-url-webpositive): New function. * lisp/net/eww.el (eww-form-submit, eww-form-file) (eww-form-checkbox, eww-form-select): Define faces appropriately for Haiku. * lisp/term/haiku-win.el: New file. * lisp/tooltip.el (menu-or-popup-active-p): New function declaration. (tooltip-show-help): Don't use tooltips on Haiku when a menu is active. * lisp/version.el (haiku-get-version-string): New function declaration. (emacs-version): Add Haiku version string if appropriate. * src/Makefile.in: Also produce binary named "Emacs" with Haiku resources set. (CXX, HAIKU_OBJ, HAIKU_CXX_OBJ, HAIKU_LIBS) (HAIKU_CFLAGS, HAVE_BE_APP, NON_CXX_FLAGS) (ALL_CXX_FLAGS): New variables. (.SUFFIXES): Add .cc. (.cc.o): New target. (base_obj): Add Haiku C objects. (doc_obj, obj): Split objects that should scanned for documentation into doc_obj. (SOME_MACHINE_OBJECTS): Add appropriate Haiku C objects. (all): Depend on Emacs and Emacs.pdmp on Haiku. (LIBES): Add Haiku libraries. (gl-stamp) ($(etc)/DOC): Scan doc_obj instead of obj (temacs$(EXEEXT): Use C++ linker on Haiku. (ctagsfiles3): New variable. (TAGS): Scan C++ files. * src/alloc.c (garbage_collect): Mark Haiku display. * src/dispextern.h (HAVE_NATIVE_TRANSFORMS): Also enable on Haiku. (struct image): Add fields for Haiku transforms. (RGB_PIXEL_COLOR): Define to unsigned long on Haiku as well. (sit_for): Also check USABLE_SIGPOLL. (init_display_interactive): Set initial window system to Haiku on Haiku builds. * src/emacs.c (main): Define Haiku syms and init haiku clipboard. (shut_down_emacs): Quit BApplication on Haiku and trigger debug on aborts if haiku_debug_on_fatal_error. (Vsystem_type): Update docstring. * src/fileio.c (next-read-file-uses-dialog-p): Enable on Haiku. * src/filelock.c (WTMP_FILE): Only define if BOOT_TIME is also defined. * src/floatfns.c (double_integer_scale): Work around Haiku libroot brain damage. * src/font.c (syms_of_font): Define appropriate font driver symbols for Haiku builds with various options. * src/font.h: Also enable ftcrfont on Haiku builds with Cairo. (font_data_structures_may_be_ill_formed): Also enable on Haiku builds that have Cairo. * src/frame.c (Fframep): Update doc-string for Haiku builds and return haiku if appropriate. (syms_of_frame): New symbol `haiku'. * src/frame.h (struct frame): Add output data for Haiku. (FRAME_HAIKU_P): New macro. (FRAME_WINDOW_P): Test for Haiku frames as well. * src/ftcrfont.c (RED_FROM_ULONG, GREEN_FROM_ULONG) (BLUE_FROM_ULONG): New macros. (ftcrfont_draw): Add haiku specific code for Haiku builds with Cairo. * src/ftfont.c (ftfont_open): Set face. (ftfont_has_char, ftfont_text_extents): Work around crash. (syms_of_ftfont): New symbol `mono'. * src/ftfont.h (struct font_info): Enable Cairo-specific fields for Cairo builds on Haiku. * src/haiku_draw_support.cc: * src/haiku_font_support.cc: * src/haiku_io.c: * src/haiku_select.cc: * src/haiku_support.cc: * src/haiku_support.h: * src/haikufns.c: * src/haikufont.c: * src/haikugui.h: * src/haikuimage.c: * src/haikumenu.c: * src/haikuselect.c: * src/haikuselect.h: * src/haikuterm.c: * src/haikuterm.h: Add new files for Haiku windowing support. * src/haiku.c: Add new files for Haiku operating system support. * src/image.c: Implement image transforms and native XPM support on Haiku. (GET_PIXEL, PUT_PIXEL, NO_PIXMAP) (PIX_MASK_RETAIN, PIX_MASK_DRAW) (RGB_TO_ULONG, RED_FROM_ULONG, GREEN_FROM_ULONG) (BLUE_FROM_ULONG, RED16_FROM_ULONG, GREEN16_FROM_ULONG) (BLUE16_FROM_ULONG): Define to appropriate values on Haiku. (image_create_bitmap_from_data): Add Haiku support. (image_create_bitmap_from_file): Add TODO on Haiku. (free_bitmap_record): Free bitmap on Haiku. (image_size_in_bytes): Implement for Haiku bitmaps. (image_set_transform): Implement on Haiku. (image_create_x_image_and_pixmap_1): Implement on Haiku, 24-bit or 1-bit only. (image_destroy_x_image, image_get_x_image): Use correct img and pixmap values on Haiku. (lookup_rgb_color): Use correct macro on Haiku. (image_to_emacs_colors): Implement on Haiku. (image_disable_image): Disable on Haiku. (image_can_use_native_api): Test for translator presence on Haiku. (native_image_load): Use translator on Haiku. (imagemagick_load_image): Add Haiku-specific quirks. (Fimage_transforms_p): Allow rotate90 on Haiku. (image_types): Enable native XPM support on Haiku. (syms_of_image): Enable XPM images on Haiku. * src/keyboard.c (kbd_buffer_get_event) (handle_async_input, handle_input_available_signal) (handle_user_signal, Fset_input_interrupt_mode) (init_keyboard): Check for USABLE_SIGPOLL along with USABLE_SIGIO. * src/lisp.h (pD): Work around broken Haiku headers. (HAVE_EXT_MENU_BAR): Define on Haiku. (handle_input_available_signal): Enable if we just have SIGPOLL as well. * src/menu.c (have_boxes): Return true on Haiku. (single_menu_item): Enable toolkit menus on Haiku. (find_and_call_menu_selection): Also enable on Haiku. * src/process.c (keyboard_bit_set): Enable with only usable SIGPOLL. (wait_reading_process_output): Test for SIGPOLL as well as SIGIO availability. * src/sound.c (sound_perror, vox_open) (vox_configure, vox_close): Enable for usable SIGPOLL as well. * src/sysdep.c (sys_subshell): Enable for usable SIGPOLL. (reset_sigio): Make conditional on F_SETOWN. (request_sigio, unrequest_sigio) (emacs_sigaction_init): Also handle SIGPOLLs. (init_sys_modes): Disable TCXONC usage on Haiku, as it doesn't have any ttys other than pseudo ttys, which don't support C-s/C-q flow control, and causes compiler warnings. (speeds): Disable high speeds if HAVE_TINY_SPEED_T. * src/termhooks.h (enum output_method): Add output_haiku. (struct terminal): Add Haiku display info. (TERMINAL_FONT_CACHE): Enable for Haiku. * src/terminal.c (Fterminal_live_p): Return `haiku' if appropriate. * src/verbose.mk.in (AM_V_CXX, AM_V_CXXLD): New logging variables. * src/xdisp.c (redisplay_internal) (note_mouse_highlight): Return on Haiku if a popup is activated. (display_menu_bar): Return on Haiku if frame is a Haiku frame. * src/xfaces.c (GCGraphicsExposures): Enable correctly on Haiku. (x_create_gc): Enable dummy GC code on Haiku. * src/xfns.c (x-server-version, x-file-dialog): Add Haiku specifics to doc strings. * src/xterm.c (syms_of_xterm): Add Haiku information to doc string.
* | Mention yank-media-types in the manualLars Ingebrigtsen2021-11-081-0/+6
| | | | | | | | * doc/lispref/frames.texi (Yanking Media): Mention yank-media-types.
* | Rename 'register-yank-media-handler'Lars Ingebrigtsen2021-11-081-3/+3
| | | | | | | | | | | | | | | | | | * lisp/textmodes/sgml-mode.el (html-mode): * lisp/gnus/message.el (message-mode): * doc/lispref/frames.texi (Yanking Media): Adjust. * lisp/yank-media.el (yank-media): Adjust doc string. (yank-media-handler): Rename from `register-' because that may cause confusion with register.el functions.
* | Fix "Yanking Media" sectioningLars Ingebrigtsen2021-11-061-2/+2
| | | | | | | | * doc/lispref/frames.texi (Yanking Media): Fix sectioning.
* | Add a framework for yanking media into EmacsLars Ingebrigtsen2021-11-061-0/+36
|/ | | | | | | | | | | | * doc/emacs/killing.texi (Clipboard): Refer to it. * doc/lispref/frames.texi (Yanking Media): Document the mechanism. * lisp/yank-media.el: New file. * lisp/gnus/message.el (message-mode): Register a yank handler for images. (message-insert-screenshot): Factor out image code from here... (message--yank-media-image-handler): ... to here.
* Further fixes to Elisp manualMartin Rudalics2021-10-181-3/+3
| | | | | | | | * doc/lispref/frames.texi (Frame Layout): Index "tab bar" instead of "internal tab bar". (Implied Frame Resizing): Remove irritating hyphens. * doc/lispref/windows.texi (Windows and Frames): Remove paragraph relating 'minibuffer-window' to 'window-list'.
* Minor fixes for recent changes in ELisp manualEli Zaretskii2021-10-181-3/+4
| | | | | | | | * doc/lispref/windows.texi (Basic Windows, Windows and Frames) (Selecting Windows): * doc/lispref/objects.texi (Window Type): * doc/lispref/frames.texi (Input Focus, Frame Layout): Fix wording, punctuation, and indexing.
* Rewrites of Elisp manual including tab-bar and tab-line changesMartin Rudalics2021-10-181-11/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/buffers.texi (Current Buffer, Buffer List): Update references to 'selected-window'. * doc/lispref/elisp.texi (Top): Move up Selecting Windows section in front of Window Sizes section. * doc/lispref/frames.texi (Creating Frames): Say window system instead of windowing system. (Frame Layout): Add Tab Bar to layout. (Layout Parameters): Add 'tab-bar-lines'. (Input Focus): Say window system window instead of window manager window. Fix reference to 'selected-window'. * doc/lispref/objects.texi (Window Type): Minor rewrite. * doc/lispref/windows.texi (Basic Windows): Rewrite. Settle on term 'window system window' for disambiguation with our windows. Move 'selected-window' description to Selecting Windows section. Move schematic of window structure here. Use 'decorations' for objects outside the window body. Say that the areas reserved for continuation and truncation glyphs, vertical dividers and line numbers are part of the window body. (Windows and Frames): Minor rewrite, adding and fixing some cross references. Move live window schematic to 'Basic Windows' section. (Selecting Windows): Move section in front of Window Sizes section. Move description of 'selected-window' here. Move up description of 'frame-selected-window' and 'set-frame-selected-window'. Update and move description of 'window-bump-use-time' here. (Window Sizes): Throughout use the term 'decorations' instead of enumerating them individually. Add 'window-tab-line-height' description. (Resizing Windows): Again use the term 'decorations' instead of enumerating them individually. (Splitting Windows): Minor fix. (Cyclic Window Ordering): Improve descriptions of 'get-lru-window' and 'get-mru-window'. Move 'window-bump-use-time' to Selecting Windows section. (Coordinates and Windows, Window Configurations): Once more use the term 'decorations' instead of enumerating them individually. * src/window.c (Fwindow_bump_use_time): Move after 'window-use-time'. Make it work for live windows only. Make WINDOW argument optional. Update doc-string.
* Improve recently-changed docsEli Zaretskii2021-08-231-8/+8
| | | | | | * src/frame.c (Fnext_frame): * doc/lispref/frames.texi (Finding All Frames): Improve wording and style of the 'next-frame's documentation.
* Clarify the documentation of `next-frame'Lars Ingebrigtsen2021-08-231-6/+7
| | | | | | | * doc/lispref/frames.texi (Finding All Frames): Clarify what it means to "consider". * src/frame.c (Fnext_frame): Rewrite doc string to say what the parameters actually mean (bug#13339).
* New frame parameter 'drag-with-tab-line' (Bug#49247)Martin Rudalics2021-07-021-2/+7
| | | | | | | | | | | | | | | The new frame parameter 'drag-with-tab-line' allows to move frames by dragging their topmost windows' tab line with the mouse thus achieving a behavior similar to that provided by the 'drag-with-header-line' parameter. * lisp/mouse.el (mouse-drag-tab-line): New function. (mouse-drag-frame-resize, mouse-drag-frame-move) ([tab-line down-mouse-1]): Handle tab line dragging in various keymaps. * doc/lispref/frames.texi (Mouse Dragging Parameters): Describe new parameter 'drag-with-tab-line'. * etc/NEWS: Add entry for 'drag-with-tab-line'.
* * lisp/frame.el (delete-other-frames): Add universal prefix `iconify` argStefan Monnier2021-04-121-1/+4
| | | | | | (frame--current-backround-mode): New function, extracted from `frame-set-background-mode`. Use `color-dark-p`. (frame-set-background-mode): Use it.
* Add minibuffer input support to commands that set the frame sizeDaniel Martín2021-03-161-6/+6
| | | | | | | | | | | * lisp/frame.el (set-frame-property--interactive): Internal function to produce the interactive form of `set-frame-width' and `set-frame-height'. Offer the current size as default. (Bug#9970) * src/frame.c (Fset_frame_height): Modify to call `set-frame-property--interactive'. (Fset_frame_width): Modify to call `set-frame-property--interactive'. * doc/lispref/frames.texi (Frame Size): Update the manuals. * etc/NEWS: Advertise the change (bug#9970).
* Permit zero value for 'child-frame-border-width' parameter (Bug#46184)Martin Rudalics2021-02-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/frames.texi (Layout Parameters): Update entry on 'child-frame-border-width' parameter. * src/frame.c (make_frame): Init child_frame_border_width to -1. (Fframe_child_frame_border_width): Return internal border width if child frame border width parameter is nil. (gui_report_frame_params): Report nil as child frame border width parameter if the frame value is negative. * src/frame.h (FRAME_INTERNAL_BORDER_WIDTH): Return value of child frame border width only if it is not negative. * src/xfns.c (Fx_create_frame): Default child frame border to -1 when recording it in its frame slot via gui_default_parameter. * src/nsfns.m (ns_set_child_frame_border_width): Handle nil ARG. (Fx_create_frame): Default child frame border width parameter to nil. * src/w32fns.c (w32_set_child_frame_border_width): Handle nil ARG. (Fx_create_frame): Default child frame border width parameter to nil. * src/xfns.c (x_set_child_frame_border_width): Handle nil ARG. (Fx_create_frame): Default child frame border width parameter to nil.
* Improve :foreground description in the manualLars Ingebrigtsen2021-01-301-1/+1
| | | | | * doc/lispref/frames.texi (Font and Color Parameters): Make the description less confusing (bug#38710).
* Describe pointer shapes in the manualLars Ingebrigtsen2021-01-291-4/+25
| | | | | * doc/lispref/frames.texi (Pointer Shape): Describe what the typical pointer shapes are (and add `nhdrag') (bug#39246).
* Fix typos and punctuationEli Zaretskii2021-01-261-5/+5
| | | | | | | * src/w32fns.c: * src/frame.h: * doc/lispref/frames.texi (Frame Layout): * etc/NEWS: Fix typos and punctuation in recent changes.
* Add distinct controls for child frames' borders (Bug#45620)Alexander Miller2021-01-261-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The background of the 'child-frame-border' face instead of the 'internal-border' face now controls the color of child frames' borders. The 'child-frame-border-width' frame parameter is now used for the width of child frames' borders instead of internal-border-width', though we still fall back on using the latter if the former is not set. * doc/lispref/frames.texi (Frame Layout): Mention 'child-frame-border' and 'child-frame-border-width'. (Layout Parameters): Mention 'child-frame-border-width'. * etc/NEWS: Mention new face 'child-frame-border' and frame parameter 'child-frame-border-width'. * lisp/faces.el (child-frame-border): New face. * src/dispextern.h (enum face_id): Add CHILD_FRAME_BORDER_FACE_ID. * src/frame.c (Fframe_child_frame_border_width): New function. (gui_report_frame_params): Add entry for Qchild_frame_border_width. * src/frame.h (struct frame): New slot child_frame_border_width. (FRAME_CHILD_FRAME_BORDER_WIDTH): New inlined function. * src/nsfns.m (ns_set_child_frame_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (ns_frame_parm_handlers): Add ns_set_child_frame_border_width. * src/nsterm.m (ns_clear_under_internal_border): Handle CHILD_FRAME_BORDER_FACE_ID. * src/w32fns.c (w32_clear_under_internal_border): Handle CHILD_FRAME_BORDER_FACE_ID. (w32_set_internal_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (w32_frame_parm_handlers): Add w32_set_child_frame_border_width. * src/xfaces.c (lookup_basic_face, realize_basic_faces): Handle CHILD_FRAME_BORDER_FACE_ID. * src/xfns.c (x_set_child_frame_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (x_frame_parm_handlers): Add x_set_child_frame_border_width. * src/xterm.c (x_clear_under_internal_border) (x_after_update_window_line): Handle CHILD_FRAME_BORDER_FACE_ID.
* Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Make TTY menus work with xterm-mouse-modeJared Finder2020-10-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/term.c (mouse_get_xy): Call 'mouse_position' passing it the value of 'tty-menu-calls-mouse-position-function' as the argument. (syms_of_term) <tty-menu-calls-mouse-position-function>: New DEFVAR_BOOL. * src/frame.c (mouse_position): New function, with most of the code from Fmouse_position, but call 'mouse-position-function' only if called with non-zero argument. (Fmouse_position): Call 'mouse_position' to do the job. * lisp/xt-mouse.el (xterm-mouse-translate-1): Respect 'track-mouse'. (xterm-mouse-mode): Set 'tty-menu-calls-mouse-position-function' when setting 'mouse-position-function'. (xterm-mouse-tracking-enable-sequence): Use SET_ANY_EVENT_MOUSE (0x1003) so that mouse movement can be reported even if no buttons are pressed. Doc fix. * lisp/menu-bar.el (menu-bar-define-mouse-key): New function. (tty-menu-navigation-map): Call it. * doc/lispref/frames.texi (Mouse Position): Document 'tty-menu-calls-mouse-position-function'. * etc/NEWS: Announce 'tty-menu-calls-mouse-position-function'.