bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bugs #12327] Live window resizing


From: Stefan Urbanek
Subject: Re: [bugs #12327] Live window resizing
Date: Fri, 18 Mar 2005 08:55:11 +0100
User-agent: Internet Messaging Program (IMP) 3.2.2

Citát Markus Hitter <mah@jump-ing.de>:

> 
> Am 15.03.2005 um 14:53 schrieb Stefan Urbanek:
> 
> >
> > URL:
> >   <http://savannah.gnu.org/bugs/?func=detailitem&item_id=12327>
> >
> > When using a window manager, such as metacity, that draws windows while
> > resizing, GNUstep draws each view in the window. This consumes too 
> > much CPU
> > and causes flickering. This is problem mainly for windows with complex 
> > views
> > with lots of drawing inside, including text compositing.
> >
> >
> > This can be avoided if gnustep has implemented NSView methods:
> >
> >  inLiveResize
> >  viewWillStartLiveResize
> >  viewDidEndLiveResize
> 
> You want every piece of GNUstep and it's apps to honor such settings?
>

Yes, even core-gui. See below.

> Not sure wether it's a good idea to burden GNUstep with this 
> misbehaviour of the window management. If a window manager uses live 
> window moving, it should move the contents as well and not ask the app 
> to redraw the window over and over.
> 

Misbehavior of the window manager? There is no problem with window moving, but
with window resizing. While resizing, you need to redraw the window for each
size change as you want to see NSView autoresizing changes to be reflected.

One solution would be scaling the contents of the window as an image. But I do
not think that is a good idea, as the scalig just makes false impression of the
future window contents after resizing is finished. Scaling does not relfect
autoresizing and autopositioning of views.

Those methods allow views to know, that the window is being resized (again, not
moved!) and they should draw only minimum number of parts. For example, in a
complex diagram view, only frames would be drawn. Image you resize a window
with very complex drawing in it, such as CAD drawing, or lengthly rendered 3D
image. For core-gui elements, there should be drawn: NSBrowser - only column
frames, NSTableView - only headers and the table grid...

Again, those methods are there to speed-up the live resizing and to lower CPU
consumption while resizing. 

Regards,

Stefan Urbanek
--
http://stefan.agentfarms.net

First they ignore you, then they laugh at you, then they fight you, then
you win.
- Mahatma Gandhi




reply via email to

[Prev in Thread] Current Thread [Next in Thread]