Skip to content
Snippets Groups Projects
  1. Sep 05, 2022
  2. Jul 16, 2022
  3. Jul 11, 2022
  4. Jun 25, 2022
  5. Jun 10, 2022
  6. Jun 08, 2022
    • Gaël Bonithon's avatar
      garcon-gtk: Disconnect reload callback on finalize · 1ea47477
      Gaël Bonithon authored
      GarconMenu and GarconGtkMenu have separate life cycles. Therefore, there
      is no assurance that the GarconMenu is finalized when the GarconGtkMenu
      releases the reference to it upon its own finalization.
      
      Xfdesktop, for example, keeps the same GarconMenu throughout its
      lifecycle, while it creates a new GarconGtkMenu each time its context
      menu is shown.
      
      Fixes: #27
      Related: !18
      1ea47477
  7. May 15, 2022
  8. May 13, 2022
  9. May 04, 2022
    • Gaël Bonithon's avatar
      garcon-gtk: Load GarconMenu asynchronously · d2c7068e
      Gaël Bonithon authored
      This loading makes many disk accesses when reading the `.desktop` files,
      which can take several seconds for only a hundred entries, on machines
      equipped with mechanical disks and when these files have not yet been
      cached.
      
      This way, the loading is done as soon as possible in parallel, and we
      wait until it is finished if necessary during a request to show the
      menu. We can then start populating the GtkMenu synchronously, according
      to the process described in the previous commit message.
      
      Helps: #5, xfce4-panel#485
      Fixes: #3, xfce4-panel#184
      MR: !18
      d2c7068e
    • Gaël Bonithon's avatar
      garcon-gtk: Populate GtkMenus only when shown · d0703ac6
      Gaël Bonithon authored
      When the display of menu item icons is required, the creation of the
      entire application menu, typically, can take several tenths of a second
      or even more than a second on low performance machines. This change
      reduces the latency of the menu display, spreading the load over the
      display of its submenus and thus doing the rest of the work only if
      necessary.
      
      Some of the code in `garcon_gtk_menu_add()` needs to be duplicated to
      test for displayable items in a submenu without entering a recursive
      process. If a submenu has displayable items, it is added as a menu item,
      but is not populated until later, if its display is required.
      
      Unfortunately, for reasons internal to GTK, this process is not easily
      parallelized in a GTask like loading the GarconMenu in the next commit.
      This is why we have no choice but to delay the task by executing it only
      when necessary.
      
      Helps: #5, xfce4-panel#485
      MR: !18
      d0703ac6
  10. Apr 25, 2022
  11. Apr 24, 2022
  12. Apr 11, 2022
  13. Mar 14, 2022
  14. Mar 11, 2022
  15. Mar 06, 2022
  16. Mar 04, 2022
  17. Feb 27, 2022
Loading