1. 05 Sep, 2019 18 commits
  2. 04 Sep, 2019 22 commits
    • Ell's avatar
      app: fix a few compilation warnings · aab9f0ee
      Ell authored
    • Ell's avatar
      app: fix transform-tool preview/bounds in show-all mode when transforming entire image · b7674fae
      Ell authored
      In the transform tools, when transforming the entire image in show-
      all mode, don't crop the preview and the transform bounds to the
      size of the canvas.
    • Ell's avatar
      app: add support for show-all mode in GimpCanvasPassePartout · 32dd8d2d
      Ell authored
      Don't clip the outer rect to the size of the canvas in show-all
    • Ell's avatar
      app: add support for show-all mode in GimpCanvasGrid · 1e621680
      Ell authored
      Don't crop the grid to the canvas size in show-all mode.
    • Ell's avatar
      app: add gimp_canvas_item_untransform_viewport() · 23617c94
      Ell authored
      ... which untransforms the viewport from display space to the
      item's coordinate space (i.e., scaled and translated image space).
    • Ell's avatar
      app: add support for color picking in "show all" mode · cf363839
      Ell authored
      Add a show_all parameter to gimp_image_pick_color(), which, when
      TRUE, allows picking colors outside the canvas bounds in sample-
      merged mode.  Forward the display's "show all" mode through this
      parameter where applicable (in particular, in the color-picker tool
      and the pointer dockable).
    • Ell's avatar
    • Ell's avatar
      app: fix out-of-bounds rendering when alpha channel is invisible · da701ffc
      Ell authored
      When the image's alpha channel is invisible, paint regions outside
      the image contents as black, instead of using a checkboard pattern.
      This is especially notable when viewing the image in "show all"
    • Ell's avatar
      app: in GimpEditSelectionTool, freeze moved items' previews · 915bdffb
      Ell authored
      ... to avoid unnecessarily updating their previews while dragging,
      and, in particular, to avoid updating the image's GimpImageViewable
      size in show-all mode.
    • Ell's avatar
      app: show full image contents in GimpNavigationEditor · a33f5498
      Ell authored
      In GimpNavigation{Editor,View}, show the full image contents when
      the corresponding display is in "show all" mode.  Additionally,
      when the display's "show canvas boundary" is active, show the
      canvas boundary in the navigation view as well.
    • Ell's avatar
      app: handle GimpImageViewable in GimpViewRendererImage · f90da765
      Ell authored
      Allow using a GimpImageViewable as the source for a
      GimpViewRenderer, by allowing GimpViewRendererImage to handle this
      type of viewables.
    • Ell's avatar
      app: add GimpImageViewable class · bce4d32d
      Ell authored
      Add a new GimpImageViewable class, which acts as a proxy viewable
      for an image.  Unlike the image itself, whose preview is always
      restricted to the size of the canvas, a GimpImageViewable provides
      a show-all property, which controls whether the preview includes
      the full image contents.  We're going to use GimpImageViewable as
      the source viewable for GimpNavigationView.
    • Ell's avatar
      app: defer GimpViewable::size-changed signal emission while frozen · a64dc8d6
      Ell authored
      In GimpViewable, defer emission of the size-changed signal while
      the viewable's preview is frozen, and only emit the signal once
    • Ell's avatar
      app, menus: add "show canvas boundary" display option · e2f31852
      Ell authored
      Add a "show canvas boundary" display option, and a corresponding
      "View" menu item and default-apperance preferences option.  When
      enabled (the default), the canvas boundary is shown as an orange/
      black dashed line in "show all" mode.
    • Ell's avatar
      app: improve display scroll/zoom-related behavior in "show all" mode · a1717a90
      Ell authored
      In "show all" mode, the image is thought to be "infinite"; this
      commit improves the overall scrolling/zooming behavior in this mode
      according to this assumption.  In cases where a specific image size
      is needed (e.g., for the scrollbar bounds, fit-image-in-window,
      etc.), the image's full bounding box is used; however, in cases
      where a center point is needed (e.g., for the zoomed-out scrollbar
      bounds, center-image-in-window), the canvas center, rather than the
      bounding-box center, is still used.
    • Ell's avatar
      app: add "clip" parameter to gimp_display_shell_untransform_viewport() · 788b136b
      Ell authored
      ... which specifies whether to clip the viewport to the canvas
      (previously, it would always be clipped).  Use the appropriate
      value in all callers, depending on the shell's "show all" mode.  In
      particular, this commit avoids clipping the image projection's
      priority rect to the canvas in "show all" mode.
    • Ell's avatar
      app, menus: add "show all" mode to GimpDisplayShell; "View -> Show All" toggle · 86dc451b
      Ell authored
      Add a "show all" mode to GimpDisplayShell, controlled through a
      corresponding "View -> Show All" menu item.  When enabled, the
      entire image content is displayed, instead of cropping the image
      to the canvas size.  More generally, the display behaves as if the
      canvas were infinite.  The following commits improve the overall
      behavior in this mode.
      Add a prefernces option to control the default "show all" state.
    • Ell's avatar
      app: in preferences dialog, add "show sample points" toggle · a9d06439
      Ell authored
      ... to the default-appearance options.  It was previously missing.
    • Ell's avatar
      app: in preferences dialog, swap position of default-appearance columns · 4e8fa887
      Ell authored
      ... to match their menu order.
    • Ell's avatar
      app: in GimpImage, ignore "show all" when image used as pickable · 697ab6a9
      Ell authored
      In GimpImage, make sure the image's pickable interface keeps
      behaving as before (i.e., restricted to the canvas size), even when
      the image is in "show all" mode.  In contrast, the image's
      projection, when used as a pickable, *is* affected by "show all".
    • Ell's avatar
      app: add gimp_image_invalidate_all() · 1f9d0d27
      Ell authored
      ... which invalidates the entire image.  This replaces all calls to
      gimp_image_invalidate() with the full canvas size, since the image
      content can now be larger than the canvas.
    • Ell's avatar
      app: add "show all" mode to GimpImage · 7f629a63
      Ell authored
      Add a "show all" mode to GimpImage, which, when active, causes the
      image projection's bounding box to be adjusted dynamically to the
      combined bounding box of all layers and the canvas.  This mode is
      controlled through the new gimp_image_{inc,dec}_show_all()
      functions, which should be called by the display; a corresponding
      display toggle will be added in the following commits.
      Note that from the user's perspective, "show all" is a display
      mode, rather than an image mode.  The GimpImage "show all" mode is
      therefore merely an implementation detail, and shouldn't have any
      effect on displays that don't use "show all" mode, or the PDB.
      The ability to use the image with or without taking its "show all"
      mode into account will be facilitated by the next commits.