ALT Linux Bugzilla
– Attachment 20780 Details for
Bug 54700
При включенном расширении ArcMenu при запуске 1с Предпирятия падает текущий сеанс
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
Патч для исправления gnome-menus
gnome-menus-3.38.1-alt-check-desktop-valid.patch (text/plain), 5.76 KB, created by
Vladimir Romanov
on 2026-02-27 22:36:09 MSK
(
hide
)
Description:
Патч для исправления gnome-menus
Filename:
MIME Type:
Creator:
Vladimir Romanov
Created:
2026-02-27 22:36:09 MSK
Size:
5.76 KB
patch
obsolete
>// Author: Michael Webster <miketwebster@gmail.com> >diff --git a/libmenu/desktop-entries.c b/libmenu/desktop-entries.c >index 0513c52..bf59f8a 100644 >--- a/libmenu/desktop-entries.c >+++ b/libmenu/desktop-entries.c >@@ -275,9 +275,7 @@ desktop_entry_load (DesktopEntry *entry) > const char *categories_str; > > entry_desktop->appinfo = g_desktop_app_info_new_from_filename (entry->path); >- if (!entry_desktop->appinfo || >- !g_app_info_get_name (G_APP_INFO (entry_desktop->appinfo)) || >- !g_app_info_get_executable (G_APP_INFO (entry_desktop->appinfo))) >+ if (!G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)) > { > menu_verbose ("Failed to load \"%s\"\n", entry->path); > return DESKTOP_ENTRY_LOAD_FAIL_APPINFO; >@@ -573,7 +571,11 @@ const char * > desktop_entry_get_name (DesktopEntry *entry) > { > if (entry->type == DESKTOP_ENTRY_DESKTOP) >- return g_app_info_get_name (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)); >+ { >+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL); >+ return g_app_info_get_name (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)); >+ } >+ > return ((DesktopEntryDirectory*)entry)->name; > } > >@@ -581,7 +583,11 @@ const char * > desktop_entry_get_generic_name (DesktopEntry *entry) > { > if (entry->type == DESKTOP_ENTRY_DESKTOP) >- return g_desktop_app_info_get_generic_name (((DesktopEntryDesktop*)entry)->appinfo); >+ { >+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL); >+ return g_desktop_app_info_get_generic_name (((DesktopEntryDesktop*)entry)->appinfo); >+ } >+ > return ((DesktopEntryDirectory*)entry)->generic_name; > } > >@@ -589,7 +595,11 @@ const char * > desktop_entry_get_comment (DesktopEntry *entry) > { > if (entry->type == DESKTOP_ENTRY_DESKTOP) >- return g_app_info_get_description (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)); >+ { >+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL); >+ return g_app_info_get_description (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)); >+ } >+ > return ((DesktopEntryDirectory*)entry)->comment; > } > >@@ -597,7 +607,11 @@ GIcon * > desktop_entry_get_icon (DesktopEntry *entry) > { > if (entry->type == DESKTOP_ENTRY_DESKTOP) >- return g_app_info_get_icon (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)); >+ { >+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), NULL); >+ return g_app_info_get_icon (G_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo)); >+ } >+ > return ((DesktopEntryDirectory*)entry)->icon; > } > >@@ -605,7 +619,11 @@ gboolean > desktop_entry_get_no_display (DesktopEntry *entry) > { > if (entry->type == DESKTOP_ENTRY_DESKTOP) >- return g_desktop_app_info_get_nodisplay (((DesktopEntryDesktop*)entry)->appinfo); >+ { >+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), FALSE); >+ return g_desktop_app_info_get_nodisplay (((DesktopEntryDesktop*)entry)->appinfo); >+ } >+ > return ((DesktopEntryDirectory*)entry)->nodisplay; > } > >@@ -613,7 +631,11 @@ gboolean > desktop_entry_get_hidden (DesktopEntry *entry) > { > if (entry->type == DESKTOP_ENTRY_DESKTOP) >- return g_desktop_app_info_get_is_hidden (((DesktopEntryDesktop*)entry)->appinfo); >+ { >+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (((DesktopEntryDesktop*)entry)->appinfo), FALSE); >+ return g_desktop_app_info_get_is_hidden (((DesktopEntryDesktop*)entry)->appinfo); >+ } >+ > return ((DesktopEntryDirectory*)entry)->hidden; > } > >diff --git a/libmenu/entry-directories.c b/libmenu/entry-directories.c >index 9d83c86..6c18e03 100644 >--- a/libmenu/entry-directories.c >+++ b/libmenu/entry-directories.c >@@ -353,9 +353,9 @@ cached_dir_update_entry (CachedDir *dir, > if (strcmp (desktop_entry_get_basename (tmp->data), basename) == 0) > { > if (!desktop_entry_reload (tmp->data)) >- { >- dir->entries = g_slist_delete_link (dir->entries, tmp); >- } >+ { >+ dir->entries = g_slist_delete_link (dir->entries, tmp); >+ } > > return TRUE; > } >@@ -363,7 +363,7 @@ cached_dir_update_entry (CachedDir *dir, > tmp = tmp->next; > } > >- return cached_dir_add_entry (dir, basename, path); >+ return FALSE; > } > > static gboolean >@@ -520,10 +520,12 @@ cached_dir_queue_monitor_event (CachedDir *dir) > cached_dir_queue_monitor_event (dir->parent); > } > >- if (monitors_idle_handler == 0) >+ if (monitors_idle_handler > 0) > { >- monitors_idle_handler = g_idle_add ((GSourceFunc) emit_monitors_in_idle, NULL); >+ g_source_remove (monitors_idle_handler); > } >+ >+ monitors_idle_handler = g_timeout_add (100, (GSourceFunc) emit_monitors_in_idle, NULL); > } > > static void >@@ -550,6 +552,8 @@ handle_cached_dir_changed (MenuMonitor *monitor, > switch (event) > { > case MENU_MONITOR_EVENT_CREATED: >+ handled = cached_dir_add_entry (dir, basename, path); >+ break; > case MENU_MONITOR_EVENT_CHANGED: > handled = cached_dir_update_entry (dir, basename, path); > break; >diff --git a/libmenu/menu-monitor.c b/libmenu/menu-monitor.c >index 8895b49..30b605c 100644 >--- a/libmenu/menu-monitor.c >+++ b/libmenu/menu-monitor.c >@@ -146,10 +146,12 @@ menu_monitor_queue_event (MenuMonitorEventInfo *event_info) > { > pending_events = g_slist_append (pending_events, event_info); > >- if (events_idle_handler == 0) >+ if (events_idle_handler > 0) > { >- events_idle_handler = g_idle_add ((GSourceFunc) emit_events_in_idle, NULL); >+ g_source_remove (events_idle_handler); > } >+ >+ events_idle_handler = g_timeout_add (100, (GSourceFunc) emit_events_in_idle, NULL); > } > > static inline char *
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 54700
:
18774
|
19157
|
19181
|
19183
| 20780