[sawfish] NEWS behaviour change of never-close matcher (last new feature/behaviour change for 1.7.0)



commit e67907d8ef007b351bbcb9fdceefc4a568b9c0c9
Author: Christopher Roy Bratusek <zanghar freenet de>
Date:   Tue Sep 21 18:00:24 2010 +0200

    NEWS
    behaviour change of never-close matcher (last new feature/behaviour change for 1.7.0)

 ChangeLog                  |   11 +++++++++++
 lisp/sawfish/wm/keymaps.jl |    2 +-
 lisp/sawfish/wm/windows.jl |   24 ++++++++++++++----------
 man/news.texi              |   14 ++++++--------
 4 files changed, 32 insertions(+), 19 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 20335ec..4f388ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,17 @@
 
 	* debian/sawfish-data.install.in: remove monitor.png from here, too.
 
+2010-09-21  Teika kazura <teika lavabit com>
+	* lisp/sawfish/wm/keymaps.jl
+	* lisp/sawfish/wm/windows.jl: window-property 'never-delete'
+	spec change.
+	It was only used in delete-window-safely. But now, this property
+	is valid for some others too, but only when they are called
+	interactively. This allows user to choose the mouse binding of
+	"close-button".
+        The key binding of "close-button" is reverted to 'delete-window',
+	the previous.
+
 2010-09-19  Christopher Bratusek <zanghar freenet de>
 	* lisp/sawfish/wm/ext/old-window-menu.jl: removed. it has been replaced
 	by beos-window-menu in version 0.28.1
diff --git a/lisp/sawfish/wm/keymaps.jl b/lisp/sawfish/wm/keymaps.jl
index 09c0496..32552ee 100644
--- a/lisp/sawfish/wm/keymaps.jl
+++ b/lisp/sawfish/wm/keymaps.jl
@@ -138,7 +138,7 @@ a window. (Only mouse-bindings are evaluated in this map.)"
   (defcustom close-button-keymap (bind-keys (make-keymap)
 				   "Button3-Click1" 'popup-window-menu
 				   "S-Button1-Off" 'delete-group
-				   "Button1-Off" 'delete-window-safely)
+				   "Button1-Off" 'delete-window)
     "Keymap containing bindings active when the pointer is in the close button
 of a window. (Only mouse-bindings are evaluated in this map.)"
     :group bindings
diff --git a/lisp/sawfish/wm/windows.jl b/lisp/sawfish/wm/windows.jl
index 9145680..28d7120 100644
--- a/lisp/sawfish/wm/windows.jl
+++ b/lisp/sawfish/wm/windows.jl
@@ -404,20 +404,24 @@ use. Otherwise (window-size-hints W) is used."
 ;;; deleting windows
 
   (define (delete-window w #!optional safely)
-    "Delete the window."
-    (cond
-     ((window-supports-wm-protocol-p w 'WM_DELETE_WINDOW)
-      (send-client-message w 'WM_PROTOCOLS (vector (x-atom 'WM_DELETE_WINDOW)
-						   (x-server-timestamp)) 32))
-     (safely (beep))
-     (t (x-kill-client w))))
+    "Delete a window. If the window does not support that protocol,
+kill the client."
+    (unless (and (memq this-command
+		       '(delete-window delete-window-safely
+			 delete-group delete-window-instance))
+		 (window-get w 'never-delete))
+      (cond
+       ((window-supports-wm-protocol-p w 'WM_DELETE_WINDOW)
+	(send-client-message w 'WM_PROTOCOLS (vector (x-atom 'WM_DELETE_WINDOW)
+						     (x-server-timestamp)) 32))
+       (safely (beep))
+       (t (x-kill-client w)))))
 
   (define-command 'delete-window delete-window #:spec "%W")
 
   (define (delete-window-safely w)
-    "Delete the window, or beep if the window can't be closed safely."
-    (if (not (window-get w 'never-delete))
-      (delete-window w t)))
+    "Delete a window, or beep if the window can't be closed safely."
+    (delete-window w t))
 
   (define-command 'delete-window-safely delete-window-safely #:spec "%W")
 
diff --git a/man/news.texi b/man/news.texi
index 251b6de..90eff3a 100644
--- a/man/news.texi
+++ b/man/news.texi
@@ -182,8 +182,8 @@ resized by the @code{resize-window-interactively}, @code{halve-window-size}
 and @code{double-window-size} functions, maximize-* functions, still do. See
 @code{never-maximize} window-matcher to prevent this, too.
 
- item @code{never-close}: this window-matcher prevents the window brom being
-closed by the @code{delete-window-safely} function. @code{delete-window} still does.
+ item @code{never-close}: this window-matcher prevents the windows brom being
+closed when calling the deletion-function interactively.
 @end itemize
 
 @item Update of emacs major mode @file{sawfish.el} [Teika kazura]
@@ -293,12 +293,6 @@ In window cycling, some unnecessary pointer warping is avoided.
 Previously, the necessity of a warp was judged by the geometry before
 the raise was done. Now the updated one is used.
 
- item Minor change in default keymap [Christopher Bratusek]
-
-The close-button of a window now calls @code{delete-window-safely}
-rather than @code{delete-window}. It's less aggressive and honours
-the @code{never-close} window-matcher, too.
-
 @item @code{sawfish.cfg.utils} module [Christopher Bratusek]
 
 Previously the functions @code{remove-newlines} and
@@ -315,6 +309,10 @@ if the icon does not show up, then run @code{gtk-update-icon-cache
 @item set the root-containers shadow-type to etched-in
 
 @item use nicer stock-buttons with icons instead of plain buttons
+
+ item change the boolean buttons in @code{Window Rules} to display
+Enable rather than Yes and No. This improves the thing a bit. A
+real solution (read: revised UI) will come with Sawfish 3.0.0.
 @end itemize
 
 @item Doc improvements



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