[sawfish] added new frame-classes (extra buttons for decos) -- removed built-in audio support (instead rely on



commit 08c4aaaf09332b132c48b6fbc4a8d1f99d92a3df
Author: chrisb <zanghar freenet de>
Date:   Thu Oct 1 19:36:59 2009 +0200

    added new frame-classes (extra buttons for decos) -- removed built-in audio support (instead rely on an extern playbin)

 ChangeLog                           |   25 ++
 KEYBINDINGS                         |   30 ++-
 Makedefs.in                         |    4 -
 OPTIONS                             |   12 +-
 config.h.in                         |    6 -
 configure.in                        |   36 ---
 lisp/sawfish/wm/ext/audio-events.jl |    6 +-
 lisp/sawfish/wm/frames.jl           |    5 +
 lisp/sawfish/wm/keymaps.jl          |   51 ++++
 lisp/sawfish/wm/menus.jl            |    2 +-
 lisp/sawfish/wm/util/play-audio.jl  |   32 +--
 man/news.texi                       |   26 ++-
 man/sawfish.texi                    |   14 +-
 sawfish.ebuild.in                   |    4 +-
 src/Makefile.in                     |   10 +-
 src/play-sample.c                   |  549 -----------------------------------
 16 files changed, 174 insertions(+), 638 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index acfbbb3..421742c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2009-10-01  Christopher Bratusek <zanghar freenet de>
+	* configure.in
+	* OPTIONS
+	* src/play-sample.c
+	* src/Makefile.in
+	* Makedefs.in
+	* sawfish.ebuild.in
+	* lisp/sawfish/wm/util/play-audio.jl: removed built-in audio support, using /usr/bin/paplay by default
+
+	* man/sawfish.texi
+	* KEYBINDINGS
+	* lisp/sawfish/wm/frames.jl
+	* lisp/sawfish/wm/keymaps.jl: added new buttons (frame-classes) (+ keymaps and docs):
+                                      - sticky button
+				      - lock button
+				      - rename button
+				      - move/resize button
+				      - raise/lower button
+
+	* lisp/sawfish/wm/menus.jl: string change in customize-menu
+
+	* man/news.texi: updated
+
+	* OPTIONS: updated
+
 2009-09-29  Jeremy Hankins <nowan nowan org>
 	* lisp/sawfish/cfg/apply.jl
 	* lisp/sawfish/cfg/config.jl
diff --git a/KEYBINDINGS b/KEYBINDINGS
index 7d3156c..739cfd8 100644
--- a/KEYBINDINGS
+++ b/KEYBINDINGS
@@ -113,7 +113,7 @@ for example:
 ( unbind-keys global-keymap "W-Tab" 'cycle-windows )
 
 another thing would be nested keybindings (I prefer `macros' instead of `nested keyinbindgs'),
-like in emacs. nested means you first press keys which together act as a new modifier 
+like in emacs. nested means you first press keys which together act as a new modifier
 (this new modifier works like the compose key does -> you don't have to keep it pressed, like other modifiers),
 then you press another key (or keybinding) to actually perform the desired action, example:
 
@@ -189,3 +189,31 @@ Button1-Click1 -> Popup Window Menu
 shade-button-keymap (Those bindings are active when the pointer is on the shade button)
 
 Button1-Off -> Toggle Window Shaded
+
+sticky-button-keymap (Those bindings are active when the pointer is on the sticky button)
+
+Button1-Off -> Toggle Window Sticky
+Button2-Off -> Toggle Window Viewport-Sticky
+
+lock-button-keymap (Those bindings are active when the pointer is on the lock button)
+
+Button1-Off -> Toggle Window Fixed-Position
+
+rename-button-keymap (Those bindings are active when the pointer is on the rename button)
+
+Button1-Off -> Rename Window
+
+move-resize-button-keymap (Those bindings are active when the pointer is on the move/resize button)
+
+Button1-Off -> Move Window Interactively
+Button2-Off -> Resize Window Interactively
+Button3-Off -> Move Window Center
+Button4-Off -> Double Window Size
+Button5-Off -> Halve Window Size
+
+raise-lower-button-keymap (Those bindings are active when the pointer is on the raise/lower button)
+
+Button1-Off -> Raise Window
+Button2-Off -> Lower Window
+Button4-Off -> Raise Window Depth
+Button5-Off -> Lower Window Depth
diff --git a/Makedefs.in b/Makedefs.in
index 699af63..545e5da 100644
--- a/Makedefs.in
+++ b/Makedefs.in
@@ -66,10 +66,6 @@ GTK_CFLAGS= GTK_CFLAGS@
 GTK_LIBS= GTK_LIBS@
 REP_CFLAGS= REP_CFLAGS@
 REP_LIBS= REP_LIBS@
-AUDIOFILE_CFLAGS= AUDIOFILE_CFLAGS@
-AUDIOFILE_LIBS= AUDIOFILE_LIBS@
-ESD_CFLAGS= ESD_CFLAGS@
-ESD_LIBS= ESD_LIBS@
 LINGUAS= LINGUAS@
 PANGO_CFLAGS= PANGO_CFLAGS@
 PANGO_LIBS= PANGO_LIBS@
diff --git a/OPTIONS b/OPTIONS
index 4dbbe0f..f6af76c 100644
--- a/OPTIONS
+++ b/OPTIONS
@@ -307,9 +307,8 @@
 ;;	  ".")
 ;;    "List of directories to search for sound samples.")
 
-;;  (define-special-variable play-sample-program nil
-;;    "The program used to play audio samples. If unset, built-in
-;;support for ESD is used.")
+;;  (define-special-variable play-sample-program "/usr/bin/paplay"
+;;    "The program used to play audio samples.")
 
 ;; edge flip options
 
@@ -573,6 +572,8 @@
 
 ;; tab options
 
+;; (require 'sawfish.wm.tabs.tab)
+
 ;; (define-special-variable tab-left-dec-width 11
 ;;   "Width of tab's left-edge decoration")
 
@@ -582,7 +583,6 @@
 ;; (define-special-variable tab-left-margin 16 
 ;;   "Width of tab area's left-edge decoration")
 
-
 ;; (define-special-variable tab-right-margin 16
 ;;   "Width of tab area's right-edge decoration")
 
@@ -599,6 +599,8 @@
 
 ;; infinite-desktop options
 
+;; (require 'sawfish.wm.ext.infinite-desktop)
+
 ;; (define-special-variable infinite-desktop-p 1
 ;;   "Simulate an infinite desktop (Conflicts edge-flipping).")
 
@@ -630,6 +632,8 @@
 
 ;; view-clipboard options
 
+;; (require 'sawfish.wm.commands.user)
+
 ;; (define-special-variable clipboard-preview-clip-length 60
 ;;   "Maximum number of chars to display in `view-clipboard'")
 
diff --git a/config.h.in b/config.h.in
index 4125686..615489a 100644
--- a/config.h.in
+++ b/config.h.in
@@ -24,9 +24,6 @@
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 #undef HAVE_DOPRNT
 
-/* Have ESD */
-#undef HAVE_ESD
-
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
@@ -48,9 +45,6 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Have libaudiofile */
-#undef HAVE_LIBAUDIOFILE
-
 /* Define to 1 if you have the `nsl' library (-lnsl). */
 #undef HAVE_LIBNSL
 
diff --git a/configure.in b/configure.in
index f405ab1..7376a9d 100644
--- a/configure.in
+++ b/configure.in
@@ -261,36 +261,6 @@ if test "$with_gdk_pixbuf" = "no"; then
 			  ,AC_MSG_ERROR([cannot locate imlib1 library]))
 fi
 
-dnl Check for libaudiofile
-AUDIOFILE_MIN_VER="0.2.3"
-
-AC_ARG_WITH(audiofile,
-	    [  --with-audiofile	  Use libaudiofile for sound manipulation
-	     --without-audiofile], [], [with_audiofile=yes])
-
-if test "$with_audiofile" = "yes"; then
-    PKG_CHECK_MODULES(AUDIOFILE, audiofile >= ${AUDIOFILE_MIN_VER},
-		      ,AUDIOFILE_LIBS="`pkg-config --libs audiofile`"
-		      AUDIOFILE_CFLAGS="`pkg-config --cflags audiofile`"
-		      AC_DEFINE(HAVE_LIBAUDIOFILE, 1, [Have libaudiofile])
-		      ,AC_MSG_ERROR([cannot locate libaudiofile]))
-fi
-
-dnl Check for esound
-ESD_MIN_VER="0.2.23"
-
-AC_ARG_WITH(esd,
-	    [  --with-esd	  Use the Enlightened Sound Daemon
-	     --without-esd], [], [with_esd=yes])
-
-if test "$with_esd" = "yes"; then
-    PKG_CHECK_MODULES(ESD, esound >= ${ESD_MIN_VER}
-		      ,ESD_LIBS="`pkg-config --libs esound`"
-		      ESD_CFLAGS="`pkg-config --cflags esound`"
-		      AC_DEFINE(HAVE_ESD, 1, [Have ESD])
-		      ,AC_MSG_ERROR([cannot locate esound]))
-fi
-
 dnl Check wether to install mo files
 
 AC_ARG_WITH(nls,
@@ -411,12 +381,6 @@ AC_SUBST(GTK_LIBS)
 AC_SUBST(GTK_CFLAGS)
 AC_SUBST(REP_MIN_VER)
 AC_SUBST(REP_GTK_MIN_VER)
-AC_SUBST(AUDIOFILE_MIN_VER)
-AC_SUBST(AUDIOFILE_LIBS)
-AC_SUBST(AUDIOFILE_CFLAGS)
-AC_SUBST(ESD_MIN_VER)
-AC_SUBST(ESD_LIBS)
-AC_SUBST(ESD_CFLAGS)
 AC_SUBST(VERSION)
 AC_SUBST(PACKAGE)
 AC_SUBST(GETTEXT_PACKAGE)
diff --git a/lisp/sawfish/wm/ext/audio-events.jl b/lisp/sawfish/wm/ext/audio-events.jl
index 738df0b..1709bc1 100644
--- a/lisp/sawfish/wm/ext/audio-events.jl
+++ b/lisp/sawfish/wm/ext/audio-events.jl
@@ -28,12 +28,12 @@
 	  rep.system
 	  sawfish.wm.custom
 	  sawfish.wm.windows
-	  sawfish.wm.state.maximize)
+	  sawfish.wm.state.maximize
+	  sawfish.wm.util.play-audio)
 
   (define-structure-alias audio-events sawfish.wm.ext.audio-events)
 
-  (defgroup audio "Sound"
-    :require sawfish.wm.ext.audio-events)
+  (defgroup audio "Sound" :require sawfish.wm.ext.audio-events)
 
   ;; XXX it would be cool to merge the customization with the GNOME sound prefs
 
diff --git a/lisp/sawfish/wm/frames.jl b/lisp/sawfish/wm/frames.jl
index 98b4596..6ccfa51 100644
--- a/lisp/sawfish/wm/frames.jl
+++ b/lisp/sawfish/wm/frames.jl
@@ -644,6 +644,11 @@ generate.")
   (define-frame-class 'iconify-button '((keymap . iconify-button-keymap)))
   (define-frame-class 'maximize-button '((keymap . maximize-button-keymap)))
   (define-frame-class 'shade-button '((keymap . shade-button-keymap)))
+  (define-frame-class 'sticky-button '((keymap . sticky-button-keymap)))
+  (define-frame-class 'lock-button '((keymap . lock-button-keymap)))
+  (define-frame-class 'rename-button '((keymap . rename-button-keymap)))
+  (define-frame-class 'move-resize-button '((keymap . move-resize-button-keymap)))
+  (define-frame-class 'raise-lower-button '((keymap . raise-lower-button-keymap)))
 
   (define-frame-class 'title `((keymap . title-keymap)
 			       (cursor . ,(cursor-for-frame-part 'title))))
diff --git a/lisp/sawfish/wm/keymaps.jl b/lisp/sawfish/wm/keymaps.jl
index 1b1c0f7..da44f17 100644
--- a/lisp/sawfish/wm/keymaps.jl
+++ b/lisp/sawfish/wm/keymaps.jl
@@ -176,6 +176,57 @@ of a window. (Only mouse-bindings are evaluated in this map.)"
     :group bindings
     :type keymap)
 
+  (defcustom sticky-button-keymap (bind-keys (make-keymap)
+				   "Button1-Off" 'toggle-window-sticky
+				   "Button2-Off" '(call-command
+				                   (lambda ()
+						     (if (window-get (current-event-window) 'sticky-viewport)
+						           (window-put (current-event-window) 'sticky-viewport nil)
+							   (window-put (current-event-window) 'sticky-viewport t)))))
+    "Keymap containing bindings active when the pointer is in the sticky button
+of a window. (Only mouse-bindings are evaluated in this map.)"
+    :group bindings
+    :type keymap)
+
+  (defcustom lock-button-keymap (bind-keys (make-keymap)
+    "Button1-Off" '(call-command
+			(lambda ()
+				(if (window-get (current-event-window) 'fixed-position)
+					(window-put (current-event-window) 'fixed-position nil)
+					(window-put (current-event-window) 'fixed-position t)))))
+    "Keymap containing bindings active when the pointer is in the lock button
+of a window. (Only mouse-bindings are evaluated in this map.)"
+    :group bindings
+    :type keymap)
+
+  (defcustom rename-button-keymap (bind-keys (make-keymap)
+				   "Button1-Off" 'rename-window)
+    "Keymap containing bindings active when the pointer is in the rename button
+of a window. (Only mouse-bindings are evaluated in this map.)"
+    :group bindings
+    :type keymap)
+
+  (defcustom move-resize-button-keymap (bind-keys (make-keymap)
+                                        "Button1-Off" 'move-window-interactively
+					"Button2-Off" 'resize-window-interactively
+					"Button3-Off" 'move-window-center
+					"Button4-Off" 'double-window-size
+					"Button5-Off" 'halve-window-size)
+    "Keymap containing bindings active when the pointer is in the move/resize button
+of a window. (Only mouse-bindings are evaluated in this map.)"
+    :group bindings
+    :type keymap)
+
+  (defcustom raise-lower-button-keymap (bind-keys (make-keymap)
+                                         "Button1-Off" 'raise-window
+					 "Button2-Off" 'lower-window
+					 "Button4-Off" 'raise-window-depth
+					 "Button5-Off" 'lower-window-depth)
+    "Keymap containing bindings active when the pointer is in the raise/lower button
+of a window. (Only mouse-bindings are evaluated in this map.)"
+  :group bindings
+  :type keymap)
+
   (defvar pointer-motion-threshold 2
     "Distance in pixels pointer must move before generating motion events.")
 
diff --git a/lisp/sawfish/wm/menus.jl b/lisp/sawfish/wm/menus.jl
index ae145e0..3b20976 100644
--- a/lisp/sawfish/wm/menus.jl
+++ b/lisp/sawfish/wm/menus.jl
@@ -376,7 +376,7 @@ before killing it.")
 
   (define (custom-menu)
     `(,@(and custom-menu-includes-all-settings
-	     (list (list (_ "S_awfish-UI") 'customize) nil))
+	     (list (list (_ "S_awfishConfig") 'customize) nil))
       ,@(mapcar (lambda (sub)
 		  (list (_ (cadr sub))
 			(intern (concat "customize:"
diff --git a/lisp/sawfish/wm/util/play-audio.jl b/lisp/sawfish/wm/util/play-audio.jl
index 34561b3..8c5ac73 100644
--- a/lisp/sawfish/wm/util/play-audio.jl
+++ b/lisp/sawfish/wm/util/play-audio.jl
@@ -38,10 +38,9 @@
 	  ".")
     "List of directories to search for sound samples.")
 
-  (defcustom play-sample-program nil
-    "The program used to play audio samples. If unset, built-in support for \
-ESD is used."
-    :type (optional program)
+  (defcustom play-sample-program "/usr/bin/paplay"
+    "The program used to play audio samples."
+    :type program
     :group audio)
 
   ;; currently running audio process
@@ -59,18 +58,13 @@ ESD is used."
 	(setq real-name (make-temp-name))
 	(copy-file filename real-name)
 	(setq delete-it t))
-      (if play-sample-program
-	  ;; start programs asynchronously in case they block..
-	  (let ((sentinel (lambda (proc)
-			    (when (eq play-sample-process proc)
-			      (setq play-sample-process nil))
-			    (when delete-it
-			      (delete-file real-name)))))
-	    (when play-sample-process
-	      (kill-process play-sample-process))
-	    (setq play-sample-process (make-process standard-error sentinel))
-	    (start-process play-sample-process play-sample-program real-name))
-	(require 'sawfish.wm.util.play-sample)
-	(primitive-play-sample real-name)
-	(when delete-it
-	  (delete-file real-name))))))
+	;; start programs asynchronously in case they block..
+	(let ((sentinel (lambda (proc)
+	    (when (eq play-sample-process proc)
+	      (setq play-sample-process nil))
+	    (when delete-it
+	      (delete-file real-name)))))
+	  (when play-sample-process
+	    (kill-process play-sample-process))
+	  (setq play-sample-process (make-process standard-error sentinel))
+	  (start-process play-sample-process play-sample-program real-name)))))
diff --git a/man/news.texi b/man/news.texi
index 077c4bb..2604b7d 100644
--- a/man/news.texi
+++ b/man/news.texi
@@ -19,7 +19,13 @@ they occurred between. For more detailed information see the
 
 @item rep-gtk 0.18.4 -> 0.90.0
 @end itemize
+ item Removed requirements:
+ itemize @minus
+
+ item LibAudiofile
 
+ item ESounD
+ end itemize
 @item User visible changes:
 @itemize @minus
 
@@ -83,7 +89,7 @@ Shrink-yank functions and @code{send-to-workspace}.
 
 @item Sawfish does now support theme-tarballs compressed with XZ (aka LZMA2) or LZMA [Christopher Bratusek]
 
- item 3 new sawfish-mmc based commands (@code{maximize-unframe}, @code{maximize-reframe} and @code{rename-window}) [Christopher Bratusek]
+ item 3 new sawfish-mmc based commands (@code{maximize-unframe}, @code{maximize-reframe} and @code{rename-window} (not ICCCM compliant)) [Christopher Bratusek]
 
 @item 5 new move-cursor commands (@code{move-cursor-} @code{northwest}, @code{northeast}, @code{southwest}, @code{southeast}), and @code{move-cursor-center} [Christopher Bratusek]
 
@@ -126,6 +132,24 @@ In KDE4 WM Selector, Sawfish is added.
 
 @item Added @code{get-window-by-class} and @code{get-window-by-class-re} [Christopher Bratusek]
 @end itemize
+ item Removed Features:
+ itemize @minus
+
+ item Built-in audio support has been dropped, instead we rely on an extern playbin [Christopher Bratusek]
+ end itemize
+ item New Frame Classes:
+ itemize @minus
+
+ item @code{sticky-button}, a button to toggle window @code{sticky} or @code{viewport-sticky} [Christopher Bratusek]
+
+ item @code{lock-button}, a button to toggle window position @code{fixed} [Christopher Bratusek]
+
+ item @code{rename-button}, a button to rename the window-title and window-icon properties (not ICCCM compliant) [Christopher Bratusek]
+
+ item @code{move-resize-button}, a button to perform various move and resize actions on a window [Christopher Bratusek]
+
+ item @code{raise-lower-button}, a button to perform various raising and lowering actions on a window [Christopher Bratusek]
+ end itemize
 @item Widget Transistion:
 @itemize @minus
 
diff --git a/man/sawfish.texi b/man/sawfish.texi
index 4d14006..4fd46a9 100644
--- a/man/sawfish.texi
+++ b/man/sawfish.texi
@@ -3231,10 +3231,11 @@ The names of the pre-defined classes are as follows, their meanings
 should be self-explanatory:
 
 @code{title}, @code{menu-button}, @code{close-button},
- code{iconify-button}, @code{maximize-button}, @code{top-border},
- code{left-border}, @code{right-border}, @code{bottom-border},
- code{top-left-corner}, @code{top-right-corner},
- code{bottom-left-corner}, @code{bottom-right-corner}.
+ code{iconify-button}, @code{maximize-button}, @code{sticky-button},
+ code{lock-button}, @code{rename-button}, @code{move-resize-button},
+ code{raise-lower-button}, @code{top-border}, @code{left-border},
+ code{right-border}, @code{bottom-border}, @code{top-left-corner},
+ code{top-right-corner}, @code{bottom-left-corner}, @code{bottom-right-corner}.
 
 @noindent
 Extra classes can be created by adding to @code{frame-part-classes}.
@@ -5347,6 +5348,11 @@ Keymaps active in the title and borders of window frames.
 @itemx maximize-button-keymap
 @itemx menu-button-keymap
 @itemx shade-button-keymap
+ itemx sticky-button-keymap
+ itemx lock-button-keymap
+ itemx rename-button-keymap
+ itemx move-resize-button-keymap
+ itemx raise-lower-button-keymap
 Keymaps active in the standard window frame buttons.
 
 @item override-keymap
diff --git a/sawfish.ebuild.in b/sawfish.ebuild.in
index cef4265..58747ea 100644
--- a/sawfish.ebuild.in
+++ b/sawfish.ebuild.in
@@ -11,14 +11,12 @@ SRC_URI="mirror://sourceforge/sawmill/${P}.tar.bz2"
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
-IUSE="gnome esd nls audiofile"
+IUSE="gnome nls"
 
 RDEPEND=">=x11-libs/rep-gtk- REP_GTK_MIN_VER@
 	>=dev-libs/librep- REP_MIN_VER@
 	>=x11-libs/gtk+- GTK_MIN_VER@
 	>=x11-libs/pango- PANGO_MIN_VER@
-	audiofile? ( >=media-libs/audiofile- AUDIOFILE_MIN_VER@ )
-	esd? ( >=media-sound/esound- ESD_MIN_VER@ )
 	nls? ( sys-devel/gettext )"
 DEPEND="${RDEPEND}
 	>=dev-util/pkgconfig-0.12.0"
diff --git a/src/Makefile.in b/src/Makefile.in
index b7b2d91..bfadc71 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -31,14 +31,13 @@ SRCS :=	colors.c cursors.c display.c events.c fonts.c frames.c \
 	property-cache.c server.c session.c stacking-list.c windows.c
 OBJS := $(SRCS:.c=.o)
 
-DL_SRCS := gradient.c flippers.c x.c selection.c play-sample.c
+DL_SRCS := gradient.c flippers.c x.c selection.c
 DL_OBJS := $(DL_SRCS:%.c=%.la) client.la
 DL_DSTS = sawfish/wm/util/gradient.la sawfish/wm/util/flippers.la \
-	  sawfish/wm/util/x.la sawfish/wm/util/selection.la \
-	  sawfish/wm/util/play-sample.la
+	  sawfish/wm/util/x.la sawfish/wm/util/selection.la
 DL_DIRS = sawfish/wm/util
 
-override CFLAGS := $(CFLAGS) $(REP_CFLAGS) $(IMAGE_CFLAGS) $(X11_CFLAGS) $(ESD_CFLAGS) $(PANGO_CFLAGS)
+override CFLAGS := $(CFLAGS) $(REP_CFLAGS) $(IMAGE_CFLAGS) $(X11_CFLAGS) $(PANGO_CFLAGS)
 
 all : sawfish libclient.o $(DL_OBJS) .libexec gtk-style
 
@@ -50,9 +49,6 @@ sawfish : $(OBJS) $(LIBOBJS)
 %.la : %.lo
 	$(rep_DL_LD) $(LDFLAGS) -o $@ $<
 
-play-sample.la : play-sample.lo
-	$(rep_DL_LD) $(LDFLAGS) -o $@ $< $(ESD_LIBS) $(AUDIOFILE_LIBS)
-
 libclient_.lo : libclient.c
 	$(rep_LIBTOOL) --mode=compile --tag=CC $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
 



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