Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

akakhan

macrumors newbie
Original poster
Aug 22, 2010
13
0
Hello friends.
Below is a screenshot, which explains the problem.
Interestingly, this effect occurs only when I resize the sheet horizontally, and when I try to change the size of the vertical effect disappears.
How to fix this?
attachment.php
 

Attachments

  • 2.png
    2.png
    67.8 KB · Views: 259
Upload another

Refresh the page ) already uploaded

"effects" near Cancel button occurs when the sheet resizing horizontally )
and more: "effects" occurs only when panel in "sheet mode". I think this is directly related to the transparency of the sheet.
 
Refresh the page ) already uploaded

"effects" near Cancel button occurs when the sheet resizing horizontally )
and more: "effects" occurs only when panel in "sheet mode". I think this is directly related to the transparency of the sheet.

That looks like more of a glitch in the software not GPU so your all set I believe
 
When I resize the sheet vertically, the page refreshes and the glitch disappears. How do I update the sheet when resizing horizontally to disappear glitches? (Method for NSPanel, NSWindow or any way) HELP

P.S.: The sheet inherited from NSPanel
 
Why? Is it older code that you converted from a panel to a sheet? Try switching it to a NSWindow, see it that helps.
Thanks, but How can it help me? NSPanel inherits from NSWindow. But I try and, of course, it did not help. ))

attachment.php
 

Attachments

  • ?????? ?????? 2010-08-25 ? 22.02.23.png
    ?????? ?????? 2010-08-25 ? 22.02.23.png
    77.2 KB · Views: 157
I suppose the other question might be why would you need to resize the sheet at all? Zero the resize flag. It is highly unlikely that anyone will ever notice or complain.
 
I'm curious: Do you draw the sheet's bottom bar gradient yourself (with a custom view), or are they content borders, as introduced with Mac OS X 10.5?

Anyway, one thing you could try is monitoring size changes for the sheet (by means of a delegate, for instance), then marking either the whole window or all of your bottom bar buttons' superview hierarchy for needing display. Clearly, you shouldn't have to do that, but it might help.

(By the way, here's another vote for making this particular sheet non-resizable. Regardless, though, this glitch is still interesting.)
 
I suppose the other question might be why would you need to resize the sheet at all? Zero the resize flag. It is highly unlikely that anyone will ever notice or complain.

Yes, disabling resizing "solve the problem", but as Peter said, it does not fix the glitch.
Besides changing the size, you may need in other windows.
 
I'm curious: Do you draw the sheet's bottom bar gradient yourself (with a custom view), or are they content borders, as introduced with Mac OS X 10.5?

Anyway, one thing you could try is monitoring size changes for the sheet (by means of a delegate, for instance), then marking either the whole window or all of your bottom bar buttons' superview hierarchy for needing display. Clearly, you shouldn't have to do that, but it might help.

(By the way, here's another vote for making this particular sheet non-resizable. Regardless, though, this glitch is still interesting.)

Yes, this bottom bar (border), which was introduced in Mac OS X 10.5.

... , then marking either the whole window or all of your bottom bar buttons' superview hierarchy for needing display. ...

How do I do this?
 
How do I do this?

Try something like this in your sheet's delegate:

Code:
- (NSSize)windowWillResize: (NSWindow*)theWindow toSize: (NSSize)theProposedWindowSize {
	NSView *aView = copyPasteboardButton;	// assume copyPasteboardButton is an IBOutlet connected to the "Copy Pasteboard" button in your sheet's bottom bar
	while (aView = [aView superview]) {
		[aView setNeedsDisplay: YES];
	}
	return theProposedWindowSize;
}

It's not pretty, but it might work. :D

Alternatively, you could subscribe to NSWindowDidResizeNotification for your sheet and do the -setNeedsDisplay: loop in your notification handler.
 
Try something like this in your sheet's delegate:

Code:
- (NSSize)windowWillResize: (NSWindow*)theWindow toSize: (NSSize)theProposedWindowSize {
	NSView *aView = copyPasteboardButton;	// assume copyPasteboardButton is an IBOutlet connected to the "Copy Pasteboard" button in your sheet's bottom bar
	while (aView = [aView superview]) {
		[aView setNeedsDisplay: YES];
	}
	return theProposedWindowSize;
}

Thanks, now works. But still - this bug))
 
Here's a temporary fix that bug.

Code:
@implementation NSPanel (SheetResize)

- (NSSize) windowWillResize: (NSWindow*)theWindow toSize: (NSSize)theProposedWindowSize
{
	[_borderView setNeedsDisplay: YES];
	return theProposedWindowSize;
}

@end
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.