Full-screen window dragging method and related device

Through the full-screen window drag method and heterologous screen projection technology, the problem of single functions in interconnection between devices is solved, and the full-screen window drag and projection across devices is realized, improving user experience and interaction richness.

WO2025001347A1PCT designated stage expired Publication Date: 2025-01-02HONOR DEVICE CO LTD

Patent Information

Application Number
PCT/CN2024/083201
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-30
Filing Date
2024-03-22
Publication Date
2025-01-02

AI Technical Summary

Technical Problem

In the interconnection between devices, the existing technology has relatively single functions and limited user experience. It is impossible to realize dragging and heterogeneous screen projection of full-screen windows, affecting the richness of device interaction.

Method used

Provide a full-screen window drag method, select and drag the full-screen window by inputting the device to control the cursor to select and drag the full-screen window, realizing heterogeneous screen projection across devices, including displaying the dynamic window and wallpaper on the first electronic device, and updating and dragging it across the edge of the device. In the pull state, ensure that the cursor crossing is accurate and the real content is displayed in the projection window.

Benefits of technology

It enhances the richness of interaction between devices, improves user experience, supports full-screen window dragging and projecting between different devices, and users have no sense of the window switching process, realizing the smoothness of heterogeneous screen projection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024083201_02012025_PF_FP_ABST
    Figure CN2024083201_02012025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a full-screen window dragging method and a related device, applied to the technical field of terminals. The method can support the process of performing heterogeneous mirroring in a second electronic device upon dragging a full-screen window of a first electronic device to the second electronic device, thereby increasing the richness of device interaction. Moreover, for a period of time from when a user releases a mouse in the second electronic device to when real mirroring content is displayed in a mirroring window of the second electronic device, a wallpaper is displayed in the first electronic device, so that the user does not perceive the process of switching the window of the first application to the full screen in the first electronic device, thereby enhancing user experience.
Need to check novelty before this filing date? Find Prior Art

Description

Full-screen window dragging method and related equipment

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on June 30, 2023, with application number 202310809404.4 and application name “Full-screen window dragging method and related equipment”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of terminal technology, and in particular to a full-screen window dragging method and related equipment. Background Art

[0003] With the development of communication technology, some electronic devices can share input devices after being interconnected. Input devices may include mice, touchpads, etc. For example, after a tablet computer PAD and a personal computer (PC) are connected, the content displayed on the PAD interface can be triggered using the mouse connected to the PC.

[0004] In some implementations, after the PAD is connected to the PC, files and pictures in the PC can be dragged to the PAD using the mouse connected to the PC. However, the functions achieved between the PAD and PC using the mouse are relatively simple, which is not conducive to the user experience in device interconnection.

[0005] Summary of the Invention

[0006] An embodiment of the present application provides a full-screen window dragging method and related equipment, which are applied to the field of terminal technology. In the embodiment of the present application, after dragging a full-screen window in a PAD or mobile phone to a PC, a process of heterogeneous screen projection can be performed in the PC, thereby increasing the richness of device interaction.

[0007] In a first aspect, an embodiment of the present application provides a full-screen window dragging method, which is applied to a communication system, wherein the communication system includes a first electronic device installed with a first operating system and a second electronic device installed with a second operating system, the first electronic device or the second electronic device is connected to an input device, and the first operating system is different from the second operating system. The method includes:

[0008] The first electronic device displays a first cursor and a full-screen window of a first application, and the first cursor is located on the full-screen window; when the user controls the first cursor to select and drag the full-screen window through an input device, the first electronic device displays a reduced full-screen window; when the first cursor drags the full-screen window to a first position, the first electronic device displays wallpaper, and displays a first motion effect window at the first position, and stops displaying the full-screen window, the first motion effect window includes a first identifier of the first application, the first motion effect window is located on an upper layer of the wallpaper, and the size of the first motion effect window is smaller than the size of the full-screen window; in the process of the first cursor dragging the first motion effect window to move, when the first cursor moves from the first screen edge of the first electronic device, When the cursor moves out to the second screen edge of the second electronic device, the first electronic device displays the wallpaper and stops displaying the first animation window, and the second electronic device displays the second animation window dragged by the first cursor, and the second animation window includes the second identifier of the first application; in the process of the first cursor dragging the second animation window to move, when it is detected that the user releases the first cursor at the second position through the input device, the second electronic device displays the projection window at the second position and stops displaying the second animation window. When part or all of the content of the full-screen window is not displayed in the projection window of the second electronic device, the first electronic device displays the wallpaper and sets the layer where the full-screen window is located to the lower layer of the wallpaper.

[0009] This allows for dragging a full-screen window from a first electronic device to a second electronic device, allowing for heterogeneous screen projection on the second electronic device, thus enriching device interaction. Furthermore, by displaying wallpaper on the first electronic device between the time the user releases the mouse on the second electronic device and the time the actual projected content is displayed in the projection window on the second electronic device, the user is unaware of the first application's window switching to full screen on the first electronic device, improving the user experience.

[0010] In one possible implementation, the method further includes: after the screen projection window displays part or all of the content of the full-screen window, the first electronic device stops displaying the wallpaper and displays the desktop. In this way, after the heterogeneous screen projection is implemented on the second electronic device, the first electronic device can support the user to perform other functions.

[0011] In one possible implementation, when the second electronic device detects that the user has released the first cursor at the second position via an input device, the second electronic device also sends a cursor release event to the first electronic device; in response to the cursor release event, the first electronic device also performs a stack shift; after the stack shift is completed, the first electronic device displays part or all of the content of the full-screen window in the projection window, and the first electronic device stops displaying the wallpaper. Because the projection window of the second electronic device can display the projection content of the first application after the stack shift is completed, the first device stops displaying the wallpaper and displays the desktop, allowing the user to perform other operations on the desktop.

[0012] In one possible implementation, the first electronic device includes a first module and a second module; the first module and the second module are different; when the first cursor drags the full-screen window to the first position, the first module draws the first motion effect window and draws the wallpaper of the lower layer of the first motion effect window; when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first module draws the wallpaper and does not draw the first motion effect window; in response to the cursor release event, the first module ends drawing the wallpaper, and the second module draws the wallpaper located on the upper layer of the full-screen window; after part or all of the content of the full-screen window is displayed in the projection window, the second module ends drawing the wallpaper. In this way, without affecting the execution logic of the first module, the first electronic device can realize the drawing of higher-level wallpaper through the second module, thereby increasing the versatility of the embodiments of the present application.

[0013] In one possible implementation, the second module maintains a drag state value, which includes a first value, a second value, and a third value; when the user controls the first cursor through an input device to select and drag the full-screen window, the second module updates the drag state value from the first value to the second value; when the first cursor drags the full-screen window to the first position, the first module queries that the drag state value is the second value, the first module draws the first animation window, and draws the wallpaper under the first animation window; when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the second module updates the drag state value from the second value to the third value, the first module queries that the drag state value is the third value, the first module draws the wallpaper, and does not draw the first animation window; in response to a cursor release event, the second module updates the drag state value from the third value to the first value.

[0014] In this way, by setting the drag state, when the mouse crosses, the electronic device can determine whether the mouse crosses when there is no drag event (for example, the user does not press the mouse, but only moves the mouse to cross between electronic devices), or the cursor drags the window to cross when there is a drag event (for example, the user presses the mouse in the full-screen window, and moves the mouse to drag the full-screen window to cross between electronic devices).

[0015] In one possible implementation, when a first cursor moves from a first screen edge of a first electronic device to a second screen edge of a second electronic device, if the first electronic device determines that the value of the drag state is a second value, the first electronic device further sends information indicating a display window to the second electronic device; and the second electronic device displays a second animated window dragged by the first cursor, including: in response to the information indicating a display window, the second electronic device displays the second animated window dragged by the first cursor. In this way, by using the drag state, the first electronic device can conveniently determine the different states of the cursor during the drag operation.

[0016] In one possible implementation, the first electronic device stopping displaying the full-screen window includes: the first module setting the display attribute of the first application to hidden; and in response to a cursor release event, the first module further setting the display attribute of the first application to visible and setting the first application to full-screen mode. In this way, the first electronic device can control the display or hiding of the first application's full-screen window by conveniently setting the display attribute and display mode of the first application.

[0017] In one possible implementation, when a user presses an input device to control a first cursor to select a draggable area of ​​a full-screen window, the first electronic device detects a gesture press event. Based on the gesture press event, the first electronic device registers an input listener for detecting movement events in the draggable area. This allows the task locator to monitor cursor move events while the drag operation continues, eliminating the need to call the moving task each time and conserving computing resources.

[0018] In one possible implementation, when the first electronic device detects the first movement event of the draggable area, the first electronic device sends the identification information of the first application to the second electronic device. The identification information includes: application package name, application name and / or application icon. This allows the second electronic device to draw an animated window in a timely manner based on the application package name, application name and / or application icon when the cursor subsequently drags the full-screen window from the first electronic device to the second electronic device, so that the user can experience the experience of dragging a floating window to the second electronic device.

[0019] In one possible implementation, when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first electronic device also blocks gesture events in the first electronic device; after the first electronic device completes the stack shift, the first electronic device also unblocks gesture events in the first electronic device. In this way, when the screen of the first electronic device receives a user click or other operation, the first electronic device does not respond, and the execution process of dragging the full-screen window is not interrupted.

[0020] One possible implementation further includes: during the process of the first cursor dragging the second animated window, when the first cursor moves from the second screen edge of the second electronic device to the first screen edge of the first electronic device, the first electronic device displays the first animated window dragged by the first cursor, the first animated window is located on top of the wallpaper, and the second electronic device stops displaying the second animated window. In this way, it is possible to support the user dragging the full-screen window of the first electronic device to the second electronic device, and then support the full-screen window from the second electronic device back to the first electronic device, enriching the device interaction scenarios.

[0021] In a second aspect, an embodiment of the present application provides a communication system, which may include a first electronic device and a second electronic device of the first aspect. The first electronic device can implement the method performed by the first electronic device described in the first aspect or any possible implementation of the first aspect, and the second electronic device can implement the method performed by the second electronic device described in the first aspect or any possible implementation of the first aspect.

