Merge branch 'medranocalvo/fix-input-mode-after-fullscreen' into externals/exwm
This commit is contained in:
		
						commit
						dbccda22a6
					
				
					 3 changed files with 12 additions and 14 deletions
				
			
		|  | @ -158,7 +158,11 @@ least SECS seconds later." | |||
| (defvar-local exwm--mode-line-format nil) ;save mode-line-format | ||||
| (defvar-local exwm--floating-frame-position nil) ;set when hidden. | ||||
| (defvar-local exwm--fixed-size nil)              ;fixed size | ||||
| (defvar-local exwm--input-mode 'line-mode)       ;Keyboard grabbed. | ||||
| (defvar-local exwm--selected-input-mode 'line-mode | ||||
|   "Input mode as selected by the user. | ||||
| One of `line-mode' or `char-mode'.") | ||||
| (defvar-local exwm--input-mode 'line-mode | ||||
|   "Actual input mode, i.e. whether mouse and keyboard are grabbed.") | ||||
| ;; Properties | ||||
| (defvar-local exwm--desktop nil "_NET_WM_DESKTOP.") | ||||
| (defvar-local exwm-window-type nil "_NET_WM_WINDOW_TYPE.") | ||||
|  |  | |||
|  | @ -411,7 +411,7 @@ ARGS are additional arguments to CALLBACK." | |||
|                  (when window (select-window window)))) | ||||
|              (with-current-buffer buffer | ||||
|                (when (derived-mode-p 'exwm-mode) | ||||
|                  (cl-case (exwm-input--current-input-mode) | ||||
|                  (cl-case exwm--input-mode | ||||
|                    (line-mode | ||||
|                     (setq mode (exwm-input--on-ButtonPress-line-mode buffer button-event))) | ||||
|                    (char-mode | ||||
|  | @ -427,7 +427,7 @@ ARGS are additional arguments to CALLBACK." | |||
|     (exwm--log "major-mode=%s buffer=%s" | ||||
|                major-mode (buffer-name (current-buffer))) | ||||
|     (if (derived-mode-p 'exwm-mode) | ||||
|         (cl-case (exwm-input--current-input-mode) | ||||
|         (cl-case exwm--input-mode | ||||
|           (line-mode | ||||
|            (exwm-input--on-KeyPress-line-mode obj data)) | ||||
|           (char-mode | ||||
|  | @ -688,17 +688,10 @@ The return value is used as event_mode to release the original | |||
| button event." | ||||
|   xcb:Allow:ReplayPointer) | ||||
| 
 | ||||
| (defun exwm-input--current-input-mode () | ||||
|   "Return current input mode. | ||||
| The return value is one of the symbols \\='line-mode or \\=`char-mode. | ||||
| 
 | ||||
| Current buffer must be an `exwm-mode' buffer." | ||||
|   exwm--input-mode) | ||||
| 
 | ||||
| (defun exwm-input--update-mode-line (id) | ||||
|   "Update the propertized `mode-line-process' for window ID." | ||||
|   (let (help-echo cmd mode) | ||||
|     (cl-case (exwm-input--current-input-mode) | ||||
|     (cl-case exwm--input-mode | ||||
|       (line-mode | ||||
|        (setq mode "line" | ||||
|              help-echo "mouse-1: Switch to char-mode" | ||||
|  | @ -763,6 +756,7 @@ Current buffer must be an `exwm-mode' buffer." | |||
|                        (exwm--buffer->id (window-buffer))))) | ||||
|   (when id | ||||
|     (exwm--log "id=#x%x" id) | ||||
|     (setq exwm--selected-input-mode 'line-mode) | ||||
|     (exwm-input--grab-keyboard id) | ||||
|     (exwm-input--update-mode-line id))) | ||||
| 
 | ||||
|  | @ -773,6 +767,7 @@ Current buffer must be an `exwm-mode' buffer." | |||
|                        (exwm--buffer->id (window-buffer))))) | ||||
|   (when id | ||||
|     (exwm--log "id=#x%x" id) | ||||
|     (setq exwm--selected-input-mode  'char-mode) | ||||
|     (exwm-input--release-keyboard id) | ||||
|     (exwm-input--update-mode-line id))) | ||||
| 
 | ||||
|  | @ -784,7 +779,7 @@ Current buffer must be an `exwm-mode' buffer." | |||
|   (when id | ||||
|     (exwm--log "id=#x%x" id) | ||||
|     (with-current-buffer (exwm--id->buffer id) | ||||
|       (cl-case (exwm-input--current-input-mode) | ||||
|       (cl-case exwm--input-mode | ||||
|         (line-mode | ||||
|          (exwm-input-release-keyboard id)) | ||||
|         (char-mode | ||||
|  |  | |||
|  | @ -45,7 +45,6 @@ | |||
| (defvar exwm-layout--timer nil "Timer used to track echo area changes.") | ||||
| 
 | ||||
| (defvar exwm-workspace--current) | ||||
| (declare-function exwm-input--current-input-mode "exwm-input.el") | ||||
| (declare-function exwm-input--release-keyboard "exwm-input.el") | ||||
| (declare-function exwm-input--grab-keyboard "exwm-input.el") | ||||
| (declare-function exwm-input-grab-keyboard "exwm-input.el") | ||||
|  | @ -200,7 +199,7 @@ | |||
|         (make-instance 'xcb:ewmh:set-_NET_WM_STATE :window exwm--id :data [])) | ||||
|     (xcb:flush exwm--connection) | ||||
|     (set-window-dedicated-p (get-buffer-window) nil) | ||||
|     (when (eq 'line-mode (exwm-input--current-input-mode)) | ||||
|     (when (eq 'line-mode exwm--selected-input-mode) | ||||
|       (exwm-input--grab-keyboard exwm--id)))) | ||||
| 
 | ||||
| ;;;###autoload | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue