專利名稱:多屏幕間的顯示內容切換方法
技術領域:
本發(fā)明涉及一種多屏幕間的顯示內容切換方法。
背景技術:
Windows操作系統(tǒng)可支持多屏幕,以支持兩個屏幕為例,操作模式會設定為「延伸桌面模式(extension mode)」。其中一個屏幕會被操作系統(tǒng)視為主屏幕(primary),編號為 1 ;其他屏幕則為次屏幕,編號為2、3、4等等。在桌面設定中,使用者可以自行選擇欲使用哪個屏幕為主屏幕。主屏幕的設定主要影響工具行位置和屏幕座標系統(tǒng)的定義。于Windows操作系統(tǒng)中,工具行(task bar)固定置放于主屏幕中,其他次屏幕不會顯示出工具行。在屏幕座標系統(tǒng)中,主屏幕的左上角會被定義為(0,0),而其他屏幕(亦即次屏幕)的座標系統(tǒng)須參考這些屏幕間的相對位置與此屏幕解析度而定。圖IA與圖IB顯示現(xiàn)有技術中,使用者進行主屏幕切換的示意圖。如圖IA所示, 使用者于屏幕Ml上開啟了視窗Pl與P2,于屏幕M2上則開啟了視窗P3,且使用者將屏幕Ml 定為主屏幕,因此工具行110顯示于屏幕Ml (主屏幕)。假設,使用者切換主屏幕,將屏幕M2定為主屏幕。則工具行110將顯示于屏幕 M2(主屏幕),如圖IB所示。然而,在主屏幕切換后,視窗P1、P2仍位在屏幕M1,視窗P3仍舊位于屏幕M2,并未隨主屏幕的切換而變動。故而,于現(xiàn)有技術中,當使用者切換主屏幕時,原本已經開啟的視窗并不會因為主屏幕切換而移動顯示位置,仍會停留在原本屏幕上。對于使用者而言,仍需要將視窗P1、P2 拉回新主屏幕上,因此具有改善的空間。
發(fā)明內容
本發(fā)明是有關于一種多屏幕的顯示內容切換方法,當切換主屏幕時,視窗位置會跟著移動,原本顯示于原主屏幕的程序/視窗會移動到新主屏幕;原本顯示于原次屏幕的程序/視窗會移動到新次屏幕。如此可增加使用者的便利。本發(fā)明的一實施例提出一種在一第一屏幕與一第二屏幕間的顯示內容切換方法, 第一屏幕為主屏幕,一視窗顯示于第一屏幕與第二屏幕其中的一屏幕。該方法包括(a)根據第一屏幕與第二屏幕間的相對位置,計算一視窗搬移位移量;(b)進行主屏幕切換,將第二屏幕設定為主屏幕;(c)取得視窗切換后的一座標;(d)若視窗于切換前位于第一屏幕, 將視窗搬移位移量加上視窗切換后的座標,以取得一第一顯示座標;(e)若視窗于切換前位于第二屏幕,將視窗切換后的座標減去視窗搬移位移量,以取得一第二顯示座標;以及 (f)根據第一顯示座標或第二顯示座標,將視窗由第一屏幕與第二屏幕的該屏幕搬移至第一屏幕與第二屏幕的其中的另一屏幕。本發(fā)明的另一實施例提出一種在多屏幕間的顯示內容切換方法,包括(a)接收一主屏幕切換指令,以進行主屏幕切換;(b)確認屏幕間的相對位置與各屏幕的解析度;(C)記錄在各屏幕上的所有可視視窗的原始顯示順序;(d)移動各屏幕上的每一可視視窗; 以及(e)根據所記錄的原始顯示順序,重新設定所有移動后可視視窗的顯示順序。為使本發(fā)明的上述內容能更明顯易懂,下文特舉實施例,并結合附圖式,作詳細說明如下。
圖IA與圖IB顯示于習知技術中,使用者進行主屏幕切換的示意圖。圖2A與圖2B顯示根據本發(fā)明實施例,使用者進行主屏幕切換的示意圖。圖3A 圖3D顯示于延伸桌面模式下,雙屏幕的相對位置與其左上角座標的示意圖。圖4A 圖4C顯示本發(fā)明實施例于移動視窗的示意圖。圖5A與圖5B顯示本發(fā)明實施例應用于三屏幕的示意圖。圖6A與圖6B顯示本發(fā)明實施例的操作流程圖。附圖符號說明Ml M3:屏幕Pl P3、P1, P3,視窗110、210、310、410、510 工具行 610 660 步驟
具體實施例方式于本發(fā)明實施例中,在多屏幕系統(tǒng)中,當切換主屏幕時,視窗位置會跟著移動。原本顯示于原主屏幕的程序/視窗會移動到新主屏幕而非停留于原主屏幕;原本顯示于原次屏幕的程序/視窗,也移動到新次屏幕。以下將以“原主屏幕”代表主屏幕切換前的主屏幕, “原次屏幕”代表主屏幕切換前的次屏幕。同理,“新主屏幕”代表進行主屏幕切換前的主屏幕,“新次屏幕”代表進行主屏幕切換后的次屏幕。圖2Α與圖2Β顯示根據本發(fā)明實施例,使用者進行主屏幕切換的示意圖。如圖2Α 所示,使用者于屏幕Ml上開啟了視窗Pl與Ρ2,于屏幕Μ2上則開啟了視窗Ρ3,假設使用者將屏幕Ml定為主屏幕,因此工具行210顯示于屏幕Ml。而后使用者切換主屏幕,將屏幕M2定為新主屏幕。工具行210將顯示于屏幕 M2 (主屏幕),如圖2B所示。根據本發(fā)明實施例,在主屏幕切換后,原本顯示于原主屏幕Ml 的視窗P1、P2的顯示位置會被移動到新主屏幕M2,成為視窗ΡΓ與P2’ ;原本顯示于原次屏幕M2的視窗P3的顯示位置則被移動到新次屏幕M1,成為視窗P3’。工具行210則隨主屏幕的切換而顯示于新主屏幕M2。下面將詳細說明本發(fā)明實施例如何于切換主屏幕時,本發(fā)明實施例以雙屏幕系統(tǒng)為例說明,但應當了解本發(fā)明其他可能實施例可應用于兩個以上的屏幕。請參考圖3A 圖 3D,其顯示雙屏幕(含主屏幕與次屏幕)于切換前的相對位置與其左上角座標的示意圖。 假設所有屏幕解析度皆為10M*768,屏幕Ml為原主屏幕,屏幕M2為原次屏幕。于Windows 操作系統(tǒng)下,主屏幕的左上角座標定義為(0,0)。如圖3A所示,原主屏幕Ml位于原次屏幕 M2的左方,原主屏幕Ml的左上角座標為(0,0)而原次屏幕M2的左上角座標為(10 ,0)。 如圖3B所示,原主屏幕Ml位于原次屏幕M2的右方,原主屏幕Ml的左上角座標為(0,0)而原次屏幕M2的左上角座標為(-10M,0)。如圖3C所示,原主屏幕Ml位于原次屏幕M2的下方,主屏幕Ml的左上角座標為(0,0)而原次屏幕M2的左上角座標為(0,-768)。如圖3D 所示,原主屏幕Ml位于原次屏幕M2的上方,原主屏幕Ml的左上角座標為(0,0)而原次屏幕M2的左上角座標為(0,768)。圖4A 圖4C顯示本發(fā)明實施例于移動視窗的示意圖。參考圖4A,假設現(xiàn)有兩個屏幕M1、M2。屏幕M2在屏幕Ml的右方,屏幕Ml設定為原主屏幕(工具行410顯示于主屏幕Ml),屏幕M2為原次屏幕。在主屏幕Ml上有程序/視窗Pl已開啟。視窗Pl具有一左上角的座標Plx,Ply(BS), PlX' PlY(BS)代表切換前的座標,以原主屏幕Ml左上角為原點的座標系統(tǒng)下的座標。BS代表切換前(Before Swapping)。在使用者切換主屏幕后,重新定義屏幕M2為新主屏幕(工具行410將顯示于新主屏幕M2)而屏幕Ml為新次屏幕,屏幕Ml和M2的相對位置均不變。此時,視窗Pl具有切換后的左上角座標Plx,Ply(As), Plx,PlY(AS)代表切換后的座標,以新主屏幕M2左上角為原點的座標系統(tǒng)下的座標。AS代表切換后(After Swapping) 0接著,計算視窗搬移位移量。以圖4A至圖4C為例,視窗Pl須搬移到新視窗P1’。 視窗搬移位移量為原主屏幕(Ml)的寬度,可表示為原次屏幕(M2)的左上角座標的χ座標值與原主屏幕(Ml)的左上角座標的χ座標值間差值。故而,于本實施例中,視窗搬移位移量定義為原次屏幕的左上角對原主屏幕的左上角的差值。Δ χ = Ml_width = M2x (BS) -Mix (BS) (ΙΑ)Ay = Ml_height = M2y(BS)-Mly(BS) (IB)于上式中,Ax與Ay即為視窗搬移位移量的χ分量與y分量;Ml_width代表原主屏幕的寬度;Ml_height代表原主屏幕的高度;Mh(BS)與M2y(BS)分別代表原次屏幕的左上角座標的χ座標值與y座標值,亦即進行主屏幕切換前的χ座標值與y座標值;Mix (BS) 與Mly(BS)分別代表原主屏幕的左上角座標的χ座標值與y座標值,亦即進行主屏幕切換前的X座標值與1座標值。由于已得到視窗搬移位移量,故可依據視窗的原左上角座標與視窗搬移位移量, 將視窗移動到另一屏幕。下面將說明如何得到視窗新的顯示位置。于進行視窗移動之前,判斷視窗于切換主屏幕前是位于原主屏幕或原次屏幕。如果視窗于切換主屏幕前是位于原主屏幕,則將視窗左上角的“切換后的座標”加上位移量即可得視窗新顯示位置。同理,如果視窗于切換主屏幕前位于原次屏幕,則將視窗左上角的“切換后的座標”減去位移量即可得視窗新顯示位置。如此,則原本顯示于原主屏幕的視窗會被搬移到新主屏幕;反之原本顯示于原次屏幕中的屏幕會被搬移到新次屏幕。假設屏幕Ml與M2的解析度皆為10M*768 ;Ml為原主屏幕,其左上角座標為(0, 0) ;M2為原次屏幕,其左上角座標為(1024,0);視窗Pl左上角的切換前座標Plx,Ply(BS) 為(100,100),其為對應原主屏幕Ml的座標系統(tǒng)。于切換主屏幕后,新主屏幕為M2而新次屏幕為M1,則新主屏幕M2的左上角座標變?yōu)?0,0),新次屏幕Ml左上角座標變?yōu)?-1024, 0),視窗Pl左上角的切換后座標Plx,Ply (AS)變?yōu)?-924,100),其對應新主屏幕M2的座標系統(tǒng)。根據上式(IA)與(IB),可計算移動視窗所需的視窗搬移位移量Δχ = M2x(BS)-Mix(BS) = (1024—0) = 1024 ;
Ay = M2y (BS)-Mly (BS) = (0-0) = 0。接著,判斷視窗Pl于切換主屏幕前是位于原主屏幕或原次屏幕,本實施例中,視窗Pl于切換主屏幕前是位于原主屏幕,故將視窗Pl左上角的切換后座標(-924,100)加上位移量(1024,100)即可得移動于新主屏幕M2的顯示位置(ΡΓ χ,ΡΓ y)。假設視窗Pl移動為視窗ΡΓ,則視窗ΡΓ的座標為Pl的座標加上位移量,亦即ΡΓ χ = Plx (AS) + Δ χ = -924+1024 = 100 ;ΡΓ y = Ply(AS) + Ay = 100+0 = 100。故而,視窗PI,的座標為(100,100),其與切換前的座標(100,100) —致。接著,如圖4C所示,根據所計算出的視窗ΡΓ的座標,將視窗Pl移入至新主屏幕 M2內。如此,視窗將會隨著使用者進行切換主屏幕而隨的移動于新主屏幕中。于一實施例中,若屏幕Ml與M2為上下排列,同樣假設屏幕Ml、M2的解析度皆為 10M*768。Ml為原主屏幕,左上角座標為(0,0) ;M2為原次屏幕,左上角座標為(0,768)。 亦即,屏幕Ml在上,而屏幕M2在下。視窗Pl左上角的切換前座標Plx,Ply(BS)為(100, 868),亦即視窗Pl于切換主屏幕前是位于原次屏幕M2中。切換主屏幕后,新主屏幕為M2,則新主屏幕M2的左上角座標為(0,0),新次屏幕Ml 的左上角座標變?yōu)?0,-768),視窗Pl左上角的切換后座標Plx,Ply (AS)變?yōu)?100,100), 其為對應新主屏幕M2的座標系統(tǒng)。而后,計算移動視窗所需的視窗搬移位移量如公式(IA)與(IB)所示,故可得Δχ = M2x(BS)-Mix(BS) = (0-0) = 0 ;Ay = M2y (BS)-Mly (BS) = (768-0) = 768。接著,判斷視窗Pl于切換主屏幕前是位于原主屏幕或原次屏幕,本實施例中,視窗Pl于切換主屏幕前是位于原次屏幕,則將視窗Pi左上角的切換后座標(100,100)減去位移量(0,768)即可得視窗新顯示位置(Pl,χ,ΡΓ y),亦即P1,χ = Plx-Δ χ = 100—0 = 100 ;ΡΓ y = Ply-Ay = 100-768 =-668。將視窗Pl由原次屏幕M2移入至新次屏幕Ml成為視窗P1,后,視窗P1,的左上角座標為(100,-668)。如此,視窗Pl將會隨著使用者切換主屏幕而隨的移動于新次屏幕中。綜上所述,移動視窗的方式可表示如下假設屏幕Ml為原主屏幕而屏幕M2為原次屏幕。經主屏幕切換后,新主屏幕為M2而新次屏幕為Ml。視窗P原本顯示于原主屏幕Ml 內,其左上角切換前的座標為1^,Py (BS)(對應原主屏幕Ml的座標系統(tǒng)),經主屏幕切換后, 左上角切換后的座標為Μ,Py (AS)(對應新主屏幕M2的座標系統(tǒng)),視窗P移入至新主屏幕 M2內成為視窗P’。則視窗P’的左上角座標(對應新主屏幕M2的座標系統(tǒng))可表示為P, χ = Px(AS)+Ml_width = Px(AS)+(Μ2χ_Μ1χ)P,y = Py (AS)+Ml_height = Py (AS) + (M2y-Mly)其中,Ml_width代表原主屏幕Ml的寬,Ml_height代表原主屏幕Ml的高與 M2y分別代表原次屏幕于切換前左上角座標的χ座標值與y座標值;Mlx與Mly分別代表原主屏幕于切換前的左上角座標的χ座標值與y座標值。假設視窗P于切換前顯示于原次屏幕M2內,其左上角座標為Px,Py (BS)(對應原主屏幕Ml的座標系統(tǒng)),經主屏幕切換后,左上角切換后的座標為Px,Py (AS)(對應新主屏幕M2的座標系統(tǒng)),視窗P移入至新次屏幕Ml內成為視窗P’。則視窗P’(對應新主屏幕 M2的座標系統(tǒng))的左上角座標可表示為P, χ = Px(AS)-Ml_width = Px(AS)-(Μ2χ_Μ1χ)P,y = Px(AS)_Ml_height = Py (AS) - (M2y-Mly)同理,若主次屏幕的位置關系為上下排列,亦可推得類似關系。此外,本發(fā)明實施例亦可應用于屏幕Ml與M2的解析度彼此不相等的情況。另外,本發(fā)明實施例亦可應用更多屏幕。圖5A與圖5B顯示本發(fā)明實施例應用于三屏幕的示意圖。假設有三個屏幕Ml M3,其相對位置如圖5A所示。視窗Pl P3原本分別顯示于屏幕Ml M3中,且屏幕Ml為原主屏幕(工具行510顯示于屏幕Ml),屏幕M2 與M3為次屏幕。經主屏幕切換后,M2為新主屏幕(工具行510顯示于屏幕M2),屏幕Ml與 M3為次屏幕。視窗Pl由屏幕Ml移動至屏幕M2內成為視窗ΡΓ;視窗P2由屏幕M2移動至屏幕M3內成為視窗P2’ ;視窗P3由屏幕M3移動至屏幕Ml內成為視窗P3’。當然,視窗的移動并不受限于上例。只要重新設定主屏幕后,原本顯示于舊主屏幕上的所有可視視窗皆移動到新主屏幕即可。根據上述公式及其精神,分別求出視窗ΡΓ 視窗P3’的左上角座標之后,再將視窗Pl 視窗P3移動為視窗ΡΓ 視窗P3’。其細節(jié)于此不再重述。需說明的是,于本發(fā)明實施例中,需先對所有視窗判斷是否為“可視”。所謂可視視窗是指使用者所能看到的視窗,移動可視視窗是有意義的。若視窗為不可視視窗,則原則上不對其進行搬移動作,以節(jié)省計算能量。此外,由于視窗依其狀態(tài)可區(qū)分為最大化視窗、最小化視窗、或一般視窗。在進行視窗移動時,對于一般視窗,在計算出新的顯示位置后,直接移動此一般視窗即可(請參照上述說明)。對于最大化視窗/最小化視窗,需先將之回復成一般視窗,根據上述說明進行移動后,再回復為最大化視窗/最小化視窗;如此一來,當使用者將最大化視窗/最小化視窗切換回一般視窗時,切換后的一般視窗才不會跑回原本顯示的屏幕上,而會顯示于正確的屏幕上?,F(xiàn)請參考圖6A,其顯示根據本發(fā)明實施例的流程圖。如圖6A所示,于步驟610中, 接收由使用者所傳來的主屏幕切換指令。接著,于步驟615中,確認多屏幕間的相對位置與各屏幕的解析度。接著,于步驟620中,找出前景視窗,亦即記錄所有視窗的原始顯示順序。 接著,于步驟625中,移動視窗。步驟625的細節(jié)如圖6B所示,其將于下面詳述。由于移動所有可視視窗后,所有可視視窗的顯示順序已被打亂,所以,在步驟660中,設定前景視窗, 亦即根據步驟620中所記錄的顯示順序,重新設定所有移動后可視視窗的順序,使得視窗顯示順序于屏幕切換前后是一致的。如此,使用者可立即繼續(xù)目前使用中視窗,而不須使用者從所有視窗中找出目前使用中視窗?,F(xiàn)請參考圖6B,首先判斷每個視窗是否可視(步驟632)。如為否,則結束。如為是,則判斷每個可視視窗的狀態(tài)(步驟634)。如為一般化視窗(亦即,此可視視窗并非最大化視窗也非最小化視窗),則流程接續(xù)至步驟636 ;反之,如為最大化/最小化視窗,則流程接續(xù)至步驟648。如果這些可視視窗為一般可視視窗,則移動視窗位置(步驟636 646)。于步驟 636中,計算視窗搬移位移量,其細節(jié)如上述,故不再重述。接著,于步驟638中,取得視窗左上角切換后的座標,其細節(jié)如上述,故不再重述。接著,于步驟640中,判斷此視窗在切換前的位置,亦即,判斷此視窗在切換前是位于原主屏幕或位于原次屏幕。如果此視窗在切換前位于原主屏幕的話,則將視窗左上角切換后的座標加上視窗搬移位移量以取得新顯示座標 (步驟642);反之,如果此視窗在切換前位于原次屏幕的話,則將視窗左上角切換后的座標減去視窗搬移位移量以取得新顯示座標(步驟644)。接著,如步驟646所示,根據所取得的新顯示座標來移動此視窗。如果這些可視視窗為最大化視窗/最小化視窗,需先對之進行一般化,亦即將之回復成一般可視視窗(步驟648),接著,進行步驟650移動視窗位置,步驟650包括步驟 636 646,故其細節(jié)不重述。接著,于步驟651中,再將此視窗回復為最大化視窗/最小化視窗。最后,于步驟652中,判斷是否所有可視視窗皆已處理(移動)。如此,當使用者切換主屏幕時,視窗位置會跟著移動,原本顯示于原主屏幕的程序 /視窗會移動到新主屏幕;原本顯示于原次屏幕的程序/視窗會移動到新次屏幕。此外,本發(fā)明實施例進一步判斷每一視窗是否為可視以節(jié)省計算資源,并同時記錄每一可視視窗的顯示順序,以避免打亂顯示順序。綜上所述,雖然本發(fā)明已以實施例揭露如上,然其并非用以限定本發(fā)明。本領域的技術人員,在不脫離本發(fā)明的精神和范圍的前提下,可作各種的更動與潤飾。因此,本發(fā)明的保護范圍以本發(fā)明的權利要求為準。
9
權利要求
1.一種在一第一屏幕與一第二屏幕間的顯示內容切換方法,該第一屏幕為主屏幕,一視窗顯示于該第一屏幕與該第二屏幕其中的一屏幕,該方法包括(a)根據該第一屏幕與該第二屏幕間的相對位置,計算一視窗搬移位移量;(b)進行主屏幕切換,將該第二屏幕設定為主屏幕;(c)取得該視窗切換后的一座標;(d)若該視窗于切換前位于該第一屏幕,將該視窗搬移位移量加上該視窗切換后的該座標,取得一第一顯示座標;(e)若該視窗于切換前位于該第二屏幕,將該視窗切換后的該座標減去該視窗搬移位移量,取得一第二顯示座標;以及(f)根據該第一顯示座標或該第二顯示座標,將該視窗由該第一屏幕與該第二屏幕的該屏幕搬移至該第一屏幕與該第二屏幕的其中的另一屏幕。
2.如權利要求1所述的方法,其中,該步驟(a)還包括 確認該第一屏幕與該第二屏幕的個別解析度。
3.如權利要求1所述的方法,該方法還包括 記錄視窗的原始顯示順序。
4.如權利要求1所述的方法,其中,還包括 如果該視窗為一最大化視窗或一最小化視窗,則 將該視窗回復成一般可視視窗;移動該視窗;以及回復為該最大化視窗或該最小化視窗。
5.如權利要求1所述的方法,其中,該視窗為一可視視窗。
6.一種在多屏幕間的顯示內容切換方法,該方法包括(a)接收一主屏幕切換指令,以進行主屏幕切換;(b)確認該些屏幕間的相對位置與各屏幕的解析度;(c)記錄在各屏幕上的所有可視視窗的原始顯示順序;(d)移動各屏幕上的每一可視視窗;以及(e)根據所記錄的原始顯示順序,重新設定所有移動后可視視窗的顯示順序。
7.如權利要求6所述的方法,其中,該步驟(d)包括 (dl)根據該些屏幕的相對位置,計算一視窗搬移位移量; (d2)進行主屏幕切換;(d3)取得該可視視窗切換后的一座標;(d4)若該可視視窗于切換前位于主屏幕,將該可視視窗搬移位移量加上該視窗切換后的該座標,取得一第一顯示座標;(d5)若該可視視窗于切換前非位于主屏幕,將該視窗切換后的該座標減去該視窗搬移位移量,以取得一第二顯示座標;以及(d6)根據該第一顯示座標或該第二顯示座標,將該視窗于該些屏幕之間移動。
8.如權利要求7所述的方法,其中,該步驟(dl)還包括 確認該第一屏幕與該第二屏幕的個別解析度。
9.如權利要求6所述的方法,該方法還包括如果該視窗為一最大化視窗或一最小化視窗,則 將該視窗回復成一般視窗; 移動該視窗;以及回復為該最大化視窗或該最小化視窗。
全文摘要
在一第一屏幕與一第二屏幕間的顯示內容切換方法。第一屏幕為主屏幕。一視窗顯示于第一屏幕與第二屏幕其中的一屏幕。該方法包括(a)根據第一屏幕與第二屏幕間的相對位置,計算一視窗搬移位移量;(b)進行主屏幕切換,將第二屏幕設定為主屏幕;(c)取得視窗切換后的一座標;(d)若視窗于切換前位于第一屏幕,將視窗搬移位移量加上視窗切換后的座標,取得一第一顯示座標;(e)若視窗于切換前是位于第二屏幕,將視窗切換后的座標減去視窗搬移位移量,取得一第二顯示座標;以及(f)根據該第一顯示座標或該第二顯示座標,將該視窗由該第一屏幕與該第二屏幕的該屏幕搬移至該第一屏幕與該第二屏幕的其中的另一屏幕。
文檔編號G06F3/048GK102314329SQ20101022093
公開日2012年1月11日 申請日期2010年7月1日 優(yōu)先權日2010年7月1日
發(fā)明者應漢興, 梁次震, 胡峻銘, 胡明椿, 陳立達 申請人:廣達電腦股份有限公司