1. 02 Apr, 2019 1 commit
    • Jan Alexander Steffens's avatar
      Centralize DESKTOP_STARTUP/AUTOSTART_ID handling · 2d3936cb
      Jan Alexander Steffens authored
      Add private API to GDK to move these variables from the environment into
      static scope. Also move the DESKTOP_STARTUP_ID validation here to reduce
      code duplication.
      
      Use constructors to read them as early as possible; however, do not
      unset them until first requested. This avoids breaking gnome-shell and
      gnome-settings-daemon, which want to use the DESKTOP_AUTOSTART_ID in
      their own gnome-session clients.
      
      Fixes #1761
      2d3936cb
  2. 29 Mar, 2019 2 commits
  3. 17 Mar, 2019 1 commit
  4. 03 Jan, 2019 1 commit
  5. 14 Sep, 2018 1 commit
  6. 05 Sep, 2018 1 commit
  7. 31 Aug, 2018 2 commits
    • Matthias Clasen's avatar
      GtkApplication: track screensaver state · 813c7b19
      Matthias Clasen authored
      A number of applications want to track the state of the screensaver.
      Make this information available as a boolean property. We only listen
      for state changes when ::register-session is set to TRUE.
      
      This is implemented for unsandboxed D-Bus access by talking
      directly to org.gnome.ScreenSaver or org.freedesktop.ScreenSaver,
      and for sandboxed D-Bus by using a (new) portal API.
      A Quartz implementation is missing.
      813c7b19
    • Matthias Clasen's avatar
      GtkApplication: Respect GTK_USE_PORTAL · 3fc319ff
      Matthias Clasen authored
      When the environment variable is set, don't connect
      to the session manager, but instead rely on the
      inhibit portal.
      3fc319ff
  8. 17 Dec, 2017 1 commit
  9. 01 Aug, 2017 1 commit
  10. 19 Dec, 2016 1 commit
  11. 24 Aug, 2016 1 commit
  12. 25 Jul, 2016 1 commit
    • Matthias Clasen's avatar
      GtkApplication: some cleanups · f089d750
      Matthias Clasen authored
      Always return an error if we fail to get a dbus proxy; the callers
      are only looking whether error is set, not whether the return value
      is NULL.
      
      Use the same function for the inhibit proxy as well, and clean up
      the sm_proxy in finalize.
      f089d750
  13. 08 Jul, 2016 1 commit
  14. 03 Jul, 2016 2 commits
  15. 05 Mar, 2016 1 commit
  16. 19 Dec, 2014 1 commit
    • Matthias Clasen's avatar
      GtkApplication: Try to cope with ssh situations better · ac5ffd84
      Matthias Clasen authored
      Override the gtk-shell-shows-app-menu and gtk-shell-shows-menubar
      settings to FALSE, if we can detect that we are not on the same
      session bus as the xsettings provider that we got these settings
      from.
      
      We determine this by comparing the bus ID of 'our' session
      bus with the one reported in the Gtk/SessionBusId xsetting.
      If they are different, then it very likely that we are in an ssh
      situation where we see the forwarded X display, but not the
      session bus. The D-Bus based menu exporting will not work
      in this situation.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=671802
      ac5ffd84
  17. 03 Nov, 2014 1 commit
  18. 06 Sep, 2014 1 commit
  19. 03 Jul, 2014 1 commit
    • Allison Karlitskaya's avatar
      Add gtk_application_prefers_app_menu() · d3b34d3c
      Allison Karlitskaya authored
      Applications can call this to determine if they should an app menu.
      This will be %FALSE on desktop environments that do not have an
      application menu like the one in gnome-shell.  It is %FALSE on Windows
      and Mac OS.
      
      Applications are completely free to totally ignore this API -- it is
      only provided as a hint to help applications that may be interested in
      supporting non-GNOME platforms with a more native 'look and feel'.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=722092
      d3b34d3c
  20. 14 Apr, 2014 1 commit
  21. 12 Apr, 2014 1 commit
  22. 30 Mar, 2014 1 commit
  23. 16 Dec, 2013 2 commits
    • Allison Karlitskaya's avatar
      gtkapplication: fix inhibit · ced939fc
      Allison Karlitskaya authored
      The big refactor contained a small mistake that broke inhibiting.  Fix it.
      ced939fc
    • 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 essentially a bunch of vfuncs that serve as
      hooks for various things that the platform-specific backends may be
      interested in doing (startup, shutdown, managing windows, inhibit, etc.)
      
      With this change, all platform specific code has been removed from
      gtkapplication.c and gtkapplicationwindow.c (both of which are now free
      of #ifdefs, except for a UNIX-specific use of GDesktopAppInfo in
      gtkapplicationwindow.c).
      
      Additionally, because of the movement of the property-setting code out
      of GtkApplicationWindow, the _GTK_APPLICATION_ID properties (and
      friends) will be set on non-GtkApplicationWindows, such as dialogs.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=720550
      7fd81cf1