CN107466394A - 在异步窗口化系统中经由命中测试的视图激活 - Google Patents

在异步窗口化系统中经由命中测试的视图激活 Download PDF

Info

Publication number
CN107466394A
CN107466394A CN201680020985.1A CN201680020985A CN107466394A CN 107466394 A CN107466394 A CN 107466394A CN 201680020985 A CN201680020985 A CN 201680020985A CN 107466394 A CN107466394 A CN 107466394A
Authority
CN
China
Prior art keywords
view
input
application
active
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680020985.1A
Other languages
English (en)
Other versions
CN107466394B (zh
Inventor
H·M·罗斯诺
A·黄
R·巴拉苏布拉马尼恩
B·雅兹齐
P·弗赖林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107466394A publication Critical patent/CN107466394A/zh
Application granted granted Critical
Publication of CN107466394B publication Critical patent/CN107466394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

各实施例提供了用于基于检测显示器上的触摸来激活分布式异步系统中的应用的系统和方法。

Description

在异步窗口化系统中经由命中测试的视图激活
背景技术
许多设备(诸如计算机、平板、智能电话和游戏系统)允许用户触摸或者“点击”所显示的对象,以便选择选项或者标识应当在何处键入诸如击键之类的附加的输入。例如,用户可用他或她的手指触摸显示器,或者使用诸如鼠标点击或笔触之类的指针输入来标识显示器上的感兴趣区域。设备可使用命中测试来确定显示器的哪个区域已被选择,并接着基于在所选区域中所显示的对象来执行附加的操作。例如,当用户已在应用的显示上选择了输入字段(例如,文本输入字段)时,应用被通知附加的输入(诸如键盘输入)与所选输入字段相关联。在同步操作系统中,中央组件执行该命中测试,并确定显示器的哪个部分已被选择。
在允许同时显示多个应用窗口的系统中,命中测试不仅可确定哪个区域已被选择,而且还可确定两个或多个所显示的应用中的哪一个与所选区域相关联。例如,不同的应用可被显示在不同的窗口中,其中这些窗口中的一个与当前活动的应用相关联。同步系统中的中央组件接收所有输入,并具有关于所有被显示的窗口的知识。这允许用户的指针输入容易与目标窗口相关联,使得非活动或未所选窗口在附加的输入(例如,击键)被提供给所选应用之前被触摸时可被激活。
概述
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
在一个实施例中,异步窗口化系统包括显示器、处理器;以及储存计算机可执行指令的系统存储器,这些指令在由处理器执行时促使处理器经由命中测试来提供视图激活。系统检测显示器上的输入。显示器上的输入可例如来自人类触摸或定点设备。
系统中的输入状态管理器接着使用显示器上的输入对可视化树执行命中测试,以标识所选视图。所选视图接着与活动视图进行比较。当所选视图与活动视图不匹配时,通知系统中的命令解释程序(shell)。输入状态管理器接着被通知命令解释程序是否已确定所选视图应当作为新的活动视图。
系统可进一步指令应用激活服务来激活与所选视图相关联的应用。当与所选视图相关联的应用已作为活动视图时,通知输入状态管理器。
系统在所选视图与活动视图不匹配时储存键盘输入。然后,被储存的键盘输入在所选视图已作为活动视图时被路由到与所选视图相关联的应用。
命令解释程序可应用视图策略来确定所选视图何时应当作为新的活动视图。
系统可进一步确定命令解释程序何时已拒绝将所选视图设定为新的活动视图。基于以往被拒绝的视图,系统可在所选视图的后续选择与活动视图不匹配时确定是否通知命令解释程序。
在另一实施例中,一种用于在显示器上激活视图的方法,包括检测显示器上的输入,使用显示器上的输入对可视化树执行命中测试以标识针对所选视图的顶层可视化,将所选视图与活动视图进行比较,当所选视图与活动视图不匹配时通知命令解释程序,以及通知输入状态管理器命令解释程序是否已确定所选视图应当作为新的活动视图。命令解释程序可应用视图策略来确定所选视图何时应当作为新的活动视图。
该方法还可包括指令应用激活服务来激活与所选视图相关联的应用,以及当与所选视图相关联的应用已作为活动视图时通知输入状态管理器。
在其他实施例中,该方法还包括当所选视图与活动视图不匹配时储存键盘输入,以及当所选视图已作为活动视图时将被储存的键盘输入路由到与所选视图相关联的应用。
该方法还可包括确定输入状态管理器何时已拒绝将所选视图设定为新的活动视图,以及当所选视图的后续选择与活动视图不匹配时评估是否通知命令解释程序。
在另一实施例中,一种方法包括在显示器上显示活动应用视图和至少一个非活动应用视图,对显示器上的触摸进行命中测试以标识所选应用,当所选应用不是活动应用时通知命令解释程序组件,以及当所选应用不是活动应用时对键盘输入进行排队。
该方法还可包括在接收到所选应用的激活完成的通知之后向所选应用提供经排队的键盘输入,或者在接收到所选应用的激活被拒绝的通知之后向先前活动的应用提供经排队的键盘输入。
该方法还可包括由命令解释程序组件评估是否将所选应用作为新的活动应用。
该方法还可包括从视图管理组件接收所选应用正成为新的活动应用的通知,以及将在随后的命中测试中被标识出的应用与新的活动应用进行比较。
该方法还可包括从命令解释程序或视图管理组件接收所选应用未正成为新的活动应用的通知,以及将所选应用储存到被拒绝的应用的列表中。尽快报告关于哪个视图是活动的决定以最小化键盘输入被排队的时间是有利的。该方法可接着对显示器上的第二触摸执行命中测试以标识第二所选应用,确定第二所选应用不是活动应用,并且基于被拒绝的应用的列表来确定当第二所选应用不是活动应用时是否通知视图管理组件。
附图
为进一步阐明各实施例的上述及其他优点和特征,将参考附图来呈现对各实施例的更具体的描述。可以理解,这些附图仅描绘了典型的实施例,因此将不被认为是对本发明的范围的限制。将通过附图的使用伴随附加的特征及细节来描述和解释本发明,在附图中:
图1例示了具有显示器和键盘的系统,用于经由异步窗口化系统中的命中测试来实现视图激活。
图2是例示分布式异步操作系统的某些组件的框图。
图3是例示分布式异步系统中用于基于检测到显示器上的触摸来激活应用的各组件的交互的框图。
图4是例示根据一示例实施例的一种用于在显示器上激活视图的方法的流程图。
图5例示了可在其上实现各示例实施例的合适的计算和联网环境的示例。
详细描述
图1例示了具有显示器101和键盘102的系统100。用于两个应用的窗口在显示器101上可见。计算器应用是活动的并且在显示器101的前景中被显示为窗口103。联系人列表应用是非活动的,并且被显示为计算器应用窗口103后的窗口104。计算器应用显示了数个按钮105,其允许用户键入数字、选择数学运算或向计算器应用提供其他输入。附加地,当计算器应用处于活动时,用户可经由键盘102而不是使用显示器101上的按钮105来键入数字或者运算。联系人列表应用还在窗口104中显示了数个输入字段,这些输入字段将允许用户在联系人列表应用处于活动时键入文本数据。
当计算器应用是当前所选应用并被显示为前景窗口103时,来自键盘102的所有输入都被提供给计算器应用。由于联系人列表应用当前未被选择,所以它被显示为背景窗口102。应当理解,任何数量的附加应用还可能在设备100上运行。在不是当前所选应用时,这些附加的应用可被显示在显示器101上的附加的背景窗口中,并且不接收来自用户的键盘输入。
用户可触摸窗口104来选择联系人列表应用并使其成为当前所选应用。如本文所使用的,术语“触摸”将被理解为用户的手指或显示器上的其他对象的任何触摸,并且包括诸如鼠标或触摸板之类的通过定点设备的选择。当用户已选择联系人列表应用时,联系人列表窗口104在显示器101上被绘制成前景应用并且计算器窗口103被移动到背景或者被最小化。设备100将来自键盘102的所有将来的输入发送到联系人列表应用,直到它被关闭或者另一应用被挑选为当前所选应用。
当设备100正处于改变为新的当前所选应用的过程中时,对键盘102的输入必须被引导到正确的应用。由此,设备100必须确定在新应用被触摸或点击之后所检测到的键盘输入旨在用于旧的当前所选应用(例如,计算器应用)还是新的当前所选应用(例如,联系人列表应用)。在具有带有整体同步窗口管理器的操作系统的现有设备中,用户指针输入可容易地与目标窗口相关联,使得键盘输入被路由到相关联的应用,因为同步窗口管理器接收到所有输入并且知道被绘制在显示器101上的所有窗口。单个整体组件的使用可能会产生性能瓶颈,因为所有系统操作必须通过该组件,从而导致操作性延迟。在异步分布式操作系统中,这样的延迟可被最小化,因为各系统组件能够独立地运行。然而,在分布式异步系统中,用于管理当前所选应用和键盘输入的新的过程必须被使用以确保键盘输入被引导到正确的应用。
应用可以是可见的(即,被绘制在显示器上)或者不可见的(即,未被绘制在显示器上或者被最小化)。可见应用中的一个是活动的,并被绘制在显示器上的前景中。该活动应用将接收来自键盘的任何输入。在应用的视图上经常显示有许多控件(例如,按键、按钮、文本框)。这些控件中的一个将具有聚焦,并将接收任何输入,诸如键盘输入。
图2是例示分布式异步操作系统200的某些组件的框图。该系统允许设备检测用户何时已触摸或点击了显示器上可见的但不是当前/前景应用的应用,并接着激活被触摸/点击的应用,并向该应用提供将来的键盘输入。命令解释程序201管理操作系统的其他组件(诸如应用激活服务202和输入状态管理器203)并且应用策略204。应用激活服务202负责控制在设备上运行的应用205以及如何显示这些应用。视图管理器206具有所显示的所有视图和这些视图的当前状态的知识。导航服务器207具有如何将应用视图从一个状态转换到另一状态并提供统一事件序列的知识。例如,导航服务器207对应用205指令它们是活动/不活动的,并接着监听这些应用以确认它们是活动/不活动的。在一个实施例中,应用激活服务202可以是命令解释程序201中的视图管理软件的组件。
输入状态管理器203使用用于命中测试的可视化树208来确定用户在显示器209上已触摸或点击了的位置。可视化树208包括多个空间节点210,其中每个节点210表示显示器的特定部分。子节点对应于由它们各自的父节点表示的显示区域的子部分。当用户触摸在显示器上被检测到时,输入状态管理器203从可视化树208上的顶部节点开始,并沿树下行直到其到达与用户选择的显示区域相关联的最特定节点。然后,输入状态管理器203将输入发送到与被触摸或点击的显示器的部分相关联的输入接收器(input sink)211。输入状态管理器203还跟踪显示器上的活动视图212和最近触摸的视图213。
输入服务214接收来自键盘215的输入,诸如击键、按钮按压等。输入服务214管理这样的键盘215输入应当被发送到的位置,诸如被发送到当前所选择的或者活动的应用205。输入服务214可提供附加的文本编辑服务,诸如自动完成、文本校正、拼写检查等。输入服务214还可以与活动应用的编辑控件进行交互以修改来自键盘215的输入。
分布式异步操作系统200的组件使用消息传送进行通信。这允许各组件独立地操作,而没有一个组件充当潜在地阻塞设备的操作的瓶颈。然而,在这样一种异步系统中,一个组件不知道另一组件何时接收到消息,或者该另一组件何时按消息行事。因此,与现有技术的整体同步系统不同,分布式异步系统组件必须提供附加的信息,以确保各组件正在一起工作来改变应用视图和输入。
图3是例示分布式异步系统300中用于基于检测到显示器301上的触摸来激活应用的各组件的交互的框图。两个应用正运行在示例系统上,即计算器应用302和联系人列表应用303。对应的视图被创建在显示器301上,其中视图304对应于计算器应用302,而视图305对应于联系人列表应用303。在本示例中,计算器应用302是当前所选应用,并且作为显示器301上的视图304在前景中被示出。用于联系人列表应用303的视图305在背景中被示出,因为它不是当前所选应用。
可视化树306包括与计算器应用302(节点307)和联系人列表应用303(节点309)相关联的顶层节点。当在显示器301上创建应用302、303和视图304、305并使其可见时,各应用的顶层可视化的相应输入接收器308、310用唯一地标识当前会话中的视图304、305的标识符来进行注释。视图信息可被储存在被用于命中测试的可视化树304的任何部分上。
当命中测试由输入状态管理器311执行时,在命中测试过程期间所遇到的输入接收器的自底到顶的列表被返回。例如,当用户触摸用于计算器应用302的视图304上所显示的键(例如,数学运算键)时,命中测试可检测到节点307c对应于用户触摸点周围的显示器的最小区域。这标识了已由用户选择的显示器的特定区域。输入接收器308c标识对应的触摸数据应当被提供作为输入的位置。例如,在视图304上所显示的数学运算键上的触摸可被发送到计算器应用302。
输入状态管理器311还标识与该触摸相关联的针对顶层视图307的接收器输入308。针对顶层视图的搜索可在命中测试搜索内被同时执行或者作为分开的搜索被执行。该信息被储存作为用于被检测到的每次点击、笔触或触摸的最近触摸的视图312。
在本示例中,当前所选应用是计算器应用302,并且活动视图313储存用于计算器应用的顶层视图307。只要计算器应用302是当前所选应用,从输入服务315处的键盘314接收到的任何输入都被传递到计算器应用302。
如果用户想要使用联系人列表应用303并且在显示器301上触摸视图305,则输入状态管理器311将执行命中测试以检测对应于被触摸的区域309a的输入接收器310a。附加地,输入状态管理器311将标识用于该触摸的顶层视图309,其将被储存到最近触摸的视图312。在检测到新的命中测试视图(即,309)不是活动视图且不是最近命中测试视图(即,307)之际,输入状态管理器311将向命令解释程序316发送通知消息31。输入状态管理器311储存当前活动视图313和最近触摸的视图312以便限制通知31,使得这些通知仅针对感兴趣的命中测试事件发生,诸如当用于不同应用的视图已被触摸时。这将输入状态管理器311和命令解释程序316之间的交互数量最小化到可能要求改变活动应用视图的事件。
在替代实施例中,输入状态管理器311可针对被检测到的每次触摸发送通知消息,而不考虑哪个应用是当前活动的以及哪个应用已被触摸。
命令解释程序316接收通知消息31并应用策略317以确定要采取的动作。命令解释程序316用消息32来回复以向输入状态管理器311通知与最近触摸的视图相对应的应用是否将被激活或者激活是否将被拒绝。例如,如果通知消息31指示最近触摸的视图312是联系人列表应用303而活动视图313是计算器应用302,则命令解释程序316可确定联系人列表应用303应当被激活。命令解释程序316将响应于消息32来向输入状态管理器311通知该激活。在其他情况下,策略317可能导致命令解释程序316拒绝针对某些最近触摸的视图(诸如用于软件键盘、虚拟鼠标控制器、系统消息等的特殊视图)的激活。
系统的各实施例被设计成通过避免与当前活动视图313相关联的重复的通知消息31来节省功率并降低噪声。如果命中测试指示最近触摸的顶层视图是活动视图,则不需要向命令解释程序316通知可能的视图变化。附加的实施例可提供进一步的优化以减少与命中测试视图(其激活已被命令解释程序317拒绝)相关联的重复的通知消息31。例如,如果输入状态管理器311确定最近触摸的视图与软件键盘相关联,而活动视图是计算器应用302,则输入状态管理器311将向命令解释程序316发送通知消息31。如上所述,策略317可防止活动视图从计算器应用变化为软件键盘。由此,命令解释程序316将响应于消息32来拒绝视图变化。
每当最近触摸的视图312与活动视图313不同时,输入状态管理器311可继续发送通知消息,而不考虑先前的拒绝。在另一实施例中,当针对特定视图的视图变化已被命令解释程序316拒绝时,输入状态管理器311可使用该拒绝来确定是否有将来的通知消息31。输入状态管理器311可跟踪被拒绝的视图318,并且使用该信息来评估是否发送针对先前被拒绝的视图的通知消息31。输入状态管理器311可采用任何数量的选项来处理被拒绝的视图。例如,输入状态管理器311可在所有时间或者预先确定的时间段内停止针对被拒绝的视图的将来的通知消息。预先确定的时间段的长度可以是针对所有视图的设定的持续时间,或者可在因视图或应用而异的基础上进行设定。在其他实施例中,输入状态管理器311不会停止或减少针对特定视图的通知消息,直到该特定视图已被命令解释程序316拒绝了两次或更多次。
当命令解释程序316确定视图应当被改变时,其通过发送视图状态改变消息33来通知应用激活服务319。应用激活服务319处理新应用(例如,联系人列表应用303)的激活以及旧应用(例如,计算器应用302)的解除激活。应用激活服务319向计算器应用302发送解除激活消息34,计算器应用302用解除激活确认消息35来回复。应用激活服务319向联系人列表应用303发送激活消息36,联系人列表应用303用激活确认消息37来回复。
一旦应用激活服务319已证实联系人列表应用303已经确认其现在是活动应用,则分别在消息38和39中向输入状态管理器311和输入服务315标识该激活应用。替代地,应用激活服务319可发布或公布当前应用的身份,并且输入状态管理器311和输入服务315可监听对当前应用状态的更新。
在触摸由输入状态管理器311在新的视图上检测到之后到达输入服务315处的键盘输入应被路由到新的活动应用。然而,由于系统300的分布式特性,在命令解释程序316已经作出策略决定以激活新的应用之前,存在键盘输入将流向先前的(即,不正确的)应用的风险。因此,系统300必须协调活动视图、活动应用和键盘输入之间的变化。
在一个实施例中,当视图命中测试通知31将被发送到命令解释程序316时(即,当最近触摸的视图312与活动视图313不匹配时),输入状态管理器311还向输入服务315发送通知消息30,其指示可发生活动应用方面的可能的改变。在接收到通知消息30之际,输入服务315暂停对应用的键盘输入递送并将后续的键击储存在队列320中。如果命令解释程序拒绝激活新的视图,则键盘输入被恢复,并且输入服务315将所有排队的键盘输入递送到与先前活动视图相关联的应用。当这样一种视图变化被拒绝时,输入服务315可由命令解释程序316、输入状态管理器311或应用激活服务319来通知。虽然键盘在本文的示例中被用作应用的输入源,但是应当理解,应用可接收来自其他源(诸如定点设备、触摸屏、触摸板、游戏控制器、多自由度设备、成像设备、麦克风、相机以及任何其他嵌入式或外围设备)的输入。
替代地,如果命令解释程序决定新的应用应当被激活,则输入服务315继续使键盘输入排队,直到新的视图的激活被完成。然后,经排队的键盘输入被递送到新激活的视图。与点击/触摸和击键之间的时间相比,视图的激活可能需要大量时间,因为视图响应于激活事件而可能要求大量处理。当这样一种视图变化被完成时,输入服务315可由命令解释程序316、输入状态管理器311或应用激活服务319来通知。
为了防止阻塞,输入服务315可限制其等待激活或者拒绝新的视图或应用的改变的持续时间。输入服务315可使键盘输入排队达预先确定的等待时间段,或者直到预先确定的数据量被储存到键盘输入队列320。一旦已经过预先确定的等待时间段或者已储存了预先确定的数据量,则输入服务315可假设视图变化被拒绝,并接着将所有经排队的键盘输入提供给先前的应用。
发起命中测试的触摸或者在键盘输入正排队时发生的任何其他触摸可能落在编辑控件上。如果编辑控件在处于正被激活的过程中的视图中,则一旦视图激活被完成,该编辑控件将接收聚焦。
图4是例示根据一示例实施例的一种用于在显示器上激活视图的方法的流程图。在步骤401中,输入在显示器上被检测到。显示器上的输入可例如来自人类触摸或定点设备。在步骤402中,对可视化树执行命中测试以标识针对所选视图的顶层可视化。命中测试使用显示器上的输入来被执行。命中测试可例如由输入状态管理器来执行。
在步骤403中,将所选视图与活动视图进行比较。在步骤404中,当所选视图与活动视图不匹配时通知命令解释程序。在步骤405中,键盘输入在所选视图与活动视图不匹配时被储存。
在步骤406中,输入状态管理器被通知命令解释程序是否已确定所选视图应当作为新的活动视图。在步骤407中,应用激活服务被指令来激活与所选视图相关联的应用。在步骤408中,被储存的键盘输入在所选视图已作为活动视图时被路由到与所选视图相关联的应用。
应当理解,图4中所例示的过程的步骤401-408可同时和/或顺序地被执行。还可以理解,每个步骤可以按任何顺序执行,且可被执行一次或重复执行。
图5例示了其上可实现图1-4的示例的合适的计算和联网环境500的一个示例。计算系统环境500只是合适的计算环境的一个示例,而非意在暗示对本发明的使用或功能性范围有任何限制。本发明可用众多其他通用或专用计算系统环境或配置来操作。适用于本发明的公知计算系统、环境、和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可被实践在分布式计算环境中,分布式计算环境中任务是由通过通信网络链接的远程处理设备执行的。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图5,用于实现本发明的各方面的示例性系统可包括计算机500形式的通用计算设备。组件可包括但不限于诸如处理单元501之类的各种硬件组件、诸如系统存储器之类的数据存储502、以及将包括数据存储502在内的各种系统组件耦合到处理单元501的系统总线503。系统总线503可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的局部总线。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机500通常包括各种计算机可读介质504。计算机可读介质504可以是能由计算机500访问的任何可用介质,并同时包含易失性和非易失性介质以及可移动、不可移动介质,但不包括传播信号。作为示例而非限制,计算机可读介质504可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或可以用来储存所需信息并可以被计算机500访问的任何其他介质。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“经调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也包括在计算机可读介质的范围内。计算机可读介质可被实现为计算机程序产品,诸如被储存在计算机存储介质上的软件。
数据存储或系统存储器502包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机500中元件之间传递信息的基本例程,它通常被储存在ROM中。RAM通常包含处理单元501可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制性,数据存储502保存操作系统、应用程序、其他程序模块、和程序数据。
数据存储502还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,数据存储502可以是对不可移动、非易失性磁介质进行读写的硬盘驱动器,对可移动、非易失性磁盘进行读写的磁盘驱动器,以及对诸如CD ROM或其他光学介质等可移动、非易失性光盘进行读写的光盘驱动器。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。以上描述并在图5中示出的驱动器及其相关联的计算机存储介质为计算机500提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。
用户可通过用户接口505或诸如平板、电子数字化仪、麦克风、键盘和/或定点设备(通常指的是鼠标、跟踪球或触摸垫)等其他输入设备输入命令和信息。其他输入设备可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。另外,语音输入、使用手或手指的手势输入、或其他自然用户界面(NUI)也可与适当的输入设备(诸如麦克风、相机、平板、触摸垫、手套、或其他传感器)一起使用。这些及其他输入设备常常通过耦合到系统总线503的用户输入接口505连接到处理单元501,但是,也可以通过其他接口和总线结构,如并行端口、游戏端口、通用串行总线(USB)端口来进行连接。监视器506或其他类型的显示设备也通过诸如视频接口之类的接口连接至系统总线503。监视器506也可以与触摸屏面板等集成。注意到监视器和/或触摸屏面板可以在物理上耦合至其中包括计算设备500的外壳,诸如在平板型个人计算机中。此外,诸如计算设备500等计算机还可以包括其他外围输出设备,诸如扬声器和打印机,它们可以通过输出外围接口等连接。
计算机500可使用至一个或多个远程设备(诸如远程计算机)的逻辑连接507在网络化或云计算环境中操作。远程计算机可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,并且一般包括上面关于计算机500所述的许多或全部元件。图5中所描绘的逻辑连接包括一个或多个局域网(LAN)以及一个或多个广域网(WAN),但也可包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和互联网中是常见的。
当在联网或云计算环境中使用时,计算机500可通过网络接口或适配器507连接至公共或私有网络。在一些实施例中,使用调制解调器或用于在网络上建立通信的其他装置。调制解调器可以是内置或外置的,它经由网络接口507或其他适当的机制连接至系统总线503。诸如包括接口和天线的无线联网组件可通过诸如接入点或对等计算机之类的合适的设备耦合到网络。在联网环境中,相关于计算机500所示的程序模块或其部分可被储存在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。
具有异步窗口化系统的设备可允许多个应用窗口被显示给用户,其中一个窗口是活动的,并且其相关联的应用接收来自键盘或其他源的输入。用户可在各应用之间进行切换,并且所显示的窗口在应用被选择时从非活动变化为活动。命令解释程序可经由显示器上的窗口来提供用户对操作系统的服务的访问。键盘或其他输入可被排队、缓冲、储存或者以其他方式被保持在非活动应用视图被选择的时间以及新的视图被激活或当前活动视图被维持时的时间之间。有利地,设备快速地确定活动视图何时被改变,并将键盘或其他输入引导到与活动视图相关联的合适的应用,以减少与被误引导的输入相关联的误差并改善与设备的用户交互。
示例系统包括显示器、处理器以及储存计算机可执行指令的系统存储器。计算机可执行指令在由处理器执行时促使处理器检测显示器上的输入,使用显示器上的输入对输入状态管理器中的可视化树执行命中测试以标识所选视图,将所选视图与活动视图进行比较,当所选视图与活动视图不匹配时通知命令解释程序,以及通知输入状态管理器命令解释程序是否已确定所选视图应当作为新的活动视图。
计算机可执行指令可进一步促使处理器指令应用激活服务来激活与所选视图相关联的应用,并且当与所选视图相关联的应用已作为活动视图时通知输入管理器。计算机可执行指令可进一步促使处理器在所选视图与活动视图不匹配时储存键盘输入,并且当所选视图已作为活动视图时将被储存的键盘输入路由到与所选视图相关联的应用。显示器上的输入可来自人类触摸或定点设备。命令解释程序可应用视图策略来确定所选视图何时应当作为新的活动视图。计算机可执行指令可进一步促使处理器确定命令解释程序何时已拒绝将所选视图设定为新的活动视图,并且当所选视图的后续选择与活动视图不匹配时确定是否通知命令解释程序。
一种用于在显示器上激活视图的方法包括检测显示器上的输入,使用显示器上的输入对输入状态管理器中的可视化树执行命中测试以标识针对所选视图的顶层可视化,将所选视图与活动视图进行比较,当所选视图与活动视图不匹配时通知命令解释程序,以及通知输入状态管理器命令解释程序是否已确定所选视图应当作为新的活动视图。
该方法还可包括指令应用激活服务来激活与所选视图相关联的应用,以及当与所选视图相关联的应用已经作为活动视图时通知输入状态管理器。该方法还可包括当所选视图与活动视图不匹配时储存键盘输入,以及当所选视图已作为活动视图时将被储存的键盘输入路由到与所选视图相关联的应用。显示器上的输入可来自人类触摸或定点设备。命令解释程序可应用视图策略来确定所选视图何时应当作为新的活动视图。该方法还可包括确定命令解释程序何时已拒绝将所选视图设定为新的活动视图,以及当所选视图的后续选择与活动视图不匹配时评估是否通知命令解释程序。
一种附加的示例方法可包括在显示器上显示活动应用视图和至少一个非活动应用视图,对显示器上的触摸进行命中测试以标识所选应用,当所选应用不是活动应用时通知命令解释程序,以及当所选应用不是活动应用时使键盘输入排队。
该方法还可包括在接收到所选应用的激活完成的通知之后向所选应用提供经排队的键盘输入。该方法还可包括在接收到所选应用的激活被拒绝的通知之后向先前活动的应用提供经排队的键盘输入。该方法还可包括由命令解释程序评估是否将所选应用作为新的活动应用。该方法还可包括从命令解释程序接收所选应用正成为新的活动应用的通知,以及将在随后的命中测试中被标识出的应用与新的活动应用进行比较。该方法还可包括从命令解释程序接收所选应用未成为新的活动应用的通知,以及将所选应用储存到被拒绝的应用的列表中。该方法还可包括对显示器上的第二触摸执行命中测试以标识第二所选应用,确定第二所选应用不是活动应用,并且基于被拒绝的应用的列表来确定当第二所选应用不是活动应用时是否通知命令解释程序。
尽管用结构特征和/或方法动作专用的语言描述了本发明主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (15)

1.一种系统,包括:
显示器;
处理器;以及
具有被储存在其上的计算机可执行指令的系统存储器,所述计算机可执行指令在由所述处理器执行时,促使所述处理器:
检测显示器上的输入;
使用所述显示器上的所述输入通过输入状态管理器对可视化树执行命中测试,以标识所选视图;
将所选视图与活动视图进行比较;
当所选视图与所述活动视图不匹配时通知命令解释程序;以及
通知所述输入状态管理器所述命令解释程序是否已确定所选视图应当作为新的活动视图。
2.根据权利要求1所述的系统,其特征在于,所述计算机可执行指令进一步促使所述处理器:
指令应用激活服务来激活与所选视图相关联的应用;以及
当与所选视图相关联的所述应用已作为活动视图时通知输入管理器。
3.根据权利要求1所述的系统,其特征在于,所述计算机可执行指令进一步促使所述处理器:
在所选视图与所述活动视图不匹配时储存键盘输入;以及
当所选视图已作为活动视图时将被储存的键盘输入路由到与所选视图相关联的所述应用。
4.根据权利要求1所述的系统,其特征在于,所述显示器上的所述输入来自人类触摸或定点设备。
5.根据权利要求1所述的系统,其特征在于,所述命令解释程序应用视图策略来确定所选视图何时应当作为新的活动视图。
6.根据权利要求1所述的系统,其特征在于,所述计算机可执行指令进一步促使所述处理器:
确定所述命令解释程序何时已拒绝将所选视图设定为所述新的活动视图;以及
当所选视图的后续选择与所述活动视图不匹配时确定是否通知所述命令解释程序。
7.一种用于激活显示器上的视图的方法,包括:
检测所述显示器上的输入;
使用所述显示器上的所述输入通过输入状态管理器对可视化树进行命中测试,以标识针对所选视图的顶层可视化;
将所选视图与活动视图进行比较;
当所选视图与所述活动视图不匹配时通知命令解释程序;以及
通知所述输入状态管理器所述命令解释程序是否已确定所选视图应当作为新的活动视图。
8.根据权利要求7所述的方法,其特征在于,还包括:
指令应用激活服务来激活与所选视图相关联的应用;以及
当与所选视图相关联的所述应用已作为活动视图时通知输入状态管理器。
9.根据权利要求7所述的方法,其特征在于,还包括:
在所选视图与所述活动视图不匹配时储存键盘输入;以及
当所选视图已作为活动视图时将被储存的键盘输入路由到与所选视图相关联的所述应用。
10.根据权利要求7所述的方法,其特征在于,所述显示器上的所述输入来自人类触摸或定点设备。
11.根据权利要求7所述的方法,其特征在于,所述命令解释程序应用视图策略来确定所选视图何时应当作为新的活动视图。
12.根据权利要求7所述的方法,其特征在于,还包括:
确定所述命令解释程序何时已拒绝将所选视图设定为所述新的活动视图;以及
当所选视图的后续选择与所述活动视图不匹配时评估是否通知所述命令解释程序。
13.根据权利要求7所述的方法,其特征在于,还包括:
当所选视图不是所述活动视图时使键盘输入排队。
14.根据权利要求13所述的方法,其特征在于,还包括:
在接收到所选应用的激活完成的通知之后向所选应用提供经排队的键盘输入。
15.根据权利要求13所述的方法,其特征在于,还包括:
在接收到所选应用的激活被拒绝的通知之后向先前活动的应用提供所述经排队的键盘输入。
CN201680020985.1A 2015-04-01 2016-03-28 用于在异步窗口化系统中经由命中测试的视图激活的方法和系统 Active CN107466394B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/676,606 US9733823B2 (en) 2015-04-01 2015-04-01 View activation via hit testing in an asynchronous windowing system
US14/676,606 2015-04-01
PCT/US2016/024404 WO2016160642A1 (en) 2015-04-01 2016-03-28 View activation via hit testing in an asynchronous windowing system

Publications (2)

Publication Number Publication Date
CN107466394A true CN107466394A (zh) 2017-12-12
CN107466394B CN107466394B (zh) 2021-02-26

Family

ID=55745824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680020985.1A Active CN107466394B (zh) 2015-04-01 2016-03-28 用于在异步窗口化系统中经由命中测试的视图激活的方法和系统

Country Status (5)

Country Link
US (2) US9733823B2 (zh)
EP (1) EP3278205B1 (zh)
CN (1) CN107466394B (zh)
HK (1) HK1250538B (zh)
WO (1) WO2016160642A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9733823B2 (en) * 2015-04-01 2017-08-15 Microsoft Technology Licensing, Llc View activation via hit testing in an asynchronous windowing system
EP3308288A4 (en) * 2015-06-12 2019-01-23 Nureva Inc. METHOD AND DEVICE FOR ADMINISTERING AND ORGANIZING OBJECTS IN A VIRTUAL MEMORY
CN111190529B (zh) * 2018-11-15 2024-04-30 鸿合科技股份有限公司 一种键盘输入方法及装置、电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030210270A1 (en) * 2002-05-10 2003-11-13 Microsoft Corp. Method and apparatus for managing input focus and z-order
US6741267B1 (en) * 1998-10-30 2004-05-25 Smart Technologies, Inc. Keyboard for an electronic writeboard and method
US20060112349A1 (en) * 2004-11-19 2006-05-25 Microsoft Corporation Systems and methods for processing input data before, during, and/or after an input focus change event
CN103218107A (zh) * 2011-10-04 2013-07-24 三星电子株式会社 用于提供与多个应用程序相关的用户界面的方法和系统
CN103677901A (zh) * 2013-11-19 2014-03-26 北京飞流九天科技有限公司 用于应用切换的方法和设备
US20140317556A1 (en) * 2013-04-19 2014-10-23 John Jacob Ellenich Parallax scrolling of multiple information panels in a graphical user interface
CN104142792A (zh) * 2014-04-18 2014-11-12 腾讯科技(深圳)有限公司 一种应用界面切换方法及装置
CN104331246A (zh) * 2014-11-19 2015-02-04 广州三星通信技术研究有限公司 在终端中进行分屏显示的设备和方法
CN104461431A (zh) * 2014-12-15 2015-03-25 广东威创视讯科技股份有限公司 一种拼接墙叠加窗口的切换方法及系统
CN104898914A (zh) * 2014-03-05 2015-09-09 腾讯科技(深圳)有限公司 多页面展示的方法及装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62276673A (ja) 1986-05-26 1987-12-01 Toshiba Corp マルチウインドウ表示装置
FR2683648B1 (fr) 1991-11-12 1996-12-13 Apple Computer Procede de choix d'objets dans une sequence d'images mobiles et piste d'essai de reussite correspondante.
US6359572B1 (en) 1998-09-03 2002-03-19 Microsoft Corporation Dynamic keyboard
US6954218B2 (en) 2000-10-30 2005-10-11 Microsoft Corporation Method and apparatus for high-performance rendering and hit-testing of a window tree
US7096422B2 (en) * 2003-02-28 2006-08-22 Microsoft Corporation Markup language visual mapping
US7126606B2 (en) 2003-03-27 2006-10-24 Microsoft Corporation Visual and scene graph interfaces
US7511718B2 (en) 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
US7839419B2 (en) * 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US7587685B2 (en) * 2004-02-17 2009-09-08 Wallace James H Data exploration system
US8031190B2 (en) 2004-05-03 2011-10-04 Microsoft Corporation Translating two-dimensional user input on three-dimensional scene
US20110138319A1 (en) * 2007-11-08 2011-06-09 David Sidman Apparatuses, Methods and Systems for Hierarchical Multidimensional Information Interfaces
US8345045B2 (en) 2008-03-04 2013-01-01 Microsoft Corporation Shader-based extensions for a declarative presentation framework
US8793611B2 (en) 2010-01-06 2014-07-29 Apple Inc. Device, method, and graphical user interface for manipulating selectable user interface objects
US8972903B2 (en) 2010-07-08 2015-03-03 Apple Inc. Using gesture to navigate hierarchically ordered user interface screens
US9639265B2 (en) 2010-09-03 2017-05-02 Microsoft Technology Licensing, Llc Distance-time based hit-testing for displayed target graphical elements
US9292149B2 (en) * 2010-10-22 2016-03-22 Litl Llc Method and apparatus for public computing
KR101645685B1 (ko) * 2010-12-20 2016-08-04 애플 인크. 이벤트 인식
US9052796B2 (en) 2012-01-08 2015-06-09 Microsoft Technology Licensing Llc Asynchronous handling of an input stream dedicated to multiple targets
DE202013012233U1 (de) * 2012-05-09 2016-01-18 Apple Inc. Vorrichtung und grafische Benutzerschnittstelle zum Anzeigen zusätzlicher Informationen in Antwort auf einen Benutzerkontakt
CN109062488B (zh) * 2012-05-09 2022-05-27 苹果公司 用于选择用户界面对象的设备、方法和图形用户界面
US8874969B2 (en) 2012-07-09 2014-10-28 Microsoft Corporation Independent hit testing
US9021437B2 (en) 2012-07-13 2015-04-28 Microsoft Technology Licensing, Llc Declarative style rules for default touch behaviors
US8910262B2 (en) * 2012-12-21 2014-12-09 Cellco Partnership Supporting multiple messaging services on mobile devices in a single user experience
US9342497B1 (en) * 2013-03-12 2016-05-17 David Waite Hierarchical user interface
US9971469B2 (en) * 2015-01-30 2018-05-15 Oracle International Corporation Method and system for presenting business intelligence information through infolets
US9733823B2 (en) * 2015-04-01 2017-08-15 Microsoft Technology Licensing, Llc View activation via hit testing in an asynchronous windowing system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741267B1 (en) * 1998-10-30 2004-05-25 Smart Technologies, Inc. Keyboard for an electronic writeboard and method
US20030210270A1 (en) * 2002-05-10 2003-11-13 Microsoft Corp. Method and apparatus for managing input focus and z-order
US6928619B2 (en) * 2002-05-10 2005-08-09 Microsoft Corporation Method and apparatus for managing input focus and z-order
US20060112349A1 (en) * 2004-11-19 2006-05-25 Microsoft Corporation Systems and methods for processing input data before, during, and/or after an input focus change event
CN103218107A (zh) * 2011-10-04 2013-07-24 三星电子株式会社 用于提供与多个应用程序相关的用户界面的方法和系统
US20140317556A1 (en) * 2013-04-19 2014-10-23 John Jacob Ellenich Parallax scrolling of multiple information panels in a graphical user interface
CN103677901A (zh) * 2013-11-19 2014-03-26 北京飞流九天科技有限公司 用于应用切换的方法和设备
CN104898914A (zh) * 2014-03-05 2015-09-09 腾讯科技(深圳)有限公司 多页面展示的方法及装置
CN104142792A (zh) * 2014-04-18 2014-11-12 腾讯科技(深圳)有限公司 一种应用界面切换方法及装置
CN104331246A (zh) * 2014-11-19 2015-02-04 广州三星通信技术研究有限公司 在终端中进行分屏显示的设备和方法
CN104461431A (zh) * 2014-12-15 2015-03-25 广东威创视讯科技股份有限公司 一种拼接墙叠加窗口的切换方法及系统

Also Published As

Publication number Publication date
US10346031B2 (en) 2019-07-09
US20160291828A1 (en) 2016-10-06
US9733823B2 (en) 2017-08-15
HK1250538B (zh) 2020-03-20
EP3278205B1 (en) 2019-07-03
WO2016160642A1 (en) 2016-10-06
EP3278205A1 (en) 2018-02-07
US20180088767A1 (en) 2018-03-29
CN107466394B (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN106415468A (zh) 具有进入点保持的放射状菜单用户界面
CN107111725A (zh) 在输入理解系统中保护私有信息
US8949746B2 (en) Providing access for blind users on kiosks
CN105378624A (zh) 在交互出现于白板上时显示交互
CN107005613A (zh) 基于重要性分类对消息视图进行优化
CN106575243A (zh) 管理程序托管的虚拟机取证
CN106663041A (zh) 从系统故障恢复基于云的服务的易用性
CN104685449A (zh) 基于用户的目光的用户界面元素焦点
WO2016082718A1 (zh) 一种信息接入处理方法和装置
CN105283831A (zh) 群集中的分布式存储防御
CN108241464A (zh) 一种显示聊天信息的方法、终端及计算机可读存储介质
US20160070555A1 (en) Automated tenant upgrades for multi-tenant services
CN104321718A (zh) 用于人类自然命令控制的多模态行为感知
US8943373B1 (en) Keyboard, video and mouse switch identifying and displaying nodes experiencing a problem
CN107466394A (zh) 在异步窗口化系统中经由命中测试的视图激活
CN107004085A (zh) 用于利用用户交互来管理对计算系统的安全威胁的技术
CN105493018A (zh) 用于触控板操纵和双击缩放的独立命中测试
WO2018125583A1 (en) Detection and delegation of action tasks
CN108446153A (zh) 一种控制电子资源的方法及终端
CN107924446A (zh) 安全计算系统记录转移控制
US20200026861A1 (en) Testing instrumentation for intrusion remediation actions
US9330543B2 (en) Managing serviceability modes
CN106796605A (zh) 分段数据录入的验证
CN105531661A (zh) 全屏内容查看界面进入
CN104102618A (zh) 存在感知信息系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant