怎样美化 posframe

child-frame在mac上就是一个独立的window吧。Mac上的全屏是一个window独占那种,可能不兼容。

我感觉原理上可行,估计有bug.

现在的实现和native fullscreen不兼容

ns-use-native-fullscreen设成nil就行了

要想让mac的window出现在任意workspace上好像需要把它设成float window,现在的实现大概不仅没设而且给child frame也下了全屏的指令

实现child-frame的开发者好像没有mac,所以对mac的支持好不到哪去

1 个赞

像这种 posframe 和一般 frame 一样大了,仍然显示不全。但它和一般 tooltip 一样,移动光标就消失了。怎样看到下面的部分呢?

移动光标为啥会消失? 加了post-command-hook?

我一般都是直接用鼠标滚动

是的,不然怎么关闭?是一个词典应用,show at point

喔喔 鼠标能滚动内容吗

不能,滚动即消失

那我觉得要不还是把hook换成手动触发吧

毕竟也不是每个词都要查 有要查的词的时候按个键也不算太麻烦吧 放到post-command-hook里还会有performance issue

顺便你可以设一下posframe的大小 最好固定下来 resize也很慢

2 个赞

设为固定宽度后怎么样使用 visual-line?行太长了

求加一个border的功能,这样自定义一个浅对比度边框更友好一点

是的,我也很想要这个feature,可以根据background,弄个比它浅一点的,跟lsp-ui-doc类似

根据我之前的试验结果

border是可以定义颜色的 但是mac上不支持这个参数 ,linux上根据window manager的具体实现是可以的

internal-border的颜色由default face的background决定

在填充buffer的时候加一句visual line mode应该就可以了?

我早就想要这个功能了,现在是可以加border,但是无法更改它的颜色。。。。。。

internal-border 没有主题可以改它的颜色吧?

跟随background color

做为 tips 弾出窗口,反转文字的颜色跟 theme 比较搭:

(defun my/youdao-dictionary-result-show (string)
    (if (fboundp 'posframe-show)
        (let ((buffer " *my/youdao-dict-query-postframe-buffer*"))
          (posframe-show
           buffer
           :string (propertize string 'face '(:inverse-video t))
           :position (point)
           :left-fringe 8
           :right-fringe 8)
          (with-current-buffer buffer
            (abbrev-mode))
          (unwind-protect
              (push (read-event) unread-command-events)
            (posframe-hide buffer)))
      (youdao-dictionary--pos-tip string)))