| Re: [Sawfish] Activate workspace if 'focus-windows-when-mapped set patch |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, On Sat, 31 Mar 2012 18:50:47 +0200 wrote fuchur <flohtransporter@xxxxxxxxx>: >Hi, > >On Sat, 31 Mar 2012 12:50:07 +0900 (JST) >wrote Teika Kazura <teika@xxxxxxxxxxx>: > >>Why anyone hasn't complained so far?? >> >>Let me give a slight fix. It should be combined with the handling >>of focus-when-mapped, which is done in wm/state/transient.jl. (You can >>search by "git grep", like: >> $ git grep focus-when-mapped >>Or you can use "ack" command.) >>I wrote a patch. It also ensures that the switching of the >>workspace is done before set-input-focus. It should be so if your >>focus-mode is enter-exit. It's done in map-notify-hook. >> >>fuchur, could you test it? I don't use workspaces. (Please use the >>original focus.jl) >> >>Teika (Teika kazura) > >I have test your patch, and the patch is not work. I have also do some >tests. w returns the correct window by (set-input-focus w) in "(define >(transient-map-window w)" if the window appears on the current >workspace, but appears the window on a other workspaces as the selected >w is by (set-input-focus w) nil. > >At this moment i can't see how to fix it in transient-map-window, you >know i'm not a programmer, here only "learning by doing and testing". > Ok, with this small changes your patch here works perfect. -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
--- sawfish/lisp/sawfish/wm/state/transient.jl.orgi
+++ sawfish/lisp/sawfish/wm/state/transient.jl
@@ -163,8 +163,10 @@
;; or non-transients may get focus depending on options (yes, we
;; also handle non-transients).
(define (transient-map-window w)
+ (require 'sawfish.wm.workspace)
(when (and (window-really-wants-input-p w)
- (window-visible-p w)
+ (or (window-visible-p w)
+ (car (window-workspaces w)))
(or (let ((focus (input-focus)))
(and focus (transient-of-p w focus #:allow-root t)))
(let ((x-for-id (window-transient-p w)))
@@ -177,6 +179,8 @@
(not (window-get w 'never-focus))
(not (window-get w 'inhibit-focus-when-mapped)))
(window-get w 'focus-when-mapped))))))
+ (unless (window-in-workspace-p w current-workspace)
+ (select-workspace (car (window-workspaces w))))
(set-input-focus w)))
;; If a transient window gets unmapped that currently has the input
Attachment:
signature.asc
Description: PGP signature
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |