Skip to content

Commit fc1f35f

Browse files
committed
feat: Allow RDP connect bar pin by default.
close #380
1 parent e982d1d commit fc1f35f

File tree

14 files changed

+63
-37
lines changed

14 files changed

+63
-37
lines changed

Ui/Controls/NoteDisplay/NoteDisplayAndEditor.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Border.Effect>
2020
<DropShadowEffect BlurRadius="10" />
2121
</Border.Effect>
22-
<Grid>
22+
<Grid Name="Main">
2323
<Grid.RowDefinitions>
2424
<RowDefinition Height="Auto"></RowDefinition>
2525
<RowDefinition Height="*"></RowDefinition>

Ui/Controls/NoteDisplay/NoteIcon.xaml.cs

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -65,49 +65,43 @@ public NoteIcon(ProtocolBase server)
6565
});
6666
}
6767

68-
private void OnMouseMove(object sender, MouseEventArgs args)
68+
private bool NoteTest(Button button, MouseEventArgs args)
6969
{
70-
if (PopupNote.IsOpen == false) return;
71-
if (ButtonShowNote.ActualWidth > 0)
70+
if (PopupNoteContent.Content is not NoteDisplayAndEditor editor)
71+
{
72+
return false;
73+
}
74+
if (button.ActualWidth > 0)
7275
{
73-
var p1 = args.MouseDevice.GetPosition(ButtonShowNote);
74-
//SimpleLogHelper.Debug($"ButtonShowNote: {p1.X}, {p1.Y}");
75-
if (p1.X < 0 || p1.Y < 0)
76-
PopupNote.IsOpen = false;
77-
else if (p1.Y < ButtonShowNote.ActualHeight && p1.X > ButtonShowNote.ActualWidth)
78-
PopupNote.IsOpen = false;
79-
else if (p1.Y >= ButtonShowNote.ActualHeight)
76+
var p1 = args.MouseDevice.GetPosition(button);
77+
SimpleLogHelper.Debug($"ButtonShowNote: {p1.X}, {p1.Y}");
78+
if (p1.Y < button.ActualHeight)
8079
{
81-
var p3 = args.MouseDevice.GetPosition(PopupNoteContent);
82-
if (p3.X > PopupNoteContent.ActualWidth)
83-
PopupNote.IsOpen = false;
84-
if (p3.Y > PopupNoteContent.ActualHeight)
80+
if (p1.X < 0 || p1.Y < 0 || p1.X > button.ActualWidth)
8581
PopupNote.IsOpen = false;
8682
}
87-
}
88-
if (ButtonBriefNote.ActualWidth > 0)
89-
{
90-
var p2 = args.MouseDevice.GetPosition(ButtonBriefNote);
91-
//SimpleLogHelper.Debug($"ButtonBriefNote: {p2.X}, {p2.Y}, h= {ButtonBriefNote.ActualHeight}, w= {ButtonBriefNote.ActualWidth}");
92-
if (p2.X < 0 || p2.Y < 0)
93-
PopupNote.IsOpen = false;
94-
else if (p2.Y < ButtonBriefNote.ActualHeight && p2.X > ButtonBriefNote.ActualWidth)
95-
PopupNote.IsOpen = false;
96-
else if (p2.Y >= ButtonBriefNote.ActualHeight)
83+
else
9784
{
98-
var p3 = args.MouseDevice.GetPosition(PopupNoteContent);
99-
if (p3.X > PopupNoteContent.ActualWidth)
85+
var p3 = args.MouseDevice.GetPosition(editor);
86+
SimpleLogHelper.Debug($"PopupNoteContent: {p3.X}, {p3.Y}, {editor.Main.ActualWidth} X {editor.Main.ActualHeight}");
87+
if (p3.X < 0)
10088
PopupNote.IsOpen = false;
101-
if (p3.Y > PopupNoteContent.ActualHeight)
89+
if (p3.X > editor.Main.ActualWidth)
90+
PopupNote.IsOpen = false;
91+
if (p3.Y > editor.Main.ActualHeight)
10292
PopupNote.IsOpen = false;
10393
}
94+
return true;
10495
}
10596

106-
if (PopupNote.IsOpen == false)
107-
{
108-
this.MouseMove -= OnMouseMove;
109-
PopupNoteContent.Content = null;
110-
}
97+
return false;
98+
}
99+
100+
private void OnMouseMove(object sender, MouseEventArgs args)
101+
{
102+
if (PopupNote.IsOpen == false) return;
103+
NoteTest(ButtonShowNote, args);
104+
NoteTest(ButtonBriefNote, args);
111105
}
112106

113107

