Thanks Paul

Yesterday I noticed that some of the lazarus files in my usr folder were not up-to-date with the svn. They were about a week old.

Had been using a script which downloads the svn and compiles the code, and something must have 'silently' failed in that script last time I ran it a few days ago.

Anyway, after rebuilding lazarus yesterday, the Screen.Cursor issues I was seeing, are solved. Perhaps there could be other cursor issues, but the SetCursor problems in my program are gone. Those issues were:

1. Some non-windowed controls did not show their cursor when you would mouse over them.

2. Programmatically setting the cursor on a non-windowed control did not change the onscreen cursor. In the program I'm working on, I change the cursor in a TPaintBox according to mouse position inside regions of the TPaintBox (depending on what happens to be drawn inside the TPaintBox). That is now working great.

So maybe the problem was fixed in the svn sometime longer ago, but am guessing that the fix occurred in about the last week.

Perhaps some other fix in the carbon code had the happy side-effect of fixing the cursor problem.

I had not submitted a bug report on the issue, because was trying to find a fix to submit. So there isn't any 'invalid uncleared' report on the BugTracker from me, on SetCursor().

jcjr

Anyway
On Oct 7, 2007, at 9:53 PM, Paul Ishenin wrote:

James Chandler Jr wrote:

I need to go back and look more closely, but cursor-setting (for both controls whose cursors work and controls whose cursors don't work) eventually passes thru a SetTempCursor(). But there may be more than one instance of a SetTempCursor() method in there somewhere. Would need to look closer.

I think that CarbonCommon_SetCursor (CarbonPrivateCommon.inc) brings problem.

function CarbonCommon_SetCursor(...
  ...
  ACursor := Screen.Cursor;
  if ACursor = crDefault then
  begin
    ACursor := AWidget.LCLObject.Cursor;  <-- here is problem
  end;
  WidgetSet.SetCursor(Screen.Cursors[ACursor]);
...

AWidget.LCLObject is TWinControl, so all the time it will parent of our graphic control. To solve problem we must search for child Controls (not WinControls) that are placed on our AWidget.LCLObject.

Carbon is the most difficult (for developing) widgetset for me since I have no Mac :) I hope you or Tomas or Felipe can fix problem. Or I will try myself but later.

Best regards,
Paul Ishenin.

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to