[0022] In a third aspect, embodiments of the present application provide a full-screen window dragging device. The full-screen window dragging device may be an electronic device, or a chip or chip system within an electronic device. The full-screen window dragging device may include a display unit and a processing unit. When the full-screen window dragging device is an electronic device, the display unit may be a display screen. The display unit is configured to perform a display step, so that the electronic device implements the method described in the first aspect or any possible implementation of the first aspect, performed by the first electronic device or the second electronic device. When the full-screen window dragging device is an electronic device, the processing unit may be a processor. The full-screen window dragging device may also include a storage unit, which may be a memory. The storage unit is configured to store instructions, and the processing unit executes the instructions stored in the storage unit, so that the electronic device implements the method described in the first aspect or any possible implementation of the first aspect, performed by the first electronic device or the second electronic device. When the full-screen window dragging device is a chip or chip system within an electronic device, the processing unit may be a processor. The processing unit executes the instructions stored in the storage unit, so that the electronic device implements the method described in the first aspect or any possible implementation of the first aspect, performed by the first electronic device or the second electronic device. The storage unit may be a storage unit within the chip (eg, a register, a cache, etc.), or a storage unit within the electronic device that is located outside the chip (eg, a read-only memory, a random access memory, etc.).

[0023] In a fourth aspect, an embodiment of the present application provides an electronic device comprising a processor and a memory, the memory being used to store code instructions, and the processor being used to run the code instructions to execute a method executed by a first electronic device described in any possible implementation of the first aspect, or to execute a method executed by a second electronic device described in any possible implementation of the first aspect.

[0024] In a fifth aspect, embodiments of the present application provide a computer-readable storage medium storing a computer program. When executed by a processor, the computer program implements the method performed by the first electronic device as described in any possible implementation of the first aspect, or implements the method performed by the second electronic device as described in any possible implementation of the first aspect.

[0025] In a sixth aspect, an embodiment of the present application provides a computer program product, which includes a computer program. When the computer program is run, the computer executes the method executed by the first electronic device described in any possible implementation of the first aspect, or executes the method executed by the second electronic device described in any possible implementation of the first aspect.

[0026] In a seventh aspect, the present application provides a chip or chip system, which includes at least one processor and a communication interface, the communication interface and the at least one processor being interconnected by a line, and the at least one processor being used to run a computer program or instruction to execute the method performed by the first electronic device described in any possible implementation of the first aspect, or to execute the method performed by the second electronic device described in any possible implementation of the first aspect. The communication interface in the chip can be an input / output interface, a pin, or a circuit, etc.

[0027] In one possible implementation, the chip or chip system described above in this application further includes at least one memory, in which instructions are stored. The memory may be a storage unit within the chip, such as a register, a cache, etc., or a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).

[0028] It should be understood that the second to seventh aspects of the present application correspond to the technical solutions of the first aspect of the present application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation methods are similar and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] FIG1 is a schematic diagram of a keyboard-mouse interconnection scenario according to an embodiment of the present application;

[0030] FIG2 is a schematic diagram of another keyboard and mouse interconnection scenario according to an embodiment of the present application;

[0031] FIG3 is a schematic diagram of the hardware structure of a first electronic device provided in an embodiment of the present application;

[0032] FIG4 is a schematic diagram of the hardware structure of a second electronic device provided in an embodiment of the present application;

[0033] FIG5 is a schematic diagram of the software structure of a first electronic device and a second electronic device provided in an embodiment of the present application;

[0034] FIG6 is a schematic diagram of software module interaction provided in an embodiment of the present application;

[0035] FIG7 is a schematic diagram of a full-screen window displayed in a PAD provided in an embodiment of the present application;

[0036] FIG8 is a schematic diagram of a full-screen window shrinking animation displayed in a PAD provided by an embodiment of the present application;

[0037] FIG9 is a schematic diagram of displaying a dynamic effect window and a wallpaper mask in a PAD provided by an embodiment of the present application;

[0038] FIG10 is a schematic diagram showing a partial dynamic effect window and a wallpaper mask in a PAD provided by an embodiment of the present application;

[0039] FIG11 is a schematic diagram of a PC displaying a motion effect window provided by an embodiment of the present application;

[0040] FIG12 is another schematic diagram of software module interaction provided in an embodiment of the present application;

[0041] FIG13 is a schematic diagram of a PC displaying a heterogeneous screen projection window provided by an embodiment of the present application;

[0042] FIG14 is a schematic diagram of a PC displaying a same-source screen projection window provided by an embodiment of the present application;

[0043] FIG15 is a schematic diagram of a PC displaying a partial motion effect window provided by an embodiment of the present application;

[0044] FIG16 is a schematic diagram showing a dynamic effect window and a wallpaper mask in a PAD provided by an embodiment of the present application;

[0045] FIG17 is a schematic diagram of a flow chart of a full-screen window dragging method provided in an embodiment of the present application;

[0046] FIG18 is a schematic diagram of the hardware structure of the chip provided in an embodiment of the present application. DETAILED DESCRIPTION

[0047] To facilitate a clear description of the technical solutions of the embodiments of the present application, some of the terms and technologies involved in the embodiments of the present application are briefly introduced below:

[0048] 1. Same-source screen projection: It can be understood that the content displayed in the projection interface of the projected device is the same or basically the same as the content displayed on the projection device interface. For example, when a mobile phone or PAD is used as a projection device to project the screen to the projected device PC, the interface displayed by the mobile phone or PAD is the same as the content displayed in the projection display window on the PC. Of course, the projection display window on the PC can also display a title bar (such as maximize and minimize buttons), or the projection display window on the PC can also not display the content in the status bar of the mobile phone or PAD. When the interface in the mobile phone or PAD changes from the first interface to the second interface, the content displayed in the projection display window on the PC can also change from the first interface to the second interface.

[0049] 2. Heterogeneous screen projection: This means that the content displayed on the projection interface of the projected device may be different from the content displayed on the projection device interface. For example, when a mobile phone or PAD is used as a projection device to project the screen to the projected device PC, the mobile phone or PAD can display the interface of the first application, while the projection display window on the PC can display the interface of the second application. When the interface on the mobile phone or PAD changes from the first interface to the second interface, the interface displayed in the projection display window on the PC can remain unchanged.

[0050] 3. Keyboard and mouse sharing technology: It can be understood as a technology that uses the input device of an electronic device to control the electronic device and other electronic devices connected to the electronic device.

[0051] 4. Drag state: It can be used to identify whether the drag operation continues and whether the cursor is in the electronic device that starts dragging. For example, the drag state may include a first value, a second value, and a third value. The first value is used to indicate that no drag event is in progress; the second value is used to indicate that a drag event is in progress and the cursor is displayed in the electronic device that starts dragging; the third value is used to indicate that a drag event is in progress and the cursor is not displayed in the electronic device that starts dragging. Among them, the occurrence of a drag event can be understood as the drag operation not ending (for example, the user has not released the mouse), and the absence of a drag event can be understood as the absence of a drag operation (for example, the user has not pressed the mouse and dragged). The first value, the second value, and the third value can be different without special limitation. For example, the first value can be set to 0, the second value to 1, the third value to 2, etc.

[0052] In an embodiment of the present application, by setting the drag state, when a mouse crossing occurs, the electronic device can determine whether the mouse crossing is a cursor crossing when there is no drag event (for example, the user does not press the mouse, but only moves the mouse to cross between electronic devices), or a cursor dragging window crossing when there is a drag event (for example, the user presses the mouse in a full-screen window, and moves the mouse to drag the full-screen window to cross between electronic devices).

[0053] For example, when the mouse passes through the electronic device from which the mouse is being dragged, if the electronic device determines that the drag state is the second value, the electronic device updates the drag state to the third value; if the electronic device determines that the drag state is not the second value, the electronic device does not update the drag state, and the electronic device can execute the cursor crossing-related process when there is no drag event.

[0054] Similarly, when the mouse passes back from another electronic device to the electronic device that started the drag, if the electronic device determines that the drag state is the third value, the electronic device updates the drag state to the second value; if the electronic device determines that the drag state is not the third value, the electronic device does not update the drag state, and the electronic device can execute the cursor crossing related processes when there is no drag event.

[0055] 5. Other terms

[0056] In the embodiments of this application, terms such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. For example, the terms "first chip" and "second chip" are used solely to distinguish between different chips and do not define their order. Those skilled in the art will understand that terms such as "first" and "second" do not define the quantity or execution order, and do not necessarily define differences.

[0057] It should be noted that in the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described in this application as "exemplary" or "for example" should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.

[0058] In the embodiments of the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, a--c, bc, or abc, where a, b, c can be single or multiple.

[0059] It should be noted that the "at..." in the embodiments of the present application can be the instant when a certain situation occurs, or it can be a period of time before or after the situation occurs, and the embodiments of the present application do not specifically limit this. In addition, the display interface provided in the embodiments of the present application is only an example, and the display interface can also include more or less content.

[0060] In some implementations, only dragging and dropping of files, pictures, and application icons is supported between devices that establish communication based on keyboard and mouse sharing technology. After dragging files, pictures, and application icons from one device to another, dragging the files, pictures, and application icons back to the original device is not supported. The interaction scenarios are relatively limited, affecting the user experience.

[0061] In view of this, the full-screen window dragging method provided in the embodiment of the present application can support the dragging of full-screen windows between electronic devices. Among them, the operating systems installed on the two electronic devices can be different, for example, device 1 is an Android operating system and device 2 is a Windows operating system. For example, after the full-screen window of device 1 is dragged to device 2, it can also support the full-screen window to be dragged from device 2 back to device 1, or after the full-screen window of device 1 is dragged to device 2, heterogeneous screen projection can be implemented on device 2, enriching the interaction scenarios between devices and improving the user experience.

[0062] The full-screen window dragging method provided in the embodiment of the present application can be applied in a communication system, which may include a first electronic device 100 and a second electronic device 200.

[0063] For example, as shown in FIG1 , an input device 300 may be connected to the first electronic device 100, and the first electronic device 100 and the second electronic device 200 may establish a communication connection. After the keyboard and mouse sharing function is turned on for the first electronic device 100 and the second electronic device 200, the user can not only use the input device 300 of the first electronic device 100 to control the first electronic device 100, but also pass the input device 300 to the screen of the second electronic device 200 to control the second electronic device 200. In an embodiment of the present application, the user can drag the full-screen window in the first electronic device 100 to the second electronic device 200, and then display the content of the full-screen window of the first electronic device 100 on the screen of the second electronic device 200 through same-source screen projection or different-source screen projection. In this way, the interaction scenarios after the first electronic device 100 and the second electronic device 200 are interconnected can be enriched, thereby improving the user experience.

