diff --git a/src/gui/client/main-window.lisp b/src/gui/client/main-window.lisp index c632080..f65509c 100644 --- a/src/gui/client/main-window.lisp +++ b/src/gui/client/main-window.lisp @@ -1416,108 +1416,111 @@ 1.0))) (render-ir-lines (get-address-bar-text main-window) main-window)) -(defun initialize-keybindings (main-window) - (let ((inner-gemtext-widget (gui:inner-text (gemtext-widget main-window)))) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :quit) - (lambda (e) - (declare (ignore e)) - (menu:quit))) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :search) - (lambda (e) - (declare (ignore e)) - (funcall (menu:show-search-frame-clsr main-window))) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :stream) - (lambda (e) - (declare (ignore e)) - (menu:show-streams)) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :certificates) - (lambda (e) - (declare (ignore e)) - (menu:show-certificates)) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-tour-manage) - (lambda (e) - (declare (ignore e)) - (menu:show-tour)) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :gemlog) - (lambda (e) - (declare (ignore e)) - (menu:manage-gemlogs)) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :about) - (lambda (e) - (declare (ignore e)) - (menu:help-about)) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :type-address) - (lambda (e) - (declare (ignore e)) - (let* ((autocomplete-entry (iri-entry (tool-bar main-window))) - (entry (nodgui.mw:autocomplete-entry-widget autocomplete-entry))) - (gui:focus entry) - (gui:set-selection entry 0 :end))) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-tour-shuffle) - (lambda (e) - (declare (ignore e)) - (client-tour-window:enqueue-shuffle-tour)) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-tour-next) - (lambda (e) - (declare (ignore e)) - (funcall (tour-visit-next-iri-clsr main-window))) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :back) - (lambda (e) - (declare (ignore e)) - (funcall (back-iri-clsr main-window))) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:get-keybinding :up) - (lambda (e) - (declare (ignore e)) - (funcall (up-iri-clsr main-window))) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-bookmark-toggle) - (lambda (e) - (declare (ignore e)) - (funcall (toggle-bookmark-iri-clsr main-window))) - :exclusive t) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-bookmark-show) - (lambda (e) - (declare (ignore e)) - (funcall (menu:show-bookmarks-clsr main-window)))) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-gemtext-scaling-increase) - (lambda (e) - (declare (ignore e)) - (scale-gemtext main-window 0.1))) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-gemtext-scaling-decrease) - (lambda (e) - (declare (ignore e)) - (scale-gemtext main-window -0.1))) - (gui:bind inner-gemtext-widget - (client-configuration:config-keybinding-gemtext-scaling-reset) - (lambda (e) - (declare (ignore e)) - (scale-gemtext main-window nil))))) +(defun initialize-keybindings (main-window target) + (gui:bind target + (client-configuration:get-keybinding :quit) + (lambda (e) + (declare (ignore e)) + (menu:quit))) + (gui:bind target + (client-configuration:get-keybinding :search) + (lambda (e) + (declare (ignore e)) + (funcall (menu:show-search-frame-clsr main-window))) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :stream) + (lambda (e) + (declare (ignore e)) + (menu:show-streams)) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :certificates) + (lambda (e) + (declare (ignore e)) + (menu:show-certificates)) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-tour-manage) + (lambda (e) + (declare (ignore e)) + (menu:show-tour)) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :gemlog) + (lambda (e) + (declare (ignore e)) + (menu:manage-gemlogs)) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :about) + (lambda (e) + (declare (ignore e)) + (menu:help-about)) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :type-address) + (lambda (e) + (declare (ignore e)) + (let* ((autocomplete-entry (iri-entry (tool-bar main-window))) + (entry (nodgui.mw:autocomplete-entry-widget autocomplete-entry))) + (gui:focus entry) + (gui:set-selection entry 0 :end))) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-tour-shuffle) + (lambda (e) + (declare (ignore e)) + (client-tour-window:enqueue-shuffle-tour)) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-tour-next) + (lambda (e) + (declare (ignore e)) + (funcall (tour-visit-next-iri-clsr main-window))) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :back) + (lambda (e) + (declare (ignore e)) + (funcall (back-iri-clsr main-window))) + :exclusive t) + (gui:bind target + (client-configuration:get-keybinding :up) + (lambda (e) + (declare (ignore e)) + (funcall (up-iri-clsr main-window))) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-bookmark-toggle) + (lambda (e) + (declare (ignore e)) + (funcall (toggle-bookmark-iri-clsr main-window))) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-bookmark-show) + (lambda (e) + (declare (ignore e)) + (funcall (menu:show-bookmarks-clsr main-window))) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-gemtext-scaling-increase) + (lambda (e) + (declare (ignore e)) + (scale-gemtext main-window 0.1)) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-gemtext-scaling-decrease) + (lambda (e) + (declare (ignore e)) + (scale-gemtext main-window -0.1)) + :exclusive t) + (gui:bind target + (client-configuration:config-keybinding-gemtext-scaling-reset) + (lambda (e) + (declare (ignore e)) + (scale-gemtext main-window nil)) + :exclusive t)) (defun init-main-window (starting-iri) (setf gui:*debug-tk* nil) @@ -1530,7 +1533,8 @@ (setf gui-goodies:*main-frame* main-frame) (initialize-menu gui:*tk* main-frame) (gui:grid main-frame 0 0 :sticky :nswe) - (initialize-keybindings main-frame) + (initialize-keybindings main-frame (gui:root-toplevel)) + (initialize-keybindings main-frame (gui:inner-text (gemtext-widget main-frame))) (gui-goodies:gui-resize-grid-all gui-goodies:*toplevel*) (gui:wait-complete-redraw) (when (string-not-empty-p starting-iri)