Skip to content

Commit 3d9ad6f

Browse files
authored
Arcane Viewer 1.0.7 (#10)
- **Mouse Positioning Fix:** Resolved an issue where the mouse position was incorrect when the remote desktop is smaller than the local desktop in mirror mode. The mouse is now accurately positioned across screens of different sizes. - **`CTRL+[A-Z]` Shortcut Fix for Windows:** Fixed a bug on the Windows client where `CTRL + [A-Z]` keyboard shortcuts were not functioning properly. Shortcuts are now correctly processed. - **Connection Window Enhancements:** Pressing ESC on the connection window now closes the application. Pressing ENTER or RETURN starts the connection process immediately.
1 parent ed6462f commit 3d9ad6f

5 files changed

Lines changed: 40 additions & 17 deletions

File tree

README.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,25 @@ The project was renamed to Arcane to avoid the generic nature of the previous na
3939

4040
## Quick Setup ([PyPi.org](https://pypi.org))
4141

42-
The recommended way to install and launch the Arcane viewer is to first create a virtual environment. This can be done using **virtualenv** as follows:
42+
*Creating a virtual environment is recommended to avoid conflicts with other Python packages but is not required.*
4343

4444
```bash
4545
pip install virtualenv
4646
python -m venv venv
47+
```
48+
49+
### macOS / Linux
50+
51+
```bash
4752
source venv/bin/activate
4853
```
4954

55+
### Windows
56+
57+
```bash
58+
.\venv\Scripts\activate
59+
```
60+
5061
You can either install the official package from PyPi.org:
5162

5263
```bash
@@ -71,10 +82,11 @@ For detailed instructions on how to use and configure the Arcane Server, please
7182

7283
## Version Table
7384

74-
| Version | Protocol Version | Release Date | Compatible Servers |
75-
|---------|------------------|-------------------|--------------------|
85+
| Version | Protocol Version | Release Date | Compatible Servers |
86+
|---------|------------------|-------------------|-----------------------------------------------------------------------|
7687
| 1.0.5b | 5.0.1 | 22 August 2024 | [1.0.4](https://github.com/PhrozenIO/ArcaneServer/releases/tag/1-0-4) |
77-
| 1.0.6 | 5.0.2 | 17 September 2024 | |
88+
| 1.0.6 | 5.0.2 | 17 September 2024 | [1.0.5](https://github.com/PhrozenIO/ArcaneServer/releases/tag/1-0-5) |
89+
| 1.0.7 | 5.0.2 | 30 September 2024 | [1.0.5](https://github.com/PhrozenIO/ArcaneServer/releases/tag/1-0-5) |
7890

7991
> ⓘ You can use any version of the viewer with any version of the server, as long as the protocol version matches. The protocol version ensures compatibility between the viewer and the server.
8092
@@ -104,6 +116,12 @@ For detailed instructions on how to use and configure the Arcane Server, please
104116

105117
## Change Log
106118

119+
### Version 1.0.7
120+
121+
- **Mouse Positioning Fix:** Resolved an issue where the mouse position was incorrect when the remote desktop is smaller than the local desktop in mirror mode. The mouse is now accurately positioned across screens of different sizes.
122+
- **`CTRL+[A-Z]` Shortcut Fix for Windows:** Fixed a bug on the Windows client where `CTRL + [A-Z]` keyboard shortcuts were not functioning properly. Shortcuts are now correctly processed.
123+
- **Connection Window Enhancements:** Pressing ESC on the connection window now closes the application. Pressing ENTER or RETURN starts the connection process immediately.
124+
107125
### Version 1.0.6
108126

109127
- [x] **Arcane Protocol Update:** The protocol has been upgraded to version 5.0.2, bringing support for several server improvements, including dynamic display resolution updates, HDPI settings changes, and Secure Desktop support for Remote Desktop Streaming and Input (Mouse, Keyboard, Clipboard).]

arcane_viewer/arcane/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def get_asset_file(asset_name: str) -> str:
2525

2626

2727
# Application Information
28-
APP_VERSION = "1.0.6"
28+
APP_VERSION = "1.0.7"
2929
APP_NAME = "Arcane"
3030
APP_ORGANIZATION_NAME = "Phrozen"
3131
APP_DISPLAY_NAME = f"{APP_NAME} {APP_VERSION}"

arcane_viewer/ui/custom_widgets/tangeant_universe.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,8 @@ def fix_mouse_position(self, x: Union[int, float], y: Union[int, float]) -> Tupl
7070
if self.desktop_screen is None:
7171
return x, y
7272

73-
if self.desktop_screen.width > self.width():
74-
x_ratio = self.desktop_screen.width / self.width()
75-
else:
76-
x_ratio = self.width() / self.desktop_screen.width
77-
78-
if self.desktop_screen.height > self.height():
79-
y_ratio = self.desktop_screen.height / self.height()
80-
else:
81-
y_ratio = self.height() / self.desktop_screen.height
73+
x_ratio = self.desktop_screen.width / self.width()
74+
y_ratio = self.desktop_screen.height / self.height()
8275

8376
# We must take in account both virtual desktop size and original screen X, Y position.
8477
return (self.desktop_screen.x + (x * x_ratio),
@@ -218,7 +211,7 @@ def keyPressEvent(self, event: Optional[QKeyEvent]) -> None:
218211
# Handle Ctrl + C, Ctrl + V, Ctrl + X etc.. CTRL + [A-Z]
219212
if (Qt.Key.Key_A <= event.key() <= Qt.Key.Key_Z) and \
220213
event.modifiers() == Qt.KeyboardModifier.ControlModifier:
221-
key_text = "{^}" + event.text().upper()
214+
key_text = "{^}" + chr(event.key())
222215
is_shortcut = True
223216

224217
# Handle [F1-F12] and/or ALT + [F1-F12]

arcane_viewer/ui/forms/connect.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from typing import Optional
1111

1212
from PyQt6.QtCore import QSettings, QSize, Qt, pyqtSlot
13-
from PyQt6.QtGui import QIcon
13+
from PyQt6.QtGui import QIcon, QKeyEvent
1414
from PyQt6.QtWidgets import (QDialog, QHBoxLayout, QLabel, QLineEdit,
1515
QMessageBox, QPushButton, QSpinBox, QVBoxLayout,
1616
QWidget)
@@ -125,6 +125,18 @@ def __init__(self) -> None:
125125

126126
self.adjust_size()
127127

128+
def keyPressEvent(self, event: Optional[QKeyEvent]) -> None:
129+
""" Handle certain key events like ESC to close the window or ENTER to submit default action """
130+
if event is None:
131+
return
132+
133+
if event.key() == Qt.Key.Key_Return or event.key() == Qt.Key.Key_Enter:
134+
self.submit_form()
135+
elif event.key() == Qt.Key.Key_Escape:
136+
self.close()
137+
138+
super().keyPressEvent(event)
139+
128140
def read_default(self) -> None:
129141
""" Read default settings from the default.json file """
130142
if not os.path.isfile(arcane.DEFAULT_JSON):

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
setup(
99
name='arcane_viewer',
10-
version='1.0.6',
10+
version='1.0.7',
1111
packages=find_packages(),
1212
include_package_data=True,
1313
install_requires=[

0 commit comments

Comments
 (0)