On 26.02.2011 03:13, Alex Wilson wrote:
On Fri, Feb 25, 2011 at 12:28 PM, <yourpalal2@xxxxxxxxx <mailto:yourpalal2@xxxxxxxxx>> wrote: Author: yourpalal Date: 2011-02-25 20:28:27 +0100 (Fri, 25 Feb 2011) New Revision: 40685 Changeset: http://dev.haiku-os.org/changeset/40685 Ticket: http://dev.haiku-os.org/ticket/5914 Modified: haiku/trunk/src/kits/tracker/StatusWindow.cpp haiku/trunk/src/kits/tracker/StatusWindow.h Log: Fix graphical erros in Tracker's status window by truncating the destination path as needed. (Fixes #5914). Also remove fallback drawing code for when be_control_look is NULL, as that shouldn't be the case ever. After this change, the Tracker status window freezes when you pause an action. However, I tried to only touch graphical code (and I think I succeeded) so this is a bit strange. With a bit of debugging, I managed to find some suspicious code at http://dev.haiku-os.org/browser/haiku/trunk/src/kits/tracker/StatusWindow.cpp#L382 . The problem I see with this code is that the current thread is suspended, but it still holds the BWindow's lock. By releasing the lock before calling suspend_thread, the status window remains responsive. However, I'm hesitant to commit that change, as I feel I might be missing part of the big picture, since this problem seems to stem from my changes. Anyone care to take a look?
I remember having stared at this code in wonder before, but I have no clue what kind of conclusion I arrived at. :-\
Best regards, -Stephan