mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
roll back render and move the resize observer to the clog framework
This commit is contained in:
parent
d924cc437c
commit
a34e516325
3 changed files with 15 additions and 20 deletions
|
|
@ -625,11 +625,17 @@ option passed from javascript calling the jQuery custom event mechanism
|
||||||
(defgeneric set-on-resize (clog-obj on-resize-handler)
|
(defgeneric set-on-resize (clog-obj on-resize-handler)
|
||||||
(:documentation "Set the ON-RESIZE-HANDLER for CLOG-OBJ. If ON-RESIZE-HANDLER
|
(:documentation "Set the ON-RESIZE-HANDLER for CLOG-OBJ. If ON-RESIZE-HANDLER
|
||||||
is nil unbind the event. In most modern browser this only works on the clog-window
|
is nil unbind the event. In most modern browser this only works on the clog-window
|
||||||
object. One can set-on-resize and then re-trigger this event on any clog-obj
|
object, unless a ResizeObserver is put in place, so one is installed except for
|
||||||
using (jquery-trigger obj \"resize\")."))
|
clog-window making this event functional."))
|
||||||
|
|
||||||
(defmethod set-on-resize ((obj clog-obj) handler)
|
(defmethod set-on-resize ((obj clog-obj) handler)
|
||||||
(set-on-event obj "resize" handler :cancel-event t))
|
(set-on-event obj "resize" handler :cancel-event t)
|
||||||
|
(unless (typep obj 'clog-window)
|
||||||
|
(js-execute obj (format nil "new ResizeObserver(() => {
|
||||||
|
~A.trigger('resize');
|
||||||
|
}).observe(~A)"
|
||||||
|
(jquery obj)
|
||||||
|
(script-id obj)))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
;; set-on-focus ;;
|
;; set-on-focus ;;
|
||||||
|
|
|
||||||
|
|
@ -212,8 +212,11 @@ return t on success"
|
||||||
(getf control-record :positioning))
|
(getf control-record :positioning))
|
||||||
(t
|
(t
|
||||||
:absolute)))
|
:absolute)))
|
||||||
(parent (when (getf data :shift-key)
|
(auto-parent (attribute content "data-clog-auto-parent"))
|
||||||
(current-control app)))
|
(parent (if (getf data :shift-key)
|
||||||
|
(current-control app)
|
||||||
|
(when auto-parent
|
||||||
|
(get-from-control-list app (html-id content) auto-parent))))
|
||||||
(control (create-control (if parent
|
(control (create-control (if parent
|
||||||
parent
|
parent
|
||||||
content)
|
content)
|
||||||
|
|
|
||||||
|
|
@ -111,28 +111,14 @@
|
||||||
handler)
|
handler)
|
||||||
events))))))
|
events))))))
|
||||||
;; Set on-create (from user in builder) and on-setup (from control-record)
|
;; Set on-create (from user in builder) and on-setup (from control-record)
|
||||||
(let ((resizeh (attribute control "data-on-resize"))
|
(let ((handler (attribute control "data-on-create")))
|
||||||
(handler (attribute control "data-on-create")))
|
|
||||||
(when (equalp handler "undefined")
|
(when (equalp handler "undefined")
|
||||||
(setf handler ""))
|
(setf handler ""))
|
||||||
(when (equalp resizeh "undefined")
|
|
||||||
(setf resizeh ""))
|
|
||||||
(when (getf control-record :on-setup)
|
(when (getf control-record :on-setup)
|
||||||
(setf handler (format nil "~A~A"
|
(setf handler (format nil "~A~A"
|
||||||
(funcall (getf control-record :on-setup)
|
(funcall (getf control-record :on-setup)
|
||||||
control control-record)
|
control control-record)
|
||||||
handler)))
|
handler)))
|
||||||
(unless (equal resizeh "")
|
|
||||||
(push (format nil
|
|
||||||
" \(js-execute panel
|
|
||||||
\(format nil \"new ResizeObserver\(\(\) => {
|
|
||||||
~~A.trigger\('resize'\);
|
|
||||||
}\).observe\(~~A\)\"
|
|
||||||
\(jquery \(~A panel\)\)
|
|
||||||
\(script-id \(~A panel\)\)\)\)"
|
|
||||||
vname
|
|
||||||
vname)
|
|
||||||
creates))
|
|
||||||
(unless (equal handler "")
|
(unless (equal handler "")
|
||||||
(push (format nil
|
(push (format nil
|
||||||
" \(let \(\(target \(~A panel\)\)\) ~
|
" \(let \(\(target \(~A panel\)\)\) ~
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue