chiark
/
gitweb
/
~mdw
/
clg
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Changed to use of settable FOREIGN-LOCATION
[clg]
/
gdk
/
gdk.lisp
diff --git
a/gdk/gdk.lisp
b/gdk/gdk.lisp
index 168ec8676c1e9859b5ef42bdec025e631c91d30d..65288951f7a34bc76feec06d5c66a9bbe5204567 100644
(file)
--- a/
gdk/gdk.lisp
+++ b/
gdk/gdk.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: gdk.lisp,v 1.
18 2005-11-10 09:01:36
espen Exp $
+;; $Id: gdk.lisp,v 1.
20 2006-02-08 22:20:22
espen Exp $
(in-package "GDK")
(in-package "GDK")
@@
-425,7
+425,7
@@
(defbinding rgb-init () nil)
(defmethod initialize-instance ((cursor cursor) &key type mask fg bg
(x 0) (y 0) (display (display-get-default)))
(setf
(defmethod initialize-instance ((cursor cursor) &key type mask fg bg
(x 0) (y 0) (display (display-get-default)))
(setf
- (
slot-value cursor 'location
)
+ (
foreign-location cursor
)
(etypecase type
(keyword (%cursor-new-for-display display type))
(pixbuf (%cursor-new-from-pixbuf display type x y))
(etypecase type
(keyword (%cursor-new-for-display display type))
(pixbuf (%cursor-new-from-pixbuf display type x y))
@@
-712,6
+712,13
@@
(progn
(defbinding cairo-create () cairo:context
(drawable drawable))
(defbinding cairo-create () cairo:context
(drawable drawable))
+ (defmacro with-cairo-context ((cr drawable) &body body)
+ `(let ((,cr (cairo-create ,drawable)))
+ (unwind-protect
+ (progn ,@body)
+ (unreference-foreign 'cairo:context (foreign-location ,cr))
+ (invalidate-instance ,cr))))
+
(defbinding cairo-set-source-color () nil
(cr cairo:context)
(color color))
(defbinding cairo-set-source-color () nil
(cr cairo:context)
(color color))