Re: Comments on focusing (on new code in CVS)
Iban Hatchondo <[email protected]> Tue, 25 Mar 2003 10:34:53 +0100
| Newsgroups | gmane.comp.window-managers.eclipse |
|---|---|
| Message-ID | <[email protected]> |
Erik Enge wrote: > Erik Enge <[email protected]> writes: > > >> - If I have two windows. Window 1 is focused and window 2 is behind >> window 1 but I can see both. If I now hit the maximize button on >> window 2, I'd expect it to become focused as well as maximized. >> Currently, it only gets maximized. > > > I'm trying to fix that with the following code in input.lisp: > > ;; Maximization > (defmethod event-process ((event button-release) (max-b maximize-button)) > (when (< (event-code event) 4) > (with-slots (master window) max-b > (when (eq *focus-type* :on-click) > (vs:restack-window window (vs:nth-vscreen (root-vscreens *root*)))) > (when master (draw-focused-decoration master)) > (setf (netwm:net-active-window *root-window*) window)) > (maximize-window (button-master max-b) (event-code event)))) > [ snip ] > > As the attached screenshot shows, the window is maximized and partly > focused. Two problems exist: I can't see any attached files. > "partly focused" - as you can see (screenshot) the bigger window (the > one just maximized) is not focused (or has not loaded the pixmap that > represents the focusing) the title-bar. I can't explain why. > > The window that was previously focus is, well, still focused. :) Do I > need to call some more code to defocus the current window before > focusing a new one, perhaps? > > Thanks for any help, I think you went the wrong way: - if you use draw-focused-decoration, the decoration should be focused what is not the fact here. Why don't you just try to call (focus-widget max-b 0) ? It will gives the focus to the decoration according to focus rules (in wm.lisp) and the X events will do the rest: now the application got focus (according focus rules), a focus-in event will be generate on our display. And so, the event-process method for focus-in will be called. This method will restack the window if needed, draw focused decoration if decorated, and set the net-active-window property. (defmethod event-process ((event button-release) (max-b maximize-button)) (when (< (event-code event) 4) (maximize-window (button-master max-b) (event-code event)) (focus-widget max-b 0))) !ban. _______________________________________________ http://lists.unlambda.com/mailman/listinfo/eclipse