[0064] Alternatively, as shown in Figure 2, an input device 300 may be connected to the second electronic device 200, and the first electronic device 100 and the second electronic device 200 may establish a communication connection. After the keyboard and mouse sharing function is turned on for the first electronic device 100 and the second electronic device 200, the user can not only use the input device 300 of the second electronic device 200 to control the second electronic device 100, but also pass the input device 300 to the screen of the first electronic device 100 to control the first electronic device 100. In an embodiment of the present application, the user can drag the full-screen window in the first electronic device 100 to the second electronic device 200, and then display the content of the full-screen window of the first electronic device 100 on the screen of the second electronic device 200 through same-source screen projection or different-source screen projection. In this way, the interaction scenarios after the first electronic device 100 and the second electronic device 200 are interconnected can be enriched, thereby improving the user experience.

[0065] Among them, the first electronic device 100 and the second electronic device 200 can enable the keyboard and mouse sharing function in the following ways, including but not limited to: using the input device 300 to touch the edge of the first electronic device 100 or the edge of the second electronic device 200 a preset number of times, and / or, providing an interface for establishing keyboard and mouse sharing with the first electronic device 100 in the second electronic device 200, and the user chooses to share the keyboard and mouse with the first electronic device 100 in the interface.

[0066] It should be noted that the full-screen windows in the embodiments of the present application all have draggable areas, which may include the bar in the full-screen window, the area where the title bar is located and / or the area near the title bar, etc.

[0067] It can be understood that Figures 1 and 2 both take the first electronic device 100 as a PAD, the second electronic device 200 as a PC, and the input device 300 as a mouse as an example. This example does not constitute a limitation on the first electronic device 100, the second electronic device 200 and the input device 300.

[0068] The first electronic device 100 and the second electronic device 200 may be devices of the same type or different types. For example, the first electronic device 100 and the second electronic device 200 may be any of the following electronic devices: a mobile phone, a tablet computer, a PDA, a laptop computer, a mobile internet device (MID), a wearable device, a virtual reality (VR) device, an augmented reality (AR) device, a wireless terminal in industrial control, a wireless terminal in self-driving, a wireless terminal in remote medical surgery, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, a wireless terminal in a smart home, a cellular phone, a cordless phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a cellular phone, a cordless phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a wireless local loop (WLL) station, a wireless terminal in a smart home, a cellular phone, a cordless phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a wireless terminal in a smart home, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, a wireless terminal in a smart home, a wireless terminal in a smart home, a wireless terminal in a smart home, a wireless terminal in a smart home, a wireless terminal in a smart home, a wireless terminal in a smart grid, a wireless terminal in a smart home ... The present invention relates to a mobile phone, such as a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, an in-vehicle device, a wearable device, an electronic device in a 5G network or an electronic device in a future public land mobile network (PLMN), an electronic device in an Internet of Things (IoT) system, etc., which are not limited in the embodiments of the present application. The mobile phone can be a straight-screen phone or a foldable phone.

[0069] The input device 300 may include a mouse, a touch pad, a touch screen, or the like.

[0070] It should be noted that when the input device is connected to the first electronic device 100 or the second electronic device 200, it can be a wired connection or a wireless connection. In particular, when the input device is connected to a device such as a mobile phone or PAD via a wired connection, an adapter can be used to convert the interface of the input device to a type that can be inserted into the interface of the mobile phone or PAD, thereby realizing a wired connection.

[0071] To better understand the embodiments of the present application, the following describes the structures of the first electronic device 100 and the second electronic device 200 in the embodiments of the present application.

[0072] 3 shows a schematic structural diagram of a first electronic device 100. The first electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display 194, and a subscriber identification module (SIM) card interface 195.

[0073] Among them, the sensor module 180 can include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0074] It should be understood that the structures illustrated in the embodiments of the present application do not constitute a specific limitation on the first electronic device 100. In other embodiments of the present application, the first electronic device 100 may include more or fewer components than shown, or may combine or separate certain components, or arrange the components differently. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0075] The processor 110 may include one or more processing units. For example, the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU). The different processing units may be independent devices or integrated into one or more processors.

[0076] The controller can generate operation control signals according to the instruction operation code and timing signal to complete the control of instruction fetching and execution.

[0077] Processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the instruction or data again, it can retrieve it from the memory. This avoids duplicate accesses, reduces processor 110 latency, and thus improves system efficiency.

[0078] In some embodiments, the processor 110 may include one or more interfaces. The interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface.

[0079] The wireless communication function of the electronic device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.

[0080] The first electronic device 100 implements display functions through a GPU, display screen 194, and an application processor. The GPU is a microprocessor that supports full-screen window dragging and is connected to the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs that execute program instructions to generate or change display information.

[0081] FIG4 shows a schematic structural diagram of the second electronic device 200. Referring to FIG4, the second electronic device 200 may include multiple subsystems that cooperate to execute, coordinate or monitor one or more operations or functions of the electronic device 202.

[0082] The second electronic device 200 includes a processor 210 , an input surface 220 , a coordination engine 230 , a power subsystem 240 , a power connector 250 , a wireless interface 260 , and a display 270 .

[0083] Exemplarily, the coordination engine 230 can be used to communicate and / or process data with other subsystems of the second electronic device 200; for example, communicate and / or trade data with the stylus 100; measure and / or obtain the output of one or more analog or digital sensors (such as a touch sensor), etc.

[0084] The processor 210 may be configured to execute, coordinate, and / or manage functions of the second electronic device 200. Such functions may include, but are not limited to, communicating with other subsystems of the second electronic device 200 and / or transacting data.

[0085] The processor 210 may be configured to process, receive, or transmit data or instructions. For example, the processor may be a microprocessor, a central processing unit, an application-specific integrated circuit, a field programmable gate array, a digital signal processor, an analog circuit, a digital circuit, or a combination of these devices. The processor may be a single-threaded or multi-threaded processor. The processor may be a single-core or multi-core processor.

[0086] During use, the processor 210 may be configured to access a memory storing instructions that may be configured to cause the processor to execute, coordinate, or monitor one or more operations or functions of the second electronic device 200 .

[0087] The wireless interface 260 may be used to communicate with the first electronic device 100 .

[0088] It is understandable that some of the specific details presented above regarding the first electronic device 100 and the second electronic device 200 may not be necessary, and the embodiments of the present application do not limit the specific structures of the first electronic device 100 and the second electronic device 200.

[0089] In the embodiment of the present application, the first electronic device 100 and the second electronic device 200 may use different operating systems, which may include, for example, any of the following operating systems: Linux operating system, Unix operating system, Android operating system, iOS operating system, or Windows operating system.

[0090] For example, FIG5 takes the case where the operating system of the first electronic device 100 is the Android system and the operating system of the second electronic device 200 is the Windows system as an example, and illustrates part of the software architecture of the first electronic device 100 and the second electronic device 200.

[0091] As shown in FIG5 , the operating system of the first electronic device 100 may include an application layer and an application framework layer (framework, FWK).

[0092] The application layer may include a keyboard and mouse module, which may also be called a virtual input Android package (VIAPK), a keyboard and mouse APK, or the like.

[0093] The keyboard and mouse module can be used for device connection management, drag status update and synchronization, keyboard and mouse event interception and injection, mouse crossing identification, etc. Among them, device connection management is used to achieve discovery and communication between devices, drag status update and synchronization is used to update and synchronize the presence of drag events and the presence of cursors in devices, keyboard and mouse event interception and injection is used to intercept keyboard and mouse events and inject keyboard and mouse parameters when they are determined to occur, and mouse crossing identification is used to identify whether the mouse cursor crosses the edge of the electronic device's display screen.

[0094] FWK can include a variety of system services (system servers), including, for example, motion effect management, drag process management, and heterogeneous screen projection.

[0095] Motion effect management can be used for hot zone initialization and strategy matching, gesture recognition, input event listening, motion effect start and stop, motion effect resource management, etc. Among them, the hot zone in motion effect management can be understood as the draggable area in the motion effect interface, strategy matching is used to match the scene and content of the motion effect, gesture recognition is used to identify drag operations, input event listening is used to monitor the position of the mouse, motion effect start and stop is used to manage the timing of the display or non-display of the motion effect, and motion effect resource management is used to manage the resources required for the display of the motion effect.

[0096] Drag process management can be used for drag status update and synchronization, wallpaper mask hiding and display, application layer visibility management, exception timeout protection, etc. Among them, drag status update and synchronization, for example, is used to update and synchronize whether there is a drag event in the device, whether there is a cursor in the device, and other states. Optionally, the drag state in FWK can be synchronized with the drag state in the keyboard and mouse APK. Wallpaper mask hiding and displaying, for example, is used to manage the hiding or display of wallpaper masks during the dragging process of full-screen windows. Application layer visibility management, for example, is used to manage the display or hiding of the layer where the full-screen window is located. Abnormal timeout protection, for example, is used to protect the normal operation of the application in the full-screen window when the drag process is abnormal.

[0097] Heterogeneous screen projection can be used for application stacking and window mode switching. Application stacking, for example, is used to project the content of a full-screen window on an electronic device to another device, and window mode switching, for example, is used to switch the window mode from application column mode to full-screen mode. Application column mode can refer to the split-screen display within an application, and application column mode can also be called application split-screen mode.

[0098] It is understandable that the application framework layer may also include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, etc., which is not specifically limited in the embodiments of the present application.

[0099] Of course, the operating system of the first electronic device 100 may also include a hardware abstract layer (HAL), a driver layer, and a hardware layer, etc. Each layer has its own role and division of labor, which is not limited in the embodiment of the present application.

[0100] As shown in FIG5 , the operating system of the second electronic device 200 may include an application layer, and the application layer may include applications such as PC Manager.

