IP Library Granted Patent US 10,521,074
Granted Patent B2
US 10,521,074 · App. 14/448,840 · Granted Dec 31, 2019

System and method for a back stack in a multi-application environment

Inventors: Knut Graf (Austin, TX); Mark W. Welker (Westlake, TX); Abu S. Sanaullah (Austin, TX); Jorge A. Abullarade (Austin, TX); Kenneth W. Stufflebeam (Georgetown, TX); Deeder M. Aurongzeb (Austin, TX)
Assignee: Dell Products, LP
G06F3/0482G06F9/451G06F9/461G06F1/1637G06F2203/04803
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,521,074
App. No.
14/448,840
Granted
Dec 31, 2019
Kind
B2
Abstract

A system and method for a back stack in a multi-application environment, wherein the method comprises adding an entry to a last-in-first-out (LIFO) data structure, the entry comprising application state information descriptive of an application state of a software application and display state information descriptive of a display state of a display surface of a touch screen device, adjusting a LIFO data structure pointer to reflect a revised LIFO data structure state resulting from the adding the entry, receiving a back button actuation indication, in response to receiving the back button actuation indication, restoring the software application to the application state and restoring the display surface to the display state, and readjusting the LIFO data structure pointer to reflect an original LIFO data structure state that existing prior to the adding the entry.

Claims (51)

1. A method comprising:

a first application state of a first software application executed by a processor and a first display state of a display surface having a first entry stored in a last-in-first-out (LIFO) data structure in memory, wherein the first entry comprises application state information and display state information corresponding to the first application state of the first software application relating to a progression level of execution of the first software application and the first display state of the progression state of execution of the first software application to generate a plurality of interactive objects to be displayed output for commands to the first software application in a window on the display surface where the displayed output changes at different progression levels of the first software application and where the display state information further includes the configuration data for location, size and orientation of the interactive objects within the window displayed on the display surface housed in two display housings of a convertible information handling system;

adding a second entry to the LIFO data structure in memory via the processor executing instructions, the second entry comprising application state information descriptive of a second application state of a second progression level of execution the first software application and display state information descriptive of a second display state of displayed output at the second progression level of execution of the display surface, wherein the display surface has a touch screen input device;

adding a third entry to the LIFO data structure in memory via the processor executing instructions, the third entry comprising application state information descriptive of a first application state relating to a first progression level of execution of a second software application and display state information descriptive of a third display state of displayed output at the first progression level of the second software application on the display surface;

adjusting a LIFO data structure pointer to reflect a revised LIFO data structure state resulting from adding the second entry and the third entry;

receiving a back button actuation indication;

in response to receiving the back button actuation indication, restoring the first software application from the first application state of the second application to the second application state of the first software application and restoring the display surface to the second display state if the window state has changed; and

readjusting the LIFO data structure pointer to reflect the LIFO data structure display state that existed prior to the adding the third entry.

2. The method of claim 1 further comprising:

determining a change in the display state information relating to the first or second display state of the display surface, wherein the change in the display state information results from a change of a device posture, truncating the LIFO data structure for display state.

3. The method of claim 2 further comprising:

in response to truncating the LIFO data structure, reverting at least a portion of the display surface to a home screen upon receiving the back button actuation indication.

4. The method of claim 2 wherein the truncating comprises:

resetting the LIFO data structure pointer to a bottom of the LIFO data structure.

5. The method of claim 1 wherein the display state information relating to the first display state, the second display state, or the third display state pertains to a dual display, the dual display displaying the displayed output as a first graphic user interface (GUI) of the first software application on a first display portion and a second GUI of the second software application on a second display portion.

6. The method of claim 5 further comprising:

displaying a first button bar comprising a first back button on the first display portion, the first back button corresponding to the first software application; and

displaying a second button bar comprising a second back button on the second display portion, the second back button corresponding to the second software application.

7. The method of claim 6 further comprising:

displaying, in a single-display display state, the first GUI and the first button bar but not the second GUI and not the second button bar.

8. An information handling system comprising:

a display across a plurality of display housings wherein the display housings are reconfigurable, the display having a first display state of displayed output at a first progression level of a software application;

a processor executing processor instructions, the processor coupled to the display for controlling images displayed on the display according to the first display state or other display states of an application window displayed reflecting size across the display on one or both housings, orientation on the display, and location across the display on one or both housings; and

a memory including a first last-in-first-out (LIFO) data structure for storing the first display state and a second LIFO data structure for storing a first application state descriptive of a progression state of execution of a software application to generate a plurality of interactive objects as the displayed output of the first display state to be displayed in a window on the display for interfacing with the software application and that the displayed output may change at different progression levels of the software application, wherein the first display state relates to the first application state further includes the configuration data for location, size and orientation of the interactive objects within the window displayed on the display and where the display state and application state are associated between the first LIFO data structure and the second LIFO data structure;

