CN1771475A - 窗口堆栈控制方法、窗口管理程序及窗口管理装置 - Google Patents
窗口堆栈控制方法、窗口管理程序及窗口管理装置 Download PDFInfo
- Publication number
- CN1771475A CN1771475A CNA2004800094431A CN200480009443A CN1771475A CN 1771475 A CN1771475 A CN 1771475A CN A2004800094431 A CNA2004800094431 A CN A2004800094431A CN 200480009443 A CN200480009443 A CN 200480009443A CN 1771475 A CN1771475 A CN 1771475A
- Authority
- CN
- China
- Prior art keywords
- window
- group
- stack
- windows
- request
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
当控制用于管理由计算机(7)在显示单元(11)上显示多个窗口中的窗口的堆栈的窗口堆栈时,各应用程序(101、102和103)将一窗口分配给组,且窗口管理程序(104)将窗口整体地排列成一组以确定该窗口在组中的迭加次序。从而防止在最前面显示窗口的应用程序所执行的窗口显示不适当地受到另一应用程序的影响。
Description
技术领域
本发明涉及用于在计算机在显示单元上显示多个窗口时管理窗口堆栈的窗口堆栈控制方法。
背景技术
近来年,工作站和家用计算机作为用于在显示单元上显示多个窗口的计算机得以广泛应用。在这些情况下,通常用户在作为显示单元的较大屏幕上显示多个窗口并用鼠标和键盘控制窗口堆栈中的迭加次序(上下关系)。
例如,在广泛用于Unix(R)工作站的X11窗口系统的情况下,当建立一窗口时,该窗口被定位在作为窗口堆栈中的上下关系的迭加次序的堆栈的顶层,在映射窗口后,通过操作鼠标或应用程序将堆栈位置在上下方向上移动。
作为一个特定的例子,图29是示出图示通过在计算机上运行的3种应用程序在显示装置的屏幕上共显示五个窗口时的一种显示例子的示意图。在图29中,标号1表示由CRT监视器或液晶监视器实现的显示单元的屏幕,标号2和3表示由第一应用程序显示的窗口,标号4和5表示由第二应用程序显示的窗口,而标号6表示由第三应用程序显示的窗口,且由第一应用程序显示的窗口2和3为第一组,由第二应用程序显示的窗口4和5为第二组而由第三应用程序显示的窗口6为第三组。
如图29中所示,窗口3迭加在窗口2上,而窗口5迭加在窗口4上。图30为示出图示在此情况中的窗口的迭加次序的一个例子的示意图。如图30所示,窗口3在堆栈中的位置高于窗口2,因此当要显示两个相互重叠的窗口时窗口3迭加在窗口2上。
然后,例如,当在此显示状态下,即在此迭加次序的状态下,出于某种原因,第一应用程序想要在在窗口3上显示窗口2时,这已通过将窗口2移至栈顶得以实现。图31为示出图示此情况中的迭加次序的示意图。如图31所示,窗口2在堆栈中的位置高于窗口3,因此当要显示两个相互重叠的窗口时窗口2迭加在窗口3上。另外,可以看出通过此操作,窗口2在整个第二组和第三组窗口的迭加次序中从底移至顶。
发明内容
然而,在上述传统的窗口堆栈控制方法中,在应用程序使窗口经受窗口堆栈移动和窗口建立和显示的情况下,在整个组中控制堆栈,因此存在窗口有时会被另一应用程序无意地迭加在所显示的窗口上的问题。
考虑到以上问题,本发明的目的在于提供一种堆栈控制方法,用于防止在最前面显示窗口的应用程序的窗口显示不适当地受到另一应用程序的影响。
为了克服以上问题,本发明采用以下特征。在括号中的标号和图号显示与附图的对应,用于帮助理解本发明而并不限制本发明的范围。
本发明的第一发明针对用于根据一个或多个应用程序(101、102和103)管理在显示单元(11)上所显示的多个窗口的堆栈的窗口堆栈控制方法,包括:以下步骤:指定一组来自应用程序的窗口;接收用于显示来自应用程序的窗口的请求;和将窗口整体地排列成一组以在响应显示请求显示窗口时确定该组中的窗口的迭加次序(S308,图4和S2510,图26)。
因此,在组单元中以迭加次序整体地排列窗口,从而可以防止属于顶一组的各窗口被堆在和显示在另一组窗口下面,并可以防止由将窗口显示在最前面的应用程序所执行的窗口显示受到另一应用程序的不适当的影响。特别是,该影响在蜂窝电话、PDA等小屏幕中很明显,这导致窗口更有可能被覆盖。
另外,基于第一发明的本发明的第二发明针对窗口堆栈控制方法,其中,在整体排列步骤中,当从应用程序接收到用于显示没有整体地排成一组的第一窗口的请求时,其窗口与第一窗口属于同一组且没有整体地排列成一组的窗口的第一窗口组和其窗口与第一窗口属于同一组且整体地排列成一组的窗口的第二窗口组在所维持的第一窗口组中以用迭加次序集中以使第一窗口组的迭加次序后连着第二窗口组的迭加次序(图26)。
因此,根据显示请求在同一组中迭加次序不变,从而减少了用于管理同一组中的迭加次序的应用程序的负载。
另外,基于第一或第二发明的本发明的第三发明针对一种窗口堆栈控制方法,该方法还包括用于为各组建立代表窗口的步骤,其中整体地排列步骤包括当将窗口整体地排列成一组以确定该窗口在组中的迭加次序时将该窗口作为代表窗口的子窗口处理(图22)。
因此,将堆栈在组单元中移动并在组单元中显示的和没有显示的窗口之间切换可以通过控制代表窗口来执行,从而该组的窗口越多则可以减少越多的处理负荷。
另外,基于第一至第三发明中任一个的本发明的第四发明针对一种窗口堆栈控制方法,该方法还包括以下步骤:从应用程序中接收一个请求移动窗口堆栈中组的顶层的请求和一个请求移动窗口堆栈中组的底层的请求;和响应移动顶的请求或移动底的请求改变组中的堆栈(S708、S710、S711、S1208、S1210和S1211)。
因此,堆栈的控制在组中关闭,从而代表应用程序可以改变堆栈而不必顾及由另一应用程序执行的窗口显示。
另外,基于第四发明的本发明的第五发明针对一种窗口堆栈控制方法,该方法中的堆栈改变步骤包括当从应用程序接收到请求将第一窗口移至窗口堆栈中组的顶层的请求和请求将第一窗口移至窗口堆栈中组的底层的请求时,改变堆栈以将与第一窗口属于同一组且没有整体地排列成一组的窗口的第一窗口组和与第一窗口属于同一组且整体地排列成一组的窗口的第二窗口组用迭加次序集中起来,而维持第一窗口组中的迭加次序,使第一窗口组的迭加次序后连着第二窗口组的迭加次序(S708、图9和S1208、图14)。
因此,所有和堆栈改变的目标窗口的组属于同一组的正常窗口被整体地排列,从而应用程序更容易掌握由它们自己设置的一组的窗口的迭加次序。
另外,基于第一至第三发明中任一发明的本发明的第六发明针对的窗口堆栈控制方法还包括:用于从应用程序接收请求移动窗口堆栈中组单元中顶的请求和请求移动窗口堆栈中组单元中底的请求的步骤,和响应移动顶的请求或移动底的请求改变组单元中的堆栈的步骤(S1705、S1706和S2004)。
因此,可以通过指定一个组来执行窗口的控制,从而例如在将组分配给各应用程序的情况下,即使在不知道属于该应用程序的窗口的成员时,也可以将属于该应用程序的所有正常窗口移至堆栈的最前面。
另外,基于第六发明的本发明的第七发明针对窗口堆栈控制方法,该方法中的堆栈改变步骤包括当从应用程序接收到请求将第一窗口移至窗口堆栈中组单元中的顶层的请求和请求将第一窗口移至窗口堆栈中组单元中的底层的请求时,改变堆栈以将属于第一组且没有整体地排列成一组的窗口的第一窗口组和与属于第一组且整体地排列成一组的窗口的第二窗口组用迭加次序集中起来,维持第一窗口组中的迭加次序,使第一窗口组的迭加次序后连着第二窗口组的迭加次序(S1705、图18和S2004、图21)。
因此,所有和堆栈改变的目标组属于同一组的正常窗口整体地排列,它们之间维持它们的迭加次序并经受堆栈改变,从而应用程序更容易掌握由它们自己设置的一组的窗口的迭加次序。
另外,基于第一发明的本发明的第八发明针对一种窗口堆栈控制方法,其中使得用应用程序指定成优先窗口的窗口不属于任何一组并使该优先窗口在堆栈中一直处于比在显示单元上所显示的且属于任何组的所有窗口高的位置。
因此,可以显示窗口而不管组单元中的迭加次序,从而可以提供用最高优先权显示的窗口的服务。
另外,基于第一发明的本发明的第九发明针对窗口堆栈控制方法,在该方法中在堆栈中的位置比属于处于顶层的组的窗口低的窗口一直处于不显示状态。
因此,即使尝试显示在堆栈中排得比处于顶层的组低的组中的窗口等,在显示单元上也不显示该窗口等,因此不必担心在没有被处于顶层的组的窗口覆盖的部分上中途显示窗口。
另外,基于第一发明的第十发明针对窗口堆栈控制方法,在该方法中特定窗口紧挨在其迭加次序在属于处于顶层的组的窗口中为底的窗口的下面(图23和图24)。
因此,例如,当显示特定窗口来填充显示单元上的屏幕时,即使尝试显示在堆栈中的位置比特定窗口低的组中的窗口等,也不在显示单元上显示该窗口等。因此不必担心在没有被处于顶层的组的窗口覆盖的部分上中途显示窗口。
另外,基于第四或第六发明的本发明的第十一发明针对窗口堆栈控制方法,在该方法中X窗口系统和窗口管理程序管理多个窗口的堆栈,且特定窗口紧挨在处于顶层的组的上面。
因此,当用另一组代替处于顶层的组时,XRestackWindows()函数可以用于X窗口系统的情况中,且该XRestackWindows()函数可以用于指示窗口组的堆栈要移向的目的地。如果没有窗口呈现在堆栈中比处于顶层的组的窗口高的位置上,则应确定要分配给XRestackWindows()的自变量的所有呈现的窗口的排列次序。然而,在有特定窗口的情况中,只需要将特定窗口和窗口组分配给该自变量。
另外,基于第一至第三发明中任一发明的本发明的第十二发明针对窗口堆栈控制方法,在该方法中X窗口系统和窗口管理程序管理多个窗口的堆栈,且窗口管理程序在接收到窗口破坏通知时确认其识别出的堆栈是否与由窗口系统识别出的堆栈一致,并在不一致的情况中执行用于使由窗口系统识别出的堆栈与由窗口管理程序识别出的堆栈一致的处理。
因此,当接收到窗口破坏通知时试图确保该一致性。这样,即使窗口系统在堆栈改变处理上失败,也可以消除处理中的失败。
另外,基于第一至第三发明中任一发明的本发明的第十三发明针对窗口堆栈控制方法,在该方法中X窗口系统和窗口管理程序管理多个窗口的堆栈,且窗口管理程序在请求窗口系统改变堆栈时设置一个标记,并且只有在接收到窗口破坏通知时设置该标记时,确认其识别出的堆栈是否与由窗口系统识别出的堆栈一致,并在不一致的情况中执行用于使由窗口系统识别出的堆栈与由窗口管理程序识别出的堆栈一致的处理,从而将该标记记下。
因此,只有在窗口管理程序执行堆栈改变时,才执行使堆栈识别一致的处理,所以可以降低执行处理的频率。
另外,基于第一发明的本发明的第十四发明针对窗口堆栈控制方法,该方法中的整体地排列步骤包括当从应用程序接收到请求显示没有整体地排列成一组的第一窗口的请求时,集中属于与该第一窗口同一组且没有整体地排列成一组的第一窗口和第二窗口组的窗口,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序(图4)。
另外,本发明的第十五发明针对用于根据一个或多个应用程序(101、102和103)管理显示在显示单元(11)上的多个窗口的堆栈的窗口管理程序(104),在该程序中计算机(7)可用于执行以下步骤:指定一组来自应用程序窗口;接收一个请求显示来自应用程序的窗口的请求;并整体地将窗口排成一组以在接收到显示请求时确定该组中的窗口的迭加次序(S308和图4).
另外,本发明的第十六发明针对用于在显示单元(11)上显示多个窗口时管理窗口的堆栈的窗口管理装置,该装置包括:用于在显示单元上显示一个或多个窗口的一个或多个应用程序(101、102和103);用于管理由一个或多个应用程序显示的窗口堆栈的窗口管理程序(104);和用于执行所述应用程序和所述窗口管理程序的处理单元(8),其中所述应用程序指定一组关于窗口管理程序的窗口,且所述窗口管理程序在接收到请求显示来自应用程序的窗口的请求并显示该窗口时执行控制,以将窗口整体地排成一组,从而确定该组中窗口的迭加次序(S308和图4)。
附图简要说明
图1为示出用于实现根据本发明的第一实施例的窗口堆栈控制方法的系统的配置的一个例子的图。
图2为示出根据本发明的第一实施例的窗口信息的一个例子的图。
图3为示出根据本发明的第一实施例当接收到映射请求事件(MapRequet)时由窗口管理程序所执行的操作的一个例子的流程图。
图4为具体地示例根据本发明的第一实施例在图3所示的步骤S308中如何根据堆栈改变请求改变堆栈的示意图。
图5为具体地示例根据本发明的第一实施例在图3所示的步骤S310中如何根据堆栈改变请求改变堆栈的示意图。
图6为具体地示例根据本发明的第一实施例在图3所示的步骤S311中如何根据堆栈改变请求改变堆栈的示意图。
图7为根据本发明的第一实施例当接收到栈顶移动请求事件时由窗口管理程序所执行的操作的一个例子的流程图。
图8为具体地示例根据本发明的第一实施例在图7所示的步骤S705中如何根据堆栈改变请求改变堆栈的示意图。
图9为具体地示例根据本发明的第一实施例在图7所示的步骤S708中如何根据堆栈改变请求改变堆栈的示意图。
图10为具体地示例根据本发明的第一实施例在图7所示的步骤S710中如何根据堆栈改变请求改变堆栈的示意图。
图11为具体地示例根据本发明的第一实施例在图7所示的步骤S711中如何根据堆栈改变请求改变堆栈的示意图。
图12为根据本发明的第一实施例当接收到栈底移动请求事件时由窗口管理程序所执行的操作的一个例子的流程图。
图13为具体地示例根据本发明的第一实施例在图12所示的步骤S1205中如何根据堆栈改变请求改变堆栈的示意图。
图14为具体地示例根据本发明的第一实施例在图12所示的步骤S1208中如何根据堆栈改变请求改变堆栈的示意图。
图15为具体地示例根据本发明的第一实施例在图12所示的步骤S1210中如何根据堆栈改变请求改变堆栈的示意图。
图16为具体地示例根据本发明的第一实施例在图12所示的步骤S1211中如何根据堆栈改变请求改变堆栈的示意图。
图17为根据本发明的第一实施例当接收到请求移动堆栈中的组单元中的顶层的请求时由窗口管理程序所执行的操作的一个例子的流程图。
图18为具体地示例根据本发明的第一实施例在图17所示的步骤S1705中如何根据堆栈改变请求改变堆栈的示意图。
图19为具体地示例根据本发明的第一实施例在图17所示的步骤S1706中如何根据堆栈改变请求改变堆栈的示意图。
图20为根据本发明的第一实施例当接收到请求移动堆栈中的组单元中的底层的请求时由窗口管理程序所执行的操作的一个例子的流程图。
图21为具体地示例根据本发明的第一实施例在图20所示的步骤S2004中如何根据堆栈改变请求改变堆栈的示意图。
图22为示出根据本发明的第一实施例使用代表窗口的情况中的堆栈状态的一个例子的示意图。
图23为示出根据本发明的第一实施例在使用特定窗口时堆栈状态的示意图,该特定窗口由窗口管理程序建立和映射并紧挨着其迭加次序为所有属于处于顶层的组的窗口中的底层的窗口下面。
图24为示出根据本发明的第一实施例在使用特定窗口时屏幕显示的一个例子的示意图,该特定窗口的窗口管理程序建立和映射并紧挨着其迭加次序在属于处于顶层的组的所有窗口为的底层的窗口。
图25为根据本发明的第二实施例当接收到映射请求事件(MapRequest)时由窗口管理程序所执行的操作的一个例子的流程图。
图26为具体地示例根据本发明的第二实施例在图25所示的步骤S2510中如何根据堆栈改变请求改变堆栈的示意图。
图27为具体地示例根据本发明的第二实施例在图25所示的步骤S2512中如何根据堆栈改变请求改变堆栈的示意图。
图28为具体地示例根据本发明的第二实施例在图25所示的步骤52513中如何根据堆栈改变请求改变堆栈的示意图。
图29为示出根据已有技术由在计算机上运行的三种应用程序在作为显示单元的屏幕上共显示五个窗口的情况中的显示的一个例子的示意图。
图30为示出根据已有技术的窗口迭加次序的一个例子的示意图。
图31为示出根据已有技术的窗口迭加次序的一个例子的示意图。
(5)具体实施方式
下面将参照附图说明本发明的实施例。
(实施例1)
在此实施例中,将把窗口管理程序包括X窗口系统和窗口管理程序及窗口管理程序控制根窗口的子窗口的顶层窗口的迭加次序的情况作为例子。
图1示出用于实现根据本发明的第一实施例的窗口堆栈控制方法的系统的配置的一个例子。
在图1中,标号7表示计算机。标号8表示CPU(中央处理单元)。标号9表示用于存储各种程序、经处理的数据等的存储器。标号10表示用于允许各构件执行希望的双向通信的总线。标号11表示诸如CRT监视器或液晶监视器之类的显示单元。标号1表示显示单元11的屏幕。标号101、102和103表示由CPU 8执行的程序,它们是试图通过窗口管理程序104在屏幕1上显示一个或多个窗口的应用程序。标号104表示由CPU 8执行的程序,它是用于管理应用程序101-103试图显示的窗口并通过总线10显示这些窗口的窗口管理程序。窗口管理程序104包括窗口系统12和窗口管理程序105。窗口系统12是传统的X窗口系统而标号105表示窗口管理程序。
下面将参照附图说明本实施例的操作。
各应用程序101、102和103可以通过窗口管理程序104显示两种具有相互不同的堆栈控制特征的顶层窗口。这两种窗口被称为普通窗口和优先窗口。它们的不同之处在于:所显示的优先窗口总是在堆栈中位于比所有显示的普通窗口高的位置而得以显示,以及在普通窗口整体地排列成一组以确定组中窗口的迭加次序时,执行此处理不包含优先窗口。
<窗口创建请求、窗口类型和组设置请求、及映射请求>
在应用程序101、102和103显示窗口的情况下,程序101、102和103向窗口系统12发出窗口创建请求、窗口类型和组设置请求、及映射请求。其中,对于窗口类型和组设置请求,在X窗口系统的情况下,可以通过使用属性功能为各窗口设置值。
在执行窗口创建和映射处理之前不在屏幕1上显示各窗口。
当窗口系统12接收到窗口创建请求时,它将窗口定位在迭加次序(迭加窗口的次序)的顶层并向窗口管理程序105发出窗口创建通知事件(CreateNotify)。
窗口管理程序105存储窗口信息作为各窗口的内部数据库。
图2示出该窗口信息的一个例子。
如图2中所示,窗口信息包括窗口标识符、堆栈位置确定标记、堆栈位置信息、属性获取标记、窗口类型和组值。窗口标识符标识具有窗口信息的窗口。堆栈位置确定标记指示窗口是否具有窗口管理程序105的临时堆栈位置或已确定的堆栈位置。堆栈位置信息指示窗口的堆栈位置。属性获取标记指示窗口管理程序105是否已获取了窗口类型和窗口的组值。在属性获取标记指示“已获取”的情况下,窗口类型指示该窗口是优先窗口还是普通窗口。在属性获取标记指示“已获取”的情况下,组值指示该窗口的组值。
图1所示的窗口管理程序105知道已通过接收窗口创建通知事件(CreateNotify)新创建了窗口并从窗口创建通知事件(CreateNotify)获取窗口标识符。然后,在内部数据库中新建立窗口信息存储区,并将窗口信息的窗口标识符存储在其中。另外,对于该窗口,窗口管理程序105将堆栈位置确定标记初始化成“临时”,将堆栈位置信息初始化成“栈顶”而将属性获取标记初始化成“未获取”。
接着,窗口系统12接收窗口类型和组设置请求并将它们作为窗口的属性存储。
接着,窗口系统12从应用程序101、102和103接收映射请求,不特别执行内部处理,并将映射请求事件(MapRequest)发送至窗口管理程序105。
图3为示出根据本发明的第一实施例当接收到映射请求事件(MapRequet)时由窗口管理程序105所执行的操作的一个例子的流程图。
如图3所示,在步骤S301中,窗口管理程序105从当时所接收到的映射请求事件(MapRequet)获取要映射的目标窗口的标识符(下文仅仅称为目标窗口)并进入步骤S302。
在步骤S302中,在内部数据库中搜索目标窗口的标识符。当相应的窗口信息呈现时,过程进入步骤S303,而当不呈现时,过程进入步骤S313。
在步骤S303中,在内部数据库中核查目标窗口的堆栈位置确认标记是否指示“已确定”。当确定了堆栈位置时,过程进入步骤S312,而当堆栈位置为临时时,过程进入步骤S304。
在步骤S304中,核查目标窗口的属性获取标记,并当属性获取标记指示“已获取”时,过程进入步骤S306而在未获取的情况下,过程进入步骤S305。
在步骤S305中,向窗口系统12询问窗口类型和目标窗口的组值以获取它们,并将它们存储在内部数据库中,且过程进入步骤S306。
在步骤S306中,核查目标窗口的窗口类型并在优先窗口的情况下,过程进入步骤S312,而在普通窗口的情况下,过程进入步骤S307。
在步骤S307中,在内部数据库中核查具有与目标窗口相同的组值并且其堆栈位置确定标记指示“已确定”的普通窗口。当该普通窗口呈现时,过程进入步骤S308,而当其未呈现时,过程进入步骤S309。
在步骤S308中,将一堆栈改变请求发送至窗口系统12,使得目标窗口的堆栈位置紧挨其迭加次序在同一组的普通窗口中为顶层且确定了堆栈位置的窗口的上面。
图4为具体地示例在步骤S308中如何根据堆栈改变请求改变堆栈的示意图。
如图4所示,可以看出是普通窗口的目标窗口被移至紧挨其迭加次序在具有和目标窗口相同的组值的窗口中为顶层且其堆栈位置确定标记指示“已确定”的窗口的上面。
在步骤S309中,在内部数据库中的所有普通窗口中搜索堆栈位置确定标记指示“已确定”的窗口。当该窗口呈现时,过程进入步骤S310而当该窗口不呈现时,过程进入步骤S311。
在步骤S310中,将堆栈改变请求发送至窗口系统12,使得目标窗口紧挨其迭加次序在内部数据库中为顶层且其堆栈位置确定标记指示“已确定”的窗口的上面。
图5示出具体地示例在步骤S310中如何根据堆栈改变请求改变堆栈的示意图。
如图5所示,可以看出是普通窗口的目标窗口被移至紧挨其迭加次序在堆栈位置确定标记指示“已确定”的所有普通窗口中为顶层的窗口的上面。
在步骤S311中,将堆栈改变请求发送至窗口系统12使得该目标窗口被设置在堆栈位置的底层层,且过程进入步骤S312。
图6为具体地示例在步骤S311中如何根据堆栈改变请求改变堆栈的示意图。
如图6所示,可以看出是普通窗口的目标窗口被移至堆栈的底层层。
在步骤S312中,将用于目标窗口的映射请求发送至窗口系统12,并当内部数据库中的目标窗口的窗口信息中的堆栈位置确定标记指示“临时”时,更新堆栈位置确定标记以指示“已确定”。另外,按需要在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S313。
在步骤S313中,处理结束。
当窗口系统12从窗口管理程序105接收到图3所示的步骤S308、步骤S310或步骤S313中所创建的堆栈改变请求时,窗口系统12根据该请求改变窗口的迭加次序。另外,当从窗口管理程序105接收到图3所示的步骤S312中所创建的映射请求时,根据该请求映射窗口。当映射的窗口没有被隐藏在其它窗口下面时,虽然这取决于窗口相互重叠的多少,在屏幕1上显示映射的窗口。
通过图3所示的处理,对于所创建的并通过应用程序101、102和103为共设置窗口类型的组的诸普通窗口,总是在显示诸普通窗口之前确定诸堆栈位置信息。另外,将堆栈位置整体地排列成一组,进一步防止将窗口显示在堆栈中比优先窗口高的位置。另外,优先窗口具有用于显示的不变的堆栈位置。
<移动堆栈中的组顶的请求>
在图1中,作为堆栈改变请求,应用程序101、102和103可以向窗口系统12发送请求将所创建的且为其设置了窗口类型和组的普通窗口移至堆栈中的组顶的请求。在X窗口系统的情况中,例如可以将XraiseWindow()函数用于请求移动堆栈中的组顶的请求。另外,可以将请求将优先窗口移至堆栈中优先窗口中的顶层的请求作为堆栈改变请求发送至窗口系统12。例如,可以使用和移动堆栈中组顶的请求中所使用的相同的XraiseWindow()函数。
在应用程序执行XraiseWindow()的情况下,窗口系统12不改变堆栈,并向窗口管理程序105发送一个栈顶移动请求事件(ConfigureRequest)。
图7示出当接收到栈顶移动请求事件时由窗口管理程序所执行的操作的一个例子的流程图。
如图7所示,在步骤S701中,从当时所接收到的栈顶移动请求事件(ConfigureRequest)获取目标窗口的标识符且过程进入步骤S702。
在步骤S702中,在内部数据库中搜索目标窗口的标识符。当相应数据呈现时,过程进入步骤S703而当没有呈现时,过程进入步骤S712。
在步骤S703中,向窗口系统12查询在内部数据库中且属性获取标记指示“未获取”的所有窗口的窗口类型和组值。对于能获取窗口类型和组值的窗口,将窗口类型和组值以及已获取属性的事实存储在内部数据库中,且过程进入步骤S704。
在步骤S704中,核查目标窗口的窗口类型,并当窗口类型为优先窗口时,过程进入步骤S705而当其为普通窗口时,过程进入步骤S706。
在步骤S705中,在内部数据库中搜索其迭加次序在它们的窗口类型为优先窗口的诸窗口中的顶层的窗口。然后,向窗口系统12发送堆栈改变请求,以将目标窗口设置在紧挨在其迭加次序在诸优先窗口为的顶层的窗口上面。接着,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S712。然后,在搜索结果是在栈顶的窗口是目标窗口本身的情况下,不执行任何处理且过程进入步骤S712。
图8为具体地示例在步骤S705中如何根据堆栈改变请求改变堆栈的示意图。
如图8所示,可以看出只有目标窗口被移至紧挨在其迭加次序在诸优先窗口中为顶层的窗口的上面。
在图7中,在步骤S706中,在内部数据库中搜索属于和用于列表的目标窗口同一组的普通窗口,且过程进入步骤S707。
当在步骤S707中其堆栈位置确定标记指示“已确定”的窗口呈现在列出的窗口中时,过程进入步骤S708,而当没有呈现时,过程进入步骤S709。
在步骤S708中,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,向窗口系统12发出堆栈改变请求,以将所有列出的且是“临时”的窗口设置在紧挨在列出的窗口中且堆栈位置确定标记指示“已确定”的窗口中处于顶层的窗口上面而它们的迭加次序在它们之间保持不变,并进一步将目标窗口设置在列出的窗口中的顶层。接着,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,将窗口的堆栈位置更新成已确定的。另外,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S710。
图9示出具体地示例在步骤S708中如何根据堆栈改变请求改变堆栈的示意图。
如图9所示,可以看出具有和目标窗口相同的组值且其堆栈位置确定标记指示“临时”的窗口被移至紧挨在具有和目标窗口相同的组值且其堆栈位置确定标记指示“已确定”的窗口上面,且目标窗口被移至在堆栈中具有相同组值的所有窗口中的顶层。
在图7中,当在步骤S709中其堆栈位置确定标记指示“已确定的”的窗口呈现在内部数据库中时,过程进入步骤S710,而当没有呈现时,过程进入步骤S711。
在步骤S710中,将堆栈改变请求发送至窗口系统12,以将所有在步骤S706中列出且其堆栈位置确定标记指示“临时”的窗口设置在紧挨在内部数据库中其堆栈位置确定标记指示“已确定”的且该窗口中其迭加次序为顶层的普通窗口上面而它们的迭加次序在它们之间保持不变,并进一步将目标窗口设置在列出的窗口中的顶层。然后,更新列出的窗口的堆栈位置确定标记以指示“已确定”。另外,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S712。
图10示出具体地示例在图7所示的步骤S710中如何根据堆栈改变请求改变堆栈的示意图。
如图10所示,可以看出具有和目标窗口相同组值且堆栈位置确定标记指示“临时”的窗口被移至紧挨在其迭加次序在所有堆栈位置确定标记指示“已确定”的窗口中为顶层的窗口上面,且目标窗口被移至在堆栈中具有相同组值的所有窗口中的顶层。
在图7中,在步骤S711中,将堆栈改变请求发送至窗口系统12,以将所有在步骤S706中列出的且其堆栈位置确定标记指示“临时”的窗口设置在整个堆栈的底层而它们的迭加次序在它们之间保持不变,并进一步将目标窗口设置在所列出的窗口中的顶层。接着,更新列出的窗口的堆栈位置确定标记以指示“已确定”,并进一步更新整个内部数据库的堆栈位置信息,然后过程进入步骤S712。
图11示出具体地示例在步骤S711中如何根据堆栈改变请求改变堆栈的示意图。
如图11所示,可以看出具有和目标窗口相同的组值且其堆栈位置确定标记指示“临时”的普通窗口被移至栈底,且目标窗口被移至在堆栈中具有相同组值的所有窗口中的顶层。
在图7中,在步骤S712中,完成处理。
<移动堆栈中组底的请求>
在图1中,应用程序101、102和103可以向窗口系统12发送将所创建的且为其设置了窗口类型和组的普通窗口移至堆栈中的组底的请求。在X窗口系统的情况中,例如可以将XLowerWindow()函数用于请求移动堆栈中的组底的请求。另外,可以将将优先窗口移至堆栈中优先窗口中的底层的请求作为堆栈改变请求发送至窗口系统12。例如,可以使用和移动堆栈中组底的请求中所使用的相同的XLowerWindow()函数。
在应用程序执行XLowerWindow()的情况下,窗口系统12不改变堆栈,并向窗口管理程序105发送一个栈底移动请求事件(ConfigureRequest)。
图12示出当接收到栈底移动请求事件时由窗口管理程序105所执行的操作的一个例子的流程图。
如图12所示,在步骤S1201中,从当时所接收到的栈底移动请求事件(ConfigureRequest)获取目标窗口的标识符且过程进入步骤S1202。
在步骤S1202中,在内部数据库中搜索目标窗口的标识符。当相应数据呈现时,过程进入步骤S1203而当没有呈现时,过程进入步骤S1212。
在步骤S1203中,向窗口系统12查询在内部数据库中且其属性获取标记指示“未获取”的所有窗口的窗口类型和组值。对于已能获取窗口类型和组值的窗口,将窗口类型和组值以及已获取属性的事实存储在内部数据库中,且过程进入步骤S1204。
在步骤S1204中,核查目标窗口的窗口类型,并当窗口类型为优先窗口时,过程进入步骤S1205而当其为普通窗口时,过程进入步骤S1206。
在步骤S1205中,在内部数据库中搜索其窗口类型是堆栈中的优先窗口的窗口中在底层的窗口。然后,向窗口系统12发出堆栈改变请求,以将目标窗口设置在紧挨在优先窗口中其迭加次序是底层的窗口下而。接着,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S1212。然后,在搜索结果是在栈底的窗口是目标窗口本身的情况下,不执行任何处理且过程进入步骤S1212。
图13为具体地示例在步骤S1205中如何根据堆栈改变请求改变堆栈的示意图。
如图13所示,可以看出只有目标窗口被移至紧挨在其迭加次序在优先窗口中为底层的窗口的下面。
在图12中,在步骤S1206中,在内部数据库中搜索属于和用于列表的目标窗口同一组的普通窗口,且过程进入步骤S1207。
当在步骤S1207中其堆栈位置确定标记指示“已确定”的窗口呈现在列出的窗口中时,过程进入步骤S1208,而当没有呈现时,过程进入步骤S1209。
在步骤S1208中,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,向窗口系统12发出堆栈改变请求,以将所有列出的且为“临时”的窗口设置在紧挨在列出的窗口中且其堆栈位置确定标记指示“已确定”的诸窗口中处于顶层的窗口上面,而它们的迭加次序在它们之间保持不变,并进一步将目标窗口设置在列出的窗口中的底层。接着,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,将窗口的堆栈位置更新成已确定的。另外,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S1212。
图14示出具体地示例在步骤S1212中如何根据堆栈改变请求改变堆栈的示意图。
如图14所示,可以看出具有和目标窗口相同的组值且其堆栈位置确定标记指示“临时”的普通窗口被移至紧挨在具有相同的组值且其堆栈位置确定标记指示“已确定”的普通窗口上面,且目标窗口被移至在堆栈中具有相同组值的所有普通窗口中的底层。
在图12中,当在步骤S1209中其堆栈位置确定标记指示“已确定的”的窗口呈现在内部数据库中时,过程进入步骤S1210,而当没有呈现时,过程进入步骤S1211。
在步骤S1210中,将堆栈改变请求发送至窗口系统12,以将所有在步骤S1206中列出的且其堆栈位置确定标记指示“临时”的窗口设置在紧挨在内部数据库中的窗口中其堆栈位置确定标记指示“已确定”的且其迭加次序是顶层的普通窗口上面而它们的迭加次序在它们之间保持不变,并进一步将目标窗口设置在列出的窗口中的底层。然后,更新列出的窗口的堆栈位置确定标记以指示“已确定”。另外,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S1212。
图15示出具体地示例在步骤S1210中如何根据堆栈改变请求改变堆栈的示意图。
如图15所示,可以看出具有和目标窗口相同组值且堆栈位置确定标记指示“临时”的窗口被移至紧挨在所有其堆栈位置确定标记指示“已确定”的窗口中其迭加次序是顶层的窗口上面,且目标窗口被移至在堆栈中具有相同组值的所有窗口中的底层。
在图12中,在步骤S1211中,将堆栈改变请求发送至窗口系统12,以将所有在步骤S1206中列出的且其堆栈位置确定标记指示“临时”的窗口设置在整个堆栈的底层,而它们的迭加次序在它们之间保持不变,并进一步将目标窗口设置在所列出的窗口中的底层。接着,更新列出的窗口的堆栈位置确定标记以指示“已确定”,并进一步更新整个内部数据库中的堆栈位置信息,然后过程进入步骤S1212。
图16示出具体地示例在步骤S1211中如何根据堆栈改变请求改变堆栈的示意图。
如图16所示,可以看出具有和目标窗口相同的组值且其堆栈位置确定标记指示“临时”的普通窗口被移至栈底,且目标窗口被移至在堆栈中具有相同组值的所有普通窗口中的底层。
在图12中,在步骤S1212中,完成处理。
<移动堆栈中组单元中的顶层的请求>
在图1中,应用程序101、102和103可以向窗口系统12发送将所创建的且为其设置了窗口类型和组的普通窗口移至堆栈中组单元中的顶层的请求。在X窗口系统的情况中,例如可以通过使用客户消息结构容易地实现该请求。下面,将利用客户消息发送至窗口系统12的移动堆栈中的组单元中的顶层的请求的消息称为移动堆栈中组的单元中的顶层的请求的消息。请求移动堆栈中组的单元中的顶层的请求的消息包含希望移动的组(目标组)的组值。
在应用程序101、102和103发出移动堆栈中组的单元中的顶层的请求的消息(ClientMessage)的情况下,通过窗口系统12将该消息发送至窗口管理程序105。
图17示出当接收到移动堆栈中组的单元中的顶层的请求的消息时由窗口管理程序105所执行的操作的一个例子的流程图。
如图17所示,在步骤S1701中,从当时所接收到的请求移动堆栈中的组单元中的顶层的请求的消息(ClientMessage)中获取目标组值且过程进入步骤S1702。
在步骤S1702中,向窗口系统12查询在内部数据库中且属性获取标记指示“未获取”的所有窗口的窗口类型和组值。对于已能获取窗口类型和组值的窗口,将窗口类型和组值以及已获取属性的事实存储在内部数据库中,且过程进入步骤S1703。
在步骤S1703中,在内部数据库中搜索具有用于列表的目标组值的普通窗口的信息,且过程进入步骤S1704。
在步骤S1704中,当其堆栈位置确定信息指示“已确定”且具有与目标组值不同的组值信息的普通窗口呈现在内部数据库中时,过程进入步骤S1705,而当没有呈现时,过程进入步骤S1706。
在步骤S1705中,向窗口系统12发出堆栈改变请求,以将列出的窗口设置在紧挨在内部数据库中堆栈位置确定标记指示“已确定”且具有与目标组值不同的组值信息的普通窗口中其迭加次序是顶层的窗口上面,而它们的迭加次序在它们中保持不变)、。接着,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,将窗口的堆栈位置更新成“已确定”。另外,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S1707。
图18示出具体地示例在步骤S1705中如何根据堆栈改变请求改变堆栈的示意图。
如图18所示,可以看出具有目标组值的诸普通窗口被移至紧挨在其堆栈位置确定标记指示“已确定”且具有与诸目标组值不同的组值信息的所有普通窗口中其迭加次序是顶层的窗口上面。
在图17所示的步骤S1706中,向窗口系统12发送堆栈改变请求以将列出的窗口设置在整个堆栈的底层而它们的迭加次序在它们中保持不变。接着,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,将窗口的堆栈位置更新成“已确定”。另外,在整个数据库中更新堆栈位置信息,然后过程进入步骤S1707。
图19示出具体地示例在步骤S1706中如何根据堆栈改变请求改变堆栈的示意图。
如图19所示,可以看出具有目标组值的普通窗口被移至整个堆栈的底层。
在图17中,在步骤S1707中,处理完成。
<移动堆栈中组单元中的底层的请求>
在图1中,应用程序101、102和103可以向窗口系统12发送将所创建的且为其设置了窗口类型和组的普通窗口移至堆栈中组单元中的底层的请求。在X窗口系统的情况中,例如可以通过使用客户消息结构容易地实现该请求。下面,将利用客户消息发送至窗口系统12的移动堆栈中的组单元中的底层的请求的消息称为移动堆栈中组的单元中的底层的请求的消息。移动堆栈中组的单元中的底层的请求的消息包含希望移动的组(目标组)的组值。
在应用程序101、102和103发出移动堆栈中组的单元中的底层的请求的消息(ClientMessage)的情况下,通过窗口系统12将该消息发送至窗口管理程序105。
图20示出当接收到移动堆栈中组的单元中的底层的请求的消息时由窗口管理程序105所执行的操作的一个例子的流程图。
如图20所示,在步骤S2001中,从当时所接收到的请求移动堆栈中的组单元中的底层的请求的消息(ClientMessage)中获取目标组值且过程进入步骤S1702。
在步骤S2002中,向窗口系统12查询在内部数据库中且属性获取标记指示“未获取”的所有窗口的窗口类型和组值,且对于已能获取窗口类型和组值的窗口,将窗口类型和组值以及已获取属性的事实存储在内部数据库中,且过程进入步骤S2003。
在步骤S2003中,在内部数据库中搜索具有用于列表的目标组值的普通窗口,且过程进入步骤S2004。
在步骤S2004中,向窗口系统12发出堆栈改变请求,以将列出的窗口设置在整个堆栈的底层,而它们的迭加次序在它们中保持不变。接着,当其堆栈位置确定标记指示“临时”的窗口呈现在列出的窗口中时,将该窗口的堆栈位置更新成“已确定”。另外,在整个内部数据库中更新堆栈位置信息,然后过程进入步骤S2005。
图21示出具体地示例在步骤S2004中如何根据堆栈改变请求改变堆栈的示意图。
如图21所示,可以看出具有目标组值的普通窗口被移至整个堆栈的底层。
在图20所示的步骤S2005中,处理完成。
<破坏请求>
在图1中,应用程序101、102和103发出破坏所创建的窗口的请求。
当窗口系统12接收到破坏请求时,它停止管理相应的窗口并删除该窗口。然后,将窗口破坏通知事件(DestroyNotify)发送至窗口管理程序105。
当窗口管理程序105接收到窗口破坏通知事件(DestroyNotify)时,它从中提取窗口标识符并在内部数据库中搜索相应窗口信息以删除该信息,然后按需要更新整个内部数据库中的堆栈位置,并结束该处理。
如上所述,在显示各普通窗口之前,将窗口整体地显示成一组,以确定组中窗口的迭加次序,从而防止处于顶层的组的各窗口被迭加和显示在其它组的下面。另外,窗口管理程序通过接收请求整体地排列属于堆栈改变的目标组的所有普通窗口而保持它们之间的它们的迭加次序的堆栈改变请求来触发,然后执行堆栈改变,因此应用程序能更容易地掌握其自己组的窗口的迭加次序。另外,窗口管理程序设有移动堆栈中组的顶层和移动堆栈中组的底层的功能,所以可以在组中控制普通窗口的迭加次序,因此各应用程序可以改变堆栈而不必考虑由其它应用程序显示的普通窗口。另外,窗口管理程序设有移动堆栈中组单元的顶层和移动堆栈中组单元的底层的功能。因此,在将组分配给各应用程序的情况下即使在不知道属于应用程序的窗口的成员时,也可以将属于该应用程序的所有普通窗口移至堆栈的最前面(顶层)。另外,通过设置优先窗口,可以提供一种用于使能不论组的单元中的迭加次序用最高优先权显示特定窗口的服务。
然后,在本实施例中,虽然窗口管理程序获取窗口类型和组值的定时是在接收到映射请求事件(MapRequest)和在接收到堆栈改变请求时,但该定时不限于此。窗口类型和组值可以通过应用程序设置窗口类型和组的定时来获取并存储在内部数据库中,这样处理起来更有效。另外,通过此定时,可以将窗口整体地排列成一组以确定组中多层迭加的次序。另外,可以允许或可以不允许窗口类型和组值的改变。在允许改变的情况下,当通过设置窗口类型和组的定时将窗口类型从优先窗口变成普通窗口时,将堆栈位置确定标记变成指示“临时”。相反,在窗口类型从普通窗口变成优先窗口的情况下,改变堆栈使窗口在该时刻位于堆栈的顶层。另外,在改变了组值而没有改变窗口类型的情况下,堆栈位置确定标记变成指示“临时”。然后,应该更新内部数据库。另一方面,在不允许改变的情况下,通过设置窗口类型和组核查属性获取标记,并当已执行该获取时,可以忽略该设置。
另外,虽然描述了用于控制两种类型的窗口(优先窗口和普通窗口)的例子,不用说即使当使用仅仅一种普通窗口时也可以容易地实现本发明。
另外,虽然将窗口管理程序控制身为根窗口的子窗口的顶层窗口的迭加次序的情况作为例子,不用说,对于顶层窗口的后代窗口也可以执行本发明。
另外,虽然窗口管理程序包括X窗口系统和窗口管理程序,并将窗口创建请求和映射请求用作与应用程序的接口,本发明不限于此。只要接口与显示请求相对应,可以使用任何接口。在此情况下,当接收到窗口显示请求时,窗口管理程序可以将接收窗口创建请求时要执行的处理与接收映射请求时要执行的处理(在本实施例中描述了这些处理)一起执行。
当将窗口整体地排列一组以确定组中多层迭加的次序时,仅改变该窗口的迭加次序。然而,例如窗口管理程序创建各组的代表窗口并在整体地排列窗口以确定组中的迭加次序时将窗口作为代表窗口的子窗口处理以执行控制,也是容易的。因此,因为可以通过控制代表窗口来执行组单元中的堆栈移动和组单元中窗口的显示和不显示之间的切换,所以组具有的窗口越多,可以更多地减少处理中的负荷。图22示出使用代表窗口的情况中的堆栈状态的一个例子的示意图。
另外,虽然窗口管理程序不执行不显示在堆栈中比位于处于顶层的组低的位置的窗口的那种控制,但可以容易地实现控制以不显示它。在此情况下,将指示显示/不显示的映射标记添加至窗口信息,并将应用程序的显示请求的状态存储在映射标记中。当窗口所属的组到达堆栈中普通窗口中的顶层时,核查映射标记,并当该映射标记指示“显示”时执行映射,而当该映射标记指示“不显示”时,该窗口保持不被映射。相反,当窗口所属的组不再处于堆栈中普通窗口中的顶层时,在映射标记指示“显示”的情况下执行不映射处理,而在映射标记指示“不显示”的情况下,不执行任何处理。因此,即使试图显示在堆栈中位于比普通窗口中处于顶层的组低的位置的组的窗口等,也不在显示单元上显示该窗口等。因此,不必顾及半当中会在不被处于顶层的组的窗口覆盖的部分上显示堆栈中位置较低的组的窗口。
另外,虽然在此实施例中,没有特别将由窗口管理程序所创建和映射的特定窗口设置在紧挨在属于普通窗口中处于顶层的组的所有窗口中其迭加次序为底层的窗口下面,但可以容易地实现该设置。因此,例如,当显示特定窗口以填充显示单元中的屏幕时,即使试图显示在堆栈中的位置比特定窗口低的组的窗口等,在显示单元也不显示该窗口等。因此,不必顾及半当中会在不被处于顶层的组的窗口覆盖的部分上显示堆栈中位置较低的组的窗口。图23示出图示在使用特定窗口的情况下堆栈的状态的一个例子的示意图,而图24进一步示出图示屏幕上显示的一个例子的示意图。
虽然将三个应用程序作为例子,但本发明不限于此,可以使用一个或一个以上程序。
另外,虽然将向各应用程序分配一个组的情况作为例子,本发明不限于此,可以将多个组分配给一个应用程序,或可以将一个组分配给多个应用程序。
另外,虽然所述的是窗口管理程序包括X窗口系统和窗口管理程序并在其间发送和接收事件和请求的一个例子,但本发明不限于此。窗口系统不一定是X窗口系统且窗口管理程序不一定要构成得可以被分成两个以在其间发送和接收事件和各种请求。在整体地构成和执行窗口管理程序的情况下,将事件或消息的接口变成基于功能的,从而使此实施例能容易地应用。
另外,虽然没有特别将由窗口管理程序所创建的特定窗口设置在紧挨在属于普通窗口中处于顶层的组的所有窗口中其迭加次序是顶层的窗口上面,但可以容易地实现该设置。因此,例如,当用另一组代替处于顶层的组时,在X窗口系统的情况中,使用XRestackWindows()函数,并可以将特定窗口用于指示要移动的窗口组的堆栈的目的地。在堆栈中没有比处于顶层的组的窗口位置高的窗口的情况下,确定呈现的所有窗口的排列次序,该次序应分配给XRestackWindows()的自变量。当特定窗口呈现时,只需将该特定窗口和窗口组(set)设置分配给自变量。下面将简要地说明原因。有两种用XRestackWindows()函数改变迭加次序的方法。第一种方法是将所有现有窗口以迭加次序整体地排列并分配给自变量的整体分配方法。第二种方法是将具有迭加次序不变的窗口和位置比所述窗口低的且要改变其迭加次序的那些窗口分配给自变量的部分分配方法。例如,在五个窗口A、B、C、D和E以由堆栈较高位置开始的次序呈现时,可以将迭加次序变成A、C、B、D、E。可将(A,C,B,D,E)作为整体分配分配给自变量,而将(A,C,B)分配给自变量作为部分分配。如上所述,部分分配与整体分配相比具有需要分配给自变量的窗口数量减少了。如上所述,将由窗口管理程序所创建的特定窗口设置在紧挨在属于普通窗口中处于顶层的组的所有窗口中其迭加次序是顶层的窗口上面,因此可以将该特定窗口用作用于部分分配中的自变量的“具有迭加次序不变的窗口”。因此,当用另一组代替处于顶层的组时,也可以用部分分配改变迭加次序。然后,作为部分分配的另一优点,XRestackWindows()函数的执行更容易成功。这是因为窗口系统与窗口管理程序不同步运行,且和映射(窗口显示)不一样,基于来自应用程序的请求的窗口创建和破坏是在应用程序和窗口系统之间任意地执行的。因此,由窗口管理程序管理的有关窗口是否呈现的信息有时与已更新信息不同。在此情况下,整体分配要求分配所有窗口的迭加次序,从而不能改变迭加次序。
另外,在使用X窗口系统的情况下,窗口管理程序使用XRestackWindows()函数来控制堆栈。窗口组和指示该窗口组要移向的目的地的窗口被分配给XRestackWindows()函数。然而,在窗口中任何一个被破坏的情况下,有时有意不执行堆栈控制。作为对其的对策,例如,当窗口管理程序接收到窗口破坏通知事件(DestroyNotify)时,窗口管理程序在内部数据库中搜索相应的窗口信息并删除它,并按需要在整个内部数据库中更新堆栈位置,然后在要获取栈树时在窗口系统中查询栈树,并从目标中消除窗口管理程序所没有识别出的新窗口,核查该栈树与窗口管理程序中的栈树一致性,并在该栈树与窗口管理程序所识别出的栈树不同的情况下,窗口管理程序发出一个使该栈树与窗口管理程序中的栈一致的堆栈改变请求,并且直到识别相互一致以前,窗口管理程序可以重复查询当时在窗口系统中的栈树,核查一致性和发出堆栈改变请求。因此,即使当窗口系统在堆栈改变处理中失败,窗口管理程序也可以确保在认识堆栈方面与窗口系统一致,从而防止处理中的失败。
另外,当执行XRestackWindows()时窗口管理程序可以设置一个标记。只有在接收到窗口破坏通知事件(DestroyNotify)时设置该标记的情况下,窗口管理程序才可以记下该标记并执行与栈树一致性的处理。因此,可以减小用于执行与栈树一致性的处理的频率。
另外,不用说,可以将诸如家用计算机、蜂窝电话、PDA(个人数字助理)、机顶盒、数字照相机和照相机集成型VTR之类的任何在其上安装了运行程序的CPU和存储器并试图在显示单元上显示多个窗口的设备用作计算机7。
另外,虽然显示单元11是计算机7的一部分,这并不是指显示单元和计算机被物理地集成在一起,且显示单元可以以不论是有线是或是无线的方式与计算机7连接。
另外,不用说,用于实现根据本实施例的窗口堆栈控制方法的窗口管理程序可以存储在要提供给计算机ROM、盘等中,也可以通过网络提供给计算机。
(实施例2)
根据第二实施例的窗口堆栈控制方法是根据第一实施例的方法的修改,而第二实施例与第一实施例的不同之处仅在于接收映射请求事件(MapRequest)时窗口管理程序105所执行的操作以及在第二实施例中窗口管理程序105不应将窗口整体地排列成一组以通过应用程序设置窗口类型和组值的定时确定迭加次序。因此,在此实施例中,只说明在窗口管理程序105接收映射请求事件(MapRequest)时由窗口管理程序105所执行的操作。
图25示出当接收到映射请求事件(MapRequest)时由窗口管理程序执行的操作的一个例子的流程图。
如图25所示,在步骤S2501中从当时接收到的映射请求事件(MapRequest)中获取要映射的目标窗口的标识符,且过程进入步骤S2502。
在步骤S2502中,在内部数据库中搜索要映射的目标窗口的标识符。当相应的窗口信息呈现时,过程进入步骤S2503,而当没有呈现时,过程进入步骤S2515。
在步骤S2503中,在内部数据库中核查目标窗口的堆栈位置确定标记是否指示“已确定”,并当其指示“已确定”时,过程进入步骤S2514,而当其指示“临时”时,过程进入步骤S2504。
在步骤S2504中,核查目标窗口的属性获取标记,并当其指示“已获取”时,过程进入步骤S2506,而当其指示“未获取”时,过程进入步骤S2505。
在步骤S2505中,向窗口系统查询该目标窗口的窗口类型和组值以获取它们,并将该窗口类型和组值存储在内部数据库中,且过程进入步骤S2506。
在步骤S2506中,核该查目标窗口的窗口类型。当该窗口类型是优先窗口时,过程进入步骤S2514,而当该窗口类型是普通窗口时,过程进入步骤S2507。
在步骤S2507中,对于在内部数据库中且属性获取标记指示“未获取”的所有窗口,向窗口系统12查询窗口类型和组值,且对于已获取它们的窗口,将窗口类型和组值以及已获取属性的事实存储在内部数据库中,且过程进入步骤S2508。
在步骤S2508中,在内部数据库中搜索和用于列表的目标窗口属于同一组的普通窗口,且过程进入步骤S2509。
在步骤S2509中,当其堆栈位置确定标记指示“已确定”的窗口呈现在列出的窗口中时,过程进入步骤S2510,而当没有呈现时,过程进入步骤S2511。
在步骤S2510中,将堆栈改变请求发送至窗口系统12以将所列出的且其堆栈位置确定标记指示“临时”的所有窗口设置在紧挨在列出的且其堆栈位置确定标记指示“已确定”的窗口中处于顶层的窗口上面而它们中的它们的迭加次序保持不变,且过程进入步骤S2514。
图26为具体地示例在步骤S2510中如何根据堆栈改变请求改变堆栈的示意图。
如图26所示,可以看出要映射的目标窗口和具有和要映射的目标窗口相同的组值且其堆栈位置确定标记指示“临时”的普通窗口被移至紧挨在具有相同组值且其堆栈位置确定标记指示“已确定”的普通窗口上面。
在图25中,在步骤S2511中,当其堆栈位置确定标记指示“已确定”的普通窗口在内部数据库中呈现时,过程进入步骤S2512,而当没有呈现时,过程进入步骤S2513。
在步骤S2512中,将堆栈改变请求发送至窗口系统12以将步骤S2508中所列出的且其堆栈位置确定标记指示“临时”的所有窗口设置在紧挨在内部数据库中且其堆栈位置确定标记指示“已确定”的窗口中其迭加次序是顶层的普通窗口上面,而它们中的它们的迭加次序保持不变,且过程进入步骤S2514。
图27示出具体地示例在步骤S2512中如何根据堆栈改变请求改变堆栈的示意图。
如图27所示,可以看出要映射的目标窗口和具有和要映射的目标窗口相同的组值且其堆栈位置确定标记指示“临时”的普通窗口被移至紧挨在堆栈位置确定标记指示“已确定”的所有普通窗口中迭加次序是顶层的窗口上。
在图25中,在步骤S2513中,将堆栈改变请求发送至窗口系统12以将步骤S2508中所列出的且其堆栈位置确定标记指示“临时”的所有窗口设置在紧挨在整个堆栈的底层而它们中的它们的迭加次序保持不变,且过程进入步骤S2514。
图28示出具体地示例在步骤S2513中如何根据堆栈改变请求改变堆栈的示意图。
如图28所示,可以看出要映射的目标窗口和具有和要映射的目标窗口相同的组值且其堆栈位置确定标记指示“临时”的普通窗口被移至栈底。
在图25中,在步骤S2514中,将用于要映射的目标窗口的映射请求发送至窗口系统12,并在内部数据库中目标窗口的窗口信息的堆栈位置确定标记指示“未确定”时,将堆栈位置更新成“已确定”,并按需要进一步在整个内部数据库中更新堆栈位置,然后过程进入步骤S2515。
在步骤S2515中,处理完成。
如上所述,窗口管理程序移动具有和要映射的目标窗口相同的组值且其堆栈位置是临时的普通窗口组的堆栈位置,而保持它们在普通窗口组中堆栈中的上下关系,并将普通窗口整体地排列成一组,因此,同一组的迭加次序不因映射而改变并减少了用于管理同一组应用程序中迭加次序的负荷。另外,如第一实施例中所述,同样在接收到堆栈改变请求时,将具有和目标窗口相同组值且其堆栈位置是临时的普通窗口组整体地排列成一组,而在普通窗口组中维持它们在堆栈中的上下关系,从而该应用程序可以根据创建窗口的次序管理属于其自己一组窗口的迭加次序。这匹配X窗口系统的基础,且该应用程序可以根据典型的迭加次序确定规则的创建次序管理其自己一组的普通窗口的堆栈。
然后,虽然在本实施例中在接收映射请求事件(MapRequest)时管理程序获取窗口的组值,但本发明不限于此。在第一实施例的情况中,可以通过应用程序设置窗口类型和组的定时来获取组值,并可以将窗口类型和组值及已获取属性的事实存储在内部数据库中,这样处理起来更有效。然而,与第一实施例不同,可以将窗口整体地排列成一组以通过上述定时确定组中多层迭加的次序。
工业实用性
本发明适用于在显示单元上显示多个窗口,且特别适用于管理蜂窝电话、PDA等的小屏幕的窗口从而这些窗口更易于相互覆盖的窗口。
权利要求书
(按照条约第19条的修改)
1.一种用于根据一个或多个应用程序管理在显示单元上所显示的多个窗口的堆栈的窗口堆栈控制方法,其特征在于,包括:以下步骤:
从应用程序接收新创建一个窗口的请求;
指定一组来自应用程序的窗口;
接收用于显示来自应用程序的窗口的请求;和
将窗口整体地排列成一组以在响应显示请求显示窗口时确定该组中的窗口的迭加次序,其中
在所述整体排列步骤中,
确定该窗口的迭加次序以使后面连着该窗口所属的组的迭加次序,而保持其窗口已整体地排列成组的窗口的各窗口组的迭加次序。
2.(删除)
3.如权利要求1或2所述的窗口堆栈控制方法,其特征在于,还包括:
用于为各组建立代表窗口的步骤,其中
所述整体排列步骤包括当将窗口整体地排列成一组以确定该窗口在组中的迭加次序时,将该窗口作为代表窗口的子窗口处理。
4.如权利要求1-3中任一所述的窗口堆栈控制方法,其特征在于,还包括以下步骤:
从应用程序中接收一个请求移动窗口堆栈中组的顶层的请求和一个请求移动窗口堆栈中组的底层的请求;和
响应移动顶的请求或移动底的请求改变组中的堆栈。
5.如权利要求4所述的窗口堆栈控制方法,其特征在于,
所述堆栈改变步骤包括当从应用程序接收到将第一窗口移至窗口堆栈中组的顶层的请求和将第一窗口移至窗口堆栈中组的底层的请求时,改变堆栈以将其窗口与第一窗口属于同一组且没有整体地排列成一组的第一窗口组和其窗口与第一窗口属于同一组且整体地排列成一组的第二窗口组集中起来,而保持第一窗口组中的迭加次序,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序。
6.如权利要求1-3中任一所述的窗口堆栈控制方法,其特征在于,还包括:
用于从应用程序接收请求移动窗口堆栈中组单元中顶的请求和请求移动窗口堆栈中组单元中底的请求的步骤,和
响应移动顶的请求或移动底的请求改变组单元中的堆栈的步骤。
7.如权利要求5所述的窗口堆栈控制方法,其特征在于,
所述堆栈改变步骤包括当从应用程序接收到请求将第一组移至窗口堆栈中组单元中的顶层的请求和请求将第一组移至窗口堆栈中组单元中的底层的请求时,改变堆栈以将其窗口属于第一组且没有整体地排列成一组的第一窗口组和其窗口与属于第一组且整体地排列成一组的第二窗口组用集中起来,而保持第一窗口组中的迭加次序,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序。
8.如权利要求1所述的窗口堆栈控制方法,其特征在于,
使得用应用程序指定成优先窗口的窗口不属于任何一组并使该优先窗口在堆栈一直处于比在显示单元上所显示的且属于任何组的所有窗口高的位置。
9.如权利要求1所述的窗口堆栈控制方法,其特征在于,
在堆栈中的位置比属于处于顶层的组的窗口低的窗口一直处于不显示状态。
10.如权利要求1所述的窗口堆栈控制方法,其特征在于,
其中特定窗口紧挨在迭加次序在属于处于顶层的组的窗口中为底层的窗口的下面。
11.如权利要求4或6所述的窗口堆栈控制方法,其特征在于,
X窗口系统和窗口管理程序管理多个窗口的堆栈,且
特定窗口紧挨在处于顶层的组的上面。
12.如权利要求1-3中任一所述的窗口堆栈控制方法,其特征在于,
X窗口系统和窗口管理程序管理多个窗口的堆栈,且
窗口管理程序在接收到窗口破坏通知时确认其识别出的堆栈是否与由窗口系统识别出的堆栈一致,并在不一致的情况下执行用于使由窗口系统识别出的堆栈与由窗口管理程序识别出的堆栈一致的处理。
13.如权利要求1-3中任一所述窗口堆栈控制方法,其特征在于,
X窗口系统和窗口管理程序管理多个窗口的堆栈,且
窗口管理程序在请求窗口系统改变堆栈时设置一个标记,并且只有在接收到窗口破坏通知时设置该标记时,确认其识别出的堆栈是否与由窗口系统识别出的堆栈一致,并在不一致的情况中执行用于使由窗口系统识别出的堆栈与由窗口管理程序识别出的堆栈一致的处理,从而将该标记记下。
14.如权利要求1所述的窗口堆栈控制方法,其特征在于,
所述整体排列步骤包括当从应用程序接收到显示没有整体地排列成一组的第一窗口的请求时,集中属于与该第一窗口同一组的且没有整体地排列成一组的第一窗口和第二窗口组的窗口,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序。
15.一种用于根据一个或多个应用程序管理显示在显示单元上的多个窗口的堆栈的窗口管理程序,其特征在于,在该程序中计算机可用于执行以下步骤:
指定一组来自应用程序窗口;
接收一个显示来自应用程序的窗口的请求;并
整体地将窗口排成一组以在接收到显示请求时确定该窗口在该组中的迭加次序。
16.一种用于在显示单元上显示多个窗口时管理窗口的堆栈的窗口管理装置,其特征在于,所述装置包括:
用于在显示单元上显示一个或多个窗口的一个或多个应用程序;
用于管理由一个或多个应用程序显示的窗口堆栈的窗口管理程序;和
用于执行所述应用程序和所述窗口管理程序的处理单元,其中
所述应用程序指定一组相对于窗口管理程序的窗口,且
所述窗口管理程序在接收到显示来自应用程序的窗口的请求并显示该窗口时执行控制,以将窗口整体地排成一组,从而确定该窗口在该组中的迭加次序。
Claims (16)
1.一种用于根据一个或多个应用程序管理在显示单元上所显示的多个窗口的堆栈的窗口堆栈控制方法,其特征在于,包括:以下步骤:
指定一组来自应用程序的窗口;
接收用于显示来自应用程序的窗口的请求;和
将窗口整体地排列成一组以在响应显示请求显示窗口时确定该组中的窗口的迭加次序。
2.如权利要求1所述的窗口堆栈控制方法,其特征在于,其中,
在整体排列步骤中,当从应用程序接收到用于显示没有整体地排成一组的第一窗口的请求时,将其窗口与第一窗口属于同一组且没有整体地排列成一组的第一窗口组和其窗口与第一窗口属于同一组且整体地排列成一组的第二窗口组集中起来,而保持第一窗口组中迭加次序,使第一窗口组的迭加次序后连着第二窗口组的迭加次序。
3.如权利要求1或2所述的窗口堆栈控制方法,其特征在于,还包括:
用于为各组建立代表窗口的步骤,其中
所述整体排列步骤包括当将窗口整体地排列成一组以确定该窗口在组中的迭加次序时,将该窗口作为代表窗口的子窗口处理。
4.如权利要求1-3中任一所述的窗口堆栈控制方法,其特征在于,还包括以下步骤:
从应用程序中接收一个请求移动窗口堆栈中组的顶层的请求和一个请求移动窗口堆栈中组的底层的请求;和
响应移动顶的请求或移动底的请求改变组中的堆栈。
5.如权利要求4所述的窗口堆栈控制方法,其特征在于,
所述堆栈改变步骤包括当从应用程序接收到将第一窗口移至窗口堆栈中组的顶层的请求和将第一窗口移至窗口堆栈中组的底层的请求时,改变堆栈以将其窗口与第一窗口属于同一组且没有整体地排列成一组的第一窗口组和其窗口与第一窗口属于同一组且整体地排列成一组的第二窗口组集中起来,而保持第一窗口组中的迭加次序,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序。
6.如权利要求1-3中任一所述的窗口堆栈控制方法,其特征在于,还包括:
用于从应用程序接收请求移动窗口堆栈中组单元中顶的请求和请求移动窗口堆栈中组单元中底的请求的步骤,和
响应移动项的请求或移动底的请求改变组单元中的堆栈的步骤。
7.如权利要求5所述的窗口堆栈控制方法,其特征在于,
所述堆栈改变步骤包括当从应用程序接收到请求将第一组移至窗口堆栈中组单元中的顶层的请求和请求将第一组移至窗口堆栈中组单元中的底层的请求时,改变堆栈以将其窗口属于第一组且没有整体地排列成一组的第一窗口组和其窗口与属于第一组且整体地排列成一组的第二窗口组用集中起来,而保持第一窗口组中的迭加次序,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序。
8.如权利要求1所述的窗口堆栈控制方法,其特征在于,
使得用应用程序指定成优先窗口的窗口不属于任何一组并使该优先窗口在堆栈一直处于比在显示单元上所显示的且属于任何组的所有窗口高的位置。
9.如权利要求1所述的窗口堆栈控制方法,其特征在于,
在堆栈中的位置比属于处于顶层的组的窗口低的窗口一直处于不显示状态。
10.如权利要求1所述的窗口堆栈控制方法,其特征在于,
其中特定窗口紧挨在迭加次序在属于处于顶层的组的窗口中为底层的窗口的下面。
11.如权利要求4或6所述的窗口堆栈控制方法,其特征在于,
X窗口系统和窗口管理程序管理多个窗口的堆栈,且
特定窗口紧挨在处于顶层的组的上面。
12.如权利要求1-3中任一所述的窗口堆栈控制方法,其特征在于,
X窗口系统和窗口管理程序管理多个窗口的堆栈,且
窗口管理程序在接收到窗口破坏通知时确认其识别出的堆栈是否与由窗口系统识别出的堆栈一致,并在不一致的情况下执行用于使由窗口系统识别出的堆栈与由窗口管理程序识别出的堆栈一致的处理。
13.如权利要求1-3中任一所述窗口堆栈控制方法,其特征在于,
X窗口系统和窗口管理程序管理多个窗口的堆栈,且
窗口管理程序在请求窗口系统改变堆栈时设置一个标记,并且只有在接收到窗口破坏通知时设置该标记时,确认其识别出的堆栈是否与由窗口系统识别出的堆栈一致,并在不一致的情况中执行用于使由窗口系统识别出的堆栈与由窗口管理程序识别出的堆栈一致的处理,从而将该标记记下。
14.如权利要求1所述的窗口堆栈控制方法,其特征在于,
所述整体排列步骤包括当从应用程序接收到显示没有整体地排列成一组的第一窗口的请求时,集中属于与该第一窗口同一组的且没有整体地排列成一组的第一窗口和第二窗口组的窗口,使得第一窗口组的迭加次序后连着第二窗口组的迭加次序。
15.一种用于根据一个或多个应用程序管理显示在显示单元上的多个窗口的堆栈的窗口管理程序,其特征在于,在该程序中计算机可用于执行以下步骤:
指定一组来自应用程序窗口;
接收一个显示来自应用程序的窗口的请求;并
整体地将窗口排成一组以在接收到显示请求时确定该窗口在该组中的迭加次序。
16.一种用于在显示单元上显示多个窗口时管理窗口的堆栈的窗口管理装置,其特征在于,所述装置包括:
用于在显示单元上显示一个或多个窗口的一个或多个应用程序;
用于管理由一个或多个应用程序显示的窗口堆栈的窗口管理程序;和
用于执行所述应用程序和所述窗口管理程序的处理单元,其中
所述应用程序指定一组相对于窗口管理程序的窗口,且
所述窗口管理程序在接收到显示来自应用程序的窗口的请求并显示该窗口时执行控制,以将窗口整体地排成一组,从而确定该窗口在该组中的迭加次序。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003106393A JP2004310655A (ja) | 2003-04-10 | 2003-04-10 | ウィンドウスタック制御方法 |
| JP106393/2003 | 2003-04-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN1771475A true CN1771475A (zh) | 2006-05-10 |
Family
ID=33156912
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNA2004800094431A Pending CN1771475A (zh) | 2003-04-10 | 2004-03-29 | 窗口堆栈控制方法、窗口管理程序及窗口管理装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20060190838A1 (zh) |
| EP (1) | EP1617323A4 (zh) |
| JP (1) | JP2004310655A (zh) |
| KR (1) | KR20060002964A (zh) |
| CN (1) | CN1771475A (zh) |
| WO (1) | WO2004090712A1 (zh) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101727877A (zh) * | 2008-10-30 | 2010-06-09 | 富士施乐株式会社 | 显示控制装置、显示控制方法和图像形成装置 |
| CN102063302A (zh) * | 2010-12-20 | 2011-05-18 | 北京握奇数据系统有限公司 | 窗口管理方法、系统及终端 |
| CN101315603B (zh) * | 2007-05-31 | 2013-03-06 | 株式会社Ntt都科摩 | 信息处理装置 |
| WO2014047831A1 (en) * | 2012-09-27 | 2014-04-03 | Motorola Mobility Llc | Method and apparatus for displaying computer application or computer activity |
| CN105516782B (zh) * | 2015-12-10 | 2018-08-14 | 四川长虹电器股份有限公司 | Android系统智能电视悬浮界面互斥功能的实现方法及系统 |
| CN109569214A (zh) * | 2018-12-24 | 2019-04-05 | 青岛海信电器股份有限公司 | 分屏模式下的应用显示方法及装置、显示设备 |
| CN110347459A (zh) * | 2019-06-11 | 2019-10-18 | 广州视源电子科技股份有限公司 | 一种窗口最小化方法、装置、存储介质及交互智能平板 |
| CN111191164A (zh) * | 2019-11-29 | 2020-05-22 | 泰康保险集团股份有限公司 | 一种窗口显示控制方法和装置 |
| CN113821142A (zh) * | 2021-11-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 一种界面窗口的管理方法以及相关装置 |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8137200B2 (en) * | 1996-11-14 | 2012-03-20 | Bally Gaming, Inc. | Networked gaming system having a browser manager |
| JP3509060B2 (ja) * | 1998-05-28 | 2004-03-22 | 松下電器産業株式会社 | 表示制御装置および方法 |
| US9182937B2 (en) * | 2010-10-01 | 2015-11-10 | Z124 | Desktop reveal by moving a logical display stack with gestures |
| US9207717B2 (en) * | 2010-10-01 | 2015-12-08 | Z124 | Dragging an application to a screen using the application manager |
| US8698751B2 (en) | 2010-10-01 | 2014-04-15 | Z124 | Gravity drop rules and keyboard display on a multiple screen device |
| US7581192B2 (en) * | 2005-03-31 | 2009-08-25 | Microsoft Corporation | Method and apparatus for application window grouping and management |
| JP4150026B2 (ja) * | 2005-05-12 | 2008-09-17 | 株式会社東芝 | 携帯型電子機器及びウィンドウ制御システム |
| US7620905B2 (en) * | 2006-04-14 | 2009-11-17 | International Business Machines Corporation | System and method of windows management |
| US8627225B2 (en) * | 2006-06-09 | 2014-01-07 | Honeywell International Inc. | Apparatus and methods for ensuring closure of displays |
| JP4877831B2 (ja) * | 2007-06-27 | 2012-02-15 | 久美子 石井 | 確認システム、情報提供システム、ならびに、プログラム |
| JP5031588B2 (ja) * | 2008-01-07 | 2012-09-19 | 株式会社エヌ・ティ・ティ・ドコモ | 情報処理装置及びプログラム |
| US9001149B2 (en) | 2010-10-01 | 2015-04-07 | Z124 | Max mode |
| US8749484B2 (en) | 2010-10-01 | 2014-06-10 | Z124 | Multi-screen user interface with orientation based control |
| US8878794B2 (en) | 2011-09-27 | 2014-11-04 | Z124 | State of screen info: easel |
| US9395868B2 (en) * | 2011-12-06 | 2016-07-19 | Google Inc. | Graphical user interface window spacing mechanisms |
| CN104598097A (zh) * | 2013-11-07 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 即时通信im窗口的排序方法和装置 |
| US10394449B2 (en) | 2016-09-23 | 2019-08-27 | Apple Inc. | Dynamic function row management |
| US10223128B2 (en) | 2016-09-23 | 2019-03-05 | Apple Inc. | Booting and power management |
| US10732996B2 (en) | 2016-09-23 | 2020-08-04 | Apple Inc. | Dynamic function row constraints |
| US10261667B2 (en) * | 2016-09-23 | 2019-04-16 | Apple Inc. | Dynamic function row item discovery and context |
| KR101840007B1 (ko) * | 2017-07-21 | 2018-03-19 | (주)신호테크 | 엘리베이터용 천장조립체 제작시스템의 보조부재 절단 및 분류 장치 |
| CN113535287B (zh) * | 2020-04-17 | 2022-12-13 | 中标软件有限公司 | 一种Linux操作系统桌面环境窗口自动排列的方法 |
| CN113407293B (zh) * | 2021-08-19 | 2021-11-09 | 北京鲸鲮信息系统技术有限公司 | 窗口管理方法、装置、设备和存储介质 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62182979A (ja) * | 1986-02-07 | 1987-08-11 | Fujitsu Ltd | 階層的マルチウインドウ制御方式 |
| JP2503995B2 (ja) * | 1986-09-05 | 1996-06-05 | カシオ計算機株式会社 | マルチウィンドウ表示方法 |
| JPH02244323A (ja) * | 1989-03-17 | 1990-09-28 | Fujitsu Ltd | マルチウィンドウのグループ制御方式 |
| JPH0380323A (ja) * | 1989-08-23 | 1991-04-05 | Fujitsu Ltd | ウインドウ表示制御方式 |
| CA2044931C (en) * | 1990-06-19 | 2000-08-01 | Hajime Kamata | Multiwindow display control method and apparatus |
| JPH05282119A (ja) * | 1992-03-31 | 1993-10-29 | Nippon Telegr & Teleph Corp <Ntt> | マルチウィンドウ表示システム |
| JPH0644031A (ja) * | 1992-04-23 | 1994-02-18 | Nec Corp | マルチウィンドウ表示装置 |
| US5412776A (en) * | 1992-12-23 | 1995-05-02 | International Business Machines Corporation | Method of generating a hierarchical window list in a graphical user interface |
| US5615326A (en) * | 1993-12-30 | 1997-03-25 | Taligent, Inc. | Object-oriented viewing framework having view grouping |
| US5675755A (en) * | 1995-06-07 | 1997-10-07 | Sony Corporation | Window system preventing overlap of multiple always-visible windows |
| JP3344528B2 (ja) * | 1995-06-29 | 2002-11-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ウィンドウの表示方法およびそのシステム |
| US5874960A (en) * | 1995-07-05 | 1999-02-23 | Microsoft Corporation | Method and system for sharing applications between computer systems |
| US5995103A (en) * | 1996-05-10 | 1999-11-30 | Apple Computer, Inc. | Window grouping mechanism for creating, manipulating and displaying windows and window groups on a display screen of a computer system |
| US5835091A (en) * | 1996-08-21 | 1998-11-10 | International Business Machines Corporation | Manipulating and displaying a plurality of views in a graphical user interface |
| US6909443B1 (en) * | 1999-04-06 | 2005-06-21 | Microsoft Corporation | Method and apparatus for providing a three-dimensional task gallery computer interface |
| JP2001060134A (ja) * | 1999-08-24 | 2001-03-06 | Hitachi Ltd | マルチウィンドウ制御システム |
-
2003
- 2003-04-10 JP JP2003106393A patent/JP2004310655A/ja active Pending
-
2004
- 2004-03-29 CN CNA2004800094431A patent/CN1771475A/zh active Pending
- 2004-03-29 EP EP04724165A patent/EP1617323A4/en not_active Withdrawn
- 2004-03-29 US US10/550,728 patent/US20060190838A1/en not_active Abandoned
- 2004-03-29 KR KR1020057019181A patent/KR20060002964A/ko not_active Withdrawn
- 2004-03-29 WO PCT/JP2004/004414 patent/WO2004090712A1/ja not_active Ceased
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8910077B2 (en) | 2007-05-31 | 2014-12-09 | Ntt Docomo, Inc. | Information processing device and computer readable medium |
| CN101315603B (zh) * | 2007-05-31 | 2013-03-06 | 株式会社Ntt都科摩 | 信息处理装置 |
| CN101727877A (zh) * | 2008-10-30 | 2010-06-09 | 富士施乐株式会社 | 显示控制装置、显示控制方法和图像形成装置 |
| US8503010B2 (en) | 2008-10-30 | 2013-08-06 | Fuji Xerox Co., Ltd. | Display control device, display control method, image-forming device, computer readable medium, and computer data signal |
| CN101727877B (zh) * | 2008-10-30 | 2013-09-04 | 富士施乐株式会社 | 显示控制装置、显示控制方法和图像形成装置 |
| CN102063302B (zh) * | 2010-12-20 | 2014-07-02 | 北京握奇数据系统有限公司 | 窗口管理方法、系统及终端 |
| CN102063302A (zh) * | 2010-12-20 | 2011-05-18 | 北京握奇数据系统有限公司 | 窗口管理方法、系统及终端 |
| WO2014047831A1 (en) * | 2012-09-27 | 2014-04-03 | Motorola Mobility Llc | Method and apparatus for displaying computer application or computer activity |
| CN105516782B (zh) * | 2015-12-10 | 2018-08-14 | 四川长虹电器股份有限公司 | Android系统智能电视悬浮界面互斥功能的实现方法及系统 |
| CN109569214A (zh) * | 2018-12-24 | 2019-04-05 | 青岛海信电器股份有限公司 | 分屏模式下的应用显示方法及装置、显示设备 |
| CN110347459A (zh) * | 2019-06-11 | 2019-10-18 | 广州视源电子科技股份有限公司 | 一种窗口最小化方法、装置、存储介质及交互智能平板 |
| CN111191164A (zh) * | 2019-11-29 | 2020-05-22 | 泰康保险集团股份有限公司 | 一种窗口显示控制方法和装置 |
| CN111191164B (zh) * | 2019-11-29 | 2023-08-22 | 泰康保险集团股份有限公司 | 一种窗口显示控制方法和装置 |
| CN113821142A (zh) * | 2021-11-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 一种界面窗口的管理方法以及相关装置 |
| CN113821142B (zh) * | 2021-11-24 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 一种界面窗口的管理方法以及相关装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1617323A4 (en) | 2008-03-26 |
| EP1617323A1 (en) | 2006-01-18 |
| KR20060002964A (ko) | 2006-01-09 |
| US20060190838A1 (en) | 2006-08-24 |
| JP2004310655A (ja) | 2004-11-04 |
| WO2004090712A1 (ja) | 2004-10-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1771475A (zh) | 窗口堆栈控制方法、窗口管理程序及窗口管理装置 | |
| CN100338573C (zh) | 设计用户界面样式的方法以及具有自适应用户界面的设备 | |
| CN1218265C (zh) | 数据库检索装置及方法 | |
| CN1306437C (zh) | 用于链接表格式数据的方法以及表现链接的表格式数据的方法 | |
| CN1321277A (zh) | 数据库系统 | |
| CN1293465C (zh) | Gui显示装置及光标或gui组件动画显示处理方法 | |
| CN1251119C (zh) | 基于网络的光掩模数据输入接口和用于制造光掩模的指令生成器 | |
| CN1193292C (zh) | 数据处理方法与装置 | |
| CN1214133A (zh) | 元件电子目录 | |
| CN1786955A (zh) | 用于管理相互相关的数据对象的方法和系统 | |
| CN1955908A (zh) | 显示信息的方法和程序以及信息处理装置 | |
| CN1606300A (zh) | 数据处理系统中分配图像的方法与系统 | |
| CN1625740A (zh) | 元数据的索引结构、提供元数据索引的方法、以及使用元数据的索引的元数据搜索方法和装置 | |
| CN101048773A (zh) | 文件分析系统、以及文件适应系统 | |
| CN101044482A (zh) | 基于实体的可配置数据归档管理系统和方法 | |
| CN1282931A (zh) | 显示信息判断方法和装置以及存储媒体 | |
| CN1677399A (zh) | 分级数据库管理的系统、方法和程序 | |
| CN100346339C (zh) | 图像检索方法及图像检索装置 | |
| CN1589445A (zh) | 信息导航系统 | |
| CN101046812A (zh) | 一种数据库表记录构造与检查的方法及其装置 | |
| CN1920825A (zh) | 在流设计工具中显示性能约束的方法和系统 | |
| CN101057236A (zh) | 信息管理装置、方法和程序 | |
| CN1133947C (zh) | 系统中用于浏览条目信息的条目选择设备 | |
| CN1228728C (zh) | 在web应用中产生定制商业报表的系统和方法 | |
| CN1532755A (zh) | 联合指示信息生成装置及联合指示信息生成方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20060510 |
|
| C20 | Patent right or utility model deemed to be abandoned or is abandoned |