小编diy*_*ism的帖子

为什么XGrabKey会产生额外的焦点和焦点事件?

有没有人知道一个xlib函数来捕获一个按键事件而不会失去原始焦点?如何摆脱它?

(或"使用XGrabKey()而不产生抓取式焦点"?)

(或"如何摆脱系统级别的NotifyGrab和NotifyUngrab焦点事件?)

XGrabKey将失去对关键按下和恢复焦点的关注.

而且我想捕获按键而不将其泄漏到原始窗口(正如XGrabKey可以做到的那样).

参考文献:

  1. ...... XGrabKey将窃取焦点... https://bugs.launchpad.net/gtkhotkey/+bug/390552/comments/8

  2. ...程序接受控制以响应键组合做某事.同时,该程序暂时关注... 在XGrabKey(董事会)期间,发现哪个窗口已经集中

  3. ... XGrabKeyboard函数主动抓取键盘控制并生成FocusIn和FocusOut事件...... http://www.x.org/archive/X11R6.8.0/doc/XGrabKeyboard.3.html#toc3

  4. ...我无法看到提供metacity当前桌面变换行为的方法(同时更改和显示弹出对话框),而不会在窗口上引起Grab类型的焦点... https://mail.gnome .ORG /档案馆/ WM说明列表/ 2007-月/ msg00000.html

  5. ...全屏模式不应退出使用NotifyGrab的FocusOut事件... https://bugzilla.mozilla.org/show_bug.cgi?id=578265

  6. 抓住键盘不允许改变焦点... 抓住键盘不允许改变焦点

  7. Grabs生成的焦点事件(XGrabKeyboard的主动抓取和XGrabKey的被动抓取) http://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/libX11.html#Focus_Events_Generated_by_Grabs

  8. XGrabKey源代码:http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/GrKey.c 也许我们可以修改它来摆脱焦点事件?

  9. 有"DoFocusEvents(keybd,oldWin,grab-> window,NotifyGrab);" 在ActivateKeyboardGrab()中:http: //cgit.freedesktop.org/xorg/xserver/tree/dix/events.c

我正在为按键组合(和鼠标移动)地图软件写一次按键:https://code.google.com/p/diyism-myboard/

我已经在Windows中使用RegisterHotKey()和UnRegisterHotKey()实现了它:https://code.google.com/p/diyism-myboard/downloads/detail? name = MyBoard.pas

我想通过XGrabKey()和XUngrabKey()将其迁移到Linux:https://code.google.com/p/diyism-myboard/downloads/detail? name = myboard.py

我创造了10美元的赏金来解决这个问题.我们需要更多的支持者才能获得赏金. https://www.bountysource.com/issues/1072081-right-button-menu-flashes-while-jkli-keys-move-the-mouse-pointer

python linux x11 xlib

37
推荐指数
4
解决办法
3343
查看次数

为什么HTML/Web UI响应比Native UI慢?

我无法理解,为什么HTML/Web UI响应比WinForms/WPF/Android View/Native UI慢?

Native UI还具有样式,元素嵌套,事件,而不是Web UI的CSS,DOM,javascript事件.

事件响应时间包括:焦点更改,下拉,滚动,动画移动,动画调整大小等.

DOM树插入/替换也很慢,插入10000个字符html将在android 4.0中的谷歌浏览器中花费100毫秒,而解析其模板仅花费20毫秒(jQuery微模板).

我重新启动可能是减速事件响应的最大因素:

  1. 并行javascript进程之间的UI锁定;
  2. 渲染引擎太慢,无法处理来自javascript worker的新UI更改消息,尤其是当浏览器呈现引擎忙于最后一次UI更新时(因为第3点);
  3. html布局方法(例如:css级联,内联流布局,响应式布局等)可能会减慢部分UI更新速度.
  4. 解析html/xml花费很长时间,提示:Android视图通胀在很大程度上依赖于在构建时完成的XML文件的预处理(http://developer.android.com/reference/android/view/LayoutInflater.html)

HTML和CSS标准的子集可能是webview应用程序开发的未来解决方案:

http://www.silexlabs.org/haxe/cocktail/

http://www.terrainformatica.com/htmlayout/

http://www.nativecss.com/

http://www.pixate.com/

https://github.com/tombenner/nui

http://steelratstory.com/steelrat-products/wrathwebkit

http://trac.webkit.org/wiki/EFLWebKit

https://github.com/WebKitNix/webkitnix

http://qt-project.org/doc/qt-4.8/richtext-html-subset.html

http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/

一堆本机UI标记语言:http: //en.wikipedia.org/wiki/User_interface_markup_language

为什么没有简化的HTML标准和简化的Webcore布局引擎来取代这些原生的UIML?

也许我们可以在kivy.org项目中实现一个子集html.

PC,android浏览器=应用程序线程+ ui线程

iOS浏览器=应用程序线程+ ui数据线程+ ui硬件线程(CoreAnimation/OpenGL ES)

在ios浏览器中,应用程序线程可以直接调用ui硬件线程.

mobile user-interface native response web

17
推荐指数
1
解决办法
3412
查看次数

标签 统计

linux ×1

mobile ×1

native ×1

python ×1

response ×1

user-interface ×1

web ×1

x11 ×1

xlib ×1