Skip to content
  • Allison Karlitskaya's avatar
    Refactor GtkApplication · 7fd81cf1
    Allison Karlitskaya authored
    gtkapplication.c has turned into a bit of an #ifdef mess over time, and
    many of the current checks are incorrect.  As an example, if you build
    Gtk for wayland, and exclude the X11 backend, much of the functionality
    required by wayland (such as exporting menu models) will be disabled.
    
    Solve that by introducing a backend mechanism to GtkApplication (named
    GtkApplicationImpl) similar to the one in GApplication.  Add backends
    for Wayland, X11 and Quartz, with X11 and Wayland sharing a common
    'DBus' superclass.
    
                                 GtkApplicationImpl
                                          |
                           /--------------+-------------------\
                           |                                  |
                GtkApplicationImplDBus              GtkApplicationImplQuartz
                           |
               /-----------+-----------------\
               |                             |
      GtkApplicationImplX11      GtkApplicationImplWayland
    
    GtkApplicationImpl itself is essen...
    7fd81cf1