[0101] PC Butler can be installed in the operating system of the PC in the form of a system application or a third-party application. For example, PC Butler can be used for device connection management, drag status update and synchronization, keyboard and mouse event management, heterogeneous screen projection, etc. Among them, device connection management is used to realize discovery and communication connection between devices, drag status update and synchronization is used to update and synchronize whether there is a drag event in the device, whether there is a cursor in the device, etc., keyboard and mouse event management is used to realize the management of mouse pressing, moving, and lifting events, etc., heterogeneous screen projection is used to manage the stacking and projection between the first electronic device and the second electronic device, etc. Optionally, PC Butler can also be used for animation start and stop, and animation resource management. Animation start and stop are used to manage the display or non-display timing of animations, etc., and animation resource management is used to manage the resources required for the display of animations, etc.

[0102] Of course, the operating system of the second electronic device 200 may also include other layers such as a kernel and a driver, which are used to implement the functions of the second electronic device 200 together with the application layer. This embodiment of the present application does not limit this.

[0103] When the first electronic device 100 and the second electronic device 200 implement the full-screen window dragging method of the embodiment of the present application, the modules in the operating systems of each device can interact with each other. The following will combine the possible software module interactions and possible interface displays in the full-screen window dragging process implemented by the first electronic device 100 and the second electronic device 200 to exemplify the full-screen window dragging method provided by the embodiment of the present application.

[0104] For ease of description, the embodiments of this application and the related drawings are described by taking the first electronic device 100 as a PAD, the second electronic device 200 as a PC, and the input device 300 as a mouse as an example. This example does not constitute a specific limitation on the first electronic device 100, the second electronic device 200, and the input device 300. For example, the first electronic device 100 may also be replaced by a mobile phone, etc.

[0105] It is understandable that before the PAD and PC perform full-screen window dragging, the mobile phone and PC can first connect the keyboard and mouse. During the keyboard and mouse connection stage between the PAD and PC, the PAD can bind the communication services between the application framework layer and the keyboard and mouse module for mutual communication between subsequent modules. In addition, the application framework layer can apply to the keyboard and mouse module for a drag switch, and the keyboard and mouse module can decide whether to support window dragging based on the PAD configuration items and the situation of the PC, and return it to the application framework layer. If the PAD supports window dragging, the full-screen window dragging method of the embodiment of the present application can be executed.

[0106] For example, FIG6 shows a schematic diagram of the interaction flow of various modules in the PAD and PC software system in a scenario where a drag operation on a full-screen window is received from the PAD and the drag operation continues, causing the mouse to pass from the PAD to the PC.

[0107] The modules involved on the PAD side may include modules in the application layer and modules in the application framework layer.

[0108] The modules in the application layer can include a keyboard and mouse module, a screen projection module, and a system user interface (SystemUI) module. The keyboard and mouse module can be used for keyboard and mouse cross-monitoring, the screen projection module can be used for heterogeneous screen projection, and the SystemUI can be used to determine whether there is an operation to press the bar of a full-screen window.

[0109] Modules in the application framework layer may include: activity task manager, multi window gesture manager, multi window gesture consumer, multi window full animation helper, gesture animation controller, multi window top full hot area, multi window surface controller, multi display manager, and virtual input manager.

[0110] Among them, activity task management can be used for data transmission between SystemUI and multi-window gesture consumption, multi-window gesture management can be used to monitor various types of mouse events during mouse dragging, multi-window gesture consumption can be used to record information related to mouse events, multi-window full-screen assistant can be used to manage the dynamic drawing strategy when the cursor moves to the full-screen edge hot zone, gesture animation control can be used for data interaction between the multi-window full-screen assistant and the multi-window top hot zone, the multi-window top hot zone can be used to manage the animation when the cursor moves to the full-screen top hot zone, the multi-window surface controller can be used to control the display and hiding of animation, etc., multi-display management can be used for stack management, etc., multi-display management can also be called multi-screen management, virtual input management can be used to manage drag status and hiding of mask wallpaper, etc.

[0111] The interaction between the above modules in the application framework layer of PAD can be used to implement the services of motion effect management, drag process management and heterogeneous screen projection as shown in Figure 5.

[0112] The modules involved on the PC side may include a keyboard and mouse module and a screen projection module. The screen projection module is used to realize the screen projection of the application in the PAD full-screen window on the PC.

[0113] As shown in Figure 6, the interaction process between some modules in the PAD and PC software system may include the following steps:

[0114] S601 (not shown in the figure): SystemUI monitors a gesture press event, wherein the gesture press event may be generated by the user pressing the mouse in the draggable area of ​​the full-screen window.

[0115] The full-screen window may include a draggable area, which may include the area where the bar, the title bar is located, and / or the area near the title bar. For example, Figure 7 is a display interface of a PAD. Among them, the PAD displays the display interface of the status bar and the calculator APP. The display interface of the calculator APP is displayed in the form of a full-screen window. Among them, the area between the dotted line and the top of the full-screen window in Figure 7 can be set as a draggable area 701. The draggable area in the full-screen window can be managed by SystemUI.

[0116] When the keyboard and mouse sharing function is turned on in the PAD, the cursor 702 can be moved in the draggable area 701 through an input device such as a mouse. The cursor 702 can be an arrow shape as shown in Figure 7, or a circle or other arbitrary shape, which is not specifically limited in this embodiment of the application.

[0117] SystemUI can register to listen for gesture press (down) events in the draggable area. For example, SystemUI can register to listen for gesture press events in the draggable area through the function init bar view(). When the user presses the mouse in the draggable area, the PAD's SystemUI can listen for the gesture press (on gesture animation action down).

[0118] S602 (not shown in the figure): SystemUI indicates that there is a gesture press event in the multi-window gesture management.

[0119] For example, when SystemUI listens to the down event, SystemUI can instruct the multi-window gesture management that there is a gesture press event through the active task management. SystemUI can also transmit the cursor coordinates, press time and other information when the gesture press event occurs to the multi-window gesture management through the active task management.

[0120] The multi-window gesture manager can pre-initialize the gesture hot area, initializing mouse event monitoring for the draggable area within the full-screen window. When the multi-window gesture manager determines a gesture down event, it can initialize the input monitor. The multi-window gesture manager can also instruct the multi-window gesture consumer to record information such as the cursor coordinates and time of the action down event.

[0121] It should be noted that S601 and S602 of the embodiment of the present application are compatible with the native logic of gesture pressing in SystemUI, and there is no need to redevelop the code of this part, saving development costs.

[0122] S603: The multi-window gesture management monitors a move event of the draggable area and may indicate to the multi-window gesture consumer that there is a move event (action move).

[0123] When SystemUI indicates that the multi-window gesture manager has a gesture press event, the multi-window gesture manager can initialize an input listener, which can be used to monitor gesture move events in the draggable area.

[0124] When the user presses the mouse and drags the draggable area of ​​the full-screen window, the multi-window gesture management can monitor the movement event of the draggable area. The multi-window gesture management can also instruct the multi-window gesture management to consume information such as the cursor coordinates in the movement event.

[0125] It is understandable that the multi-window gesture management can continuously monitor the movement events of the draggable area and continuously provide information such as the coordinates of the cursor in the synchronized movement events to the multi-window gesture consumer.

[0126] S604: When the first move event occurs, the multi-window gesture consumer transmits information such as the application package name, application name, and application icon to the virtual input management.

[0127] The first move event can be understood as the first move event monitored by the multi-window gesture management after the systemUI indicates to the multi-window gesture management that a gesture down event has occurred in the draggable area.

[0128] For example, when the first move event occurs, the multi-window gesture management can indicate the move event (action move) to the multi-window gesture consumer, the multi-window gesture consumer can confirm the first move event (action first move), and the multi-window gesture consumer can determine the target application corresponding to the content displayed in the full-screen window, and obtain information such as the application package name, application name, and application icon (icon) of the target application. For example, the multi-window gesture consumer can obtain the target application from the gesture animation control.

[0129] Furthermore, the multi-window gesture consumer may transmit information such as the application package name, application name, and application icon to the virtual input manager.

[0130] S605: The virtual input management transmits information such as the application package name, application name, and application icon to the keyboard and mouse module of the PAD, and updates the drag state to the second value.

[0131] In an embodiment of the present application, both the virtual input management and the keyboard and mouse modules of the PAD can update the drag state to a second value, which can be used to indicate that a drag operation is in progress and the cursor is displayed in the PAD.

[0132] It is understandable that when there is no drag event, the drag status in the virtual input management and the keyboard and mouse module of the PAD can both be the first value, and the first value can be used to indicate that no drag operation is being performed.

[0133] S606 : The keyboard and mouse module of the PAD sends information such as the application package name, application name, and application icon to the keyboard and mouse module of the PC.

[0134] Based on S604-S606, multi-window gesture consumption can send application package name, application name and application icon and other information to the keyboard and mouse module of the PC in advance through virtual input management and the keyboard and mouse module of the PAD. In this way, when the cursor drags the full-screen window from the PAD to the PC, the PC can promptly draw the dynamic effect window through the application package name, application name and / or application icon and other information, so that the user can have the experience of dragging the full-screen window to the PC. Among them, the dynamic effect window of the PC will be explained in detail in the subsequent steps and will not be repeated here. Among them, the application package name can be the globally unique identifier of the application.

[0135] S607. The multi-window gesture consumption indicates that the multi-window full-screen assistant updates its displacement.

[0136] As the drag operation continues, the multi-window gesture manager continues to listen for move events. The multi-window gesture manager can continuously synchronize gesture move events and the coordinates (x, y) of the gesture move events to the multi-window gesture consumer. If the multi-window gesture consumer determines that this is not the first move, the multi-window gesture consumer can instruct the multi-window full-screen assistant to update the displacement.

[0137] Furthermore, the multi-window full-screen assistant can also instruct the multi-window full-screen assistant to move the cursor to a hot region (on move to region), which can also be understood as a draggable area. For example, the multi-window full-screen assistant can instruct the multi-window top hot region to calculate the cursor landing point. The multi-window top hot region can calculate the cursor landing point based on the coordinate point of the move event, and then the multi-window top hot region can instruct the multi-window full-screen assistant to move the cursor to the hot region.

[0138] S608: The multi-window full-screen assistant instructs the multi-window surface controller to perform animation drawing.

[0139] After the multi-window full-screen assistant determines that the cursor moves to the hot area, the multi-window full-screen assistant can instruct the multi-window surface controller to perform animation drawing.

[0140] Illustratively, the multi-window surface controller may be animated according to the following stages.

[0141] (1) The multi-window surface controller can draw an animation of the full-screen window shrinking, and draw a wallpaper mask under the shrunken full-screen window. Then the PAD can display the animation of the full-screen window shrinking, the wallpaper mask is displayed under the shrunken full-screen window, and the shrunken full-screen window includes a specific application running interface. In addition, the multi-window surface controller can also set the target application surface (surface) to be hidden, so that the full-screen window of the target application is not displayed. For example, as shown in Figure 8, still taking the full-screen window of the calculator APP in the PAD as an example, when the user drags the full-screen window of the calculator APP, the PAD displays the animation of the full-screen window shrinking, for example, the wallpaper mask 802 is displayed under the shrunken full-screen window 801.

[0142] (2) The multi-window surface controller can draw a motion effect window, and draw a wallpaper mask under the motion effect window. At this time, the PAD can display the motion effect window, and display the wallpaper mask under the motion effect window. The motion effect window can be understood as a motion effect window drawn by the PAD based on the package name and icon of the target application in the PAD full-screen window. The motion effect window does not include a specific application running interface. The size of the motion effect window can be a default value, or it can be related to the resolution of the PAD, etc., and the embodiment of the present application does not make specific limitations. For example, the user continues the dragging action, as shown in Figure 9, the reduced full-screen window 801 disappears, the motion effect window 901 drawn by the PAD is displayed, and the wallpaper mask 802 is displayed under the motion effect window.

[0143] It should be noted that stage (1) can be a very short time, after which the shrunken full-screen window disappears, the surface of the target application is hidden, and stage (1) can no longer be executed. After stage (1), the multi-window surface controller can query the value of the drag state according to a certain period. If the drag state is the second value, stage (2) is executed. In stage (2), the cursor can be displayed on the top of the animation window, and the animation window moves with the cursor. In this way, the user can experience the smooth process of the full-screen window from shrinking to following the drag in a continuous drag operation, thereby improving the user experience.

[0144] In the execution stage (2), the user can continue to drag the animation window 901 to the edge of the PAD screen. During this process, as shown in FIG10 , the portion of the animation window 901 that exceeds the edge of the PAD screen is not displayed, and the portion of the animation window 901 that does not exceed the edge of the PAD screen is displayed.

[0145] S609: The keyboard and mouse module of the PAD indicates to the virtual input management that a mouse crossing occurs.

[0146] During the drag operation, the keyboard and mouse module of the PAD can detect the movement status of the mouse in real time, so that when the mouse crosses the edge of the PAD display screen, the keyboard and mouse module of the PAD can monitor the occurrence of mouse crossing, and the keyboard and mouse module of the PAD can indicate the occurrence of mouse crossing to the virtual input management.

[0147] When the PAD's keyboard and mouse module detects a mouse crossing, the virtual input management and the PAD's keyboard and mouse module can first determine whether the drag state is the second value. If the drag state is the second value, the PAD's keyboard and mouse module and the virtual input management can both update the drag state to the third value, and the PAD's keyboard and mouse module can also synchronously indicate to the PC to display the window. If the drag state is not the second value, the PAD's keyboard and mouse module and the virtual input management may not update the drag state, and the PAD's keyboard and mouse module may not indicate to the PC to display the window.

[0148] It should be noted that the multi-window surface controller can continuously query the value of the drag status according to a certain period. If the drag status is updated to the third value, the multi-window surface controller can stop drawing the animation window and continue drawing the wallpaper mask, so that the wallpaper is displayed in the PAD instead of the animation window, so that the user experiences the effect of the target application being dragged away.

[0149] S610: The virtual input management instructs the multi-window gesture management to transfer the mouse to the PC.

[0150] S611. The multi-window gesture management shields (drops) all gesture events received on the PAD screen.

[0151] After receiving an indication that the mouse has been transferred to the PC, the multi-window gesture management system blocks all gesture events received on the PAD screen. This prevents the PAD from responding to user clicks and other actions, preventing the full-screen window drag from being interrupted. For example, after the mouse has been transferred from the PAD to the PC, if the user performs clicks, touches, or swipes on the PAD screen, the PAD will continue to display the wallpaper mask without redirecting.

[0152] S612: The keyboard and mouse module of the PAD indicates a display window to the keyboard and mouse module of the PC.

[0153] It should be noted that S612 can be executed synchronously with S609. For example, after the mouse crosses from the PAD to the PC, if the keyboard and mouse module of the PAD determines that the drag state is the second value, the keyboard and mouse module of the PAD indicates to the virtual input management that the mouse crosses, and simultaneously indicates to the keyboard and mouse module of the PC that the window is displayed.

[0154] Furthermore, the PC can draw a motion effect window. The motion effect window in the PC can be understood as a motion effect window drawn by the PC based on the package name and icon of the target application in the full-screen window of the PAD. The motion effect window does not include a specific application running interface. The size of the motion effect window can be a default value or related to the resolution of the PAD, etc., and the embodiments of this application do not make specific limitations.

[0155] During the drag operation, the portion of the PC's animation window that extends beyond the PC screen edge is not displayed, while the portion of the PC's animation window that does not extend beyond the PC screen edge is displayed. As the drag operation continues, the animation window can be fully displayed on the PC. FIG11 shows an interface diagram showing a wallpaper mask 802 displayed on the PAD and a complete PC animation window 1101 displayed on the PC.

[0156] It should be noted that when the mouse passes from the PAD to the PC, the initial display position of the animation window in the PC can be implemented differently.

[0157] In one possible implementation, when the mouse passes from the PAD to the PC, a full-screen window can be dragged out from the PAD and the PC's dynamic window can be displayed on the PC, with the position of the PC display edge and the PAD dragged edge being not much different.

[0158] For example, the PC can calculate the coordinates (x0, y0) after the cursor passes through, and then the keyboard and mouse module of the PC can set the coordinates of the left vertex of the animation window to (x1, y0±a), where x1 can be a preset value of the PC, and x1 can be used to define the distance between the left vertex of the animation window and the right edge of the PC screen. a can be a smaller value, because the vertical coordinate of the left vertex of the animation window of the PC is the same as or not much different from the vertical coordinate of the cursor. In this way, when a full-screen window is dragged out from the PAD and the animation window of the PC is displayed on the PC, the position of the edge dragged in by the PC and the edge dragged out by the PAD are not much different. For example, in combination with Figure 10, when the animation window 901 is dragged out from the upper 1 / 3 of the edge of the PAD screen, as shown in Figure 11, the animation window 1101 of the PC can pass through the upper 1 / 3 of the edge of the PC screen. In this way, the user can get the experience of dragging the window from the PAD to the PC smoothly without any lag.

[0159] Among them, one way for the PC to calculate the coordinates (x0, y0) after the cursor passes through is: when the PAD and PC keyboard and mouse are interconnected, their respective screen heights are exchanged with each other, so that the mapping relationship between the height of the PAD and the height of the PC is saved in both the PC and the PAD. When the mouse passes from the PAD to the PC, the keyboard and mouse module of the PAD can send the position where the mouse passes through to the keyboard and mouse module of the PC, and the keyboard and mouse module of the PC can calculate the coordinates (x0, y0) after the passage based on the position where the mouse passes through and the mapping relationship.

[0160] In another possible implementation, when the mouse passes from the PAD to the PC, the effect of the user dragging the draggable area of ​​the PC's animation window to move the PC's animation window can be presented. For example, the PC's keyboard and mouse module can set the coordinates of the cursor to the coordinates of any position in the draggable area of ​​the PC's animation window, so that the cursor can be displayed in the draggable area of ​​the PC's animation window, and the effect of the user dragging the draggable area of ​​the PC's animation window to move the PC's animation window can be presented on the PC (not shown in the figure).

[0161] It should be noted that the order of the steps shown in FIG6 can be adjusted according to specific scenarios, and the steps shown in FIG6 can also be deleted or added according to specific scenarios. Not all steps must be executed.

[0162] In the scenario shown in Figure 6 where the drag operation continues, causing the mouse to move from the PAD to the PC, there are two situations: Scenario 1: The user releases the mouse on the PC, the drag operation ends, and the content of the PAD full-screen window is triggered to be projected onto the PC; Scenario 2: The user does not release the mouse on the PC, the drag operation continues, and the mouse moves back from the PC to the PAD. The animated window on the PC is no longer displayed, but the animated window on the PAD is displayed again.

[0163] 12 , a schematic diagram of the interaction flow between the modules in the PAD and PC software systems in the above-mentioned cases 1 and 2 is shown below.

[0164] As shown in FIG12 , case 1 may include S613 to S616 , specifically:

[0165] S613: The keyboard and mouse module of the PC instructs the keyboard and mouse module of the PAD to release the mouse.

[0166] When the user releases the mouse on the PC, ending the drag operation, the PC's keyboard and mouse module can monitor the mouse up event and send a mouse up event to the PAD's keyboard and mouse module to indicate the mouse release. Subsequently, the PAD's keyboard and mouse module can inject the mouse up event into the PAD's FrameWork, for example, executing S614 and S615.

[0167] S614: The keyboard and mouse module of the PAD instructs the virtual input management to release the mouse.

[0168] In response to the received mouse UP event, the keyboard and mouse module of the PAD can update the drag state to the first value, indicating that the drag operation is ended. Alternatively, the virtual input management can update the drag state to the first value.

[0169] S615: The virtual input management indicates to the multi-window surface controller that the mouse is released.

[0170] It is understandable that during the above-mentioned process of the user pressing and dragging the mouse, if the mouse passes from the PAD to the PC and the mouse is not released, the window of the target application is hidden at the edge of the PAD and is invisible to the user. The multi-window surface controller draws the wallpaper mask, and what the user sees on the PAD is the wallpaper mask drawn by the multi-window surface controller.

[0171] In a typical Android implementation, when the multi-window surface controller receives a mouse release indication (e.g., a mouse up event), it can release the wallpaper mask (or understand it as no longer drawing the wallpaper mask), making the target application's surface visible again. If the target application is in app column mode, it also switches the app column mode to full screen mode.

