Am Donnerstag, den 27.08.2009, 14:51 -0500 schrieb Jeremy Hankins: > Jeremy Hankins <nowan nowan org> writes: > > Timo Korvola <Timo Korvola iki fi> writes: > >> On Thursday 27 August 2009 21:20:48 Jeremy Hankins wrote: > > > >>> Sure. I can specify a corner that I want a window to be in -- e.g., > >>> lower-right. Then it's kept in that spot even if it resizes. > >> > >> You mean like (window-put w 'gravity 'south-west)? The auto-gravity > >> property is also sometimes handy and can be set by a window matcher. > > > > Hmm. Yes, except that it also handles the initial placement. > > So this comes close to accomplishing the same thing as the corner-window > business: > > (add-window-matcher 'WM_CLASS "^Pager/pager$" > '(sticky-viewport . t) > '(gravity . south-east) > '(position . (-1 . -1))) > > But, of course, the position isn't quite right -- it's mostly off the > screen, with only a pixel showing. Shouldn't the position matcher > understand negative position numbers as referring to the right and/or > bottom of the window? So something like (untested): > > (define-match-window-setter 'position > (lambda (w prop value) > (declare (unused prop)) > (let ((x (car value)) > - (y (cdr value))) > + (y (cdr value)) > + (size (window-frame-dimensions w))) > (when (< x 0) > ;; XXX should change placement gravity > - (setq x (+ (screen-width) x))) > + (setq x (+ (- (screen-width) (car size)) x))) > (when (< y 0) > ;; XXX should change placement gravity > - (setq y (+ (screen-height) y))) > + (setq y (+ (- (screen-height) (cdr size)) y))) > (move-window-to w x y)))) > > It also seems natural to want to specify something like a -0 as a > position, but having a single pixel between the window and the corner > isn't a big deal. I just noticed that issue, too. > An alternate approach would be to use the gravity to decide the 0,0 > point for the initial placement. > I'd be happy to come up with a patch, > if desired. Yes. If you wrap a matcher around gravity or modify gravity directly is you decision.
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil