1. 09 Jan, 2015 1 commit
  2. 22 Dec, 2014 1 commit
    • Allison Karlitskaya's avatar
      GtkMenuTracker: add hidden-when='macos-menubar' · 6b26664c
      Allison Karlitskaya authored
      Provide a mechanism for hiding the "Quit", "About" and "Preferences"
      menu items from the normal places in a traditional menubar layout (in
      the File and Edit menus) when the menu is being rendered in the Mac OS
      menubar.
      
      These items can already be found in the application menu.
      
      With this feature, applications can now define a single menu to use in
      all 'traditional' scenarios.
      
      Use this new attribute in Bloatpad.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=741610
      6b26664c
  3. 21 Dec, 2014 1 commit
  4. 08 Dec, 2014 1 commit
  5. 15 Jun, 2014 2 commits
  6. 05 Jun, 2014 1 commit
    • Allison Karlitskaya's avatar
      GtkMenuTracker: fix signal handler argument list · 8011d853
      Allison Karlitskaya authored
      The signal handler for the visibility of menu items changing had the
      wrong signature, resulting in the GParamSpec from the notify signal
      being treated as a boolean (which was always true).  This resulted in
      items being added over and over and never being removed.
      
      Fix that...
      8011d853
  7. 28 Apr, 2014 3 commits
    • Allison Karlitskaya's avatar
      GtkMenuTracker: add 'merge_sections' flag · d930716d
      Allison Karlitskaya authored
      Add the possibility of a GtkMenuTracker that performs no section
      merging.  Instead, it will report an item in the form of a separator for
      subsections.  It is then possible to get a separate tracker for the
      subsection contents by using gtk_menu_tracker_new_for_item_link().
      d930716d
    • Allison Karlitskaya's avatar
      GtkMenuTracker: don't specialise "submenu" link · f6ee0076
      Allison Karlitskaya authored
      We have some API in GtkMenuTracker and GtkMenuTrackerItem that is
      specifically designed to deal with submenus.
      
      Generalise these APIs to take a 'link_name' parameter that we always
      give as G_MENU_SUBMENU for now.  In the future, this will allow creating
      trackers for other types of links, such as sections.
      f6ee0076
    • Allison Karlitskaya's avatar
      GtkMenuTracker: make "is-visible" a property · 48db8418
      Allison Karlitskaya authored
      Make this a property just like all of the other things and make the APIs
      for accessing it non-private (but add a note that they are not intended
      to be used).
      48db8418
  8. 07 Feb, 2014 2 commits
  9. 05 Feb, 2014 1 commit
  10. 22 Jan, 2014 1 commit
  11. 12 Jan, 2014 1 commit
  12. 08 Jan, 2014 3 commits
  13. 04 Jan, 2014 1 commit
    • Allison Karlitskaya's avatar
      GtkMenuTracker: tweak separator logic · ba09124f
      Allison Karlitskaya authored
      Ignacio Casal Quinteiro reported a problem whereby an empty section at
      the start of a menu has a separator placed after it.  This was caused by
      the implementation of the logic that separators should be inserted at
      the top of all non-empty sections that are not the first section.  This
      logic is obviously incorrect in the case that the first section is empty
      (in which case we would not expect to see a separator at the top of the
      second section).
      
      Change the logic so that we only insert separators when we see a
      non-zero number of actual items in the menu before us.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=721119
      ba09124f
  14. 12 Nov, 2013 1 commit
  15. 24 Jun, 2013 1 commit
  16. 13 May, 2013 2 commits
    • Jasper St. Pierre's avatar
    • Allison Karlitskaya's avatar
      add GtkMenuTrackerItem · a4276a6c
      Allison Karlitskaya authored
      Add a new class, GtkMenuTrackerItem that represents a menu item, to be
      used with GtkMenuTracker.
      
      GtkMenuTracker's insert callback now works in terms of this new type
      (instead of passing reference to the model and an index to the item).
      
      GtkMenuShell now handles all of the binding tasks internally, mostly
      through the use of property bindings.  Having bindings for the label and
      visibility attributes, in partiular, will help with supporting upcoming
      extensions to GMenuModel.
      
      GtkModelMenu has been reduced to a helper class that has nothing to do
      with GMenuModel.  It represents something closer to an "ideal" API for
      GtkMenuItem if we didn't have compatibility concerns (eg: not emitting
      "activate" when setting toggle state, no separate subclasses per menu
      item type, supporting icons, etc.) Improvements to GtkMenuItem could
      eventually shrink the size of this class or remove the need for it
      entirely.
      
      Some GtkActionHelper functionality has been duplicated in
      GtkMenuTracker, which is suboptimal.  The duplication exists so that
      other codebases (such as Unity and gnome-shell) can reuse the
      GtkMenuTracker code, whereas GtkActionHelper is very much tied to
      GtkWidget.  Supporting binding arbitrary GtkWidgets to actions vs.
      supporting the full range of GMenuModel features for menu items turns
      out to be two overlapping but not entirely similar problems.  Some of
      the duplication (such as roles) can be removed from GtkActionHelper once
      Gtk's internal Mac OS menubar support is ported to GtkMenuTracker.
      
      The intent to reuse the code outside of Gtk is also the reason for the
      unusual treatment of the enum type introduced in this comment.
      
      This adds no new "public" API to the Gtk library, other than types that
      we cannot make private due to GType limitations.
      a4276a6c
  17. 01 Apr, 2013 1 commit
    • Allison Karlitskaya's avatar
      Introduce GtkMenuTracker · 5617b584
      Allison Karlitskaya authored
      GtkMenuTracker folds a nested structure of sections in a GMenuModel into
      a single linear menu, which it expresses to its user by means of 'insert
      item at position' and 'remove item at position' callbacks.
      
      The logic for where to insert separators and how to handle action
      namespaces is contained within the tracker, removing the need to have
      this logic duplicated in the 3 or 4 places that consume GMenuModel.
      
      In comparison with the previous code, the tracker no longer completely
      destroys and rebuilds menus every time a single change occurs.  As a
      result, the new gtkmenu testcase now runs in approximately 3 seconds
      instead of ~60 before.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=696468
      5617b584