[0172] This will cause the target application on the PAD to be restored from edge hiding to full-screen window display. Since it usually takes some time for the PC to pull up the heterogeneous screen projection, although the heterogeneous screen projection in the PC can pull up the projection window at this time, the content of the target application cannot be displayed in the projection window (for example, the projection window can display the projection animation preset by the PC, etc.), so the user sees the target application on the PAD displayed in full screen, but no target application content is displayed on the PC. The display situation of heterogeneous screen projection from PAD to PC that users usually know is: before the projection window on the PC displays the target application content, the target application on the PAD is not displayed (for example, the PAD displays the projection animation, etc.). Therefore, the above Android implementation usually leads to a situation that does not conform to the user's usual experience.

[0173] To solve this problem, if the process of the target application is killed, the target application will become invisible on the PAD, but the target application needs to run in heterogeneous screen projection. Killing the process of the target application will make heterogeneous screen projection impossible.

[0174] Therefore, in an embodiment of the present application, when the virtual input management instructs the multi-window surface controller to release the mouse, the virtual input management can also synchronously draw a wallpaper mask. The content of the wallpaper mask can be consistent with the content of the wallpaper mask drawn by the multi-window surface controller, but the level of the wallpaper mask is higher than the level of the full-screen window, so that the layer where the wallpaper mask is located can be located on the surface (Surface) of the target application. In this way, although the surface (Surface) of the target application in the PAD is restored to be visible, the full-screen window of the target application is obscured by the higher-level wallpaper mask. Therefore, the wallpaper is still displayed in the PAD, and the user does not perceive the process of the target application window switching to full screen in the PAD, which is in line with the user's usual heterogeneous screen projection experience.

[0175] S616. The keyboard and mouse module of the PC instructs the screen projection module of the PC to start heterogeneous screen projection.

[0176] After the multi-window surface controller releases the wallpaper mask, restores the target application surface to visible, and switches the target application to full-screen mode, the multi-window surface controller can instruct the start of screen projection. For example, the multi-window surface controller can instruct the keyboard and mouse module of the PAD to start screen projection through multi-display management and virtual input management. Further, the keyboard and mouse module of the PAD instructs the keyboard and mouse module of the PC to start screen projection. Further, the keyboard and mouse module of the PC instructs the screen projection module of the PC to start screen projection, wherein the screen projection is heterogeneous screen projection.

[0177] After the PC's screen projection module starts heterogeneous screen projection, the PC's screen projection module can instruct the PAD's multi-display management to start stack shifting. After receiving the instruction to start stack shifting, the PAD's multi-display management can create a virtual display (Display), and can also shift the target application's task (task) from the main screen to the virtual display, and send the virtual display's data to the PC, so that the application in the full-screen window can be displayed in full screen projection on the PC.

[0178] It should be noted that after the PC's screen projection module starts heterogeneous screen projection, the display of the animation window can be canceled in the PC and the projection window can be pulled up. The size of the projection window can be greater than or equal to the size of the animation window, the display area of ​​the projection window can cover the area of ​​the animation window, or the center position of the projection window can be the same as or not far from the center position of the animation window.

[0179] After the PC obtains the virtual display data, it can display the PAD's screen content in the projection window. This allows you to drag the PAD's full-screen window to the PC, making it easy to project screens from different sources on the PC.

[0180] It can be understood that in the above-mentioned heterogeneous screen projection stack, after the multi-display management of the PAD completes the stack shift, the multi-display management in the PAD can also instruct the virtual input management to clean up the wallpaper, and the virtual input management ends the drawing of the wallpaper mask (or is understood as the wallpaper mask of the virtual input management exits), so that the desktop can be displayed in the PAD, etc.

[0181] In addition, multi-window gesture management can unblock all gesture events (or restore mouse event consumption), so that mouse events can be monitored in the PAD, and the user can continue to control the PAD using fingers and / or mouse.

[0182] For example, Figure 13 shows a schematic diagram of the calculator app in the PAD being projected onto the PC from a different source after the user releases the mouse on the PC. The PC can display the full-screen window of the calculator app in the projection window 1300. It is understandable that because in the projection, the PAD transmits data from the virtual display to the PC, and the data displayed by the PAD is not the data of the virtual display, the content displayed on the PAD may be different from the content displayed in the projection window of the PC.

[0183] Optionally, as shown in Figure 13, a control 1301 can also be displayed in the projection window of the PC, and the control 1301 can be called a home button. When the home button is triggered, the heterogeneous projection of the PC and the PAD can be switched to homogeneous projection. At this time, the PAD sends the relevant data displayed in the PAD to the PC, so that the PC displays the relevant data displayed in the PAD in the projection window. Exemplarily, as shown in Figure 14, after switching to homogeneous projection, the content displayed in the projection window 1300 of the PC is the same as the content displayed on the PAD, thereby conveniently realizing the switching from heterogeneous projection to homogeneous projection.

[0184] As shown in FIG12 , the second scenario may include S620 to S623 , specifically:

[0185] S620: The keyboard and mouse module of the PAD instructs the keyboard and mouse module of the PC to pass the mouse back to the PAD.

[0186] During the drag operation, the mouse may pass through the edge of the PC display screen to the PAD, and the keyboard and mouse module of the PAD can detect that the mouse passes back to the PAD.

[0187] When the mouse passes back from the PC to the PAD, the keyboard and mouse module of the PAD can determine whether the drag state is the third value. If the drag state is the third value, the keyboard and mouse module of the PAD can update the drag state to the second value.

[0188] S621: The keyboard and mouse module of the PAD instructs the virtual input management to pass the mouse back to the PAD.

[0189] After the virtual input management receives the indication that the mouse passes back to the PAD, the virtual input management may determine whether the drag state is the third value. If the drag state is the third value, the virtual input management may update the drag state to the second value.

[0190] S622: The virtual input management instructs the multi-window gesture management to return the mouse to the PAD.

[0191] Multi-window gesture management can unblock all gesture events, allowing the PAD to monitor mouse events.

[0192] In addition, the virtual input management also instructs the multi-window surface controller to pass the mouse back to the PAD, triggering the multi-window surface controller to draw the animation window of the PAD, and draw the wallpaper mask under the animation window of the PAD. For example, after the virtual input management instructs the multi-window surface controller to pass the mouse back to the PAD, the multi-window surface controller queries the drag state value as the second value, then the multi-window surface controller draws the animation window of the PAD, and draws the wallpaper mask under the animation window of the PAD.

[0193] It is understandable that when the multi-window surface controller draws the PAD's dynamic window and draws the wallpaper mask under the PAD's dynamic window, the surface of the target application is still hidden and the user cannot see the target application's window in the PAD.

[0194] When the subsequent drag operation continues on the PAD, the PAD can realize the movement of the PAD's dynamic window position with the cursor based on the drag logic of the Android full-screen application.

[0195] It should be noted that, when the PC's animation window is continuously dragged to the PAD in the PC, the portion of the PC's animation window that exceeds the edge of the PC screen is not displayed, and the portion of the PC's animation window that does not exceed the edge of the PC screen is displayed. For example, as shown in FIG15 , when the cursor drags the PC's animation window 1101 close to the edge of the screen (the cursor does not pass back to the PAD), the multi-window surface controller in the PAD can draw a wallpaper mask, the wallpaper can be displayed in the PAD, and the PC displays a schematic diagram of the interface of the animation window 1101 of the PC. As the dragging operation proceeds, the mouse passes back from the PC to the PAD.

[0196] After the mouse passes from the PC back to the PAD, the animation window in the PAD is displayed, and the animation window display of the PC is canceled in the PC. Figure 16 shows an interface diagram of displaying the animation window 901 of the PAD in the PAD and canceling the animation window display of the PC in the PC.

[0197] It should be noted that when the mouse passes from the PC to the PAD, the initial display position of the animation window in the PAD can be implemented differently.

[0198] In one possible implementation, when the mouse passes from the PC to the PAD, a dynamic window can be dragged out from the PC and the dynamic window of the PAD is displayed on the PAD, and the position of the PAD display edge and the PC dragged edge are not much different.

[0199] For example, the PAD can calculate the coordinates (x2, y2) after the cursor passes through, and then the keyboard and mouse module of the PAD can set the coordinates of the right vertex of the animation window to (x3, y2±a), where x3 can be a preset value of the PAD, and x3 can be used to define the distance between the right vertex of the animation window and the left screen edge of the PAD, and a can be a smaller value, because the vertical coordinate of the right vertex of the animation window of the PAD is the same as or not much different from the vertical coordinate of the cursor, so that when the animation window is dragged out from the PC and the animation window of the PAD is displayed on the PAD, the position of the PAD dragged-in edge and the PC dragged-out edge are not much different. For example, in combination with Figure 15, when the animation window 1101 is dragged out from the upper 1 / 3 of the PC screen edge, as shown in Figure 16, the PAD animation window 901 can pass through the upper 1 / 3 of the PAD screen edge. In this way, the user can get the experience of dragging the window from the PC to the PAD smoothly without any lag.

[0200] Among them, one way for the PAD to calculate the coordinates (x2, y2) after the cursor passes through is: when the PC and PAD keyboard and mouse are interconnected, the respective screen heights are exchanged with each other, so that the mapping relationship between the height of the PC and the height of the PAD is saved in both the PAD and the PC. When the mouse passes from the PC to the PAD, the keyboard and mouse module of the PC can send the position where the mouse passes through to the keyboard and mouse module of the PAD, and the keyboard and mouse module of the PAD can calculate the coordinates (x2, y2) after the passage based on the position where the mouse passes through and the mapping relationship.

[0201] In another possible implementation, when the mouse passes from the PC to the PAD, the effect of the user dragging the draggable area of ​​the PAD's animation window to move the PAD's animation window can be presented. For example, the PAD's keyboard and mouse module can set the coordinates of the cursor to the coordinates of any position in the draggable area of ​​the PAD's animation window, so that the cursor can be displayed in the draggable area of ​​the PAD's animation window, and the effect of the user dragging the draggable area of ​​the PAD's animation window to move the PAD's animation window can be presented in the PAD (not shown in the figure).

[0202] It is understandable that if the mouse is released after it passes from the PC back to the PAD and the drag operation ends, the PAD can exit the drag animation related process, clean up the data, and restore the full-screen window display. This embodiment of the present application does not make specific limitations.

[0203] It should be noted that the order of the steps shown in FIG. 12 can be adjusted according to specific scenarios, and the steps shown in FIG. 12 can also be deleted or added according to specific scenarios. Not all steps must be executed.