the processor executing the processor instructions to add an entry to the second LIFO data structure, the entry comprising a second application state information descriptive of a second progression state of execution of the software application and to add an entry to the first LIFO data structure of a second display state information descriptive of a second display state at the second progression state of execution at the display, wherein the display state information includes a graphic user interface (GUI) including the configuration data for location, size and orientation of the interactive objects within the window displayed on the display for the software application as the displayed output of the first or second display states and wherein the second application state is associated with the second display state,

the processor to adjust LIFO data structure pointers to reflect a revised LIFO data structure state of the first and second LIFO data structures resulting from adding the entries;

the processor executing processor instructions to receive a back button actuation indication from the display, and, in response to receiving the back button actuation indication, to restore the software application to the first application state and restoring the display surface to the first display state and to readjust the LIFO data structure pointers.

9. The information handling system of claim 8 wherein the processor instructions further cause the processor to determine a change in the second display state of the display and, in response to determining the change in the second display state of the display, wherein the change in the second display state results from a change of a device posture, to truncate the LIFO data structure.

10. The information handling system of claim 9 wherein the processor instructions further cause the processor, in response to truncating the LIFO data structure, to revert at least a portion of the display to a home screen upon receiving the back button actuation indication.

11. The information handling system of claim 9 wherein, to truncate the LIFO data structure, the processor resets the LIFO data structure pointer to a bottom of the LIFO data structure.

12. The information handling system of claim 8 wherein the first display state or the second display state pertains to a dual display, the dual display displaying the display output as the graphic user interface (GUI) of a first software application on a first display portion and a second GUI of a second software application on a second display portion.

13. The information handling system of claim 12 wherein the display displays a first button bar comprising a first back button on the first display portion, the first back button corresponding to the first software application, and displays a second button bar comprising a second back button on the second display portion, the second back button corresponding to the second software application.

14. The information handling system of claim 13 wherein the display displays, in a single-display display state, the first GUI and the first button bar but not the second GUI and not the second button bar.

15. A method comprising:

storing a first application state of a first progression level of execution for a first software application executing via a processor and a first display state of display output at the first progression level of execution in a display window as a first entry stored in a last-in-first-out (LIFO) data structure comprising entries of application state information and display state information, wherein display states are of displayed output in a displayed application window reflecting size across the display on one or both housings, orientation on the display, and location across the display on one or both housings of a convertible information handling system including the configuration data for location, size and orientation of the interactive objects within the window and wherein application states are descriptive of a progression state of execution of the first software application to generate a plurality of interactive objects for interfacing with the first software application as the displayed output of the first display state to be displayed in the window on the display and where the display states may change at different progression levels of the first software application;

storing a second entry to the LIFO data structure, via a processor executing instructions, the entry comprising former second application state information descriptive of a second, previous application state for a previous second progression level of execution of the first software application and a second, previous display state of display output at that previous second progression level of execution;

adjusting a LIFO data structure pointer to reflect a revised LIFO data structure state resulting from adding the first entry;

determining when a change of the first display state of the display via a touch screen device has occurred, wherein the change is from a single-display display state for the application window in a single housing to a dual-display display state for the application window across both housings or the change is from a dual-display display state to a single-display display state;

receiving a back button actuation indication;

in response to receiving the back button actuation indication when the change of the first display state has not occurred, restoring the first software application to the first application state and restoring the display to the first display state and readjusting the LIFO data structure pointer to reflect an original LIFO data structure state that existing prior to the adding the first entry; and

in response to receiving the back button actuation indication when the change of the first display state has occurred, reverting at least a portion of the display to a home screen.

16. The method of claim 15 further comprising:

in response to determining the change in the first display state of the display, wherein the change in the first display state results from a change of a device posture, truncating the LIFO data structure.

17. The method of claim 16 wherein the truncating comprises:

resetting the LIFO data structure pointer to a bottom of the LIFO data structure.

18. The method of claim 15 wherein the dual-display display state pertains to a dual display, dual display displaying a first graphic user interface (GUI) of the first software application on a first display portion and a second GUI of a second software application on a second display portion.

19. The method of claim 18 further comprising:

displaying a first button bar comprising a first back button on the first display portion, the first back button corresponding to the first software application; and

displaying a second button bar comprising a second back button on the second display portion, the second back button corresponding to the second software application.

20. The method of claim 19 further comprising:

for the single-display display state, displaying the first button bar but not the second button bar.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 033625 FRAME 0688 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0757 →
RELEASE OF REEL 033625 FRAME 0748 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0050 →
RELEASE OF REEL 033625 FRAME 0711 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040016/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2014
From: GRAF, KNUT; WELKER, MARK W.; SANAULLAH, ABU S.; ABULLARADE, JORGE A.; STUFFLEBEAM, KENNETH W.; AURONGZEB, DEEDER M.
To: DELL PRODUCTS, LP
Reel/Frame 033963/0404 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033625/0748 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033625/0711 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 033625/0688 →