[elpa] externals/exwm updated (4838f2b -> db6d26c)

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

  from  4838f2b   Make input focus revert to pointer root
   new  84bdc13   Fix issues with moving X windows between workspaces
   new  db6d26c   Refresh the workspace after creating a floating X window


Summary of changes:
 exwm-floating.el  |2 +
 exwm-workspace.el |   94 +++-
 2 files changed, 58 insertions(+), 38 deletions(-)



[elpa] externals/exwm 84bdc13 1/2: Fix issues with moving X windows between workspaces

2016-02-24 Thread Chris Feng
branch: externals/exwm
commit 84bdc1378a7ebe4537c0cd1cf7cd054cd4e28b78
Author: Chris Feng 
Commit: Chris Feng 

Fix issues with moving X windows between workspaces

* exwm-workspace.el (exwm-workspace-move-window): Select the moved floating
X window.  Update the 'exwm-selected-window' frame parameter.
(exwm-workspace-switch): Check 'exwm-selected-window' for dead windows.
(exwm-workspace-switch-to-buffer): Allow non-interactive call.
---
 exwm-workspace.el |   94 +++-
 1 files changed, 56 insertions(+), 38 deletions(-)

diff --git a/exwm-workspace.el b/exwm-workspace.el
index 07bfdd9..4af98fb 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -178,7 +178,8 @@ The optional FORCE option is for internal use only."
   (user-error "[EXWM] Workspace index out of range: %d" index))
 (when (or force (/= exwm-workspace-current-index index))
   (let* ((frame (elt exwm-workspace--list index))
- (workspace (frame-parameter frame 'exwm-workspace)))
+ (workspace (frame-parameter frame 'exwm-workspace))
+ (window (frame-parameter frame 'exwm-selected-window)))
 (xcb:+request exwm--connection
 (make-instance 'xcb:ConfigureWindow
:window workspace
@@ -191,7 +192,7 @@ The optional FORCE option is for internal use only."
   (set-frame-parameter (with-current-buffer (window-buffer)
  exwm--frame)
'exwm-selected-window (selected-window)))
-(select-window (or (frame-parameter frame 'exwm-selected-window)
+(select-window (or (when (window-live-p window) window)
(frame-selected-window frame)))
 (set-frame-parameter frame 'exwm-selected-window nil)
 ;; Close the (possible) active minibuffer
@@ -231,6 +232,7 @@ The optional FORCE option is for internal use only."
 (defvar exwm-floating-border-width)
 (defvar exwm-floating-border-color)
 
+(declare-function exwm-layout--show "exwm-layout.el" (id))
 (declare-function exwm-layout--hide "exwm-layout.el" (id))
 (declare-function exwm-layout--refresh "exwm-layout.el")
 
@@ -274,7 +276,10 @@ The optional FORCE option is for internal use only."
  (frame-parameter frame 'exwm-workspace)
  :x x :y y))
   (xcb:flush exwm--connection)
-  (unless (exwm-workspace--minibuffer-own-frame-p)
+  (if (exwm-workspace--minibuffer-own-frame-p)
+  (when (= index exwm-workspace-current-index)
+(select-frame-set-input-focus exwm--floating-frame)
+(exwm-layout--refresh))
 ;; The frame needs to be recreated since it won't use the
 ;; minibuffer on the new workspace.
 (let* ((old-frame exwm--floating-frame)
@@ -326,19 +331,29 @@ The optional FORCE option is for internal use only."
 (add-hook 'window-configuration-change-hook
   #'exwm-layout--refresh)
 (delete-frame old-frame)
-(set-window-dedicated-p window t))
-  (make-frame-visible new-frame)
-  (with-selected-frame new-frame
-(exwm-layout--refresh)
+(set-window-dedicated-p window t)
+(exwm-layout--show id window))
+  (if (/= index exwm-workspace-current-index)
+  (make-frame-visible new-frame)
+(select-frame-set-input-focus new-frame)
+(redisplay
+  ;; Update the 'exwm-selected-window' frame parameter.
+  (when (/= index exwm-workspace-current-index)
+(with-current-buffer (exwm--id->buffer id)
+  (set-frame-parameter frame 'exwm-selected-window
+   (frame-root-window
+exwm--floating-frame)
   ;; Move the X window container.
-  (if (/= index exwm-workspace-current-index)
-  (bury-buffer)
-(set-window-buffer (get-buffer-window (current-buffer) t)
-   (or (get-buffer "*scratch*")
-   (progn
- (set-buffer-major-mode
-  (get-buffer-create "*scratch*"))
- (get-buffer "*scratch*")
+  (if (= index exwm-workspace-current-index)
+  (set-window-buffer (get-buffer-window (current-buffer) t)
+ (or (get-buffer "*scratch*")
+ (progn
+   (set-buffer-major-mode
+(get-buffer-create "*scratch*"))
+   

[elpa] externals/exwm db6d26c 2/2: Refresh the workspace after creating a floating X window

2016-02-24 Thread Chris Feng
branch: externals/exwm
commit db6d26c662a750b273e1bbc06902a2a46e101e4c
Author: Chris Feng 
Commit: Chris Feng 

Refresh the workspace after creating a floating X window

* exwm-floating.el (exwm-floating--set-floating): Refresh the workspace
(since auto-refresh was disabled).
---
 exwm-floating.el |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/exwm-floating.el b/exwm-floating.el
index b562019..4577053 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -209,6 +209,8 @@
   (add-hook 'window-configuration-change-hook #'exwm-layout--refresh)
   (set-window-dedicated-p window t)
   (exwm-layout--show id window))
+(with-selected-frame exwm-workspace--current
+  (exwm-layout--refresh))
 (select-frame-set-input-focus frame))
   (run-hooks 'exwm-floating-setup-hook)
   ;; Redraw the frame.



[elpa] master 673026e: packages/excorporate: New package, import version 0.7.0

2016-02-24 Thread Thomas Fitzsimmons
branch: master
commit 673026e59ce120808f3bca133c3c43a34a134d23
Author: Thomas Fitzsimmons 
Commit: Thomas Fitzsimmons 

packages/excorporate: New package, import version 0.7.0

* packages/excorporate/README,
packages/excorporate/excorporate-calendar.el,
packages/excorporate/excorporate-calfw.el.txt,
packages/excorporate/excorporate-org.el,
packages/excorporate/excorporate.el: New files.
---
 packages/excorporate/README   |   20 +
 packages/excorporate/excorporate-calendar.el  |   46 ++
 packages/excorporate/excorporate-calfw.el.txt |  128 
 packages/excorporate/excorporate-org.el   |  141 +
 packages/excorporate/excorporate.el   |  786 +
 5 files changed, 1121 insertions(+), 0 deletions(-)

diff --git a/packages/excorporate/README b/packages/excorporate/README
new file mode 100644
index 000..7389a88
--- /dev/null
+++ b/packages/excorporate/README
@@ -0,0 +1,20 @@
+Excorporate provides Exchange integration for Emacs.
+
+To create a connection to a web service:
+
+M-x excorporate
+
+Excorporate will prompt for an email address that it will use to
+automatically discover settings.  Then it will prompt you for your
+credentials two or three times depending on the server configuration.
+
+You should see a message indicating that the connection is ready
+either in the minibuffer or in the *Messages* buffer.
+
+Finally, run M-x calendar, and press 'e' to show today's meetings.
+
+If autodiscovery fails, customize `excorporate-configuration' to skip
+autodiscovery.
+
+For further information including connection troubleshooting, see the
+Excorporate Info node at C-h i d m Excorporate.
diff --git a/packages/excorporate/excorporate-calendar.el 
b/packages/excorporate/excorporate-calendar.el
new file mode 100644
index 000..506ac72
--- /dev/null
+++ b/packages/excorporate/excorporate-calendar.el
@@ -0,0 +1,46 @@
+;;; excorporate-calendar.el --- Exchange for calendar -*- lexical-binding: t 
-*-
+
+;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+
+;; Author: Thomas Fitzsimmons 
+;; Keywords: calendar
+
+;; This program 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.
+
+;; This program 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 this program.  If not, see .
+
+;;; Commentary:
+
+;; Add a calendar keybinding for Excorporate.  Default to the
+;; excorporate-org interface.
+
+;;; Code:
+
+(require 'calendar)
+
+(defcustom excorporate-calendar-show-day-function 'exco-org-show-day
+  "A function to be called by pressing `e' in Calendar."
+  :type 'function
+  :group 'excorporate)
+
+(defun exco-calendar-show-day ()
+  "Show meetings for the selected date."
+  (interactive)
+  (apply excorporate-calendar-show-day-function (calendar-cursor-to-date t)))
+
+;; I arrogantly claim "e" for now, but irresponsibly reserve the right
+;; to change it later.
+(define-key calendar-mode-map "e" #'exco-calendar-show-day)
+
+(provide 'excorporate-calendar)
+
+;;; excorporate-calendar.el ends here
diff --git a/packages/excorporate/excorporate-calfw.el.txt 
b/packages/excorporate/excorporate-calfw.el.txt
new file mode 100644
index 000..ad31ae9
--- /dev/null
+++ b/packages/excorporate/excorporate-calfw.el.txt
@@ -0,0 +1,128 @@
+;;; excorporate-calfw.el --- Exchange calendar view   -*- lexical-binding: t 
-*-
+
+;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+
+;; Author: Thomas Fitzsimmons 
+;; Keywords: calendar
+
+;; This program 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.
+
+;; This program 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 this program.  If not, see .
+
+;;; Commentary:
+
+;; Use the Calfw calendar framework to display daily meetings.
+
+;; To use this handler, set excorporate-calendar-show-day to
+;; exco-calfw-show-day using `customize-variable'.
+
+;; This Excorporate handler requires the Calfw package, which is not
+;; included in GNU ELPA because not all Calfw contributors have
+;; copyright assignment papers on file with the F

[elpa] externals/exwm b400ae6 2/2: Bump version to 0.4

2016-02-24 Thread Chris Feng
branch: externals/exwm
commit b400ae6eba75e61085b46a1671b52290e3ba30a2
Author: Chris Feng 
Commit: Chris Feng 

Bump version to 0.4
---
 exwm.el |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/exwm.el b/exwm.el
index d967c7e..39eb350 100644
--- a/exwm.el
+++ b/exwm.el
@@ -4,7 +4,7 @@
 
 ;; Author: Chris Feng 
 ;; Maintainer: Chris Feng 
-;; Version: 0.3
+;; Version: 0.4
 ;; Package-Requires: ((xelb "0.6"))
 ;; Keywords: unix
 ;; URL: https://github.com/ch11ng/exwm



[elpa] externals/exwm 5a39c5c 1/2: Allow user to hide floating X windows

2016-02-24 Thread Chris Feng
branch: externals/exwm
commit 5a39c5c2fad643a656c59c0071f0cbea58eb65a9
Author: Chris Feng 
Commit: Chris Feng 

Allow user to hide floating X windows

* exwm-core.el (exwm-mode-map): Add a new key to hide floating X windows.
* exwm-floating.el (exwm-floating-hide): New command to hide a floating X
window.

* exwm-workspace.el: Fix a compile warning.
---
 exwm-core.el  |1 +
 exwm-floating.el  |   16 
 exwm-workspace.el |2 +-
 3 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/exwm-core.el b/exwm-core.el
index 5377c67..e202d4e 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -121,6 +121,7 @@
 (defvar exwm-mode-map
   (let ((map (make-sparse-keymap)))
 (define-key map "\C-c\C-f" #'exwm-layout-set-fullscreen)
+(define-key map "\C-c\C-h" #'exwm-floating-hide)
 (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)
diff --git a/exwm-floating.el b/exwm-floating.el
index 4577053..ba162f6 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -284,6 +284,22 @@
 (exwm-floating--unset-floating exwm--id)
   (exwm-floating--set-floating exwm--id
 
+;;;###autoload
+(defun exwm-floating-hide ()
+  "Hide the current floating X window (which would show again when selected)."
+  (interactive)
+  (when (and (eq major-mode 'exwm-mode)
+ exwm--floating-frame)
+;; Put this floating X window at bottom.
+(xcb:+request exwm--connection
+(make-instance 'xcb:ConfigureWindow
+   :window exwm--container
+   :value-mask xcb:ConfigWindow:StackMode
+   :stack-mode xcb:StackMode:Below))
+;; FIXME: Should it be put into iconic state?
+(xcb:flush exwm--connection)
+(select-frame-set-input-focus exwm-workspace--current)))
+
 (define-obsolete-function-alias 'exwm-floating-hide-mode-line
   'exwm-layout-hide-mode-line "25.1" "Hide mode-line of a floating frame.")
 (define-obsolete-function-alias 'exwm-floating-show-mode-line
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 4af98fb..80767d5 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -232,7 +232,7 @@ The optional FORCE option is for internal use only."
 (defvar exwm-floating-border-width)
 (defvar exwm-floating-border-color)
 
-(declare-function exwm-layout--show "exwm-layout.el" (id))
+(declare-function exwm-layout--show "exwm-layout.el" (id &optional window))
 (declare-function exwm-layout--hide "exwm-layout.el" (id))
 (declare-function exwm-layout--refresh "exwm-layout.el")
 



[elpa] externals/exwm updated (db6d26c -> b400ae6)

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

  from  db6d26c   Refresh the workspace after creating a floating X window
   new  5a39c5c   Allow user to hide floating X windows
   new  b400ae6   Bump version to 0.4


Summary of changes:
 exwm-core.el  |1 +
 exwm-floating.el  |   16 
 exwm-workspace.el |2 +-
 exwm.el   |2 +-
 4 files changed, 19 insertions(+), 2 deletions(-)