[0204] The above exemplifies the software interaction process of the full-screen window dragging method of the present application in combination with the various software modules in the PAD and PC. The following further describes in detail the full-screen window dragging method of the embodiment of the present application in combination with the step process.

[0205] For example, FIG17 shows a flowchart of a full-screen window dragging method provided in an embodiment of the present application.

[0206] The full-screen window dragging method of the embodiment of the present application can be applied to a communication system, which includes a first electronic device installed with a first operating system and a second electronic device installed with a second operating system, the first electronic device or the second electronic device is connected to an input device, and the first operating system is different from the second operating system.

[0207] The communication system can refer to the description of FIG. 1 and FIG. 2 , and the first electronic device and the second electronic device can refer to the description of the above embodiments, which will not be described in detail.

[0208] As shown in FIG17 , the method includes:

[0209] S1701: The first electronic device displays a first cursor and a full-screen window of a first application, where the first cursor is located on the full-screen window.

[0210] For example, S1701 may correspond to the description of the display interface of FIG7 , and the first cursor may correspond to the cursor in the interface, which will not be described in detail. It is understood that in the embodiment of the present application, the first application may correspond to the target application of the above embodiment, and the first application may be any application without limitation.

[0211] S1702: When the user controls the first cursor through the input device to select and drag the full-screen window, the first electronic device displays a reduced full-screen window.

[0212] Exemplarily, S1702 may correspond to the relevant description of the display interface of FIG. 8 .

[0213] S1703. When the first cursor drags the full-screen window to the first position, the first electronic device displays the wallpaper and displays the first motion effect window at the first position, and stops displaying the full-screen window. The first motion effect window includes a first identifier of the first application. The first motion effect window is located on an upper layer of the wallpaper, and the size of the first motion effect window is smaller than the size of the full-screen window.

[0214] In an embodiment of the present application, after the first electronic device briefly displays a reduced full-screen window, it can display a first motion effect window. The first motion effect window can be understood as a motion effect window displayed in the first electronic device. The first motion effect window includes a first identifier of the first application. The first identifier includes, for example, an icon and / or name of the first application. The first position can be any position in the display screen of the first electronic device. For example, S1703 can correspond to the relevant description of Figure 9, and the first motion effect window can be motion effect window 901.

[0215] S1704. During the process of the first cursor dragging the first animation window, when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first electronic device displays the wallpaper and stops displaying the first animation window, and the second electronic device displays the second animation window dragged by the first cursor, and the second animation window includes the second identifier of the first application.

[0216] In the embodiment of the present application, the second animation window can be understood as a animation window displayed in the second electronic device. The second animation window includes a second identifier of the first application. The second identifier includes, for example, the icon and / or name of the first application. It is understandable that the first identifier and the second identifier can be the same or different, as long as they can identify the first application. The sizes of the first animation window and the second animation window can be the same or different, without limitation.

[0217] Exemplarily, S1704 may correspond to the relevant descriptions of FIG. 10 and FIG. 11 , and the second animation window may be the animation window 1101 .

[0218] S1705. During the process of dragging the second animation window by the first cursor, when it is detected that the user releases the first cursor at the second position through the input device, the second electronic device displays the projection window at the second position and stops displaying the second animation window. When part or all of the content of the full-screen window is not displayed in the projection window of the second electronic device, the first electronic device displays the wallpaper and sets the layer where the full-screen window is located to the lower layer of the wallpaper.

[0219] In the embodiment of the present application, the second position may be any position on the display screen of the second electronic device. The projection window may be a window on the second electronic device for displaying the projection content of the first application.

[0220] It is understandable that it takes some time for the second electronic device to pull up the projection window and display the content of the first application in the projection window. During this period, the projection window of the second electronic device may display projection animation or a black screen mask, etc. Displaying wallpaper in the first electronic device can prevent the user from perceiving the process of the window of the first application switching to full screen in the first electronic device, which is in line with the user's usual heterogeneous projection experience. For the specific implementation, please refer to the relevant description in S615 and will not be elaborated on.

[0221] In an embodiment of the present application, after dragging a full-screen window of a first electronic device to a second electronic device, heterogeneous screen projection can be performed on the second electronic device, thereby increasing the richness of device interaction. Furthermore, during the period between when the user releases the mouse on the second electronic device and when the actual projected content is displayed in the projection window of the second electronic device, a wallpaper is displayed on the first electronic device. This prevents the user from noticing the first application window switching to full screen on the first electronic device, thereby improving the user experience.

[0222] It can be understood that based on the embodiment of Figure 17, there are some possible implementations of the embodiment of the present application, and each possible implementation can also correspond to some expressions in the above embodiments. Similar contents will not be repeated here.

[0223] In one possible implementation, after S1705, the method of the embodiment of the present application further includes: when part or all of the content of the full-screen window is displayed in the projection window, the first electronic device stops displaying the wallpaper and displays the desktop.

[0224] Exemplarily, this step may correspond to the relevant description of Figure 13. In this way, after implementing heterogeneous screen projection in the second electronic device, the first electronic device can support the user to implement other functions.

[0225] In one possible implementation, when the second electronic device detects that the user releases the first cursor at the second position through the input device, the second electronic device also sends a cursor release event to the first electronic device; in response to the cursor release event, the first electronic device also moves the stack; after the first electronic device completes the stack shift, part or all of the content of the full-screen window is displayed in the projection window, and the first electronic device stops displaying the wallpaper.

[0226] For example, the cursor release event may correspond to the mouse up event mentioned above. Specific implementation may refer to the description of the first case in FIG12 , which will not be described in detail.

[0227] In one possible implementation, the first electronic device includes a first module and a second module; the first module and the second module are different; when the first cursor drags the full-screen window to the first position, the first module draws the first animation window and draws the wallpaper below the first animation window; when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first module draws the wallpaper and does not draw the first animation window; in response to a cursor release event, the first module ends drawing the wallpaper, and the second module draws the wallpaper located on the upper layer of the full-screen window; after part or all of the content of the full-screen window is displayed in the projection window, the second module ends drawing the wallpaper.

[0228] In the embodiment of the present application, the first module can implement the function of the multi-window surface controller in the above embodiment, and the second module can implement the function of the virtual input management in the above embodiment. For details, please refer to the description of the corresponding embodiments in Figures 6 and 12, and no further details will be given.

[0229] In one possible implementation, the second module maintains a drag state value, which includes a first value, a second value, and a third value; when the user controls the first cursor through an input device to select and drag the full-screen window, the second module updates the drag state value from the first value to the second value; when the first cursor drags the full-screen window to the first position, the first module queries that the drag state value is the second value, the first module draws the first animation window, and draws the wallpaper under the first animation window; when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the second module updates the drag state value from the second value to the third value, the first module queries that the drag state value is the third value, the first module draws the wallpaper, and does not draw the first animation window; in response to a cursor release event, the second module updates the drag state value from the third value to the first value.

[0230] The maintenance of the dragging state may be specifically described with reference to the description of the corresponding embodiments in FIG. 6 and FIG. 12 , and will not be elaborated on herein.

[0231] In one possible implementation, when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, if the first electronic device determines that the value of the drag state is a second value, the first electronic device also sends information for indicating a display window to the second electronic device; the second electronic device displays the second animation window dragged by the first cursor, including: in response to the information for indicating the display window, the second electronic device displays the second animation window dragged by the first cursor.

[0232] In the embodiment of the present application, by setting the drag state, when a mouse traverse occurs, the electronic device can determine whether the mouse traverse is a cursor traverse without a drag event (for example, the user does not press the mouse button and simply moves the mouse to traverse between electronic devices), or a cursor dragging window traverse with a drag event (for example, the user presses the mouse button in a full-screen window and moves the mouse to drag the full-screen window to traverse between electronic devices). For details, please refer to the description of the corresponding embodiments of Figures 6 and 12, and no further details are given.

[0233] In one possible implementation, the first electronic device stops displaying the full-screen window, including: the first module sets the display attribute of the first application to hidden; in response to a cursor release event, the first module also sets the display attribute of the first application to visible, and sets the first application to full-screen mode.

[0234] In an embodiment of the present application, the display properties of the first application can be used to set the visibility or hiding of the first application. For example, the display properties may include the above-mentioned surface. The setting of the display properties can be specifically described with reference to the description of the corresponding embodiments of Figures 6 and 12, and will not be repeated here.

[0235] In one possible implementation, when the user controls the first cursor to select the draggable area of ​​the full-screen window by pressing the input device, the first electronic device monitors the gesture press event; the first electronic device registers an input monitor based on the gesture press event, and the input monitor is used to monitor the movement event of the draggable area.

[0236] The specific implementation of this process can be referred to the description of the corresponding embodiments in Figures 6 and 12, which will not be described in detail. In this way, when the subsequent drag operation continues, the cursor move event can be monitored through the task locator, without calling the moving task every time, saving computing resources.

[0237] In one possible implementation, when the first electronic device detects the first movement event of the draggable area, the first electronic device sends the identification information of the first application to the second electronic device. The identification information includes: application package name, application name and / or application icon. This allows the second electronic device to draw an animated window in a timely manner based on the application package name, application name and / or application icon when the cursor subsequently drags the full-screen window from the first electronic device to the second electronic device, so that the user can experience the experience of dragging a floating window to the second electronic device.

[0238] In one possible implementation, when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first electronic device also blocks gesture events in the first electronic device; after the first electronic device completes the stack shift, the first electronic device also unblocks gesture events in the first electronic device. In this way, when the screen of the first electronic device receives a user click or other operation, the first electronic device does not respond, and the execution process of dragging the full-screen window is not interrupted.

[0239] In one possible implementation, the method of an embodiment of the present application further includes: during the process of the first cursor dragging the second animation window, when the first cursor moves from the second screen edge of the second electronic device to the first screen edge of the first electronic device, the first electronic device displays the first animation window dragged by the first cursor, the first animation window is located on the upper layer of the wallpaper, and the second electronic device stops displaying the second animation window. In this way, it is possible to support the user to drag the full-screen window of the first electronic device to the second electronic device, and also to support the full-screen window to be dragged from the second electronic device back to the first electronic device, enriching the device interaction scenario.

[0240] It should be noted that the module names involved in the embodiments of the present application can be defined as other names as long as the functions of each module can be achieved, and there is no specific restriction on the names of the modules.

