View | Details | Raw Unified | Return to bug 54700
Collapse All | Expand All

(-)a/libmenu/desktop-entries.c (-9 / +31 lines)
Lines 275-283 desktop_entry_load (DesktopEntry *entry) Link Here
275
      const char *categories_str;
275
      const char *categories_str;
276
276
277
      entry_desktop->appinfo = g_desktop_app_info_new_from_filename (entry->path);
277
      entry_desktop->appinfo = g_desktop_app_info_new_from_filename (entry->path);
278
      if (!entry_desktop->appinfo ||
278
      if (!G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo))
279
          !g_app_info_get_name (G_APP_INFO (entry_desktop->appinfo)) ||
280
          !g_app_info_get_executable (G_APP_INFO (entry_desktop->appinfo)))
281
        {
279
        {
282
          menu_verbose ("Failed to load \"%s\"\n", entry->path);
280
          menu_verbose ("Failed to load \"%s\"\n", entry->path);
283
          return DESKTOP_ENTRY_LOAD_FAIL_APPINFO;
281
          return DESKTOP_ENTRY_LOAD_FAIL_APPINFO;
Lines 573-579 const char * Link Here
573
desktop_entry_get_name (DesktopEntry *entry)
571
desktop_entry_get_name (DesktopEntry *entry)
574
{
572
{
575
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
573
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
576
    return g_app_info_get_name (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo));
574
    {
575
      g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL);
576
      return g_app_info_get_name (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo));
577
    }
578
577
  return ((DesktopEntryDirectory*)entry)->name;
579
  return ((DesktopEntryDirectory*)entry)->name;
578
}
580
}
579
581
Lines 581-587 const char * Link Here
581
desktop_entry_get_generic_name (DesktopEntry *entry)
583
desktop_entry_get_generic_name (DesktopEntry *entry)
582
{
584
{
583
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
585
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
584
    return g_desktop_app_info_get_generic_name (((DesktopEntryDesktop*)entry)->appinfo);
586
    {
587
      g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL);
588
      return g_desktop_app_info_get_generic_name (((DesktopEntryDesktop*)entry)->appinfo);
589
    }
590
585
  return ((DesktopEntryDirectory*)entry)->generic_name;
591
  return ((DesktopEntryDirectory*)entry)->generic_name;
586
}
592
}
587
593
Lines 589-595 const char * Link Here
589
desktop_entry_get_comment (DesktopEntry *entry)
595
desktop_entry_get_comment (DesktopEntry *entry)
590
{
596
{
591
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
597
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
592
    return g_app_info_get_description (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo));
598
    {
599
      g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL);
600
      return g_app_info_get_description (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo));
601
    }
602
593
  return ((DesktopEntryDirectory*)entry)->comment;
603
  return ((DesktopEntryDirectory*)entry)->comment;
594
}
604
}
595
605
Lines 597-603 GIcon * Link Here
597
desktop_entry_get_icon (DesktopEntry *entry)
607
desktop_entry_get_icon (DesktopEntry *entry)
598
{
608
{
599
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
609
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
600
    return g_app_info_get_icon (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo));
610
    {
611
      g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL);
612
      return g_app_info_get_icon (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo));
613
    }
614
601
  return ((DesktopEntryDirectory*)entry)->icon;
615
  return ((DesktopEntryDirectory*)entry)->icon;
602
}
616
}
603
617
Lines 605-611 gboolean Link Here
605
desktop_entry_get_no_display (DesktopEntry *entry)
619
desktop_entry_get_no_display (DesktopEntry *entry)
606
{
620
{
607
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
621
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
608
    return g_desktop_app_info_get_nodisplay (((DesktopEntryDesktop*)entry)->appinfo);
622
    {
623
      g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), FALSE);
624
      return g_desktop_app_info_get_nodisplay (((DesktopEntryDesktop*)entry)->appinfo);
625
    }
626
609
  return ((DesktopEntryDirectory*)entry)->nodisplay;
627
  return ((DesktopEntryDirectory*)entry)->nodisplay;
