1. 12 Oct, 2020 9 commits
    • Emmanuele Bassi's avatar
      a11y: Compute the label for a GtkATContext · 21482e82
      Emmanuele Bassi authored
      The ARIA spec defines the mechanism for determining the name of an
      accessible element—see §4.3 of the WAI-ARIA spec.
      We follow the specification as much as it makes sense for GTK to do
       1. if the element is hidden, return an empty string
       1. if the element has a labelled-by relation set, retrieve the
          label of the related element
       2. if the element has a label property set, use the value of
          the property
       3. if neither labelled-by nor label attributes are set, we use
          the role to compute the name:
         - for a `range` role, we return the contents of the value of
           the `value-text` or `value-now` properties
         - for any other role, we return a textual representation of
           the GtkAccessibleRole enumeration value
    • Emmanuele Bassi's avatar
    • Emmanuele Bassi's avatar
      a11y: Add AT-SPI cache object · d7ebf187
      Emmanuele Bassi authored
      Right now, the cache is unused, and we still need to implement the
      serialisation method and emit the signals.
    • Emmanuele Bassi's avatar
      a11y: Ignore widgets during destruction · 658d9109
      Emmanuele Bassi authored
      There's no point in creating a GtkATContext when a widget is getting
    • Emmanuele Bassi's avatar
      a11y: Register the accessible root object · bd43e9cf
      Emmanuele Bassi authored
      When we create the first AT-SPI context we also need to register the
      accessible root on the accessibility bus. The accessible root object is
      the main entry point of an accessible application, and it holds the
      global state to present to the ATs that connect to the bus.
    • Emmanuele Bassi's avatar
      a11y: Add a display to GtkATContext · 8c184800
      Emmanuele Bassi authored
      Since we need to check at run time what kind of AT context to use, we
      need a hook into the whole GDK backend machinery. The display connection
      seems to be the best choice, in this case, as it allows us to determine
      whether we're running on an X11 or Wayland system, and thus whether we
      should create a GtkAtSpiContext.
      This requires some surgery to fix the GtkATContext creation function, in
      order to include a GdkDisplay instance.
    • Emmanuele Bassi's avatar
      a11y: Add dummy AT-SPI context · 8f19bb08
      Emmanuele Bassi authored
      Does not do anything, at the moment, but it's going to get filled out
      The backend is selected depending on the platform being compiled in;
      since we're using AT-SPI on X11 and Wayland, and we don't have other
      accessibility implementations, we currently don't care about run time
      selection, but we're going to have to deal with that.
    • Emmanuele Bassi's avatar
      a11y: Add the AT-SPI DBus descriptions · c50916d2
      Emmanuele Bassi authored
      And generate the code for the DBus interfaces.
      We don't want the full object manager experience, here, because we're
      going to have a single object responding to various interfaces and
      remote method calls. For this reason, we're not using the gnome module
      in Meson to call gdbus-codegen for us: we need to use the interface info
      command line arguments, and those are not available from Meson.
    • Emmanuele Bassi's avatar
      Generate introspection for GdkWayland API · daac36ea
      Emmanuele Bassi authored
      Like we do for GdkX11. We can't use all of the public C API, but we can
      expose enough type information to allow non-C developers to actually
      check if they are running the Wayland GDK backend or not—plus some
      additional Wayland-specific API.
  2. 10 Oct, 2020 2 commits
  3. 09 Oct, 2020 2 commits
  4. 07 Oct, 2020 3 commits
  5. 06 Oct, 2020 7 commits
    • Matthias Clasen's avatar
      aboutdialog: Fix updating license tab · 44fd0c18
      Matthias Clasen authored
      We need to update the license button visibility
      whenever the license type changes.
    • Adrien Plazas's avatar
      gtkaboutdialog: Directly specialize GtkWindow · a17f33b1
      Adrien Plazas authored
      As it doesn't act as a dialog, there is no point specializing GtkDialog,
      so his makes it specialize GtkWindow directly.
    • Matthias Clasen's avatar
      window: Fix setting min size · 22eac2f4
      Matthias Clasen authored
      We were inadvertedly setting the windows min size
      to the default size, making it so that you can never
      shrink a window below its default size.
      Fixes: #3235
    • Matthias Clasen's avatar
      treelistrowsorter: Add a bandaid · 7698b4dd
      Matthias Clasen authored
      The GtkTreeListRowSortKeys implementation doesn't
      know how it wants to cache its keys, and just crashes.
      Since that is not cool, add a bandaid fix that forces
      it to recreate its keys instead. Extra work, but hey,
      no crash.
      Related: #3228
    • Matthias Clasen's avatar
      Cosmetic · ac164d24
      Matthias Clasen authored
      Don't call gtk_root_get_focus when we already have
      the GtkWindowPrivate struct at hand. And use
      gtk_window_set_focus to update the focus, like the
      old code did.
    • Carlos Garnacho's avatar
      gtkwindow: Ensure to revert focus to a parent on hide() · 38547120
      Carlos Garnacho authored
      When a widget is hidden, check harder for the keyboard focus being
      contained in that widget, in order to reset it. Portions of the
      focus child hierarchy may be outdated at the time, so it is more
      reliable to check GtkRoot::focus (i.e. the property we intend to
      update here).
      Fixes: #3214
    • Matthias Clasen's avatar
      window: Fix window size snapping back · 20fb7812
      Matthias Clasen authored
      We were not updating the remembered size at all when
      the window is interactively resized, causing it to
      snap back to its default size the next time we call
      This is a bandaid fix to prevent very broken resizing
      behavior, until we have properly redone toplevel sizing.
      Fixes: #3076
  6. 04 Oct, 2020 4 commits
  7. 03 Oct, 2020 13 commits