Ui/Model/Protocol/RDP.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,22 @@ public bool? IsConnWithFullScreen
155155
public bool? IsFullScreenWithConnectionBar
156156
{
157157
get => _isFullScreenWithConnectionBar;
158-
set => SetAndNotifyIfChanged(ref _isFullScreenWithConnectionBar, value);
158+
set
159+
{
160+
SetAndNotifyIfChanged(ref _isFullScreenWithConnectionBar, value);
161+
if (value == false)
162+
{
163+
IsPinTheConnectionBarByDefault = false;
164+
}
165+
}
166+
}
167+
168+
169+
private bool? _isPinTheConnectionBarByDefault = true;
170+
public bool? IsPinTheConnectionBarByDefault
171+
{
172+
get => _isPinTheConnectionBarByDefault;
173+
set => SetAndNotifyIfChanged(ref _isPinTheConnectionBarByDefault, value);
159174
}
160175

161176
private ERdpWindowResizeMode? _rdpWindowResizeMode = ERdpWindowResizeMode.AutoResize;

Ui/Resources/Languages/cs-cz.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<s:String x:Key="server_editor_display_full_screen_flag_full_screen">Zapnout (jeden monitor)</s:String>
143143
<s:String x:Key="server_editor_display_full_screen_flag_all_screens">Zapnout (více monitorů)</s:String>
144144
<s:String x:Key="Display the connection bar when use the full screen">Ukazovat lištu připojení v režimu na celou obrazovku</s:String>
145+
<s:String x:Key="Pin the connection bar by default">Připnout lištu připojení ve výchozím nastavení</s:String>
145146
<s:String x:Key="New session always use full screen">Nová relace bude vždy na celou obrazovku</s:String>
146147
<s:String x:Key="New session use full screen if the last session is full screen">Nová relace bude na celou obrazovku pokud ta předchozí také byla</s:String>
147148
<s:String x:Key="Resolution">Rozlišení</s:String>

Ui/Resources/Languages/de-de.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<s:String x:Key="server_editor_display_full_screen_flag_full_screen">Aktivieren (Einzel-Monitor)</s:String>
143143
<s:String x:Key="server_editor_display_full_screen_flag_all_screens">Aktivieren (alle Monitore)</s:String>
144144
<s:String x:Key="Display the connection bar when use the full screen">Zeigen Sie die Anschlussleiste an, wenn Sie den vollständigen Bildschirm verwenden</s:String>
145+
<s:String x:Key="Pin the connection bar by default">Fixieren Sie die Verbindungsleiste standardmäßig</s:String>
145146
<s:String x:Key="New session always use full screen">Neue Sitzung Verwenden Sie immer den vollständigen Bildschirm</s:String>
146147
<s:String x:Key="New session use full screen if the last session is full screen">Neue Sitzung Vollbild Verwenden Sie den Vollbild, wenn die letzte Sitzung Vollbild ist</s:String>
147148
<s:String x:Key="Resolution">Auflösung</s:String>

Ui/Resources/Languages/en-us.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<s:String x:Key="server_editor_display_full_screen_flag_full_screen">Enable (single monitor)</s:String>
143143
<s:String x:Key="server_editor_display_full_screen_flag_all_screens">Enable (multi monitors)</s:String>
144144
<s:String x:Key="Display the connection bar when use the full screen">Display the connection bar when use the full screen</s:String>
145+
<s:String x:Key="Pin the connection bar by default">Pin the connection bar by default</s:String>
145146
<s:String x:Key="New session always use full screen">New session always use full screen</s:String>
146147
<s:String x:Key="New session use full screen if the last session is full screen">New session use full screen if the last session is full screen</s:String>
147148
<s:String x:Key="Resolution">Resolution</s:String>

Ui/Resources/Languages/fr-fr.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<s:String x:Key="server_editor_display_full_screen_flag_full_screen">Activer (moniteur unique)</s:String>
143143
<s:String x:Key="server_editor_display_full_screen_flag_all_screens">Activer (multi-moniteurs)</s:String>
144144
<s:String x:Key="Display the connection bar when use the full screen">Afficher la barre de connexion lors de l'utilisation de l'écran complet</s:String>
145+
<s:String x:Key="Pin the connection bar by default">Épingler la barre de connexion par défaut</s:String>
145146
<s:String x:Key="New session always use full screen">Connectez-vous en plein écran</s:String>
146147
<s:String x:Key="New session use full screen if the last session is full screen">Nouvelle session Utilisez plein écran si la dernière session est en plein écran</s:String>
147148
<s:String x:Key="Resolution">Résolution</s:String>

