[elpa] externals/exwm updated (3f77220 -> fdfdabf)

2016-02-19 Thread Chris Feng
ch11ng pushed a change to branch externals/exwm.

  from  3f77220   Fix floating X window bugs introduced by 9c95c03e
   new  bfd43fe   Add system tray support
   new  fc589b8   Fix system tray issues after updating workspaces
   new  08bf970   Minor fixes for system tray
   new  fdfdabf   Merge branch 'feat/systemtray' into externals/exwm


Summary of changes:
 README.md  |5 +-
 exwm-core.el   |7 +-
 exwm-floating.el   |   17 +--
 exwm-input.el  |   21 +++-
 exwm-layout.el |   24 +++-
 exwm-manage.el |   29 +++--
 exwm-randr.el  |   25 ++--
 exwm-systemtray.el |  388 
 exwm-workspace.el  |   55 ++--
 exwm.el|   16 +--
 10 files changed, 516 insertions(+), 71 deletions(-)
 create mode 100644 exwm-systemtray.el



[elpa] externals/exwm bfd43fe 1/4: Add system tray support

2016-02-19 Thread Chris Feng
branch: externals/exwm
commit bfd43feb494a8a7675f3a882ea5ebeaa91fb3f82
Author: Chris Feng 
Commit: Chris Feng 

Add system tray support

* exwm-systemtray.el: New module adds a simple system tray (using the X11
System Tray protocol).

* exwm-workspace.el (exwm-workspace-switch-hook, exwm-workspace-switch):
New hook run after switching workspace.
---
 exwm-systemtray.el |  372 
 exwm-workspace.el  |9 +-
 2 files changed, 377 insertions(+), 4 deletions(-)

