1. 11 May, 2022 1 commit
  2. 04 Oct, 2021 1 commit
  3. 18 Jun, 2021 1 commit
    • Matthias Clasen's avatar
      treeviewcolumn: Clip header buttons · d92f8a1b
      Matthias Clasen authored
      We don't want to overdraw when dragging a narrow column
      around, and we also need the clipping to avoid picking
      the wrong column, when a later column button overlaps
      an earlier one.
      
      Fixes: #4045
      d92f8a1b
  4. 23 May, 2021 1 commit
  5. 22 May, 2021 1 commit
  6. 21 May, 2021 1 commit
    • Matthias Clasen's avatar
      docs: Reduce redundancy · 4a0d3d7a
      Matthias Clasen authored
      Remove a boatload of "or %NULL" from nullable parameters
      and return values. gi-docgen generates suitable text from
      the annotation that we don't need to duplicate.
      
      This adds a few missing nullable annotations too.
      4a0d3d7a
  7. 20 May, 2021 2 commits
  8. 11 Mar, 2021 1 commit
  9. 29 Jan, 2021 1 commit
    • Alexander Mikhaylenko's avatar
      dragsource: Use double coordinates for checking drag threshold · f63e6394
      Alexander Mikhaylenko authored
      If multiple nested widgets have drag sources on them, both using bubble
      phase, we need to reliably pick the inner one. Both of them will try to
      start dragging, and we need to make sure there are no situations where the
      outer widget starts drag earlier and cancels the inner one.
      
      Currently, this can easily happen via integer rounding: start and current
      coordinates passed into gtk_drag_check_threshold() are initially doubles
      (other than in GtkNotebook and GtkIconView), and are casted to ints. Then
      those rounded values are used to calculate deltas to compare to the drag
      threshold, losing quite a lot of precision along the way, and often
      resulting in the outer widget getting larger deltas.
      
      To avoid it, just don't round it. Introduce a variant of the function that
      operates on doubles: gtk_drag_check_threshold_double() and use it instead
      of the original everywhere.
      f63e6394
  10. 19 Jan, 2021 1 commit
    • Matthias Clasen's avatar
      treeviewcolumn: Redo sort arrows · 2100e427
      Matthias Clasen authored
      Instead of hardcoding icon names in the widget, use
      sort-indicator.ascending and sort-indicator.descending styles
      and set the icon to use with -gtk-icon-source. This lets themes
      change the icon that is used here, without forcing all uses of
      pan-up/down-symbolic to be treated the same.
      
      Document this in the treeview CSS docs.
      
      Fixes: #3577
      2100e427
  11. 16 Dec, 2020 1 commit
  12. 20 Oct, 2020 1 commit
    • Benjamin Otte's avatar
      widget: Always update the CSS node · d9b216e6
      Benjamin Otte authored
      Anybody who keeps their own CSS nodes around or wants to order CSS nodes
      different from widgets will from now on have to do it manually all the
      time.
      
      This is outdated behavior, nobody should be doing either of those two
      things.
      
      Also, the correct case is much more common, and not doing it
      automatically was causing bugs.
      
      Fixes #3280
      d9b216e6
  13. 12 Sep, 2020 1 commit
    • Matthias Clasen's avatar
      Clean up lots of GTK+ -> GTK · 929a56e5
      Matthias Clasen authored
      Replace most remaining uses of GTK+ in the docs and
      user-visible strings by GTK. Also remove some leftover
      "Was added in 3.x" sentences from the docs.
      929a56e5
  14. 26 Jul, 2020 1 commit
    • Emmanuele Bassi's avatar
      Remove ATK · c63087a5
      Emmanuele Bassi authored
      To build a better world sometimes means having to tear the old one down.
              -- Alexander Pierce, "Captain America: The Winter Soldier"
      
      ATK served us well for nearly 20 years, but the world has changed, and
      GTK has changed with it. Now ATK is mostly a hindrance towards improving
      the accessibility stack:
      
       - it maps to a very specific implementation, AT-SPI, which is Linux and
         Unix specific
       - it requires implementing the same functionality in three different
         layers of the stack: AT-SPI, ATK, and GTK
       - only GTK uses it; every other Linux and Unix toolkit and application
         talks to AT-SPI directly, including assistive technologies
      
      Sadly, we cannot incrementally port GTK to a new accessibility stack;
      since ATK insulates us entirely from the underlying implementation, we
      cannot replace it piecemeal. Instead, we're going to remove everything
      and then incrementally build on a clean slate:
      
       - add an "accessible" interface, implemented by GTK objects directly,
         which describe the accessible role and state changes for every UI
         element
       - add an "assistive technology context" to proxy a native accessibility
         API, and assign it to every widget
       - implement the AT context depending on the platform
      
      For more information, see: GNOME/gtk#2833
      c63087a5
  15. 24 Jul, 2020 4 commits
  16. 28 May, 2020 1 commit
  17. 12 May, 2020 2 commits
  18. 11 May, 2020 2 commits
  19. 05 May, 2020 1 commit
  20. 04 May, 2020 1 commit
  21. 01 May, 2020 1 commit
    • Nelson Ben's avatar
      GtkTreeviewColumn: don't focus-on-click header buttons · ba9b4f41
      Nelson Ben authored
      currently when mouse clicking on a column header
      to sort it it is grabbing keyboard focus, this
      should not happen, keyboard focus should remain
      where it was before. This can be seen on the
      GtkFileChooser widget, when having the keyboard
      focus on the file list items and clicking on a
      column header to sort it the keyboard focus is
      now on the header.
      ba9b4f41
  22. 17 Apr, 2020 1 commit
  23. 02 Mar, 2020 1 commit
  24. 22 Feb, 2020 1 commit
  25. 21 Feb, 2020 2 commits
    • Matthias Clasen's avatar
      Split off GtkEventControllerFocus · 5a2f829a
      Matthias Clasen authored
      Split the focus tracking into a separate
      GtkEventControllerFocus, and change the API one more time.
      We are back to having ::focus-in and ::focus-out signals.
      
      Update all users.
      5a2f829a
    • Matthias Clasen's avatar
      New focus change handling · 23c67f8c
      Matthias Clasen authored
      Instead of relying on gdk's antiquated crossing events,
      create a new GtkCrossingData struct that contains the
      actual widgets, and a new event controller vfunc that
      expects this struct. This also saves us from making sense
      of X's crossing modes and details, and makes for a
      generally simpler api.
      
      The ::focus-in and ::focus-out signals of GtkEventControllerKey
      have been replaced by a single ::focus-change signal that
      takes GtkCrossingData as an argument. All callers have
      been updated.
      23c67f8c
  26. 15 Sep, 2019 1 commit
  27. 09 Aug, 2019 1 commit
  28. 29 May, 2019 1 commit
  29. 18 May, 2019 1 commit
  30. 17 Mar, 2019 2 commits
  31. 28 Feb, 2019 1 commit
  32. 20 Feb, 2019 1 commit