KR102045601B1 - 관리된 디스플레이 영역 내로의 애플리케이션 윈도우의 스마트 삽입 - Google Patents

관리된 디스플레이 영역 내로의 애플리케이션 윈도우의 스마트 삽입 Download PDF

Info

Publication number
KR102045601B1
KR102045601B1 KR1020157035142A KR20157035142A KR102045601B1 KR 102045601 B1 KR102045601 B1 KR 102045601B1 KR 1020157035142 A KR1020157035142 A KR 1020157035142A KR 20157035142 A KR20157035142 A KR 20157035142A KR 102045601 B1 KR102045601 B1 KR 102045601B1
Authority
KR
South Korea
Prior art keywords
window
windows
target
display
size
Prior art date
Application number
KR1020157035142A
Other languages
English (en)
Other versions
KR20160007614A (ko
Inventor
마이론 브란제스
제스 세터필드
매튜 월리
닐스 선드린
츠 얀 웡
브렛 앤더슨
로버트 자렛
차이탄야 사린
앨리스 스테인글라스
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160007614A publication Critical patent/KR20160007614A/ko
Application granted granted Critical
Publication of KR102045601B1 publication Critical patent/KR102045601B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Landscapes

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

Abstract

본원에서 설명되는 실시형태는, 유저가 애플리케이션 윈도우를 관리된 디스플레이 영역에 삽입할 때 애플리케이션 윈도우의 타일식 배열을 유지하는 것에 관련이 있다. 타일식 배열은, 윈도우가 서로 중첩하지 않으며, 후속하여, 디스플레이 영역의 윈도우 점유를 최대화하는 배열이다. 일반적으로 유저가 애플리케이션 윈도우를 삽입할 때, 타일식 배열은 임의의 이전에 존재하는 애플리케이션 윈도우를 리사이징하는 것에 의해 유지된다. 윈도우를 어디에 삽입할지 그리고 디스플레이된 윈도우의 어떤 것을 얼마나 리사이즈할지는, 유저 입력, 타일식 배열의 임의의 이전의 수동 조정, 및/또는 최소 윈도우 사이즈와 같은 인자에 기초하여 결정될 수 있다. 타일 배열화가 (예를 들면, 공간을 윈도우 사이에서 균등하게 공유하는 것에 의해) 관리된 또는 큐레이팅된(curated) 방식으로 수행되는지 또는 반 큐레이팅된(semi-curated) 방식으로 수행되는지의 여부는 상기 언급된 인자 중 임의의 것을 고려하는 것에 의해 결정될 수도 있다.

Description

관리된 디스플레이 영역 내로의 애플리케이션 윈도우의 스마트 삽입{SMART INSERTION OF APPLICATION WINDOWS INTO A MANAGED DISPLAY REGION}
컴퓨터 윈도우 시스템(computer windowing system)이 오랫동안 사용되고 있다. 이러한 윈도우 시스템은 많은 디자인, 예를 들면 유저에 의한 자유 형식의 윈도우 조작을 가질 수 있다. 이러한 윈도우 시스템의 피쳐는 널리 공지되어 있고 다른 곳에서 문서화되어 있다. 통상적으로, 윈도우 시스템은 컴퓨터 상에서 실행하는 각각의 프로세스에 대한 그래픽 윈도우를 갖는다. 유저는 윈도우를 조작하고 관리하기 위해 윈도우 시스템과 상호작용한다. 대부분의 윈도우 시스템은 애플리케이션(각각의 윈도우를 갖는 것으로 가정됨)이 열리는 것, 닫히는 것, 이동되는 것, 숨겨지는 것, 디스플레이되는 것, 리사이징되는 것, 커스터마이징되는 것 등등을 허용하기 위한 기능성을 갖는다.
윈도우 시스템에 대한 다양한 방식이 사용되고 있지만, 디스플레이(프로젝터 및 3D 디스플레이를 포함함)의 증가하는 사이즈뿐만 아니라 태블릿 컴퓨팅 디바이스 및 터치 입력의 유행은 타일식 윈도우 시스템(tiled windowing system)에 대한 관심을 새롭게 하였다. 이러한 윈도우 시스템에서, 애플리케이션 윈도우는, 애플리케이션 윈도우가 추가되는 경우에도, 윈도우가 서로를 막는 것을 방지하면서 윈도우 사이즈를 최대로 하도록 유저에 의해 조작될 수도 있다. 일반적으로, 타일식 윈도우 시스템은, 하나 이상의 윈도우가 이미 디스플레이되고 있는 디스플레이에 윈도우의 유저에 의한 삽입을 자동적으로 관리하기 위한 향상된 기술로부터 이익을 얻을 수도 있다. 이러한 기술 및 관련 방법이 하기에서 논의된다.
하기의 개요는, 단지, 하기의 상세한 설명에서 논의되는 몇몇 개념을 도입하기 위해서 포함된다. 본 개요는 포괄적이지 않으며, 말미에 제공되는 특허청구범위에 의해 제시되는 청구된 주제의 범위를 묘사하지 않는다.
본원에서 설명되는 실시형태는, 유저가 애플리케이션 윈도우를 관리된 디스플레이 영역(managed display region)에 삽입할 때 애플리케이션 윈도우의 타일식 배열을 유지하는 것에 관련이 있다. 타일식 배열은, 윈도우가 서로 중첩하지 않으며, 후속하여, 디스플레이 영역의 윈도우 점유를 최대화하는 배열이다. 일반적으로 유저가 애플리케이션 윈도우를 삽입할 때, 타일식 배열은 임의의 이전에 존재하는 애플리케이션 윈도우를 리사이징하는 것에 의해 유지된다. 윈도우를 어디에 삽입할지 그리고 디스플레이된 윈도우의 어떤 것을 얼마나 리사이즈할지는, 유저 입력, 타일식 배열의 임의의 이전의 수동 조정, 및/또는 최소 윈도우 사이즈와 같은 인자에 기초하여 결정될 수 있다. 타일 배열화가 (예를 들면, 공간을 윈도우 사이에서 균등하게 공유하는 것에 의해) 관리된 또는 큐레이팅된(curated) 방식으로 수행되는지 또는 반 큐레이팅된(semi-curated) 방식으로 수행되는지의 여부는 상기 언급된 인자 중 임의의 것을 고려하는 것에 의해 결정될 수도 있다.
하기에서는, 첨부의 도면과 연계하여 고려되는 하기의 상세한 설명을 참조로, 수반하는 피쳐 중 많은 것이 설명될 것이다.
본 설명은 첨부의 도면의 관점에서 읽혀지는 하기의 상세한 설명으로부터 더 잘 이해될 것인데, 첨부의 도면에서는, 수반하는 설명에서의 동일한 부분을 나타내기 위해 동일한 도면 부호가 사용된다.
도 1은 컴퓨팅 디바이스를 도시한다.
도 2는 타일식 윈도우 배열의 예를 도시한다.
도 3은, 유저가 애플리케이션 윈도우를 삽입하거나 교체하는 것을 허용하는 미리 정의된 입력 영역의 예를 도시한다.
도 4는, 애플리케이션 윈도우가 유저에 의해 삽입될 때 타일식 윈도우 배열을 자동적으로 유지하기 위한 알고리즘의 예를 도시한다.
도 5는 인접 분할(adjacent split)이 가능한 것으로 발견되는 경우 에지에 애플리케이션 윈도우를 삽입하는 예를 도시한다.
도 6은 에지에 삽입되는 애플리케이션 표현(application representation)을 에지 삽입이 포함하는 경우의 예를 도시한다.
도 7은 인접 애플리케이션의 분할이 불가능한 경우에 에지로 지향되는(directed) 삽입의 예를 도시한다.
도 8은 디바이더(divider) 또는 다른 내부 지점에서의 삽입의 예를 도시한다.
도 9는 수동으로 조정된 디바이더 또는 내부 지점에서의 타겟 애플리케이션 윈도우를 삽입하는 예를 도시한다.
도 10은 본원에서 설명되는 실시형태가 구현될 수도 있는 컴퓨팅 디바이스의 한 예를 도시한다.
상세한 설명
하기에서 논의되는 실시형태는, 윈도우가 디스플레이에 상호작용식으로 추가될 때의 윈도우의 레이아웃 및 배열을 관리하는 것에 관련이 있다. 타일식 윈도우 시스템이 먼저 논의된다. 그 다음, 상호작용식 윈도우 배치가 설명되고, 삽입시 이용가능한 다양한 신호를 사용하여 상호작용식 윈도우 배치 또는 삽입을 자동적으로 관리하기 위한 알고리즘의 논의가 후속한다. 예시적인 삽입 시나리오가 또한 논의된다.
도 1은 애플리케이션 프로세스(104)를 관리하고 대응하는 윈도우(106)를 디스플레이(108) 상에 디스플레이하는 운영 체제(102)를 구비하는 컴퓨팅 디바이스(100)를 도시한다. 컴퓨팅 디바이스(100)는 도 10을 참조로 나중에 설명되는 다양한 타입 중 임의의 것일 수도 있다. 컴퓨팅 디바이스(100)는 스토리지 및 운영 체제(102)와 애플리케이션 프로세스(104)를 실행하기 위한 프로세서를 적어도 구비하는 것으로 가정될 수도 있다. 다수의 프로세스를 나타내는 개개의 윈도우, 및 또한 윈도우가 없는 프로세스를 갖는 윈도우 시스템이 존재할 수도 있지만, 논의의 용이성을 위해, 본원에서는, 애플리케이션 프로세스(104) 각각은 적어도 대응하는 윈도우(108)를 구비하는 것으로 가정된다. 프로세스는, 통상적으로 프로세스 식별자, 운영 체제에 의해 관리되는 메모리(힙 및/또는 스택 메모리)를 구비하는, 개별적으로 관리된 실행의 단위인 널리 공지된 운영 체제 오브젝트이며, 운영 체제에 의해 유지되는 프로세스 식별자 등등의 프로세스 테이블에서 관리될 수도 있다.
윈도우(108)는 운영 체제(102)의 일부일 수도 있는 또는 운영 체제(102)와 밀접하게 커플링될 수도 있는 윈도우 시스템에 의해 관리되고 렌더링될 수도 있다. 윈도우 시스템은 그 자체가 프로세스(104)일 수도 있다. 윈도우 시스템은 통상적으로 유저 입력 이벤트 및 윈도우 이벤트에 응답하고, 윈도우(108)의 생성 및 제거, 윈도우 리사이징, 윈도우 이동, 및 다른 윈도우 관련 기능을 핸들링한다. 본원에서 설명되는 기술은 윈도우 시스템에서 직접적으로, 또는 윈도우 시스템을 둘러싸는(wraping) 유저 인터페이스 쉘(shell) 또는 레이어에서, 또는 이들의 조합에서 구현될 수도 있다. 논의를 위해, 윈도우 시스템에서의 구현예가 본원에서 설명된다. 그러나, 컴퓨터 프로그래밍의 기술분야에서 숙련된 자는 본원의 교시를 다른 구현예에 적용할 수 있을 것이고 그러한 구현예는 본 설명에 의해 예측된다. 요약하면, "윈도우 시스템"은, 본원에서 설명되는 바와 같이 윈도우를 관리하는 임의의 실행하는 컴퓨터 컴포넌트(들)이다.
언급된 바와 같이, 윈도우 시스템은, 윈도우가 타일식 배열로 자동적으로 레이아웃되는 타일식 관리 방식을 구현할 수도 있다. 일반적으로, 타일식 배열은, 윈도우(또는 아마도 적어도 액티브 윈도우)가 서로 중첩하거나 가리는 것이 자동적으로 방지되고 윈도우에 의한 디스플레이(또는 그 관리된 영역)의 점유가 최대화되어 비윈도우(non-window) 공간이 최소화되는 배열이다. 이러한 타일식 배열은, 새롭게 디스플레이되거나 재디스플레이되는, 열리는, 닫히는, 숨겨지는, 이동되는, 삽입되는, 리사이징되는 등 윈도우를 수용하면서, 자동적으로 유지될 수도 있다. 타일식 윈도우 시스템의 예에 대해서는, 2013년 4월 15일자로 출원된 미국 특허 출원번호 **13/863,369호(대리인 관리번호 338635.01)를 참조하라. 비윈도우 공간은 경계 또는 미적 여백(aesthetic margin), 검색 툴과 같은 유저 인터페이스 엘리먼트에 대한 영역, 기능 또는 특정 윈도우에 대한 단축키 등등을 포함할 수도 있다.
도 2는 타일식 윈도우 배열의 예를 도시한다. 위에서부터 시작해서, 예(120)는 관리된 디스플레이 영역(124)에 디스플레이되는 단일의 애플리케이션 윈도우(122)이다. 다른 애플리케이션 윈도우(128)가, 예를 들면, 애플리케이션을 여는 것, 애플리케이션의 표시자(indicator)를 관리된 디스플레이 영역(124) 안으로 드래그하는 것, 애플리케이션 단축키를 호출하는 것 등등에 의해 유저에 의해 추가된다고 가정하면, 윈도우 시스템 등은 애플리케이션 윈도우(122, 128)의 레이아웃을 관리하여, 예 126에 도시되는 바와 같이, 디스플레이 영역(124)의 윈도우 점유를 최대화한다. 디스플레이되는 다수의 애플리케이션 윈도우가 존재하는 경우, 윈도우 시스템은 애플리케이션 윈도우 사이에 유저가 조정할 수 있는 디바이더(130)를 자동적으로 제공할 수도 있다. 디바이더(130)가 유저에 의해 상호작용적으로 이동되면, 두 개 이상의 영향을 받는 윈도우는 타일식 배열을 유지하기 위해 그에 맞게 리사이징된다. 다른 애플리케이션 윈도우가 추가되면, 타일식 배열은, 예(132)에서 도시되는 바와 같이, 기존의 애플리케이션 윈도우를 자동적으로 리사이징하는 것에 의해 계속 유지될 수도 있다. 일 실시형태에서, 애플리케이션 윈도우는, 앞서 언급된 예에서 나타내어지는 바와 같이, 선형의 슬롯(예를 들면, 단일의 수직 열 또는 단일의 수평 행)으로 타일화된다(하기에서 논의되는 바와 같이, 그리드 스타일 레이아웃이 또한 사용될 수도 있다). 또한, 하기에서 더 설명되는 바와 같이, 윈도우 시스템은, 애플리케이션 윈도우의 수, 윈도우의 타입, 유저 선호도(user preference), 최소 윈도우 사이즈 등등과 같은 조건에 따라 상이한 타입의 배열로 전이하도록 사전 구성될(pre-configured) 수도 있다. 다른 예(134, 136)에서 나타내어지는 바와 같이, 자동적으로 관리된 타일식 배열은 비대칭성 및 그리드 레이아웃과 같은 다양한 직선의 레이아웃을 가질 수도 있다.
도 3은, 유저가 애플리케이션 윈도우를 삽입하거나 교체하는 것을 허용하는 미리 정의된 입력 영역의 예를 도시한다. 상기에서 언급된 바와 같이, 윈도우 시스템은 유저가 디스플레이(또는 그 관리된 영역)에 애플리케이션 윈도우를 상호작용적으로 추가하는 것을 허용할 수도 있다. 유저는, 입력 디바이스로부터의 다양한 형태의 입력에 의해, 애플리케이션 윈도우가 어디에 어떻게 추가되어야 하는지를 제어할 수도 있다. 도 3의 예에서, 윈도우 시스템은, 디스플레이되고 있는 애플리케이션 윈도우의 수 및/또는 장소(location)와 관련하여 입력 감지 영역(input-sensitive region)을 자동적으로 배열한다. 이러한 영역은 삽입 영역(150) 및 교체 영역(152)을 포함할 수도 있다. 유저가 디스플레이될(목표) 애플리케이션 윈도우에 대한 입력을 특정 삽입 영역(150)으로 지향하면, 그 타겟 윈도우가 그에 따라 삽입된다. 마찬가지로, 타겟 윈도우가 교체 영역(152)으로 지향되면, 대응하는 애플리케이션 윈도우는 교체될 수도 있다(본원에서 설명되는 삽입 기술 중 임의의 것은 윈도우 교체와 연계하여 적용될 수도 있거나 사용될 수도 있다는 것을 유의한다). 유저가 타겟 애플리케이션 윈도우를 가장 왼쪽의 삽입 영역(150)으로 지향시키면, 타겟 애플리케이션 윈도우가 그에 따라 삽입될 것이다; 이전에 디스플레이된 애플리케이션 윈도우(예를 들면, "app1" 및 "app2")는, 이전에 디스플레이된 애플리케이션 윈도우 및 타겟 애플리케이션 윈도우 둘 다를 끼우도록, 이동될 수도 있고/있거나 리사이징될 수도 있다.
영역은 다수의 방식으로 정의될 수도 있다. 영역은 상이한 수의 디스플레이된 애플리케이션 윈도우에 대한 미리 정의된 디폴트 사이즈 및 장소를 가질 수도 있다. 영역은, 디스플레이의 사이즈, 접근성 설정, 폰트 사이즈, 디바이더의 과거 조작으로부터 유도되는 유저 선호도, 윈도우 사이즈 및/또는 디스플레이 사이즈의 비율, 수정 키(modifier key)(예를 들면, 좌클릭 대 우클릭)와 같은 유저 입력 등등과 같은 인자에 따라 동적으로 구성될 수도 있다. 또한, 유저 입력이 삽입되지도 않으며 타겟 윈도우를 교체하지도 않을 불활성 영역이 존재할 수도 있다. 다른 기능을 갖는 유저 활성가능 영역이 또한 포함될 수도 있다.
타겟 애플리케이션 윈도우의 배치를 지시하기 위해 임의의 타입의 입력 디바이스가 유저에 의해 조작될 수도 있다(다른 곳에서 설명되는 바와 같이, 대안적으로, 유저는 윈도우 삽입을 개시할 수도 있지만 삽입 장소 또는 위치(position)는 자동적으로 결정될 수도 있다). 입력 디바이스는, 예를 들면, 터치 감지 표면, 마우스, 디지타이저 패드, 오브젝트 인식 카메라 시스템 등등일 수도 있다. 또한, 그 입력은 다양한 형태를 취할 수도 있다. 예를 들면, 유저가 입력 지점을 입력 감지 영역 위에 호버링할 수도 있고, 입력 감지 영역이 명시적으로 지정될 수도 있고, 마커 또는 아이콘이 입력 감지 영역에 드래그 앤 드랍될 수도 있고 등등이다. 일 실시형태에서, 타겟 애플리케이션의 표현은 유저에 의해 디스플레이 상에서 이동되고, 명시적인 유저 입력을 통해 또는 유저가 이동을 끝마치거나 릴리스하는 것에 의해 가장 가까운 영역이 선택될 수도 있다.
도 4는, 애플리케이션 윈도우가 유저에 의해 삽입될 때 타일식 윈도우 배열을 자동적으로 유지하기 위한 알고리즘의 예를 도시한다. 논의를 위해, 예를 들면, 표면에 대한 터치 스트로크 또는 마우스 이동에 의한 것과 같은 2(또는 그 이상의) 차원의 입력 지점의 스트림을 유저가 제공하고 있다는 것이 가정될 것이다. 입력 지점은, 디스플레이 상에서, 입력 포인터, 애플리케이션 표현(아이콘, 썸네일 등등), 타겟 애플리케이션 윈도우 자체, 또는 몇몇 다른 그래픽 오브젝트를 이동시킬 수도 있다. 유저가 막 선택하려고 하는 또는 목표로 삼으려고 하는 입력 감지 영역(또는 목적지 스크린 영역)을 나타내기 위해 그래픽 또는 하이라이트가 디스플레이될 수도 있다. 유저의 의도된 삽입을 프리뷰하기 위한 상세가 하기에서 더 논의된다. 유저의 입력에 따라(예를 들면, 입력 지점이 입력받는 것을 멈추는 경우 또는 입력이 수정되거나 또는 다른 입력이 제공되는 경우), 타겟 윈도우에 대한 스크린 장소가 지정되고 단계 200이 발생한다; 애플리케이션 삽입 이벤트가 수신된다.
단계 200에 후속하여, 단계 202에서, 디스플레이 상에서 또는 그 관리된 영역 상에서 삽입이 어디에 매핑하는지를 결정한다. 디스플레이 또는 관리된 디스플레이 영역(포괄적으로 간략히 "디스플레이"로 칭해짐)의 에지 또는 외부 엘리먼트로 삽입이 매핑하면, 단계 204가 수행되고, 그렇지 않으면 단계 206이 수행된다. 에지는 가장 왼쪽 및 가장 오른쪽 삽입 영역(150)과 같은 외부의 입력 감지 삽입 영역에 대응할 수 있다는 것을 유의한다. 유저의 삽입이 에지에 매핑하면, 선택된 에지에 인접한 애플리케이션 윈도우가 존재할 수도 있고, 그 애플리케이션 윈도우는 단계 204를 수행하는 데 사용된다. 단계 204는, 인접한 애플리케이션 윈도우에 의해 점유되는 공간이 타겟 애플리케이션 윈도우 및 인접한 애플리케이션 윈도우를 감소된 사이즈로 끼워 맞추기에 충분히 큰지의 여부를 결정한다. 일 실시형태에서, 이 공간은, 스크린 상의 기존의 디바이더를 교란시키지 않으면서 새로운 애플리케이션 및 디바이더를 수용하도록 충분히 클 것을 요구받을 수도 있다. 이것은 다양한 수단에 의해, 예컨대 인접한 애플리케이션 윈도우에 의해 점유되는 공간이 인접한 애플리케이션 윈도우의 최소 사이즈 더하기 타겟 애플리케이션 윈도우의 최소 사이즈(더하기 새로운 디바이더 또는 여분에 대한 것과 같은 임의의 추가로 필요한 공간)보다 더 큰지를 결정하는 것에 의해 결정될 수도 있다. 이러한 최소 사이즈는 애플리케이션 고유의 설정일 수 있고, 디폴트 시스템 설정일 수 있고, 디스플레이의 사이즈와 같은 피쳐에 따라 동적으로 계산될 수 있고 등등이다. 본원에서 사용되는 바와 같이, "최소 사이즈"는 사이즈 선호도, 어쩌면 애플리케이션 속성을 또한 참조하는데, 이것은 엄격히 강제될 수도 또는 그렇지 않을 수도 있다.
분할이 수행될 것이라는 것을 단계 204가 결정하는 경우, 단계 208에서 인접한 애플리케이션 윈도우에 의해 점유되는 공간은 분할되고, 예를 들면, 절반으로 나누어지고, 인접한 애플리케이션 윈도우는 그 절반에 맞도록 리사이징되고, 타겟 애플리케이션 윈도우는 그 절반(선택된 에지 바로 옆의 절반)에 맞는 사이즈를 가지고 디스플레이된다. 애플리케이션 윈도우 또는 애플리케이션 선호도 중 어느 하나의 최소 사이즈를 수용하기 위해, 예를 들면, 50/50 이외의 비율이 사용될 수도 있지만, 분할은 인접한 애플리케이션 윈도우의 공간만을 분할하는 것으로 제한될 수도 있고; 이미 디스플레이되어 있는 임의의 다른 애플리케이션 윈도우는 영향을 받지 않는다.
에지가 선택되지 않는다는 것 또는 디바이더 또는 다른 비에지 또는 내부 엘리먼트가 삽입 영역으로서 유저에 의해 지정되었다는 것이 단계 202에서 결정되면, 단계 206이 수행된다(몇몇 경우에서는, 분할이 존재하지 않을 것이라는 것을 단계 204가 결정하는 경우, 프로세스는 단계 206으로 진행할 수도 있다). 이 경우, 모든 디바이더가 그들의 디폴트 위치 내에 있는지를 결정하기 위해 다른 테스트가 수행된다. 일반적인 의미에서, 알고리즘은, 윈도우 타일화가 시스템에 의해 관리되고 있고 유저에 의해 오버라이딩되지 않은 큐레이팅된 또는 관리된 모드에 윈도우 애플리케이션이 있는지의 여부를 확인하기 위해 조사한다. 디바이더(또는 애플리케이션 윈도우 스크린 분할)가 그들의 디폴트 위치 내에 있으면, 타일식 레이아웃의 자동화된 또는 큐레이팅된 관리가 단계 212에서 계속된다. 자동화된 또는 큐레이팅된 관리는, 현재의 애플리케이션 윈도우의 수에 대한, 디스플레이를 각각의 애플리케이션 윈도우에 대한 섹션으로 균등하게 나누는 미리 정의된 레이아웃, 또는 다른 완전히 관리된 타일식 레이아웃을 사용하는 것을 수반할 수도 있다.
단계 206에서, 예를 들면, 디바이더가 이동되었는지를 확인하기 위해 조사하는 것에 의해, 유저가 디폴트 레이아웃을 오버라이딩한 것이 결정되면, 단계 208에서, 현재의 디스플레이 레이아웃의 파괴를 최소화하는 기술을 사용하여 타겟 애플리케이션 윈도우가 삽입된다. 다시 말하면, 알고리즘은 유저에 의해 나타내어지는 레이아웃 선호도의 파괴를 최소화하려고 시도한다. 일 실시형태에서, 타겟 애플리케이션 윈도우는, 타겟 애플리케이션의 끼워 맞춤을 허용하기 위해, 최소 사이즈에서 디바이더의 자동 재배열을 최소로 하여 삽입된다. 이것은 하나 이상의 다른 디바이더를 가능한 최소한으로 이동하는 것을 또한 요구할 수도 있다. 구체적으로는, 구현예는 가장 가까운 애플리케이션을 목표로 삼는 것에 의해 시작하여 가능한 한 많은 공간을 획득하려고 시도할 수도 있다. 애플리케이션 최소가 제한 인자이면, 구현예는 그것이 삽입을 위한 충분한 공간을 가질 때까지 더 많은 공간을 취하도록 확산할 수도 있다. 관리된 또는 큐레이팅된 레이아웃(예를 들면, 50/50, 75/25, 40/30/30)에서 애플리케이션의 세트가 조우(encounter)되면, 공간은 (한 번에 하나 대신) 이들 애플리케이션으로부터 동등하게 취해질 수도 있고, 따라서, 사전 존재하던 애플리케이션의 상대적 사이즈 관계를 보존하게 된다.
상기에서 설명되는 프로세스는, 타일식 레이아웃을 자동으로 배열하는 법을 결정하기 위해, 다양한 타입의 신호 또는 표시자를 사용한다. 참조로 언급된 단계 및 결정은, 유사한 목적을 달성하면서, 순서에서 그리고 다른 방식으로 변경될 수도 있다. 프로세스의 변형예는, 애플리케이션 윈도우를 삽입하기 위한 장소를 지정하는 것 이외의 어떠한 것도 유저에게 행할 것을 요청하지 않으면서, 애플리케이션 윈도우의 삽입을 완전히 관리할 수 있다. 그러나, 유저가 애플리케이션 윈도우의 현재의 타일식 배열을 수동으로 구성했다면, 프로세스는, 관련 애플리케이션 윈도우의 레이아웃에 대한 임의의 변경을 방지하거나 최소화하는 방식으로 윈도우를 삽입할 수도 있다. 또한, 애플리케이션 윈도우 자체의 피쳐가 고려될 수도 있다. 예를 들면, 최소 사이즈, 지원되는 사이즈의 범위, 예상되는 또는 평균 사이즈, 애플리케이션 윈도우의 과거 수동 사이징, 또는 다른 사이즈 관련 피쳐가 사용될 수도 있다.
상호작용식 배치가 상기에서 설명되었지만, 삽입 장소가 어떻게 선택되었는지에 무관하게, 상호작용식 공간 할당 기술이 사용될 수도 있다는 것을 유의한다. 예를 들면, 애플리케이션이 유저 액션에 의해 자동으로 론칭되면, 그 애플리케이션을 삽입하기 위한 장소는 자동으로 결정될 수 있고, 그 다음, 그 장소는 삽입에 대해 사용될 수 있다.
도 5는 인접 분할이 가능한 것으로 발견되는 경우 에지에 애플리케이션 윈도우를 삽입하는 예를 도시한다. 도 5의 상부에서, 유저는 삽입 지점으로서 좌측 에지(240)를 지정했고 타겟 애플리케이션 윈도우("app2")가 자동으로 계산되는 타일식 레이아웃을 가지고 그에 따라 삽입되었다. 도 5의 다음 시퀀스는 우측 에지(242)의 선택 및 디스플레이(106)의 대응하는 사이드에 삽입되는 "app2"를 도시한다. 도 5의 아래쪽 시퀀스는 두 개의 애플리케이션 윈도우가 존재하는 경우에 왼쪽 에지(240)에서의 삽입을 도시한다. 인접한 "app1"에 의해 점유되는 공간이 타겟 애플리케이션 윈도우("app3") 및 "app1" 윈도우 둘 다를 포함할 수 있다는 결정이 있은 후 공간은 50/50으로 분할된다. "app3" 윈도우는 선택된 에지 바로 옆에 삽입되고 "app1"의 인접한 애플리케이션 윈도우는 리사이징되어 도 5의 우하측에 있는 타일식 배열로 나타나게 된다. 디바이더가 사용되는 실시형태에서, 디바이더는 "app3" 및 "app1"의 두 개의 애플리케이션 윈도우 사이에 추가된다.
도 6은 에지에 삽입되는 애플리케이션 표현(260)을 에지 삽입이 포함하는 경우의 예를 도시한다. 삽입 이벤트가 수신되고, 인접한 애플리케이션("app2")의 분할이 가능하다는 결정이 있은 후, "appN"에 대한 애플리케이션 윈도우는 분할에 의해 생성되는 공간 안으로 삽입된다. 디바이더는 "app2" 및 "appN"에 대한 애플리케이션 윈도우 사이에 추가될 수도 있다. 애플리케이션 표현(260)은 제한 없이 이동할 수도 있거나, 수평 "레일" 상에서 이동할 수도 있거나, 또는 하나의 삽입 또는 교체 영역으로부터 다른 것으로 스냅(snap)할 수도 있다.
도 7은 인접 애플리케이션의 분할이 불가능한 경우에 에지로 지향되는 삽입의 예를 도시한다. "appN"에 대한 삽입 이벤트가 수신되고 애플리케이션 사이즈 정보(270) 및 인접한 공간의 사이즈(600 픽셀)에 따라 분할이 수행되지 않을 것이라는 결정이 있게 된다. 대략적으로 600 픽셀이 이용가능한 동안, 300 픽셀의 "app2" 윈도우의 최소 사이즈는 공간의 절반에 잘 들어맞을 것이다. 그러나, "appN" 윈도우의 400픽셀의 최소 폭은 50/50 분할에서 맞지 않을 것이다. 결과적으로, "appN"에 대한 애플리케이션 윈도우를 어떻게 삽입시킬 것인지를 결정하기 위해 단계 206이 수행된다.
도 8은 디바이더 또는 다른 내부 지점(280)에서의 삽입의 예를 도시한다. 이 경우, 타겟 애플리케이션이 디바이더에서 또는 에지가 아닌 삽입 영역에서 유저에 의해 삽입되는 경우, 디바이더 또는 디폴트 레이아웃이 유저에 의해 수정되지 않았다면, 레이아웃 매니저는 애플리케이션 윈도우를 어떻게 배열할 것인지를 결정한다. 이 큐레이팅된 또는 완전히 관리된 모드에서, 새롭게 디스플레이된 타겟 애플리케이션 윈도우와 이전에 디스플레이된 애플리케이션 윈도우 사이의 디스플레이 공간을 동등하게 분배하는 것에 의해 레이아웃이 배열된다. 실제, 분배는 라운딩(rounding), 경계, 여백, 디바이더 등등으로 인해 정확히 균등하지 않을 수도 있다.
도 9는 수동으로 조정된 디바이더 또는 내부 지점(280)에서의 타겟 애플리케이션 윈도우를 삽입하는 예를 도시한다. 이 경우, 삽입 지점이 내부 영역 또는 디바이더에 매핑한다는 것이 결정되고 또한 디바이더 또는 디폴트의 관리된 레이아웃이 수정되지 않았다는 것이 결정되는 경우, 검출된 수동 조정에서 암시되는 유저 선호도에 대한 영향을 최소화하도록 타일식 배열이 계산된다. 예를 들면, 타겟 애플리케이션 윈도우를 그 최소 사이즈로 삽입하는 것, 사전 존재하던 애플리케이션 윈도우(예를 들면, "app1" 및 "app2") 사이의 비율을 유지하도록 사전 존재하던 애플리케이션을 감소시키는 것, 또는 다른 방법이 사용될 수도 있다. 윈도우의 최소 사이즈 또는 다른 피쳐는, 디스플레이(106) 상에서의 영향을 최소화하는 공간의 재분배를 알아내기 위해 사용될 수도 있다는 것을 유의한다.
타겟 애플리케이션 윈도우 또는 타겟 애플리케이션 윈도우를 삽입할 필요성은 다양한 소스로부터 유래할 수도 있다. 예를 들면, 타겟 윈도우는 새롭게 론칭된 애플리케이션일 수도 있다. 타겟 윈도우는, 액티브의 또는 론칭가능한 애플리케이션을 추적하기 위한 유저 인터페이스 엘리먼트와의 상호작용, 예를 들면 애플리케이션 아이콘을 선택하는 것 또는 애플리케이션 썸네일을 관리된 영역 안으로 드래그하는 것의 결과일 수도 있다. 애플리케이션을 론칭하기 위한 또는 애플리케이션을 전환하기 위한 키 누름 또는 다른 입력도 또한 타겟 윈도우가 상호작용식으로 삽입되는 것으로 나타날 수 있다. 상호작용식으로 삽입되고 있는 타겟 애플리케이션 윈도우는 디스플레이 또는 그 관리된 영역 상에서 현재 디스플레이되지 않는 애플리케이션 윈도우이다는 것이 인식될 수도 있다.
몇몇 실시형태는, 현재의 입력 장소에 따라 목표가 배치되면 발생할 새로운 타일식 배열을 반복적으로 계산하고 프리뷰할 수도 있다. 다시 말하면, 유저가 터치 또는 마우스 입력 지점과 같은 위치 선정의 입력을 제공할 때, 윈도우 시스템은 최근의 입력 지점을 잠재적인 삽입 지점으로 사용하고, 최근의 입력 지점이 삽입 지점으로 사용되면 디스플레이된 윈도우 및 타겟 윈도우가 어떻게 타일화될 것인지를 계산할 수도 있다. 따라서, 유저는 삽입 및 타일화 프로세스를 커스터마이징할 수 있을 수도 있다. 이러한 프리뷰는, 잠재적인 삽입에 의해 영향을 받을 영역의 하이라이트, 윈도우의 예상된 사이즈를 나타내기 위한 하이라이트와 같은 간단한 그래픽일 수도 있다. 이러한 입력 지점은, 추가적인 유저 입력 또는 현재의 유저 입력을 종료하는 것에 따라 차후 최종적으로 승인되거나(finalized) 원상태로 돌려지는(undone) 실제 삽입(입력 지점을 변경시키는 것에 따라 변함)으로서 디스플레이될 수 있다는 것도 또한 가능하다. 디스플레이 또는 관리된 디스플레이 영역 상에서 디스플레이되는 타일식 애플리케이션 윈도우는, 유저 입력을 허락하며 경우에 따라 디스플레이 컨텐츠를 동적으로 각각 디스플레이할 수 있는 라이브 또는 실행 중인 애플리케이션 윈도우이다는 것이 인식될 수도 있다. 수평 타일화 방식이 설명되었지만, 수직 방식 또는 수직 및 수평 방식(및 대응하는 삽입 영역)이 동등하게 적용가능하다.
도 10은 상기에서 설명되는 실시형태가 구현될 수도 있는 컴퓨팅 디바이스(300)의 한 예를 도시한다. 컴퓨팅 디바이스(300)는 디스플레이(106)뿐만 아니라 스토리지(302) 및 프로세서(304)를 구비할 수도 있다. 이들 엘리먼트는 컴퓨팅의 기술분야에서 충분히 이해되는 방식으로 협력할 수도 있다. 또한, 입력 디바이스(306)는 컴퓨팅 디바이스(300)와 통합될 수도 있거나 또는 통신할 수도 있다. 디스플레이(106)는, 입력 디바이스로서 또한 기능할 수 있는 터치 감지형 디스플레이일 수도 있다. 컴퓨팅 디바이스(300)는 임의의 폼팩터를 가질 수도 있거나 임의의 타입의 포괄적인 디바이스에서 사용될 수도 있다. 예를 들면, 어플라이언스(appliance), 로봇, 및 다른 머신을 제어하기 위해, 터치 감지형 제어 패널이 종종 사용된다. 컴퓨팅 디바이스(300)는, 스마트폰, 태블릿 컴퓨터, 게임용 디바이스, 서버 등등과 같은 핸드헬드 디바이스의 형태일 수도 있다.
상기에서 논의되는 실시형태 및 피쳐는, 휘발성 또는 불휘발성 컴퓨터 또는 디바이스 판독가능 디바이스에 저장되는 정보의 형태로 실현될 수 있다. 이것은, 적어도, 디바이스 예컨대 광학 스토리지(예를 들면, 컴팩트 디스크 리드 온리 메모리(compact-disk read-only memory; CD-ROM), 자기 매체, 플래시 리드 온리 메모리(ROM), 또는 디지털 정보를 저장하기 위한 디바이스를 포함하는 것으로 간주된다. 저장된 정보는, 머신 실행가능 명령어(예를 들면, 컴파일된 실행가능 2진 코드), 소스 코드, 바이트코드, 또는 상기에서 논의되는 다양한 실시형태를 컴퓨팅 디바이스가 수행하는 것을 가능하게 하기 위해 또는 상기에서 논의되는 다양한 실시형태를 수행하도록 컴퓨팅 디바이스를 구성하기 위해 사용될 수 있는 임의의 다른 정보의 형태일 수 있다. 이것은 또한, 적어도, 휘발성 메모리 예컨대 랜덤 액세스 메모리(random-access memory; RAM) 및/또는 정보 예컨대 실시형태를 실행하는 프로그램의 실행 동안의 중앙 처리 유닛(CPU) 명령어를 저장하는 가상 메모리뿐만 아니라, 프로그램 또는 실행파일(executable)이 로딩되어 실행되는 것을 허용하는 정보를 저장하는 불휘발성 디바이스를 포함하는 것으로 간주된다. 실시형태 및 피쳐는, 휴대형 디바이스, 워크스테이션, 서버, 모바일 무선 디바이스 등등을 포함하는 임의의 타입의 컴퓨팅 디바이스 상에서 수행될 수 있다.

Claims (17)

  1. 디스플레이, 프로세서, 입력 디바이스, 및 스토리지를 포함하는 컴퓨터 상에서 실행하는 각각의 상호 독립적인(mutually autonomous) 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법에 있어서,
    각각의 애플리케이션은 상기 컴퓨터의 운영 체제에 의해 관리되는 각각의 프로세스를 포함하고, 상기 방법은:
    상기 디스플레이 상에 복수의 윈도우들 ― 각각의 윈도우는 상기 애플리케이션들에 대한 윈도우들을 관리하는 윈도우 시스템(windowing system)에 의해 개별적으로 관리됨 ― 을 디스플레이하는 단계;
    상기 디스플레이의 관리된 영역으로 지향된 상호작용식(interactive) 유저 입력들 ― 상기 상호작용식 유저 입력들은 상기 디스플레이의 관리된 영역 내의 유저 지정 장소(user-designated location)들로의 상기 윈도우들의 삽입을 위한 상기 관리된 영역 내의 각각의 장소들을 포함함 ― 을 수신하는 단계; 및
    상기 상호작용식 유저 입력들 중 하나의 상호작용식 유저 입력이 수신될 때마다, 타겟 윈도우를 제외한 상기 윈도우들 중 둘 이상의 윈도우가 상기 관리된 영역에서 타일식 배열(tiled arrangement)로 현재 디스플레이되고 있는 경우, 최소 사이즈를 갖는 대응 타겟 윈도우의 삽입을 배치하기 위해, 상기 상호작용식 유저 입력에 응답하여 상기 타겟 윈도우를 상기 관리된 영역 안으로 삽입하는 단계
    를 포함하고,
    상기 삽입하는 단계는,
    (i) 상기 영역에서 현재 디스플레이되고 있는 둘 이상의 윈도우들 중 어느 하나 또는 둘 모두를 자동적으로 리사이징(resizing)하는 것 ― 상기 관리된 영역 내의 상기 타겟 윈도우를 사이징(sizing)하고 상기 관리된 영역 내의 상기 둘 이상의 윈도우들을 디사이징(desizing)하기 위한 타겟량은:
    상기 타겟 윈도우를 삽입하기 직전에, 상기 둘 이상의 윈도우들 중 어느 하나가 자신의 디폴트 사이즈와 상이한 사이즈를 갖는지 여부를 결정하는 것,
    상기 둘 이상의 윈도우들 중 어느것도 자신의 디폴트 사이즈와 상이한 사이즈를 갖지 않는 것으로 결정되는 경우, 제1 자동 배열 계산을 선택하고, 상기 둘 이상의 윈도우들 중 어느 하나가 자신의 디폴트 사이즈와 상이한 사이즈를 갖는 것으로 결정되는 경우, 제2 자동 배열 계산을 선택하는 것, 및
    상기 타겟 윈도우를 사이징하고 상기 선택된 배열 계산에 따라 상기 둘 이상의 윈도우들을 디사이징하기 위한 타겟 사이즈량을 자동적으로 결정하는 것
    에 의해 계산되고, 상기 제1 자동 배열 계산이 선택되는 경우, 상기 타겟 사이즈량은 자동적으로 최소 사이즈로 설정되고, 상기 제2 자동 배열 계산이 선택되는 경우, 상기 타겟 사이즈량은 자동적으로 최소 사이즈보다 크게 설정됨 ― , 및
    (ii) 상기 타겟 윈도우를 상기 타겟 사이즈량으로 사이징하고 상기 둘 이상의 윈도우들을 상기 결정된 타겟 사이즈량에 따라 상기 타겟 사이즈량만큼 디사이징함으로써, 상기 둘 이상의 윈도우들 및 상기 관리된 영역 내의 상기 타겟 윈도우를 디스플레이하는 것 ― 상기 윈도우들은, 상기 타겟 윈도우 및 상기 둘 이상의 윈도우들이 상기 관리된 영역 내에 타일식 배열로 디스플레이되도록 디스플레이됨 ―
    에 의해 수행되는 것인, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  2. 제1항에 있어서,
    입력 디바이스와의 유저 상호작용에 따라 이동하는 것으로 디스플레이되는 그래픽 표시자(graphic indicator)를 디스플레이하는 단계를 더 포함하고, 상기 그래픽 표시자의 장소들은 상기 입력에 의해 특정된 장소(input-specified location)들에 대응하며, 상기 그래픽 표시자의 드랍 장소(drop location)는 상기 둘 이상의 윈도우들의 디사이징량의 배분(apportionment)을 제어하는 것인, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  3. 제2항에 있어서,
    상기 그래픽 표시자는 상기 타겟 윈도우에 대응하는 아이콘 또는 썸네일을 포함하거나, 또는 상기 그래픽 표시자는 상기 타겟 윈도우 자체를 포함하는 것인, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  4. 제1항에 있어서,
    상기 애플리케이션들의 최소 사이즈 또는 선호(preferred) 사이즈를 포함하는 사이즈 정보에 액세스하는 단계; 및
    상기 리사이징을 수행하기 위해 상기 최소 사이즈 또는 선호 사이즈를 사용하는 단계
    를 더 포함하는, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  5. 제1항에 있어서,
    두 개의 현재 디스플레이된 윈도우들 사이에 유저 조정가능 디바이더(user-adjustable divider)를 제공하는 단계; 및
    상기 유저 조정가능 디바이더의 위치에 따라 상기 타겟 사이즈량을 계산하는 단계
    를 더 포함하는, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  6. 제1항에 있어서,
    상기 타겟 윈도우가 삽입되고 있는 경우, 상기 방법은, 대응 삽입 장소가 상기 관리된 영역의 에지에 있는지의 여부를 먼저 결정하고, 에지에 있는 것으로 결정되는 경우, 상기 방법은, 상기 에지에 인접하는 에지 윈도우에 의해 점유되는 공간이 임의의 다른 디스플레이된 윈도우들의 사이즈를 변경하지 않고도 상기 에지 윈도우 및 상기 타겟 윈도우를 수용할 수 있는지 여부를 결정하고, 수용할 수 있다고 결정되는 경우, 상기 공간을 상기 타겟 윈도우 및 에지 윈도우가 각각 끼워 맞춰지는 두 개의 부분들로 분할하고, 상기 타겟 윈도우는 상기 에지 바로 옆에 있는 부분에서 디스플레이되는 것인, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  7. 제6항에 있어서,
    상기 공간이 리사이징을 수용할 수 없는 것으로 결정되는 경우, 윈도우 사이즈에 대한 수동 조정이 이루어졌는지의 여부에 따라, 또는 최소 윈도우 사이즈들에 따라, 또는 둘 다에 따라, 상기 에지 바로 옆에 상기 타겟 윈도우의 삽입을 수용하도록 상기 둘 이상의 현재 디스플레이된 윈도우들을 리사이징하는 단계를 더 포함하는, 각각의 상호 독립적인 애플리케이션들의 윈도우들의 디스플레이를 관리하는 방법.
  8. 컴퓨팅 디바이스가 프로세스를 수행할 수 있게 하기 위한 정보를 저장하는 스토리지 하드웨어에 있어서,
    상기 프로세스는, 상기 컴퓨팅 디바이스의 디스플레이의 디스플레이 영역을 관리하는 것을 포함하며,
    상기 디스플레이 영역을 관리하는 것은, 상기 디스플레이 영역 내의 삽입 장소 또는 삽입 영역에서 상기 디스플레이 영역 내에 입력된 유저 입력에 의해 지정된 상기 디스플레이 영역 내의 상기 삽입 장소 또는 삽입 영역에 따라 상기 디스플레이 영역으로의 타겟 윈도우의 삽입에 응답하여:
    (i) 윈도우들이 상기 디스플레이 영역에 삽입되고 상기 디스플레이 영역으로부터 제거되는 경우, 상기 디스플레이 영역에 디스플레이되는, 상기 타겟 윈도우를 포함한 윈도우들이 상기 디스플레이 영역 내에 타일식 배열로 자동적으로 유지되고, 상기 디스플레이 영역의 사이즈는 변경되지 않는 것,
    (ii) 디스플레이되는 현재 윈도우들의 사이즈들이 수동으로 설정되었는지 여부에 대해 자동적으로 결정이 이루어지고, 상기 현재 윈도우들은 상기 타겟 윈도우를 삽입하기 직전에 디스플레이되는 윈도우들이고, 상기 윈도우들은 상기 컴퓨팅 디바이스의 운영 체제에 의해 실행되는 각각의 애플리케이션 프로세스들을 포함하는 것, 및
    (iii) 상기 디스플레이 영역에 상기 타겟 윈도우를 삽입하는 것은 타겟량의 계산에 의해 상기 디스플레이 영역의 상기 윈도우들을 타일화(tiling)하는 것을 포함하고, 상기 현재 윈도우들은 상기 디스플레이 영역에서 상기 타겟량만큼 집합적으로 디사이징되고, 상기 타겟 윈도우는 상기 디스플레이 영역에서 상기 타겟량으로 사이징되며, 적어도 두 개의 현재 윈도우들은 디사이징되고, 상기 결정의 결과는 상기 타겟량을 제어하고, 상기 현재 윈도우들 간의 상기 디사이징의 량의 배분은 삽입 영역 또는 삽입 장소에 기반하여 결정되는 것
    을 포함하는 것인, 스토리지 하드웨어.
  9. 제8항에 있어서,
    상기 디사이징은, (i) 상기 타겟 윈도우의 삽입을 위해 지정된 에지에 인접한 윈도우를 분할하는 것, 또는 (ii) 상기 디스플레이되는 현재 윈도우들과 상기 타겟 윈도우를 동일한 사이즈들로 디스플레이하는 것 중 어느 하나를 포함하는 것인, 스토리지 하드웨어.
  10. 제9항에 있어서,
    상기 윈도우들이 수동으로 배열된 것으로 결정되는 경우, 상기 타겟 윈도우를 미리 결정된 최소 사이즈로 디스플레이하여, 상기 타겟 윈도우가 삽입되기 전에 상기 디스플레이 영역에 디스플레이되는 상기 윈도우들의 리사이징을 최소화하는 것인, 스토리지 하드웨어.
  11. 제8항에 있어서,
    상기 삽입하는 것은, 상기 디스플레이 영역에 디스플레이되는 각각의 애플리케이션들의 윈도우들 모두 간에 상기 디스플레이 영역을 고르게 분배하는 것을 더 포함하는 것인, 스토리지 하드웨어.
  12. 제11항에 있어서,
    상기 프로세스는, 상기 삽입 장소 또는 삽입 영역에 따라 상기 디스플레이 영역 내에 상기 타겟 윈도우를 디스플레이할 위치를 결정하는 것을 더 포함하는, 스토리지 하드웨어.
  13. 제12항에 있어서,
    상기 프로세스는, 삽입을 위해 지정된 에지 바로 옆의 단일 윈도우만의 공간 분할이 최소 윈도우 사이즈들에 따라 가능하지 않은 것으로 결정되는 경우, 상기 타겟 윈도우를 수용하기 위해 복수의 윈도우들을 리사이징하는 것을 더 포함하는, 스토리지 하드웨어.
  14. 스토리지, 프로세서, 디스플레이, 및 입력 디바이스를 포함하는 컴퓨팅 디바이스에 있어서,
    상기 스토리지는 상기 프로세서에 의해 실행가능한 명령어들을 저장하고;
    상기 입력 디바이스는, 상기 입력 디바이스와의 유저 상호작용에 따라, 상기 디스플레이 상에서의 윈도우 삽입들을 작동시키는(actuate) 유저 입력들을 제공하고, 각각의 윈도우 삽입은 상기 디스플레이에 관한 각각의 삽입 장소를 가지며;
    상기 프로세서는, 상기 명령어들에 따라, 상기 디스플레이에 의해 디스플레이되는 모든 애플리케이션 윈도우들의 타일식 배열을 유지하고;
    상기 프로세서는, 상기 명령어들에 따라:
    상기 타일식 배열이 상기 유저에 의해 수동으로 조정되었는지, 또는 그대신 상기 타일식 배열의 디폴트 피처를 상기 타일식 배열의 대응 피처와 비교함으로써 상기 타일식 배열이 디폴트 배열에 대응하는지 여부를 결정하는 것,
    상기 타일식 배열이 상기 유저에 의해 수동으로 조정된 것으로 결정되는 경우, 상기 윈도우 삽입 이전에 디스플레이된 윈도우들 중 하나 이상에 대해 제1 감소된 사이즈를 계산하는 제1 배열 알고리즘을 사용하여, 상기 윈도우 삽입 이전에 디스플레이된 상기 윈도우들 및 타겟 윈도우에 디스플레이 공간을 할당하는(allocate) 것, 및
    상기 타일식 배열이 디폴트 배열에 대응하는 것으로 결정되는 경우, 상기 윈도우 삽입 이전에 디스플레이된 윈도우들 중 하나 이상에 대해 제2 감소된 사이즈를 계산하는 제2 배열 알고리즘을 사용하여, 상기 윈도우 삽입 이전에 디스플레이된 상기 윈도우들 및 상기 타겟 윈도우에 디스플레이 공간을 할당하는 것 ― 상기 타겟 윈도우가 에지에 삽입되지 않는 경우, 상기 디스플레이 공간은 미리 정의된 비율에 따라 상기 윈도우들 간에 할당되고, 상기 타겟 윈도우가 에지에서 삽입되는 경우, 상기 디스플레이 공간은 에지 윈도우로부터 분할됨 ―
    에 의해 타겟 윈도우를 상기 타일식 배열로 삽입하기 위한 윈도우 삽입에 응답하며, 상기 타겟 윈도우가 삽입된 후, 상기 디스플레이에 의해 디스플레이되는 윈도우들은 타일식 배열인 것인, 컴퓨팅 디바이스.
  15. 제14항에 있어서,
    상기 프로세서는 또한, 상기 윈도우들의 애플리케이션 선호도들에 따라 디스플레이 공간을 할당하는 방법을 결정하는 것인, 컴퓨팅 디바이스.
  16. 제14항에 있어서,
    상기 디스플레이 공간은 또한, 윈도우 사이즈 선호도들에 따라 결정된 바에 따라서, 상기 에지 윈도우 이외의 윈도우로부터 분할되는 것인, 컴퓨팅 디바이스.
  17. 제14항에 있어서,
    상기 프로세서는, 삽입될 때의 타겟 윈도우 배치 및 사이즈 중 적어도 하나를 오버라이딩하는(override) 유저-오버라이드 입력을 검출하도록 구성되는 것인, 컴퓨팅 디바이스.
KR1020157035142A 2013-05-13 2013-09-20 관리된 디스플레이 영역 내로의 애플리케이션 윈도우의 스마트 삽입 KR102045601B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/892,532 US9535565B2 (en) 2013-05-13 2013-05-13 Smart insertion of applications into layouts
US13/892,532 2013-05-13
PCT/US2013/060752 WO2014185946A1 (en) 2013-05-13 2013-09-20 Smart insertion of application windows into a managed display region

Publications (2)

Publication Number Publication Date
KR20160007614A KR20160007614A (ko) 2016-01-20
KR102045601B1 true KR102045601B1 (ko) 2019-12-02

Family

ID=49305155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157035142A KR102045601B1 (ko) 2013-05-13 2013-09-20 관리된 디스플레이 영역 내로의 애플리케이션 윈도우의 스마트 삽입

Country Status (5)

Country Link
US (1) US9535565B2 (ko)
EP (1) EP2997464B1 (ko)
KR (1) KR102045601B1 (ko)
CN (1) CN105378653B (ko)
WO (1) WO2014185946A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6132644B2 (ja) * 2013-04-24 2017-05-24 キヤノン株式会社 情報処理装置、表示制御方法、コンピュータプログラム、及び記憶媒体
US10754536B2 (en) 2013-04-29 2020-08-25 Microsoft Technology Licensing, Llc Content-based directional placement application launch
US9921714B1 (en) * 2013-07-22 2018-03-20 Rockwell Collins, Inc. Graphical method to select formats
KR102266198B1 (ko) * 2013-08-02 2021-06-18 삼성전자주식회사 이종 애플리케이션들을 포함하는 그룹을 나타내는 탭 윈도우를 관리하는 방법 및 장치.
CN105683894B (zh) * 2013-08-22 2021-09-21 三星电子株式会社 显示设备的应用执行方法及其显示设备
KR102220085B1 (ko) * 2013-10-18 2021-02-26 삼성전자주식회사 멀티윈도우 운용 방법 및 이를 지원하는 전자 장치
TWI608403B (zh) * 2014-02-14 2017-12-11 緯創資通股份有限公司 多視窗快速排列方法與系統及其行動裝置
US10558344B2 (en) * 2015-06-01 2020-02-11 Apple Inc. Linking multiple windows in a user interface display
US20160357357A1 (en) * 2015-06-07 2016-12-08 Apple Inc. Device, Method, and Graphical User Interface for Manipulating Related Application Windows
US10748312B2 (en) 2016-02-12 2020-08-18 Microsoft Technology Licensing, Llc Tagging utilizations for selectively preserving chart elements during visualization optimizations
US10347017B2 (en) * 2016-02-12 2019-07-09 Microsoft Technology Licensing, Llc Interactive controls that are collapsible and expandable and sequences for chart visualization optimizations
JP6624972B2 (ja) * 2016-02-26 2019-12-25 キヤノン株式会社 表示を制御する方法、装置、およびプログラム
KR20180080629A (ko) 2017-01-04 2018-07-12 삼성전자주식회사 전자 장치 및 전자 장치의 어플리케이션 실행 히스토리 표시 방법
US10331293B2 (en) * 2017-02-22 2019-06-25 International Business Machines Coporation Automated resizing of application windows based on interactive states
KR101999340B1 (ko) * 2017-04-24 2019-07-11 네이버 주식회사 웹 브라우징 인터페이스 제공 방법 및 장치
DK180117B1 (en) 2017-05-15 2020-05-15 Apple Inc. SYSTEMS AND METHODS FOR INTERACTING WITH MULTIPLE APPLICATIONS THAT ARE SIMULTANEOUSLY DISPLAYED ON AN ELECTRONIC DEVICE WITH A TOUCHSENSITIVE DISPLAY
CN111090366B (zh) * 2017-05-15 2021-08-31 苹果公司 进行多任务处理的方法、存储介质和电子设备
US20190258396A1 (en) * 2018-02-20 2019-08-22 Adobe Inc. Layout design with adaptive areas
US11199944B2 (en) * 2018-09-24 2021-12-14 Salesforce.Com, Inc. System and method for navigation within widget-sized browser panels
DK180317B1 (en) * 2019-04-15 2020-11-09 Apple Inc Systems, methods, and user interfaces for interacting with multiple application windows
CN110471725A (zh) * 2019-07-02 2019-11-19 华为技术有限公司 一种分屏方法及电子设备
CN114816620A (zh) * 2019-07-29 2022-07-29 华为技术有限公司 一种显示方法及电子设备
CN110830645B (zh) * 2019-09-24 2021-05-18 华为技术有限公司 一种操作方法和电子设备及计算机存储介质
CN117311869A (zh) * 2020-01-03 2023-12-29 华为技术有限公司 多应用下进行分屏的方法、装置以及电子设备
US11150791B1 (en) * 2020-01-15 2021-10-19 Navvis & Company, LLC Unified ecosystem experience for managing multiple healthcare applications from a common interface with trigger-based layout control
CN111488189B (zh) * 2020-03-20 2022-11-18 厦门汉印电子技术有限公司 窗体显示方法、装置、设备以及计算机可读存储介质
CN111562869B (zh) * 2020-03-31 2022-02-25 完美世界(北京)软件科技发展有限公司 截图方法及装置、存储介质、电子装置
CN112083871A (zh) * 2020-09-11 2020-12-15 北京字节跳动网络技术有限公司 控制电子设备的方法、装置、终端及存储介质
US11816302B2 (en) * 2021-07-21 2023-11-14 EMC IP Holding Company LLC Techniques for user interface layouts
WO2023221041A1 (zh) * 2022-05-19 2023-11-23 京东方科技集团股份有限公司 操作方法、装置、电子设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487143A (en) 1994-04-06 1996-01-23 Altera Corporation Computer user interface having tiled and overlapped window areas
EP0820000A1 (en) 1996-07-17 1998-01-21 International Business Machines Corporation Mechanism to control visible presence of desktop objects in a graphical user interface
US6008809A (en) 1997-09-22 1999-12-28 International Business Machines Corporation Apparatus and method for viewing multiple windows within a dynamic window
US20110302528A1 (en) 2010-06-04 2011-12-08 Starr Ephraim D Intelligent Window Sizing For Graphical User Interfaces

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577187A (en) * 1994-05-20 1996-11-19 Microsoft Corporation Method and system for tiling windows based on previous position and size
US5920315A (en) 1996-07-17 1999-07-06 International Business Machines Corporation Multi-pane window with recoiling workspaces
US6999637B1 (en) * 2000-03-16 2006-02-14 Ipac Acquisition Subsidiary I, Llc Method and system for providing a photo album to a user of a digital imaging device
US6964025B2 (en) * 2001-03-20 2005-11-08 Microsoft Corporation Auto thumbnail gallery
US7913183B2 (en) * 2002-10-08 2011-03-22 Microsoft Corporation System and method for managing software applications in a graphical user interface
US8127248B2 (en) * 2003-06-20 2012-02-28 Apple Inc. Computer interface having a virtual single-layer mode for viewing overlapping objects
US20050055645A1 (en) * 2003-09-09 2005-03-10 Mitutoyo Corporation System and method for resizing tiles on a computer display
US20050198584A1 (en) 2004-01-27 2005-09-08 Matthews David A. System and method for controlling manipulation of tiles within a sidebar
US20060248471A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation System and method for providing a window management mode
US7437678B2 (en) * 2005-10-27 2008-10-14 International Business Machines Corporation Maximizing window display area using window flowing
US8356258B2 (en) * 2008-02-01 2013-01-15 Microsoft Corporation Arranging display areas utilizing enhanced window states
US8345057B2 (en) * 2009-07-30 2013-01-01 Eastman Kodak Company Context coordination for an artistic digital template for image display
US9679404B2 (en) 2010-12-23 2017-06-13 Microsoft Technology Licensing, Llc Techniques for dynamic layout of presentation tiles on a grid
US9183006B2 (en) * 2011-08-31 2015-11-10 Visan Industries Systems and methods for layout of graphic objects for electronic display, print or other output
US20140013271A1 (en) * 2012-07-05 2014-01-09 Research In Motion Limited Prioritization of multitasking applications in a mobile device interface
JP6263897B2 (ja) * 2013-08-09 2018-01-24 ソニー株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487143A (en) 1994-04-06 1996-01-23 Altera Corporation Computer user interface having tiled and overlapped window areas
EP0820000A1 (en) 1996-07-17 1998-01-21 International Business Machines Corporation Mechanism to control visible presence of desktop objects in a graphical user interface
US6008809A (en) 1997-09-22 1999-12-28 International Business Machines Corporation Apparatus and method for viewing multiple windows within a dynamic window
US20110302528A1 (en) 2010-06-04 2011-12-08 Starr Ephraim D Intelligent Window Sizing For Graphical User Interfaces

Also Published As

Publication number Publication date
US20140337794A1 (en) 2014-11-13
CN105378653B (zh) 2019-07-16
EP2997464B1 (en) 2019-05-15
EP2997464A1 (en) 2016-03-23
KR20160007614A (ko) 2016-01-20
WO2014185946A1 (en) 2014-11-20
CN105378653A (zh) 2016-03-02
US9535565B2 (en) 2017-01-03

Similar Documents

Publication Publication Date Title
KR102045601B1 (ko) 관리된 디스플레이 영역 내로의 애플리케이션 윈도우의 스마트 삽입
US10606434B2 (en) Desktop icon management and grouping using desktop containers
US10067651B2 (en) Navigable layering of viewable areas for hierarchical content
EP2656196B1 (en) Customization of an immersive environment
US10678412B2 (en) Dynamic joint dividers for application windows
TWI469032B (zh) 使用增強式視窗狀態來配置顯示區域
US10592080B2 (en) Assisted presentation of application windows
JP2017531814A (ja) アプリケーションウィンドウの適応的サイズ調節および適所配置
JP2017526057A (ja) アプリケーションウィンドウの領域ベースのサイズ調節および適所配置
KR101743244B1 (ko) 메뉴 표시 방법 및 장치
US10915284B2 (en) Multi-monitor full screen mode in a windowing environment
US20130346912A1 (en) Method And System To Launch And Manage An Application On A Computer System Having A Touch Panel Input Device
US11481083B2 (en) Tool for arranging objects and adjusting spacing in a layout
KR20120134539A (ko) 그래픽 사용자 인터페이스 제공 장치 및 방법
JP2011186742A (ja) レイアウト編集装置およびその制御方法およびプログラム
TWI534694B (zh) 用於管理沉浸式環境的電腦實施方法及運算裝置
KR101146084B1 (ko) 단말 장치 및 상기 단말 장치의 문서 작성 수행 방법
US9727214B2 (en) Electronic apparatus and object processing method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant