Commit graph

20 commits

Author SHA1 Message Date
Henrik Lissner
5e25cfd6a7
Fix delete-other-windows in popups #858
Originally, calling delete-other-windows from a popup window would kill
only popup windows. This has been corrected to raise the popup, *then*
delete other windows.

As if you'd done `M-x +popup/raise` then `M-x delete-other-windows`
2018-09-02 20:38:36 +02:00
Henrik Lissner
be8eedc296
Fix lost window state when toggling popups
Replaces af045213 with a method for preserving popup state.
2018-08-29 02:16:06 +02:00
Henrik Lissner
af045213e3
Preserve window state when toggling popups
e.g. size
2018-08-26 17:24:27 +02:00
Henrik Lissner
bfa6fce15f
+popup/buffer: hide buffer being popped up #825 2018-08-23 17:12:49 +02:00
Henrik Lissner
cbc59f9333
Appease the byte-compiler 2018-07-30 12:10:11 +02:00
Henrik Lissner
1205db0f73
Decouple :modeline popup rule from modeline API
The :modeline property still takes:

  t => default modeline
  nil => no modeline (the default)

But now also accepts:

  function => uses its return value as the mode-line-format
  anything non-nil => used directly as the mode-line-format

This is to decouple the popup API from the modeline API. You can still
use them compositionally:

  (set-popup-rule "abc" :modeline (lambda () (set-modeline! :project)))
2018-07-30 02:57:50 +02:00
Henrik Lissner
399194e868
Autoload +popup--init
Fixes #766
2018-07-21 14:00:02 +02:00
Henrik Lissner
a406b2d0c8
Ignore errors if display-buffer ALIST is malformed
The gud.el library uses display-buffer incorrectly, by passing a list of
functions as its second argument, instead of as a nested list.

CORRECT:
  (display-buffer buffer
    '((display-buffer-reuse-window
       display-buffer-in-previous-window
       display-buffer-same-window display-buffer-pop-up-window)))

INCORRECT (how gud does it):
  (display-buffer buffer
    '(display-buffer-reuse-window
      display-buffer-in-previous-window
      display-buffer-same-window display-buffer-pop-up-window))

This causes "wrong-type-argument: listp
display-buffer-in-previous-window" error. However, it appears Emacs
handles malformed alists by just ignoring them, so Doom will do the
same.

Reported by @maskray
2018-07-04 21:42:33 +02:00
Henrik Lissner
cddde09b79
Fix popup system not cleaning up buffers with ttl
Because of extra parentheses causing essential logic from running. I am
a silly goose.
2018-07-01 00:57:27 +02:00
Henrik Lissner
04ee1c23fd
Don't set margins in left/right popups 2018-06-29 02:35:33 +02:00
Henrik Lissner
8fcc12ed08
Add +popup-display-buffer-fullframe
Adds support for the saved-wconf window parameter. If a popup possesses
a window configuration in this parameter, it will be restored when the
popup (or its popup buffer) is killed.
2018-06-25 19:28:09 +02:00
Henrik Lissner
618358413b
Major refactor of ui/popup
+ Make it pass tests
+ Changes the behavior and arguments of functions passed to :autosave,
  :ttl, and :modeline.
+ Updated the documentation of set-popup-rule! to reflect these changes
+ Phase out map.el usage as per f6dc6ac7
2018-06-23 22:18:44 +02:00
Henrik Lissner
ca2c8b5a45
Minor refactor, across the board
Do you see the board? Now look at the other side. That's how far this
refactor extends.

Yes.
2018-06-18 15:02:24 +02:00
Henrik Lissner
6808c46b58
💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00
Henrik Lissner
d31052d9db
Reformat popup library: move polyfills down 2018-06-17 02:21:46 +02:00
Henrik Lissner
1eae57a0b4
Rename +popup-display-buffer
To +popup-display-buffer-stacked-side-window, to make it more obvious
what it actually does.
2018-06-17 02:21:46 +02:00
Henrik Lissner
c3988a8298
Give popups a small margin
To make up for lack of fringe.
2018-06-17 02:21:46 +02:00
Henrik Lissner
9b5a219373
Improve robustness of popup predicates & checks 2018-06-17 02:21:46 +02:00
Henrik Lissner
74d364776e
Move no-other-window to +popup-default-parameters
Should be customizable.
2018-06-16 11:45:09 +02:00
Henrik Lissner
d8b1e469bc
Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00
Renamed from modules/ui/popup/autoload.el (Browse further)