Skip to content
Snippets Groups Projects
  1. Nov 30, 2022
  2. Nov 04, 2022
  3. Nov 02, 2022
  4. Oct 31, 2022
  5. Oct 29, 2022
  6. Oct 28, 2022
  7. Oct 26, 2022
  8. Oct 19, 2022
  9. Sep 17, 2022
    • Gaël Bonithon's avatar
      garcon: Escape '%' when building command from URL desktop files · f33c23d2
      Gaël Bonithon authored
      Since Garcon reduces the case of URL desktop files to the case of a
      classic file with an Exec key of value `exo-open 'URL'`, and there is no
      reliable way to distinguish the two cases from the outside when invoking
      `garcon_menu_item_get_command()`, Garcon must escape the '%' characters
      in the URL as if they appeared in the value of an Exec key.
      
      Fixes: #31
      f33c23d2
  10. Sep 10, 2022
  11. Sep 05, 2022
  12. Jul 16, 2022
  13. Jul 11, 2022
  14. Jun 25, 2022
  15. Jun 10, 2022
  16. 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
  17. May 15, 2022
  18. May 13, 2022
  19. 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
  20. Apr 25, 2022
Loading