1. 10 Sep, 2016 1 commit
  2. 29 Aug, 2016 1 commit
    • Alan Third's avatar
      Clarify docstrings · bcd2d911
      Alan Third authored
      * src/nsterm.m: Clarified that ns-x-modifier variables require a symbol.
      bcd2d911
  3. 24 Aug, 2016 1 commit
    • Alan Third's avatar
      Fix macOS 12 deprecation notices · 53328576
      Alan Third authored
      * src/nsterm.h: Add #defines to allow older versions of macOS to use the
      new constant names.
      * src/nsmenu.m: Replace old constant names with
      new.
      (fillWithWidgetValue): Remove calls to deprecated
      setMenuChangedMessagesEnabled.
      * src/nsterm.m: Replace old constant names with new.
      * src/nsfns.m: Replace old constant names with new.
      53328576
  4. 03 Aug, 2016 1 commit
  5. 19 Jul, 2016 1 commit
  6. 07 Jul, 2016 2 commits
    • Alan Third's avatar
      Prevent NS event loop being re-entered (bug#11049) · ee7bc988
      Alan Third authored
      * nsterm.m (ns_read_socket, ns_select): Return -1 if already in event
      loop instead of aborting.
      ee7bc988
    • Alan Third's avatar
      Fix some deprecated functions · 5508f06f
      Alan Third authored
      * src/nsterm.m (firstRectForCharacterRange): In OS X >10.6 replace
      convertBaseToScreen with convertRectToScreen.
      * src/nsmenu.m (ns_update_menubar): Remove attachedMenu, deprecated in
      OS X 10.2, and always seems to return nil.
      5508f06f
  7. 02 Jul, 2016 1 commit
    • Eli Zaretskii's avatar
      Rename FACE_OPT_FROM_ID to FACE_FROM_ID_OR_NULL · 55d38fc8
      Eli Zaretskii authored
      * src/dispextern.h (FACE_FROM_ID_OR_NULL): Renamed from
      FACE_OPT_FROM_ID; all callers changed.
      * src/xdisp.c (extend_face_to_end_of_line): Call FACE_FROM_ID, not
      FACE_FROM_ID_OR_NULL, as the resulting face is immediately
      dereferenced.
      (fill_gstring_glyph_string): Call FACE_FROM_ID, not
      FACE_FROM_ID_OR_NULL, as the resulting face will be dereferenced
      when the glyph string is drawn.
      (BUILD_COMPOSITE_GLYPH_STRING): Call FACE_FROM_ID, not
      FACE_FROM_ID_OR_NULL, as the resulting face will be dereferenced
      in fill_composite_glyph_string.
      (calc_line_height_property): Call FACE_FROM_ID_OR_NULL rather that
      FACE_FROM_ID, since the function and its caller can cope with that
      situation.  Conflate 3 tests of missing face or font into just
      one.
      * src/xfaces.c (Fx_list_fonts, Fface_font, lookup_face): Call
      FACE_FROM_ID_OR_NULL rather that FACE_FROM_ID, since these
      functions can cope with that situation.
      (lookup_derived_face): Don't call FACE_FROM_ID if the result will
      not be used.
      * src/w32console.c (w32_face_attributes): Remove redundant 'eassert'.
      55d38fc8
  8. 27 Jun, 2016 1 commit
    • Alan Third's avatar
      Enable dividers in NS (bug#22973) · cfb3c61f
      Alan Third authored
      src/nsfns.m: Add colour settings functions to ns_frame_park_handlers.
      src/nsterm.m (ns_draw_window_divider): ns_focus has to go before the
      attempt to set the colour.
      src/nsterm.m (ns_draw_vertical_window_border): This had the same bug as
      above, although I didn't see any errors.
      cfb3c61f
  9. 26 Jun, 2016 1 commit
    • Alan Third's avatar
      Move text line right when in box (bug#23755) · f7df85a8
      Alan Third authored
      * src/nsterm.m (ns_draw_glyph_string_foreground): Create to take
      CHAR_GLYPH specific code and move glyphs right if within a box.
      (ns_draw_glyph_string): Move CHAR_GLYPH specific code into above
      function.
      f7df85a8
  10. 21 May, 2016 1 commit
  11. 18 May, 2016 1 commit
    • Paul Eggert's avatar
      Port --enable-gcc-warnings to GCC 6.1 · 374f6a5f
      Paul Eggert authored
      * configure.ac (WERROR_CFLAGS): Omit -Wunused-const-variable=2.
      * lib-src/etags.c (LOOKING_AT, LOOKING_AT_NOCASE):
      Omit test whether pointer plus a constant equals a null pointer.
      * src/alloc.c (compact_small_strings):
      Avoid pointer arithmetic on null pointers.
      * src/alloc.c (mark_face_cache):
      * src/fontset.c (free_realized_fontsets, Fset_fontset_font):
      * src/fringe.c (draw_fringe_bitmap_1)
      (Fset_fringe_bitmap_face):
      * src/macfont.m (macfont_draw):
      * src/msdos.c (IT_set_face, IT_clear_screen):
      * src/nsfont.m (nsfont_draw):
      * src/nsterm.h (FRAME_DEFAULT_FACE):
      * src/nsterm.m (ns_draw_window_cursor)
      (ns_draw_vertical_window_border, ns_draw_window_divider)
      (ns_dumpglyphs_box_or_relief)
      (ns_maybe_dumpglyphs_background, ns_dumpglyphs_image)
      (ns_dumpglyphs_stretch):
      * src/w32term.c (w32_draw_vertical_window_border)
      (w32_draw_window_divider, x_set_mouse_face_gc):
      * src/xdisp.c (estimate_mode_line_height, init_iterator)
      (handle_face_prop, handle_single_display_spec, pop_it)
      (CHAR_COMPOSED_P, get_next_display_element)
      (next_element_from_display_vector, extend_face_to_end_of_line)
      (fill_gstring_glyph_string,BUILD_COMPOSITE_GLYPH_STRING):
      * src/xfaces.c (Finternal_merge_in_global_face, Fface_font)
      (lookup_named_face):
      * src/xterm.c (x_draw_vertical_window_border)
      (x_draw_window_divider, x_set_mouse_face_gc):
      Prefer FACE_OPT_FROM_ID to FACE_FROM_ID when the result might be null.
      * src/xterm.c (try_window_id):
      Redo loop to convince GCC 6.1 that it is null pointer safe.
      (x_color_cells):
      Use eassume as necessary to pacify GCC 6.1.
      * src/dispextern.h (FACE_FROM_ID, IMAGE_FROM_ID): Now returns non-null.
      (FACE_OPT_FROM_ID, IMAGE_OPT_FROM_ID): New macro, with the old
      behavior of the non-_OPT macro, to be used when the result
      might be a null pointer.
      * src/dispnew.c (buffer_posn_from_coords, marginal_area_string)
      [HAVE_WINDOW_SYSTEM]:
      * src/intervals.h (INTERVAL_WRITABLE_P):
      * src/term.c (turn_off_face):
      * src/xdisp.c (get_glyph_face_and_encoding, fill_image_glyph_string)
      (produce_image_glyph, produce_xwidget_glyph):
      * src/xfaces.c (lookup_named_face):
      Remove unnecessary test for null pointer.
      * src/keyboard.c (read_char): Suppress bogus -Wclobbered warning.
      * src/process.c (would_block): New function.
      (server_accept_connection, wait_reading_process_output, send_process):
      Use it.
      * src/xdisp.c (get_window_cursor_type, note_mouse_highlight):
      Prefer IMAGE_OPT_FROM_ID to IMAGE_FROM_ID when the result
      might be null.
      374f6a5f
  12. 16 May, 2016 1 commit
  13. 01 May, 2016 1 commit
    • Alan Third's avatar
      Implement horizontal scroll bars on NS · e683a257
      Alan Third authored
      * lisp/scroll-bar.el (horizontal-scroll-bars-available-p): Remove NS
      check.
      * lisp/term/ns-win.el: Remove custom NS scroll-bar handlers and bind
      scroll-bar mouse clicks to standard handlers.
      * src/nsterm.h (EmacsScroller): Add 'horizontal' property and rename
      pixel_height to pixel_length.
      * src/nsterm.m (x_set_window_size): Remove left-hand scroll-bar code. It
      caused scroll-bars to be over-drawn and the best working solution
      appears to be complete removal.
      (ns_set_horizontal_scroll_bar): Rewrite to handle horizontal scrollers
      correctly.
      (ns_set_vertical_scroll_bar): Set width to actual scroller width.
      (setFrame): Handle horizontal case.
      (dealloc): Handle horizontal case.
      (judge): Handle horizontal case.
      (setPosition): Rename pixel_height to pixel_length.
      (sendScrollEventAtLoc): Handle horizontal case.
      (mouseDown): Handle horizontal case and general tidy up of code.
      (mouseDragged): Handle horizontal case. Call sendScrollEventAtLoc with
      absolute pixel size instead of ratio.
      * src/window.h: Remove NS check.
      e683a257
  14. 08 Apr, 2016 1 commit
  15. 22 Mar, 2016 1 commit
  16. 17 Mar, 2016 1 commit
  17. 10 Mar, 2016 1 commit
    • Paul Eggert's avatar
      Rework C source files to avoid ^( · 7352c6c6
      Paul Eggert authored
      Work around Bug#22884 by rewording comments and strings to avoid ‘(’
      at the start of a line unless it starts a function.  This change
      is a short-term hack; in the longer run we plan to fix cc-mode’s
      performance for C files that have ‘(’ at the start of a line in a
      comment or string.
      7352c6c6
  18. 29 Feb, 2016 1 commit
  19. 11 Feb, 2016 1 commit
    • Alan Third's avatar
      Set locale when run from OS X GUI · eb4a18c7
      Alan Third authored
      * src/emacs.c (main): Call ns_init_locale.
      * src/nsterm.m (ns_init_locale): Get locale from OS and set LANG.
      * src/nsterm.h: Include ns_init_locale.
      eb4a18c7
  20. 26 Jan, 2016 1 commit
    • Anders Lindgren's avatar
      Fixed NextStep fullscreen issue (bug#22468) · 60902756
      Anders Lindgren authored
      When in fullscreen mode, `[screen visibleFrame]' sometimes
      includes, sometimes excludes the menu bar. This could cause
      a frame to be placed too low when in fullscreen mode.
      
      * src/nsterm.m (ns_menu_bar_should_be_hidden): Trace.
      (constrain_frame_rect): New parameter, isFullscreen, when true don't
      query the height of the menu bar.
      (ns_constrain_all_frames): Pass `false' (isFullscreen) to
      `constrain_frame_rect'.
      ([EmacsView initFrameFromEmacs:]): Trace.
      ([EmacsView isFullscreen]): Trace.
      ([EmacsWindow constrainFrameRect:toScreen:]): Pass fullscreen
      state to `constrain_frame_rect'.
      60902756
  21. 25 Jan, 2016 1 commit
  22. 23 Jan, 2016 1 commit
    • Anders Lindgren's avatar
      Unbreak the GNUstep build. · c32f3bc4
      Anders Lindgren authored
      * src/nsterm.m ([EmacsBell init]): In GNUstep, don't use the
      predefined "caution" image. Add trace.
      (x_set_window_size): Remove unused variables `cols' and `rows'.
      (ns_draw_fringe_bitmap): Exclude assignment of `fromRect' when
      GNUstep is used.
      ([EmacsView updateFrameSize:]): Remove unused variable `win'.
      ([EmacsWindow zoom:]): Remove unused variable `f'.
      c32f3bc4
  23. 02 Jan, 2016 1 commit
  24. 01 Jan, 2016 1 commit
  25. 30 Nov, 2015 1 commit
  26. 23 Nov, 2015 1 commit
    • Anders Lindgren's avatar
      New visible-bell for NextStep (OS X El Capitan compatible). · 345a9c8c
      Anders Lindgren authored
      Instead of inverting a rectangle in the middle of the frame, use
      the standard NextStep image "caution", represented using an
      warning sign with an exclamation mark.  (Bug#21662)
      
      Implemented based on a suggestion drafted by Mustafa Kocaturk.
      
      * src/nsterm.m (EmacsBell): New class for managing the caution
      image.  Support multiple active bells, the image is removed once
      all bells have timed out.
      (ns_timeout): Removed, no longer used.
      (ns_ring_bell): Reimplemented to use EmacsBell.
      345a9c8c
  27. 15 Nov, 2015 2 commits
    • Anders Lindgren's avatar
      Enhance NSTRACE (trace output for NextStep). · ae16894d
      Anders Lindgren authored
      Trace can be disabled for groups of functions. By default, event
      functions and functions that generate lots of output are disabled.
      
      Trace output of Objective-C functions now use the "[ClassName
      parameter:]" form.
      
      * src/nsterm.h (NSTRACE_ALL_GROUPS, NSTRACE_GROUP_EVENTS)
      (NSTRACE_GROUP_UPDATES, NSTRACE_GROUP_FRINGE, NSTRACE_GROUP_COLOR)
      (NSTRACE_GROUP_GLYPHS, NSTRACE_GROUP_FOCUS): New macros,
      controlling in which function groups trace should be active.
      (NSTRACE_WHEN): Support for silencing a function, this also
      silencing all called functions.
      (NSTRACE_UNSILENCE): New macro, used to re-enable trace.
      (NSTRACE_FMT_FSTYPE, NSTRACE_ARG_FSTYPE): New macros, used to
      print the full screen state in NSTRACE functions.
      
      * src/nsterm.m (nstrace_depth, nstrace_num): Made volatile as they
      can be accessed from multiple threads.
      (nstrace_enabled_global): New variable, when FALSE, trace is
      silenced.
      (nstrace_restore_global_trace_state): New function, used to
      restore `nstrace_enabled_global' at end of block.
      ([EmacsView setFrame:], [EmacsWindow setFrame:display:])
      ([EmacsWindow setFrame:display:animation:])
      ([EmacsWindow setFrameTopLeftPoint:]): New functions, print trace
      and call corresponding super function.
      (Many functions): Add or enhance trace output.
      
      * src/nsimage.m (ns_image_from_file): Enhanced trace output.
      
      * src/nsfns.m (x_set_tool_bar_lines): Add trace output.
      
      * src/nsmenu.m ([EmacsToolbar setVisible:]): New function, print trace
      and call corresponding super function.
      ae16894d
    • Anders Lindgren's avatar
      Fixed OS X 10.6.8 build issue (bug#21862). · 63e6f4c8
      Anders Lindgren authored
      * src/nsterm.h (EmacsView): Add missing declarations.
      * src/nsterm.m ([EmacsView windowDidBecomeKey]): New method, like
      the standard method but without the notification parameter.
      Intended to be used for direct calls.
      ([EmacsView windowDidEnterFullScreen]): Call the non-notification
      version of `windowDidBecomeKey'. Made the notification method call
      the non-notification method instead of the vice versa.
      (NSWindowDidEnterFullScreenNotification): Deleted, no longer
      needed.
      63e6f4c8
  28. 10 Nov, 2015 2 commits
    • David Reitter's avatar
      Avoid creating notification objects when possible · 0bba3040
      David Reitter authored
      * src/nsterm.m (windowWillEnterFullScreen, windowWillExitFullScreen:,
      windowDidEnterFullScreen, windowDidExitFullScreen): provide
      convenience functions that do not require a notification object.  When
      needed, define NSWindowDidEnterFullScreenNotification to allow for
      compilation on OS X 10.6.8.
      0bba3040
    • Paul Eggert's avatar
      Spelling fixes · c92dbd6d
      Paul Eggert authored
      * lisp/net/soap-inspect.el (soap-inspect-xs-simple-type):
      Fix misspelling in output.
      c92dbd6d
  29. 08 Nov, 2015 1 commit
  30. 07 Nov, 2015 1 commit
  31. 06 Nov, 2015 1 commit
  32. 04 Nov, 2015 1 commit
    • Anders Lindgren's avatar
      Render fringe bitmaps correctly on NextStep (bug#21301). · 411b516d
      Anders Lindgren authored
      The fringe bitmaps were inverted, the background was not transparent,
      the image data was horizontally mirrored, and periodic fringe bitmaps
      were not supported.
      
      * nsimage.m ([EmacsImage initFromXBM:width:height:fg:bg:]): When
      both background and foreground colors are 0, set the background
      alpha channel to 0 (making the background transparent).  When
      copying the image data, do this from the most significant bit
      (leftmost) to the least (rightmost), to avoid mirroring.
      * nsterm.m (ns_draw_fringe_bitmap): Don't invert the image bits. Add
      support for periodic images (e.g. the empty line indicator).
      411b516d
  33. 28 Oct, 2015 2 commits
    • Anders Lindgren's avatar
      Fixed OS X startup crash. · 0392e241
      Anders Lindgren authored
      Input events started to arrive before ns_term_init() was finished.
      Solved by blocking input. This also seems to correct the "You
      can't open the application "Emacs" because it may be damaged or
      incomplete" error issued when double-clicking on the Emacs
      application.
      
      * nsterm.m (ns_constrain_all_frames, ns_init_term): Block input.
      * nsterm.m (ns_send_appdefined, EmacsApp): Trace output.
      0392e241
    • Anders Lindgren's avatar
      Fix incorrect NextStep tool-bar-mode -- wrong number of rows in frame. · 590449f3
      Anders Lindgren authored
      * nsterm.h (struct ns_output): New flag, in_animation.
      * nsfns.m (Fx_create_frame): Initialize in_animation flag.
      * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar): Set
      in_animation flag around call to "setVisible". Set new tool bar
      height before call to setVisible.
      * nsterm.m (x_set_window_size): Don't call [view setRow:
      andColumns:] as this fools the subsequent call to updateFrameSize
      from performing the real resize.
      (windowDidResize): Don't update anything when in_animation is
      non-zero.
      
      Trace output.
      
      * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar)
      (EmacsToolbar):
      * nsterm.m (x_set_window_size, updateFrameSize)
      ([EmacsView setRows: andColumns:])
      590449f3
  34. 23 Oct, 2015 1 commit
    • Anders Lindgren's avatar
      NextSten maximization and NSTRACE rewrite. · ba24d35a
      Anders Lindgren authored
      Full-height, full-width, and maximized windows now cover the
      entire screen (except the menu bar), including the part where the
      system dock is placed.  The system zoom animation is no longer
      used.
      
      Made NonMaximized->FullWidth->FullHeight->NonMaximized restore the
      original size.
      
      * nsterm.m (ns_menu_bar_height): New function, return height of
      the menu bar, or 0 when it's hidden.
      * nsterm.m (constrain_frame_rect): New function for constraining a
      frame.
      * nsterm.m (ns_constrain_all_frames): Set frame size explicitly
      rather than relying on the system doing it for us by writing back
      the current frame size.
      * nsterm.m (windowWillUseStandardFrame): Register non-maximized
      width or height as new user size.  When entering full width or
      height, the other size component is taken from the user size.
      * nsterm.m (fullscreenState): New method for accessing the
      fullscreen state.
      * nsterm.m (constrainFrameRect): Restrict frame to be placed under
      the menu bar, if present.  The old version, sometimes, restricted
      the height of a frame to the screen, this version never does this.
      * nsterm.m (zoom): Perform zoom by setting the frame to the full
      size of the screen (minus the menu bar).  The default system
      function, with the zoom animation, is no longer used, as the final
      frame size doesn't cover the entire screen.
      
      Rework how to constrain resizing to the character grid.  The old
      system used "resizeIncrements" in NSWindows.  However, once a frame
      was resized so that it was not aligned to the text grid, it
      remained unaligned even after a resize.  In addition, it conflicted
      when resizing a fullheight window.
      
      * nsterm.m (windowWillResize): Restrict frame size to text grid,
      unless when pixelwise frame resizing is enabled.
      * nsterm.m (updateFrameSize, initFrameFromEmacs)
      (toggleFullScreen, handleFS): Don't set resizeIncrements.
      
      Redesign the NS trace system.  The call structure is represented
      using indentations and vertical lines.  The NSTRACE macro accepts
      printf-style arguments.  New macros for printing various
      information.
      
      * nsterm.h (NSTRACE_ENABLED): Macro to enable trace system.
      * nsterm.h (NSTRACE, NSTRACE_WHEN, NSTRACE_UNLESS): Macros to
      start a new block (typically a function), accept printf-style
      arguments.
      * nsterm.h (NSTRACE_MSG): Macro for extra information, accepts
      printf-style arguments.
      * nsterm.h (NSTRACE_what): Macros for printing various types.
      * nsterm.h (NSTRACE_FMT_what): Macro with printf format string
      snippets.
      * nsterm.h (NSTRACE_ARG_what): Macros for passing printf-style
      arguments, corresponds to NSTRACE_FMT_what.
      * nsterm.h (NSTRACE_RETURN): Macro to print return value, accept
      printf-style arguments.
      * nsterm.h (NSTRACE_RETURN_what): Macros to print return value for
      various types.
      
      * nsterm.m: Remove old NSTRACE macro.
      * nsterm.m (nstrace_num): Trace counter.
      * nsterm.m (nstrace_depth): Current call depth.
      * nsterm.m (nstrace_leave): NSTRACE support function, called when
      the local variable "nstrace_enabled" goes out of scope using the
      "cleanup" extension.
      * nsterm.m (ns_print_fullscreen_type_name): NSTRACE_FSTYPE support
      function.
      * nsterm.m (constrain_frame_rect, ns_constrain_all_frames)
      (ns_update_auto_hide_menu_bar, ns_update_begin)
      (ns_update_window_begin, update_window_end, ns_update_end)
      (ns_focus, ns_unfocus, ns_ring_bell, ns_frame_raise_lower)
      (ns_frame_rehighlight, x_make_frame_visible)
      (x_make_frame_invisible, x_iconify_frame, x_free_frame_resources)
      (x_destroy_window, x_set_offset, x_set_window_size)
      (ns_fullscreen_hook, ns_lisp_to_color, ns_color_to_lisp)
      (ns_defined_color, frame_set_mouse_pixel_position)
      (note_mouse_movement, ns_mouse_position, ns_frame_up_to_date)
      (ns_define_frame_cursor, x_get_keysym_name, ns_redraw_scroll_bars)
      (ns_clear_frame, ns_clear_frame_area, ns_scroll_run)
      (ns_after_update_window_line, ns_shift_glyphs_for_insert)
      (dumpcursor, ns_draw_vertical_window_border)
      (ns_draw_window_divider, ns_draw_relief)
      (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
      (ns_dumpglyphs_image, ns_draw_glyph_string, ns_send_appdefined)
      (ns_read_socket, ns_select, ns_set_vertical_scroll_bar)
      (ns_set_horizontal_scroll_bar, ns_condemn_scroll_bars)
      (ns_redeem_scroll_bar, ns_judge_scroll_bars, ns_delete_terminal)
      (ns_create_terminal, ns_term_init, sendEvent)
      (applicationDidFinishLaunching, applicationDidBecomeActive)
      (timeout_handler, fd_handler, EmacsView_dealloc, changeFont)
      (acceptsFirstResponder, resetCursorRects, keyDown, mouseDown)
      (deltaIsZero, rightMouseDown, otherMouseDown, mouseUp)
      (rightMouseUp, otherMouseUp, scrollWheel, mouseMoved)
      (mouse_autoselect_window, in_window, mouseDragged)
      (rightMouseDragged, otherMouseDragged, windowShouldClose)
      (updateFrameSize, windowWillResize, windowDidResize)
      (windowDidBecomeKey, windowDidResignKey, windowWillMiniaturize)
      (initFrameFromEmacs, windowDidMove, windowDidDeminiaturize)
      (windowDidExpose, windowDidMiniaturize, windowWillEnterFullScreen)
      (windowDidEnterFullScreen, windowWillExitFullScreen)
      (windowDidExitFullScreen, toggleFullScreen, handleFS, setFSValue)
      (mouseEntered, mouseExited, menuDown, toolbarClicked, drawRect)
      (draggingEntered, performDragOperation, validRequestorForSendType)
      (setMiniwindowImage, constrainFrameRect, performZoom, zoom)
      (EmacsScroller_initFrame, EmacsScroller_setFrame)
      (EmacsScroller_dealloc, condemn, reprieve, judge)
      (resetCursorRects, setPosition, EmacsScroller_mouseDown)
      (EmacsScroller_mouseDragged, syms_of_nsterm): Use new trace system.
      
      * nsfns.m: Remove old NSTRACE macro.
      * nsfns.m (x_set_icon_name, ns_set_name, x_explicitly_set_name)
      (x_implicitly_set_name, x_set_title, ns_set_name_as_filename)
      (ns_implicitly_set_icon_type, x_set_icon_type): Use new trace system.
      
      * nsimage.m: Remove old NSTRACE macro.
      * nsimage.m (ns_image_from_XBM, ns_image_for_XPM)
      (ns_image_from_bitmap_file, ns_load_image): Use new trace system.
      
      * nsmenu.m: Remove old NSTRACE macro.
      * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
      Use new trace system.
      ba24d35a
  35. 13 Oct, 2015 1 commit
    • Martin Rudalics's avatar
      Allow setting frame pixel sizes from frame parameters (Bug#21415) · d4fe840d
      Martin Rudalics authored
      Also fix some misfeatures in frame (re-)sizing code, add more
      debugging information and remove some dead code.
      
      * lisp/frame.el (frame-notice-user-settings, make-frame): Change
      parameter names when setting `frame-size-history'.
      (frame--size-history): New function.
      
      * src/frame.c (frame_inhibit_resize): If frame has not been made
      yet, return t if inhibit_horizontal_resize or
      inhibit_vertical_resize bit have been set.
      (adjust_frame_size): Simplify.
      (make_frame): Initialize inhibit_horizontal_resize,
      inhibit_vertical_resize, tool_bar_redisplayed, tool_bar_resized.
      (Fframe_after_make_frame): Reset inhibit_horizontal_resize and
      inhibit_vertical_resize slots.
      (x_set_frame_parameters): Handle `text-pixels' specification for
      width and height parameters.  Don't consider new_height or
      new_width changes.  Call adjust_frame_size instead of
      Fset_frame_size.
      (x_figure_window_size): Two new arguments x_width and y_width
      returning frame's figures width and height.  Calculate tool bar
      height before frame sizes so SET_FRAME_HEIGHT can pick it up.
      Handle `text-pixels' specification for width and height
      parameters.
      (Qtext_pixels, Qx_set_frame_parameters, Qset_frame_size)
      (Qx_set_window_size_1, Qx_set_window_size_2)
      (Qx_set_window_size_3, Qx_set_menu_bar_lines)
      (Qupdate_frame_menubar, Qfree_frame_menubar_1)
      (Qfree_frame_menubar_2): New symbols.
      * src/frame.h (structure frame): New booleans
      tool_bar_redisplayed, tool_bar_resized,
      inhibit_horizontal_resize, inhibit_vertical_resize.
      (x_figure_window_size): Update external declaration.
      * src/gtkutil.c (xg_frame_set_char_size): Set size hints before
      calling gtk_window_resize.
      (update_frame_tool_bar): Make inhibiting of frame resizing more
      discriminative.  Set tool_bar_resized bit.
      * src/nsfns.m (x_set_tool_bar_lines): Make inhibiting of frame
      resizing more discriminative.  Call adjust_frame_size instead of
      x_set_window_size.
      (Fx_create_frame): Handle x_width and x_height if
      set by x_figure_window_size.
      * src/nsterm.m (x_set_window_size): For GNUSTEP build don't
      subtract 3 from tool bar height.
      (x_set_window_size): Add frame_size_history_add call.
      (x_new_font): Call adjust_frame_size instead of
      x_set_window_size.
      * src/w32fns.c (x_change_tool_bar_height): Reset
      tool_bar_redisplayed and tool_bar_resized bits when adding tool
      bar.  Make inhibiting of frame resizing more discriminative.
      (w32_wnd_proc): Remove dead code in WM_WINDOWPOSCHANGING case.
      (Fx_create_frame): Handle x_width and x_height if set by
      x_figure_window_size.  Set size hints before adjusting frame size.
      (x_create_tip_frame): Adjust x_figure_window_size call.
      * src/w32term.c (x_set_window_size): Add frame_size_history_add
      call.
      * src/widget.c (set_frame_size): Remove dead code.  Add
      frame_size_history_add call.  When frame_resize_pixelwise is t
      use FRAME_PIXEL_WIDTH and FRAME_PIXEL_HEIGHT instead of
      pixel_width and pixel_height.
      (update_various_frame_slots): Remove dead code.
      (EmacsFrameResize): Add more information in
      frame_size_history_add call.
      (EmacsFrameQueryGeometry): Round only when frame_resize_pixelwise
      is not set.
      * src/xdisp.c (redisplay_tool_bar): Set tool_bar_redisplayed bits.
      * src/xfns.c (x_set_menu_bar_lines): Change argument name.
      (x_change_tool_bar_height): Reset tool_bar_redisplayed and
      tool_bar_resized bits when adding tool bar.  Make inhibiting of
      frame resizing more discriminative.
      (Fx_create_frame): Handle x_width and x_height if set by
      x_figure_window_size.  Set size hints before adjusting frame size.
      (x_create_tip_frame): Adjust x_figure_window_size call.
      * src/xmenu.c (update_frame_menubar): Don't handle Lucid specially.
      (set_frame_menubar): On Lucid never add core-border-width to
      avoid that adding XtNinternalBorderWidth adds it again.
      (free_frame_menubar): Handle frame_inhibit_resize true for Motif.
      * src/xterm.c (x_new_font): In non-toolkit case handle size
      change of menu bar.
      (x_set_window_size_1): Fix calls to frame_size_history_add.
      (x_wm_set_size_hint): Remove dead code.  Set
      size_hints.min_width and size_hints.min_height to base_width and
      base_height.
      d4fe840d
  36. 28 Sep, 2015 1 commit