← Back to team overview

dx-packages team mailing list archive

[Bug 1506744] Re: Newly installed applications do not show in the dash

 

The patch in comment 42 is not acceptable, for two big reasons.

First: you need to hold a ref on the GFile object when you put it into
the info struct.  This means that you cannot simply use g_free for the
struct: you need to write a custom free func that handles the unref as
well.  Also: you can't cast g_source_remove() to a GDestroyNotify and
expect that to work... one takes a pointer, and the other an int.  This
may randomly work on some architectures, sometimes, but you cannot rely
on this.

The entire act of keeping the list is slightly suspect.  At the sprint I
think I mentioned that it would be better to have one global timeout
that is set (and reset) when any activity happens.  The timeout would
run after the activity died down, and it would handle all things
together in one go.  In that case, you'd still need a list, except for
the info objects themselves.  It's also fine to keep the list of the
timeout IDs, but you can't free it in the way that you're doing in the
current patch.

Another nice approach, if you want to avoid running the callbacks after
teardown: store a weak pointer to the main object in each of the info
structs (g_object_add_weak_pointer).  The info structs are then used as
the user_data to the timeout (this assumes you keep the multiple
timeouts).  If you find the weak pointer to be empty, then just return
without doing anything.  That also means that you don't need to handle
the "cleanup" -- it will happen automatically.  It also means that you
can avoid the custom free function if you are clever: the timeout will
always run once, and you can do the cleanup from the normal handler
(taking care regarding the early exit discussed above).

-- 
You received this bug notification because you are a member of DX
Packages, which is subscribed to libunity in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1506744

Title:
  Newly installed applications do not show in the dash

Status in GLib:
  Confirmed
Status in gnome-menus package in Ubuntu:
  In Progress
Status in libunity package in Ubuntu:
  Fix Released
Status in unity package in Ubuntu:
  Invalid

Bug description:
  I am running 15.10 development version fully up to date, I installed
  it a few days ago and I have an issue with newly installed
  applications not appearing in the dash when I search for them, they
  can be started via console but the icons/launchers of newly installed
  applications will only appear in the dash after session is restarted.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10
  Package: unity 7.3.2+15.10.20151002.2-0ubuntu1
  ProcVersionSignature: Ubuntu 4.2.0-16.19-generic 4.2.3
  Uname: Linux 4.2.0-16-generic x86_64
  ApportVersion: 2.19.1-0ubuntu2
  Architecture: amd64
  CompizPlugins: No value set for `/apps/compiz-1/general/screen0/options/active_plugins'
  CurrentDesktop: Unity
  Date: Fri Oct 16 08:41:39 2015
  InstallationDate: Installed on 2015-10-11 (4 days ago)
  InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Alpha amd64 (20151011)
  SourcePackage: unity
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/glib/+bug/1506744/+subscriptions