610
}
628
}
611
629
Lines 613-619 gboolean Link Here
613
desktop_entry_get_hidden (DesktopEntry *entry)
631
desktop_entry_get_hidden (DesktopEntry *entry)
614
{
632
{
615
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
633
  if (entry->type == DESKTOP_ENTRY_DESKTOP)
616
    return g_desktop_app_info_get_is_hidden (((DesktopEntryDesktop*)entry)->appinfo);
634
    {
635
      g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), FALSE);
636
      return g_desktop_app_info_get_is_hidden (((DesktopEntryDesktop*)entry)->appinfo);
637
    }
638
617
  return ((DesktopEntryDirectory*)entry)->hidden;
639
  return ((DesktopEntryDirectory*)entry)->hidden;
618
}
640
}
619
641
(-)a/libmenu/entry-directories.c (-6 / +10 lines)
Lines 353-361 cached_dir_update_entry (CachedDir *dir, Link Here
353
      if (strcmp (desktop_entry_get_basename (tmp->data), basename) == 0)
353
      if (strcmp (desktop_entry_get_basename (tmp->data), basename) == 0)
354
        {
354
        {
355
          if (!desktop_entry_reload (tmp->data))
355
          if (!desktop_entry_reload (tmp->data))
356
	    {
356
            {
357
	      dir->entries = g_slist_delete_link (dir->entries, tmp);
357
              dir->entries = g_slist_delete_link (dir->entries, tmp);
358
	    }
358
            }
359
359
360
          return TRUE;
360
          return TRUE;
361
        }
361
        }
Lines 363-369 cached_dir_update_entry (CachedDir *dir, Link Here
363
      tmp = tmp->next;
363
      tmp = tmp->next;
364
    }
364
    }
365
365
366
  return cached_dir_add_entry (dir, basename, path);
366
  return FALSE;
367
}
367
}
368
368
369
static gboolean
369
static gboolean
Lines 520-529 cached_dir_queue_monitor_event (CachedDir *dir) Link Here
520
      cached_dir_queue_monitor_event (dir->parent);
520
      cached_dir_queue_monitor_event (dir->parent);
521
    }
521
    }
522
522
523
  if (monitors_idle_handler == 0)
523
  if (monitors_idle_handler > 0)
524
    {
524
    {
525
      monitors_idle_handler = g_idle_add ((GSourceFunc) emit_monitors_in_idle, NULL);
525
      g_source_remove (monitors_idle_handler);
526
    }
526
    }
527
528
    monitors_idle_handler = g_timeout_add (100, (GSourceFunc) emit_monitors_in_idle, NULL);
527
}
529
}
528
530
529
static void
531
static void
Lines 550-555 handle_cached_dir_changed (MenuMonitor *monitor, Link Here
550
      switch (event)
552
      switch (event)
551
        {
553
        {
552
        case MENU_MONITOR_EVENT_CREATED:
554
        case MENU_MONITOR_EVENT_CREATED:
555
          handled = cached_dir_add_entry (dir, basename, path);
556
          break;
553
        case MENU_MONITOR_EVENT_CHANGED:
557
        case MENU_MONITOR_EVENT_CHANGED:
554
          handled = cached_dir_update_entry (dir, basename, path);
558
          handled = cached_dir_update_entry (dir, basename, path);
555
          break;
559
          break;
(-)a/libmenu/menu-monitor.c (-2 / +4 lines)
Lines 146-155 menu_monitor_queue_event (MenuMonitorEventInfo *event_info) Link Here
146
{
146
{
147
  pending_events = g_slist_append (pending_events, event_info);
147
  pending_events = g_slist_append (pending_events, event_info);
148
148
149
  if (events_idle_handler == 0)
149
  if (events_idle_handler > 0)
150
    {
150
    {
151
      events_idle_handler = g_idle_add ((GSourceFunc) emit_events_in_idle, NULL);
151
      g_source_remove (events_idle_handler);
152
    }
152
    }
153
154
  events_idle_handler = g_timeout_add (100, (GSourceFunc) emit_events_in_idle, NULL);
153
}
155
}
154
156
155
static inline char *
157
static inline char *

Return to bug 54700