diff --git a/exwm-systemtray.el b/exwm-systemtray.el
new file mode 100644
index 000..c892fcc
--- /dev/null
+++ b/exwm-systemtray.el
@@ -0,0 +1,372 @@
+;;; exwm-systemtray.el --- System Tray Module for  -*- lexical-binding: t -*-
+;;;EXWM
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Chris Feng 
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see .
+
+;;; Commentary:
+
+;; This module adds system tray support for EXWM.
+
+;; To use this module, load and enable it as follows:
+;;   (require 'exwm-systemtray)
+;;   (exwm-systemtray-enable)
+
+;;; Code:
+
+(require 'xcb-xembed)
+(require 'xcb-systemtray)
+(require 'exwm-core)
+(require 'exwm-workspace)
+
+(defclass exwm-systemtray--icon ()
+  ((width :initarg :width)
+   (height :initarg :height)
+   (visible :initarg :visible))
+  :documentation "Attributes of a system tray icon.")
+
+;; GTK icons require at least 16 pixels to show normally.
+(defconst exwm-systemtray--icon-min-size 16 "Minimum icon size.")
+
+(defvar exwm-systemtray-height (max exwm-systemtray--icon-min-size
+(line-pixel-height))
+  "System tray height.
+
+You shall use the default value if using auto-hide minibuffer.")
+
+(defvar exwm-systemtray-icon-gap 2 "Gap between icons.")
+
+(defvar exwm-systemtray--connection nil "The X connection.")
+(defvar exwm-systemtray--list nil "The icon list.")
+(defvar exwm-systemtray--selection-owner-window nil
+  "The selection owner window.")
+(defvar exwm-systemtray--embedder nil "The embedder window.")
+
+(defun exwm-systemtray--embed (icon)
+  "Embed an icon."
+  (exwm--log "(System Tray) Try to embed #x%x" icon)
+  (let ((info (xcb:+request-unchecked+reply exwm-systemtray--connection
+  (make-instance 'xcb:xembed:get-_XEMBED_INFO
+ :window icon)))
+width* height* visible)
+(when info
+  (exwm--log "(System Tray) Embed #x%x" icon)
+  (with-slots (width height)
+  (xcb:+request-unchecked+reply exwm-systemtray--connection
+  (make-instance 'xcb:GetGeometry :drawable icon))
+(setq height* exwm-systemtray-height
+  width* (round (* width (/ (float height*) height
+(when (< width* exwm-systemtray--icon-min-size)
+  (setq width* exwm-systemtray--icon-min-size
+height* (round (* height (/ (float width*) width)
+(exwm--log "(System Tray) Resize from %dx%d to %dx%d"
+   width height width* height*))
+  ;; Reparent to the embedder.
+  (xcb:+request exwm-systemtray--connection
+  (make-instance 'xcb:ReparentWindow
+ :window icon
+ :parent exwm-systemtray--embedder
+ :x 0
+ ;; Vertically centered.
+ :y (/ (- exwm-systemtray-height height*) 2)))
+  ;; Resize the icon.
+  (xcb:+request exwm-systemtray--connection
+  (make-instance 'xcb:ConfigureWindow
+ :window icon
+ :value-mask (logior xcb:ConfigWindow:Width
+ xcb:ConfigWindow:Height
+ xcb:ConfigWindow:BorderWidth)
+ :width width*
+ :height height*
+ :border-width 0))
+  ;; Set event mask.
+  (xcb:+request exwm-systemtray--connection
+  (make-instance 'xcb:ChangeWindowAttributes
+ :window icon
+ :value-mask xcb:CW:EventMask
+ :event-mask (logior xcb:EventMask:ResizeRedirect
+ xcb:EventMask:PropertyChange)))
+  (when (setq

[elpa] externals/exwm 08bf970 3/4: Minor fixes for system tray

2016-02-19 Thread Chris Feng
branch: externals/exwm
commit 08bf970b16405d4f6b48559e517ab61339a956bd
Author: Chris Feng 
Commit: Chris Feng 

Minor fixes for system tray

* exwm-systemtray.el (exwm-systemtray--embed): Default to visible if the
XEMBED_MAPPED flag is not set.
(exwm-systemtray--on-ClientMessage): Only embed new icons.  Ignore balloon
messages.
---
 exwm-systemtray.el |   21 -
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/exwm-systemtray.el b/exwm-systemtray.el
index 11d9be6..e9a9745 100644
--- a/exwm-systemtray.el
+++ b/exwm-systemtray.el
@@ -101,8 +101,13 @@ You shall use the default value if using auto-hide 
minibuffer.")
  :value-mask xcb:CW:EventMask
  :event-mask (logior xcb:EventMask:ResizeRedirect
  xcb:EventMask:PropertyChange)))
-  (when (setq visible
-  (/= 0 (logand (slot-value info 'flags) xcb:xembed:MAPPED)))
+  (setq visible (slot-value info 'flags))
+  (if visible
+  (setq visible
+(/= 0 (logand (slot-value info 'flags) xcb:xembed:MAPPED)))
+;; Default to visible.
+(setq visible t))
+  (when visible
 (exwm--log "(System Tray) Map the window")
 (xcb:+request exwm-systemtray--connection
 (make-instance 'xcb:MapWindow :window icon)))
@@ -245,13 +250,11 @@ You shall use the default value if using auto-hide 
minibuffer.")
 (setq data32 (slot-value data 'data32)
   opcode (elt data32 1))
 (cond ((= opcode xcb:systemtray:opcode:REQUEST-DOCK)
-   (exwm-systemtray--embed (elt data32 2)))
-  ((= opcode xcb:systemtray:opcode:BEGIN-MESSAGE)
-   ;; FIXME
-   )
-  ((= opcode xcb:systemtray:opcode:CANCEL-MESSAGE)
-   ;; FIXME
-   )
+   (unless (assoc (elt data32 2) exwm-systemtray--list)
+ (exwm-systemtray--embed (elt data32 2
+  ;; Not implemented (rarely used nowadays).
+  ((or (= opcode xcb:systemtray:opcode:BEGIN-MESSAGE)
+   (= opcode xcb:systemtray:opcode:CANCEL-MESSAGE)))
   (t
(exwm--log "(System Tray) Unknown opcode message: %s" obj)))
 



[elpa] externals/exwm fc589b8 2/4: Fix system tray issues after updating workspaces

2016-02-19 Thread Chris Feng
branch: externals/exwm
commit fc589b899b71e88e48931de41ea1df760f9c1edd
Author: Chris Feng 
Commit: Chris Feng 

Fix system tray issues after updating workspaces

* exwm-workspace.el (exwm-workspace-switch-hook): New hook run by
`exwm-workspace-switch'.
* exwm-randr.el (exwm-randr-refresh-hook): New hook run by
`exwm-randr--refresh'.
* exwm-systemtray.el (exwm-systemtray--on-randr-refresh)
(exwm-systemtray--on-workspace-switch, exwm-systemtray--init): Update the
system tray in `exwm-randr-refresh-hook' and `exwm-workspace-switch-hook'.

* exwm-layout.el (exwm-layout--set-frame-fullscreen):
* exwm-workspace.el (exwm-workspace--post-init): Wait until all workspace
frames are set fullscreen.

* exwm-workspace.el (exwm-workspace--current-width)
(exwm-workspace--current-height): New functions for retrieving the width
and height of the current workspace.
* exwm-layout.el (exwm-layout-set-fullscreen):
* exwm-manage.el (exwm-manage--manage-window)
(exwm-manage--on-ConfigureRequest):
* exwm-systemtray.el (exwm-systemtray--refresh, exwm-systemtray--init):
* exwm-workspace.le (exwm-workspace--resize-minibuffer-frame)
(exwm-workspace--on-ConfigureNotify): Switch to
`exwm-workspace--current-width' and `exwm-workspace--current-height'.

* exwm-core.el:
* exwm-floating.el:
* exwm-floating.el:
* exwm-input.el:
* exwm-layout.el:
* exwm-manage.el:
* exwm-randr.el:
* exwm-systemtray.el:
* exwm-workspace.el:
* exwm.el:
Clean up loading file.  Set/Unset some functions as commands.

* README.md: Add intro to system tray.
---
 README.md  |5 ++-
 exwm-core.el   |7 +-
 exwm-floating.el   |   17 +++
 exwm-input.el  |   21 +++--
 exwm-layout.el |   24 +++--
 exwm-manage.el |   29 +++-
 exwm-randr.el  |   25 -
 exwm-systemtray.el |   59 +++
 exwm-workspace.el  |   46 ++-
 exwm.el|   16 +++--
 10 files changed, 159 insertions(+), 90 deletions(-)

diff --git a/README.md b/README.md
index 09fe470..7f918bd 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,12 @@
 EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for
 Emacs built on top of [XELB](https://github.com/ch11ng/xelb).
 It features:
-+ Fully keyboard-driven operation
++ Fully keyboard-driven operations
 + Hybrid layout modes (tiling & stacking)
 + Workspace support
 + ICCCM/EWMH compliance
-+ Basic RandR support (optional)
++ (Optional) RandR (multi-monitor) support
++ (Optional) system tray
 
 Please check the [User Guide](https://github.com/ch11ng/exwm/wiki)
 for more details.
diff --git a/exwm-core.el b/exwm-core.el
index b09ca52..4d936ed 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -78,6 +78,9 @@
 (logior xcb:EventMask:StructureNotify xcb:EventMask:PropertyChange))
   "Event mask set on all managed windows.")
 
+(declare-function exwm-input--on-KeyPress-line-mode "exwm-input.el"
+  (key-press))
+
 ;; Internal variables
 (defvar-local exwm--id nil)   ;window ID
 (defvar-local exwm--container nil);container
@@ -110,7 +113,7 @@
 (defvar-local exwm--normal-hints-max-height nil)
 ;; (defvar-local exwm--normal-hints-win-gravity nil)
 ;; WM_HINTS
-(defvar-local exwm--hints-input nil);FIXME
+(defvar-local exwm--hints-input nil)
 (defvar-local exwm--hints-urgency nil)
 ;; _MOTIF_WM_HINTS
 (defvar-local exwm--mwm-hints nil)
@@ -126,6 +129,8 @@
 map)
   "Keymap for `exwm-mode'.")
 
+(declare-function exwm-manage--kill-buffer-query-function "exwm-manage.el")
+
 (define-derived-mode exwm-mode nil "EXWM"
   "Major mode for managing X windows.
 
diff --git a/exwm-floating.el b/exwm-floating.el
index 82b4487..209539e 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -28,7 +28,6 @@
 
 (require 'xcb-cursor)
 (require 'exwm-core)
-(eval-when-compile (require 'exwm-workspace))
 
 (defvar exwm-floating-border-width 1 "Border width of the floating window.")
 (defvar exwm-floating-border-color "navy"
@@ -50,12 +49,17 @@
 (defvar exwm-floating--cursor-bottom-left nil)
 (defvar exwm-floating--cursor-left nil)
 
+(defvar exwm-workspace--current)
+(defvar exwm-workspace--list)
+(defvar exwm-workspace-current-index)
+(defvar exwm-workspace--switch-history-outdated)
+(defvar exwm-workspace-minibuffer-position)
+
 (declare-function exwm-layout--refresh "exwm-layout.el")
+(declare-function exwm-layout--show "exwm-layout.el")
 
-;;;###autoload
 (defun exwm-floating--set-floating (id)
   "Make window ID floating."
-  (interactive)
   (let ((window (get-buffer-window (exwm--id->buffer id
 (when window;window in non-floating state
   (set-window-buffer window (other-buffer ;hide it first
@@ -85,7 +89,7 @@
  

[elpa] externals/exwm fdfdabf 4/4: Merge branch 'feat/systemtray' into externals/exwm

2016-02-19 Thread Chris Feng
branch: externals/exwm
commit fdfdabf95ae75a2f7af2758594b5d0246882f5a0
Merge: 3f77220 08bf970
Author: Chris Feng 
Commit: Chris Feng 

Merge branch 'feat/systemtray' into externals/exwm

A simple system tray based on the X11 'System Tray' and XEmbed protocol.
---
 README.md  |5 +-
 exwm-core.el   |7 +-
 exwm-floating.el   |   17 +--
 exwm-input.el  |   21 +++-
 exwm-layout.el |   24 +++-
 exwm-manage.el |   29 +++--
 exwm-randr.el  |   25 ++--
 exwm-systemtray.el |  388 
 exwm-workspace.el  |   55 ++--
 exwm.el|   16 +--
 10 files changed, 516 insertions(+), 71 deletions(-)

diff --git a/README.md b/README.md
index 09fe470..7f918bd 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,12 @@
 EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for
 Emacs built on top of [XELB](https://github.com/ch11ng/xelb).
 It features:
-+ Fully keyboard-driven operation
++ Fully keyboard-driven operations
 + Hybrid layout modes (tiling & stacking)
 + Workspace support
 + ICCCM/EWMH compliance
-+ Basic RandR support (optional)
++ (Optional) RandR (multi-monitor) support
++ (Optional) system tray
 
 Please check the [User Guide](https://github.com/ch11ng/exwm/wiki)
 for more details.
diff --git a/exwm-core.el b/exwm-core.el
index b09ca52..4d936ed 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -78,6 +78,9 @@
 (logior xcb:EventMask:StructureNotify xcb:EventMask:PropertyChange))
   "Event mask set on all managed windows.")
 
+(declare-function exwm-input--on-KeyPress-line-mode "exwm-input.el"
+  (key-press))
+
 ;; Internal variables
 (defvar-local exwm--id nil)   ;window ID
 (defvar-local exwm--container nil);container
@@ -110,7 +113,7 @@
 (defvar-local exwm--normal-hints-max-height nil)
 ;; (defvar-local exwm--normal-hints-win-gravity nil)
 ;; WM_HINTS
-(defvar-local exwm--hints-input nil);FIXME
+(defvar-local exwm--hints-input nil)
 (defvar-local exwm--hints-urgency nil)
 ;; _MOTIF_WM_HINTS
 (defvar-local exwm--mwm-hints nil)
@@ -126,6 +129,8 @@
 map)
   "Keymap for `exwm-mode'.")
 
+(declare-function exwm-manage--kill-buffer-query-function "exwm-manage.el")
+
 (define-derived-mode exwm-mode nil "EXWM"
   "Major mode for managing X windows.
 
diff --git a/exwm-floating.el b/exwm-floating.el
index 82b4487..209539e 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -28,7 +28,6 @@
 
 (require 'xcb-cursor)
 (require 'exwm-core)
-(eval-when-compile (require 'exwm-workspace))
 
 (defvar exwm-floating-border-width 1 "Border width of the floating window.")
 (defvar exwm-floating-border-color "navy"
@@ -50,12 +49,17 @@
 (defvar exwm-floating--cursor-bottom-left nil)
 (defvar exwm-floating--cursor-left nil)
 
+(defvar exwm-workspace--current)
+(defvar exwm-workspace--list)
+(defvar exwm-workspace-current-index)
+(defvar exwm-workspace--switch-history-outdated)
+(defvar exwm-workspace-minibuffer-position)
+
 (declare-function exwm-layout--refresh "exwm-layout.el")
+(declare-function exwm-layout--show "exwm-layout.el")
 
-;;;###autoload
 (defun exwm-floating--set-floating (id)
   "Make window ID floating."
-  (interactive)
   (let ((window (get-buffer-window (exwm--id->buffer id
 (when window;window in non-floating state
   (set-window-buffer window (other-buffer ;hide it first
@@ -85,7 +89,7 @@
  (unsplittable . t) ;and fix the size later
  (outer-id (string-to-number (frame-parameter frame 'outer-window-id)))
  (container (with-current-buffer (exwm--id->buffer id)
-  exwm--container))
+  exwm--container))
  (window (frame-first-window frame)) ;and it's the only window
  (x (slot-value exwm--geometry 'x))
  (y (slot-value exwm--geometry 'y))
@@ -194,10 +198,8 @@
 (select-frame-set-input-focus frame))
   (run-hooks 'exwm-floating-setup-hook))
 
-;;;###autoload
 (defun exwm-floating--unset-floating (id)
   "Make window ID non-floating."
-  (interactive)
   (let ((buffer (exwm--id->buffer id)))
 (with-current-buffer buffer
   ;; Reparent the frame back to the root window.
@@ -257,7 +259,6 @@
 (defvar exwm-floating--moveresize-calculate nil
   "Calculate move/resize parameters [buffer event-mask x y width height].")
 
-;;;###autoload
 (defun exwm-floating--start-moveresize (id &optional type)
   "Start move/resize."
   (let ((buffer (exwm--id->buffer id))
@@ -404,7 +405,6 @@
  :cursor cursor
  :time xcb:Time:CurrentTime)))
 
-;;;###autoload
 (defun exwm-floating--stop-moveresize (&rest _args)
   "Stop move/resize."
   (xcb:+request exwm--connection
@@ -434,7 +434,6 @@
   (xcb:flush exwm--connection)
   (setq exwm-floating--moveresize-calculate nil))
 
-;;;###autoload
 (defun exwm-floating--do-moveresize (data _synthetic)
   "Perform move

[elpa] externals/exwm updated (fdfdabf -> 1c79e1c)

2016-02-19 Thread Chris Feng
ch11ng pushed a change to branch externals/exwm.

  from  fdfdabf   Merge branch 'feat/systemtray' into externals/exwm
   new  33254c3   Redefine mode-specific keys
   new  1c79e1c   Prevent/Reduce flickering issues with floating X windows


Summary of changes:
 exwm-core.el |   12 ++--
 exwm-floating.el |   35 ++-
 exwm-layout.el   |   19 ++-
 exwm-manage.el   |   53 ++---
 4 files changed, 84 insertions(+), 35 deletions(-)



[elpa] externals/exwm 1c79e1c 2/2: Prevent/Reduce flickering issues with floating X windows

2016-02-19 Thread Chris Feng
branch: externals/exwm
commit 1c79e1c2384128915357ea629fc2a0503bd36733
Author: Chris Feng 
Commit: Chris Feng 

Prevent/Reduce flickering issues with floating X windows

* exwm-floating.el (exwm-floating--set-floating)
(exwm-floating--unset-floating): Prevent flickering when creating/removing
a floating X window.
* exwm-layout.el (exwm-layout--show): Show X windows after resizing to
prevent flickering.
* exwm-manage.el (exwm-manage--unmanage-window): Reduce flickering by
hiding the container.
(exwm-manage--kill-buffer-query-function): Prevent flickering by hiding the
container (except that the X window destroys itself after receiving the
WM_DELETE_WINDOW client message).
---
 exwm-floating.el |   35 ++-
 exwm-layout.el   |   19 ++-
 exwm-manage.el   |   53 ++---
 3 files changed, 78 insertions(+), 29 deletions(-)

diff --git a/exwm-floating.el b/exwm-floating.el
index 209539e..2769488 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -193,17 +193,42 @@
   (remove-hook 'window-configuration-change-hook #'exwm-layout--refresh)
   (set-window-buffer window (current-buffer)) ;this changes current buffer
   (add-hook 'window-configuration-change-hook #'exwm-layout--refresh)
-  (set-window-dedicated-p window t)
-  (exwm-layout--show id window))
-(select-frame-set-input-focus frame))
-  (run-hooks 'exwm-floating-setup-hook))
+  (set-window-dedicated-p window t))
+(select-frame-set-input-focus frame)
+;; `x_make_frame_visible' autoraises the frame.  Force lowering it.
+(xcb:+request exwm--connection
+(make-instance 'xcb:ConfigureWindow
+   :window outer-id
+   :value-mask xcb:ConfigWindow:StackMode
+   :stack-mode xcb:StackMode:Below))
+;; Show the X window with its container (and flush).
+(exwm-layout--show id window))
+  (run-hooks 'exwm-floating-setup-hook)
+  ;; Redraw the frame.
+  (redisplay))
 
 (defun exwm-floating--unset-floating (id)
   "Make window ID non-floating."
   (let ((buffer (exwm--id->buffer id)))
 (with-current-buffer buffer
-  ;; Reparent the frame back to the root window.
   (when exwm--floating-frame
+;; The X window is already mapped.
+;; Unmap the container to prevent flickering.
+(xcb:+request exwm--connection
+(make-instance 'xcb:UnmapWindow :window exwm--container))
+(xcb:flush exwm--connection)
+;; Unmap the X window.
+(xcb:+request exwm--connection
+(make-instance 'xcb:ChangeWindowAttributes
+   :window id :value-mask xcb:CW:EventMask
+   :event-mask xcb:EventMask:NoEvent))
+(xcb:+request exwm--connection
+(make-instance 'xcb:UnmapWindow :window id))
+(xcb:+request exwm--connection
+(make-instance 'xcb:ChangeWindowAttributes
+   :window id :value-mask xcb:CW:EventMask
+   :event-mask exwm--client-event-mask))
+;; Reparent the floating frame back to the root window.
 (let ((frame-id (frame-parameter exwm--floating-frame 'exwm-outer-id)))
   (xcb:+request exwm--connection
   (make-instance 'xcb:UnmapWindow :window frame-id))
diff --git a/exwm-layout.el b/exwm-layout.el
index c0f3c61..e3c1feb 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -53,14 +53,6 @@
 (defun exwm-layout--show (id &optional window)
   "Show window ID exactly fit in the Emacs window WINDOW."
   (exwm--log "Show #x%x in %s" id window)
-  (xcb:+request exwm--connection (make-instance 'xcb:MapWindow :window id))
-  (with-current-buffer (exwm--id->buffer id)
-(xcb:+request exwm--connection
-(make-instance 'xcb:MapWindow :window exwm--container)))
-  (xcb:+request exwm--connection
-  (make-instance 'xcb:icccm:set-WM_STATE
- :window id :state xcb:icccm:WM_STATE:NormalState
- :icon xcb:Window:None))
   (let* ((edges (window-inside-absolute-pixel-edges window))
  (width (- (elt edges 2) (elt edges 0)))
  (height (- (elt edges 3) (elt edges 1
@@ -93,7 +85,16 @@
  (elt relative-edges 0)
  (elt relative-edges 1)
  width height
- (active-minibuffer-window)
+ (active-minibuffer-window
+  ;; Make the resizing take effect.
+  (xcb:flush exwm--connection)
+  (xcb:+request exwm--connection (make-instance 'xcb:MapWindow :window id))
+  (xcb:+request exwm--connection
+  (make-instance 'xcb:MapWindow :window exwm--container))
+  (xcb:+request exwm--connection
+  (make-instance 'xcb:icccm:set-WM_STATE
+ 

[elpa] externals/exwm 33254c3 1/2: Redefine mode-specific keys

2016-02-19 Thread Chris Feng
branch: externals/exwm
commit 33254c37df052996d63ff2a55efeb2b6e8799694
Author: Chris Feng 
Commit: Chris Feng 

Redefine mode-specific keys

* exwm-core.el (exwm-mode-map): Redefine mode-specific keys to comply with
the key binding conventions.
---
 exwm-core.el |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/exwm-core.el b/exwm-core.el
index 4d936ed..5377c67 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -120,12 +120,12 @@
 
 (defvar exwm-mode-map
   (let ((map (make-sparse-keymap)))
-(define-key map "\C-ck" #'exwm-input-release-keyboard)
-(define-key map "\C-cf" #'exwm-layout-set-fullscreen)
-(define-key map "\C-cm" #'exwm-floating-toggle-floating)
-(define-key map "\C-cq" #'exwm-input-send-next-key)
-(define-key map "\C-cv" #'exwm-workspace-move-window)
-(define-key map "\C-cM" #'exwm-layout-toggle-mode-line)
+(define-key map "\C-c\C-f" #'exwm-layout-set-fullscreen)
+(define-key map "\C-c\C-k" #'exwm-input-release-keyboard)
+(define-key map "\C-c\C-m" #'exwm-workspace-move-window)
+(define-key map "\C-c\C-q" #'exwm-input-send-next-key)
+(define-key map "\C-c\C-t\C-f" #'exwm-floating-toggle-floating)
+(define-key map "\C-c\C-t\C-m" #'exwm-layout-toggle-mode-line)
 map)
   "Keymap for `exwm-mode'.")