[0241] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in the embodiments of the present application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0242] The full-screen window dragging method of the embodiment of the present application has been described above. The following describes the device for executing the full-screen window dragging method provided by the embodiment of the present application. Those skilled in the art will understand that the method and device can be combined and referenced with each other, and the relevant device provided by the embodiment of the present application can perform the steps in the above-mentioned list sorting method.

[0243] In order to achieve the above functions, the device for implementing full-screen window dragging includes hardware structures and / or software modules that perform the corresponding functions. It should be easily appreciated by those skilled in the art that, in combination with the method steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0244] In the embodiment of the present application, the functional modules of the device for implementing the full-screen window dragging method can be divided according to the above-mentioned method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The integrated module can be implemented in the form of hardware or in the form of a software functional module. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation.

[0245] FIG18 is a schematic diagram of the structure of a chip provided in an embodiment of the present application. The chip 180 includes one or more (including two) processors 1801 , a communication line 1802 , a communication interface 1803 , and a memory 1804 .

[0246] In some embodiments, the memory 1804 stores the following elements: executable modules or data structures, or a subset thereof, or an extended set thereof.

[0247] The method described in the above embodiment of the present application can be applied to the processor 1801, or implemented by the processor 1801. The processor 1801 may be an integrated circuit chip with signal processing capabilities. During the implementation process, each step of the above method can be completed by an integrated logic circuit of the hardware in the processor 1801 or an instruction in the form of software. The above-mentioned processor 1801 can be a general-purpose processor (for example, a microprocessor or a conventional processor), a digital signal processor (digital signal processing, DSP), an application specific integrated circuit (application specific integrated circuit, ASIC), a field-programmable gate array (field-programmable gate array, FPGA) or other programmable logic devices, discrete gates, transistor logic devices or discrete hardware components. The processor 1801 can implement or execute the methods, steps and logic block diagrams related to each processing disclosed in the embodiment of the present application.

[0248] The steps of the method disclosed in the embodiments of the present application can be directly implemented as being executed by a hardware decoding processor, or can be implemented by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as a random access memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable read-only memory (EEPROM). The storage medium is located in memory 1804, and processor 1801 reads the information in memory 1804 and performs the steps of the above method in conjunction with its hardware.

[0249] The processor 1801 , the memory 1804 , and the communication interface 1803 can communicate with each other via the communication line 1802 .

[0250] In the above embodiment, the instructions stored in the memory for execution by the processor may be implemented in the form of a computer program product, wherein the computer program product may be pre-written in the memory or downloaded and installed in the memory in the form of software.

[0251] The present application also provides a computer program product including one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that a computer can store or a data storage device such as a server or data center that includes one or more available media integrated. For example, the available medium can include magnetic media (e.g., floppy disk, hard disk or tape), optical media (e.g., digital versatile disc (DVD)), or semiconductor media (e.g., solid state disk (SSD)).

[0252] The present application also provides a computer-readable storage medium. The methods described in the above embodiments can be implemented in whole or in part via software, hardware, firmware, or any combination thereof. Computer-readable media can include computer storage media and communication media, and can also include any medium that can transfer a computer program from one location to another. The storage medium can be any target medium that can be accessed by a computer.

[0253] As one possible design, computer-readable media may include compact disc read-only memory (CD-ROM), RAM, ROM, EEPROM, or other optical disc storage; computer-readable media may include magnetic disk storage or other magnetic disk storage devices. Moreover, any connecting line may also be appropriately referred to as a computer-readable medium. For example, if software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically, while discs reproduce data optically using lasers.

[0254] The present application embodiment is described with reference to the flow chart and / or block diagram according to the method, device (system) and computer program product of the embodiment of the present application.It should be understood that each flow process and / or box in the flow chart and / or block diagram and the combination of the flow process and / or box in the flow chart and / or block diagram can be realized by computer program instructions.These computer program instructions can be provided to the processing unit of general-purpose computer, special-purpose computer, embedded processing machine or other programmable data processing equipment to produce a machine, so that the instruction executed by the processing unit of computer or other programmable data processing equipment produces the device for realizing the function specified in one flow chart flow chart or multiple flow charts and / or one block or multiple blocks of block diagram.

Claims

1. A full-screen window dragging method, characterized in that: Applied to a communication system, the communication system includes a first electronic device installed with a first operating system and a second electronic device installed with a second operating system, the first electronic device or the second electronic device is connected to an input device, the first operating system is different from the second operating system, and the method includes: The first electronic device displays a first cursor and a full-screen window of a first application, wherein the first cursor is located on the full-screen window; When the user controls the first cursor to select and drag the full-screen window through the input device, the first electronic device displays the reduced full-screen window; When the first cursor drags the full-screen window to a first position, the first electronic device displays the wallpaper, displays a first motion effect window at the first position, and stops displaying the full-screen window, wherein the first motion effect window includes a first identifier of the first application, is located on an upper layer of the wallpaper, and has a size smaller than that of the full-screen window; In the process of dragging the first motion effect window by the first cursor, when the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first electronic device displays the wallpaper, stops displaying the first motion effect window, and the second electronic device displays the second motion effect window dragged by the first cursor, and the second motion effect window includes the second identifier of the first application; During the process of the first cursor dragging the second motion effect window to move, when it is detected that the user releases the first cursor at the second position through the input device, the second electronic device displays the projection window at the second position and stops displaying the second motion effect window; When part or all of the content of the full-screen window is not displayed in the projection window of the second electronic device, the first electronic device displays the wallpaper and sets the layer where the full-screen window is located under the wallpaper.

2. The method according to claim 1, characterized in that The method further comprises: When part or all of the content of the full-screen window is displayed in the projection window, the first electronic device stops displaying the wallpaper and displays the desktop.

3. The method according to claim 2, characterized in that When detecting that the user releases the first cursor at the second position through the input device, the second electronic device further sends a cursor release event to the first electronic device; In response to the cursor release event, the first electronic device performs stack shifting; After the first electronic device completes the stack shift, part or all of the content of the full-screen window is displayed in the screen projection window, and the first electronic device stops displaying the wallpaper.

4. The method according to claim 3, characterized in that The first electronic device includes a first module and a second module; the first module and the second module are different; When the first cursor drags the full-screen window to the first position, the first module draws the first motion effect window and draws the wallpaper under the first motion effect window; When the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first module draws the wallpaper and does not draw the first motion effect window; In response to the cursor release event, the first module ends drawing the wallpaper, and the second module draws the wallpaper located on an upper layer of the full-screen window; After part or all of the content of the full-screen window is displayed in the projection window, the second module ends drawing the wallpaper.

5. The method according to claim 4, characterized in that The second module maintains a value of the drag state, and the value of the drag state includes a first value, a second value and a third value; When the user controls the first cursor to select and drag the full-screen window through the input device, the second module updates the value of the drag state from the first value to the second value; When the first cursor drags the full-screen window to the first position, the first module queries that the value of the dragging state is the second value, and the first module draws the first motion effect window and draws the wallpaper under the first motion effect window; When the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the second module updates the value of the drag state from the second value to the third value, the first module queries that the value of the drag state is the third value, and the first module draws the wallpaper, and does not draw the first motion effect window; In response to the cursor release event, the second module updates the value of the drag state from the third value to the first value.

6. The method according to claim 5, characterized in that When the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, if the first electronic device determines that the value of the drag state is the second value, the first electronic device further sends information for indicating a display window to the second electronic device; The second electronic device displays the second animation window dragged by the first cursor, comprising: in response to the information for indicating a display window, the second electronic device displays the second animation window dragged by the first cursor.

7. The method according to any one of claims 4 to 6, characterized in that: The first electronic device stopping displaying the full-screen window comprises: the first module setting the display attribute of the first application to hidden; In response to the cursor release event, the first module also sets a display attribute of the first application to visible, and sets the first application to full screen mode.

8. The method according to any one of claims 1 to 7, characterized in that: When the user controls the first cursor to select the draggable area of ​​the full-screen window by pressing the input device, the first electronic device monitors a gesture pressing event; The first electronic device registers an input monitor according to the gesture press event, where the input monitor is used to monitor the movement event of the draggable area.

9. The method according to claim 8, characterized in that When the first electronic device monitors the first movement event of the draggable area, the first electronic device sends identification information of the first application to the second electronic device, where the identification information includes: application package name, application name and / or application icon.

10. The method according to any one of claims 1 to 9, characterized in that: When the first cursor moves from the first screen edge of the first electronic device to the second screen edge of the second electronic device, the first electronic device also shields gesture events in the first electronic device; When the first electronic device completes stack shifting, the first electronic device also unshields gesture events in the first electronic device.

11. The method according to any one of claims 1 to 10, characterized in that: Also includes: During the process of the first cursor dragging the second motion effect window, when the first cursor moves from the second screen edge of the second electronic device to the first screen edge of the first electronic device, the first electronic device displays the first motion effect window dragged by the first cursor, the first motion effect window is located on the upper layer of the wallpaper, and the second electronic device stops displaying the second motion effect window.

12. A communication system, characterized in that: The communication system includes a first electronic device installed with a first operating system and a second electronic device installed with a second operating system, the first electronic device or the second electronic device is connected to an input device, the first operating system is different from the second operating system, the first electronic device executes the method executed by the first electronic device as described in any one of claims 1-11, or the second electronic device executes the method executed by the second electronic device as described in any one of claims 1-11.

13. An electronic device, characterized in that: include: Processor and memory; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory, so that the electronic device executes the method executed by the first electronic device as described in any one of claims 1-11, or executes the method executed by the second electronic device as described in any one of claims 1-11.

14. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the computer program implements the method performed by the first electronic device as described in any one of claims 1 to 11, or implements the method performed by the second electronic device as described in any one of claims 1 to 11.

15. A computer program product, characterized in that It includes a computer program, which, when executed, enables a computer to execute the method executed by the first electronic device as claimed in any one of claims 1 to 11, or to execute the method executed by the second electronic device as claimed in any one of claims 1 to 11.

Citation Information

Patent Citations

  • Screen projection method and electronic device

    CN110597473A

  • Screen projection method and electronic equipment

    CN114691067A

  • Object dragging method and device

    WO2021212922A1

Cited By

  • Display method and device based on interaction

    CN120670066A