Ui/Resources/Languages/glossary.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ server_editor_display_full_screen_flag_window,Disable,禁用,Vypnout,Deaktiviere
141141
server_editor_display_full_screen_flag_full_screen,Enable (single monitor),允许(单显示器),Zapnout (jeden monitor),Aktivieren (Einzel-Monitor),Activer (moniteur unique),Ativar (monitor único),
142142
server_editor_display_full_screen_flag_all_screens,Enable (multi monitors),允许(所有显示器),Zapnout (více monitorů),Aktivieren (alle Monitore),Activer (multi-moniteurs),Ativar (vários monitores),
143143
Display the connection bar when use the full screen,Display the connection bar when use the full screen,全屏时显示连接栏,Ukazovat lištu připojení v režimu na celou obrazovku,"Zeigen Sie die Anschlussleiste an, wenn Sie den vollständigen Bildschirm verwenden",Afficher la barre de connexion lors de l'utilisation de l'écran complet,Exibir a barra de conexão ao usar a tela cheia,
144+
Pin the connection bar by default,Pin the connection bar by default,默认固定连接栏,,,,,
144145
New session always use full screen,New session always use full screen,启动会话时永远进入全屏模式,Nová relace bude vždy na celou obrazovku,Neue Sitzung Verwenden Sie immer den vollständigen Bildschirm,Connectez-vous en plein écran,Nova sessão sempre usará tela cheia,
145146
New session use full screen if the last session is full screen,New session use full screen if the last session is full screen,启动会话时根据上次会话决定是否进入全屏模式,Nová relace bude na celou obrazovku pokud ta předchozí také byla,"Neue Sitzung Vollbild Verwenden Sie den Vollbild, wenn die letzte Sitzung Vollbild ist",Nouvelle session Utilisez plein écran si la dernière session est en plein écran,Nova sessão usará tela cheia se a última sessão foi em tela cheia,
146147
Resolution,Resolution,分辨率,Rozlišení,Auflösung,Résolution,Resolução,

Ui/Resources/Languages/glossary_translated_by_google.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ server_editor_display_full_screen_flag_window,Disable,禁用,Vypnout,Deaktiviere
141141
server_editor_display_full_screen_flag_full_screen,Enable (single monitor),允许(单显示器),Zapnout (jeden monitor),Aktivieren (Einzel-Monitor),Activer (moniteur unique),Ativar (monitor único),有効にする(単一モニター)
142142
server_editor_display_full_screen_flag_all_screens,Enable (multi monitors),允许(所有显示器),Zapnout (více monitorů),Aktivieren (alle Monitore),Activer (multi-moniteurs),Ativar (vários monitores),有効にする(マルチモニター)
143143
Display the connection bar when use the full screen,Display the connection bar when use the full screen,全屏时显示连接栏,Ukazovat lištu připojení v režimu na celou obrazovku,"Zeigen Sie die Anschlussleiste an, wenn Sie den vollständigen Bildschirm verwenden",Afficher la barre de connexion lors de l'utilisation de l'écran complet,Exibir a barra de conexão ao usar a tela cheia,全画面使用時に接続バーを表示する
144+
Pin the connection bar by default,Pin the connection bar by default,默认固定连接栏,Připnout lištu připojení ve výchozím nastavení,Fixieren Sie die Verbindungsleiste standardmäßig,Épingler la barre de connexion par défaut,Fixar a barra de conexão por padrão,デフォルトで接続バーを固定する
144145
New session always use full screen,New session always use full screen,启动会话时永远进入全屏模式,Nová relace bude vždy na celou obrazovku,Neue Sitzung Verwenden Sie immer den vollständigen Bildschirm,Connectez-vous en plein écran,Nova sessão sempre usará tela cheia,新しいセッションは常にフルスクリーンを使用します
145146
New session use full screen if the last session is full screen,New session use full screen if the last session is full screen,启动会话时根据上次会话决定是否进入全屏模式,Nová relace bude na celou obrazovku pokud ta předchozí také byla,"Neue Sitzung Vollbild Verwenden Sie den Vollbild, wenn die letzte Sitzung Vollbild ist",Nouvelle session Utilisez plein écran si la dernière session est en plein écran,Nova sessão usará tela cheia se a última sessão foi em tela cheia,最後のセッションが全画面の場合、新しいセッションは全画面を使用します
146147
Resolution,Resolution,分辨率,Rozlišení,Auflösung,Résolution,Resolução,解像度

Ui/Resources/Languages/ja-jp.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<s:String x:Key="server_editor_display_full_screen_flag_full_screen">有効にする(単一モニター)</s:String>
143143
<s:String x:Key="server_editor_display_full_screen_flag_all_screens">有効にする(マルチモニター)</s:String>
144144
<s:String x:Key="Display the connection bar when use the full screen">全画面使用時に接続バーを表示する</s:String>
145+
<s:String x:Key="Pin the connection bar by default">デフォルトで接続バーを固定する</s:String>
145146
<s:String x:Key="New session always use full screen">新しいセッションは常にフルスクリーンを使用します</s:String>
146147
<s:String x:Key="New session use full screen if the last session is full screen">最後のセッションが全画面の場合、新しいセッションは全画面を使用します</s:String>
147148
<s:String x:Key="Resolution">解像度</s:String>

0 commit comments

Comments
 (0)