1. 10 Jun, 2018 1 commit
  2. 07 Jun, 2018 1 commit
  3. 04 Jun, 2018 4 commits
  4. 02 Jun, 2018 5 commits
  5. 31 May, 2018 2 commits
    • Vasily Galkin's avatar
      Use external help in frozen installation, like uninstalled (#197) · 5b1845d2
      Vasily Galkin authored
      There were two different UNINSTALLED_* flags for
      uninstalled/frozen installations. Every flag had a single use.
      
      In #197 it turns out that showing offline help in frozen installation
      can fail since frozen installation is quite "portable"
      so it can be problematic to rely on system tool for showing help.
      (actually I'm not completely sure how freezing is typically
      used on non-windows, but non-windows freezing doesn't look popular)
      
      So simple fix of #197 is to merge flags, because the single case
      that was different (trying to sho help in frozen state) is the bug case.
      So it looks that single flag indicating that meld can assume that
      it's data is installed in "global" system prefixes is enough.
      5b1845d2
    • Kai Willadsen's avatar
      filediff: Fix change deletion shortcut for non-keypad deletes · 3604009b
      Kai Willadsen authored
      This was broken by 30bd3231, because you can't actually expect multiple
      accelerators to work.
      
      The change here is kind of unpleasant. Really, it would be nice if
      this was a generic helper that ran on focus, probably as part of MeldDoc
      handling... but that's very overkill for this one accelerator.
      3604009b
  6. 25 May, 2018 1 commit
    • Kai Willadsen's avatar
      meldapp: Don't try to open a blank comparison tab (#193) · 1c8c2310
      Kai Willadsen authored
      We have existing code in meldapp that handles this 90% fine. However,
      if the user does something like always using `--diff` (which is
      particularly understandable for e.g., tooling) then invocations like:
          meld -n --diff a b
      will result in the new tab not being focused on open, because it's not
      first in the list of comparisons we're opening.
      1c8c2310
  7. 11 May, 2018 5 commits
  8. 25 Apr, 2018 1 commit
    • Kai Willadsen's avatar
      sourceview: Fix pasting multi-byte encodings (#179) · 4b6f3652
      Kai Willadsen authored
      For this API, pygobject isn't handling string length arguments for us,
      so we had to do it ourselves. Shockingly, I got it very wrong. The API
      requires a UTF-8 encoded string (which pygobject transparently encoded
      for us) but the length arg has to be the bytestring length, not the
      unicode codepoint length, which is what we were previously passing
      along.
      4b6f3652
  9. 20 Apr, 2018 10 commits
    • Kai Willadsen's avatar
      misc: Fix translation markings · 663a0552
      Kai Willadsen authored
      663a0552
    • Kai Willadsen's avatar
      2b00451d
    • Kai Willadsen's avatar
      b502235e
    • Kai Willadsen's avatar
      filediff: Add a helper for showing user-criticial errors · db57bf5b
      Kai Willadsen authored
      The idea behind this decorator is that it should be used with functions
      where failure is important to the user (and may not be obvious
      otherwise). The only current use is on save, where it's possible to hit
      a traceback and have the callback handling crash out, but other than a
      log message or traceback on the command line... the user may not notice
      anything.
      
      This is made necessary by the GTK+/pygobject philosophy (which is
      generally extremely good) of treating errors of this kind as non-fatal.
      We also want it to not be fatal in this case, but... the user needs to
      know if they tried to save a file and it didn't work.
      
      On the other hand, if they tried to e.g., go to the next diff and we
      messed something up and didn't go to the next diff, (a) they'd notice
      and (b) showing them a modal dialog would be even more annoying than
      the actual error.
      db57bf5b
    • Kai Willadsen's avatar
      FIXME: Initial pass at a wrapper that ensures that a user sees that we've... · 88d511ab
      Kai Willadsen authored
      FIXME: Initial pass at a wrapper that ensures that a user sees that we've errored, for certain critical things (like saving...)
      88d511ab
    • Kai Willadsen's avatar
    • Kai Willadsen's avatar
      filediff: Work around GtkSourceView load failure (final part of #152) · da3ba746
      Kai Willadsen authored
      When GtkSourceView's loader fails to load due to a unicode decode issue,
      at least one of the failure cases doesn't actually end the in-progress
      user action (see bgo#795387). Because we use user-actions to handle both
      our undo stack and also our sensitivity setting (i.e., we disable some
      things while you're in the middle of a user action) this breaks several
      things across the Meld UI, basically putting us in a very weird state.
      
      The workaround here is... not good, but it's the best we can do for now.
      If/when the GtkSourceView side of this gets fixed, we'll end up with a
      lot of GTK+ critical logs, but everything *should* continue to work.
      da3ba746
    • Kai Willadsen's avatar
      undo: Make abort_group() handling the same as the end_group() · a7bb4281
      Kai Willadsen authored
      This also updates the docstring to not suggest that we actually revert
      the changes made in the pending grouped actions.
      a7bb4281
    • Kai Willadsen's avatar
      undo: Change the end_group() behaviour to handle a missing group · cbe85eda
      Kai Willadsen authored
      This is definitely a programming error, but we shouldn't rely on seeing
      assertions. More to the point, this will only ever break the user's
      experience, so it's almost certainly better here to just discard the
      bad group close and warn about it.
      cbe85eda
    • Kai Willadsen's avatar
      sourceview: Intercept and sanitise text-tags on paste · 02dcbd6d
      Kai Willadsen authored
      This is a different way of handling bgo#709580, with the change
      triggered by #152.
      
      The original problem here is that if you copy-paste within Meld, the
      tags that we use to indicate an inline difference get pasted as well, by
      GtkTextView/Buffer. This behaviour seems very difficult to opt out of.
      
      The first pass at handling this hacked around the problem by hooking in
      to tag apply and, if we were in an action group, skipping it. This
      basically worked (but was fragile) until we hit an error situation where
      we had unclosed action groups, at which point no tags were ever applied.
      
      This second pass instead hooks in to the textview paste_clipboard vfunc
      and requests and sets a text-only representation in the clipboard. This
      effectively sanitises the clipboard contents and so... seems to work.
      02dcbd6d
  10. 12 Apr, 2018 3 commits
  11. 07 Apr, 2018 7 commits