Welcome to mirror list, hosted at ThFree Co, Russian Federation.

remmina__connection__window_8c_source.html « docs - gitlab.com/Remmina/remminadoc.gitlab.io.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5377764adf5a1d536e6e92394046912aab82b2fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Remmina - The GTK+ Remote Desktop Client: remmina_connection_window.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="remmina.svg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Remmina - The GTK+ Remote Desktop Client
   &#160;<span id="projectnumber">1.2.0</span>
   </div>
   <div id="projectbrief">Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('remmina__connection__window_8c_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">remmina_connection_window.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="remmina__connection__window_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright (C) 2009-2011 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Copyright (C) 2016-2017 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * Boston, MA  02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *  In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> *  permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> *  OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> *  individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *  including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> *  You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> *  for all of the code used other than OpenSSL. *  If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> *  file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> *  version of the file(s), but you are not obligated to do so. *  If you</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *  do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> *  version. *  If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment"> *  files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="config_8h.html">config.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo-xlib.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;gdk/gdk.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkkeysyms.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__connection__window_8h.html">remmina_connection_window.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file_8h.html">remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__init__dialog_8h.html">remmina_init_dialog.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ext__exec_8h.html">remmina_ext_exec.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__protocol__widget_8h.html">remmina_protocol_widget.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__scrolled__viewport_8h.html">remmina_scrolled_viewport.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__log_8h.html">remmina_log.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#define DEBUG_KB_GRABBING 0</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__exec_8h.html">remmina_exec.h</a>&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#af657fd4825d16d8d003a8b42fbd0c715">   63</a></span>&#160;gchar *<a class="code" href="remmina__connection__window_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#a29701ae152ba15f6d8921f395174d2df">   64</a></span>&#160;<a class="code" href="struct___remmina_pref.html">RemminaPref</a> <a class="code" href="remmina__connection__window_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aae5d48ae04bd39576296ade15f4df385">   66</a></span>&#160;<a class="code" href="remmina__connection__window_8c.html#aae5d48ae04bd39576296ade15f4df385">G_DEFINE_TYPE</a>( <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>, remmina_connection_window, GTK_TYPE_WINDOW)</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#define MOTION_TIME 100</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">/* default timeout used to hide the floating toolbar wen switching profile */</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#define TB_HIDE_TIME_TIME 1000</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#define FLOATING_TOOLBAR_WIDGET (GTK_CHECK_VERSION(3, 10, 0))</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_connection_holder.html">_RemminaConnectionHolder</a> RemminaConnectionHolder;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="keyword">struct </span>_RemminaConnectionWindowPriv {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    GtkWidget* notebook;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    guint switch_page_handler;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    GtkWidget* floating_toolbar_widget;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    GtkWidget* overlay;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    GtkWidget* revealer;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    GtkWidget* overlay_ftb_overlay;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    GtkWidget* floating_toolbar_window;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    gboolean floating_toolbar_motion_show;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    gboolean floating_toolbar_motion_visible;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    GtkWidget* floating_toolbar_label;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    gdouble floating_toolbar_opacity;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="comment">/* To avoid strange event-loop */</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    guint floating_toolbar_motion_handler;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="comment">/* Other event sources to remove when deleting the object */</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    guint ftb_hide_eventsource;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="comment">/* Timer to hide the toolbar */</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    guint hidetb_timer;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="comment">/* Timer to save new window state and wxh */</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    guint savestate_eventsourceid;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    GtkWidget* toolbar;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    GtkWidget* grid;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="comment">/* Toolitems that need to be handled */</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    GtkToolItem* toolitem_autofit;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    GtkToolItem* toolitem_fullscreen;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    GtkToolItem* toolitem_switch_page;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    GtkToolItem* toolitem_dynres;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    GtkToolItem* toolitem_scale;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    GtkToolItem* toolitem_grab;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    GtkToolItem* toolitem_preferences;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    GtkToolItem* toolitem_tools;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    GtkToolItem* toolitem_screenshot;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    GtkWidget* fullscreen_option_button;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    GtkWidget* fullscreen_scaler_button;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    GtkWidget* scaler_option_button;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    GtkWidget* pin_button;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    gboolean pin_down;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    gboolean sticky;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    gint view_mode;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    gboolean kbcaptured;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    gboolean mouse_pointer_entered;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307f">RemminaConnectionWindowOnDeleteConfirmMode</a> on_delete_confirm_mode;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html">  140</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_connection_object.html">_RemminaConnectionObject</a> {</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">  141</a></span>&#160;    RemminaConnectionHolder* <a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">  143</a></span>&#160;    <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* <a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="comment">/* A dummy window which will be realized as a container during initialize, before reparent to the real window */</span></div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">  146</a></span>&#160;    GtkWidget* <a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a>;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="comment">/* Containers for RemminaProtocolWidget: RemminaProtocolWidget-&gt;aspectframe-&gt;viewport-&gt;scrolledcontainer-&gt;...-&gt;window */</span></div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">  149</a></span>&#160;    GtkWidget* <a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">  150</a></span>&#160;    GtkWidget* <a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">  151</a></span>&#160;    GtkWidget* <a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">/* Scrolled containers */</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">  154</a></span>&#160;    GtkWidget* <a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">  156</a></span>&#160;    gboolean <a class="code" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">plugin_can_scale</a>;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">  158</a></span>&#160;    gboolean <a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">  159</a></span>&#160;    gboolean <a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;} <a class="code" href="remmina__connection__window_8c.html#a1cc1f656edfbe0d9c5483ac858b76517">RemminaConnectionObject</a>;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct___remmina_connection_holder.html">  163</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct___remmina_connection_holder.html">_RemminaConnectionHolder</a> {</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct___remmina_connection_holder.html#a393eb10c59a1b32081950e210a2ed309">  164</a></span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* <a class="code" href="struct___remmina_connection_holder.html#a393eb10c59a1b32081950e210a2ed309">cnnwin</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="struct___remmina_connection_holder.html#af1d0ef71660cc5a6721ee4b3de962397">  165</a></span>&#160;    gint <a class="code" href="struct___remmina_connection_holder.html#af1d0ef71660cc5a6721ee4b3de962397">fullscreen_view_mode</a>;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct___remmina_connection_holder.html#a47338974261e8d5506b8ece744a3b14f">  167</a></span>&#160;    gboolean <a class="code" href="struct___remmina_connection_holder.html#a47338974261e8d5506b8ece744a3b14f">hostkey_activated</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct___remmina_connection_holder.html#a5394c17fd2a4b988a807f9d6b1d8a522">  168</a></span>&#160;    gboolean <a class="code" href="struct___remmina_connection_holder.html#a5394c17fd2a4b988a807f9d6b1d8a522">hostkey_used</a>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;};</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668">  173</a></span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668">TOOLBARPLACE_SIGNAL</a>,</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce">  174</a></span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;};</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac6cb432c862ff1bc12fde186e9e39b5c">  177</a></span>&#160;<span class="keyword">static</span> guint <a class="code" href="remmina__connection__window_8c.html#ac6cb432c862ff1bc12fde186e9e39b5c">remmina_connection_window_signals</a>[<a class="code" href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a>] =</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;{ 0 };</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor">#define DECLARE_CNNOBJ \</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">    if (!cnnhld || !cnnhld-&gt;cnnwin || gtk_notebook_get_current_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook)) &lt; 0) return; \</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">    RemminaConnectionObject* cnnobj = (RemminaConnectionObject*)g_object_get_data( \</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">    G_OBJECT(gtk_notebook_get_nth_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook), \</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">            gtk_notebook_get_current_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook)))), &quot;cnnobj&quot;);</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#define DECLARE_CNNOBJ_WITH_RETURN(r) \</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">    if (!cnnhld || !cnnhld-&gt;cnnwin || gtk_notebook_get_current_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook)) &lt; 0) return r; \</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">    RemminaConnectionObject* cnnobj = (RemminaConnectionObject*)g_object_get_data( \</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">    G_OBJECT(gtk_notebook_get_nth_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook), \</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">            gtk_notebook_get_current_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook)))), &quot;cnnobj&quot;);</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a>(RemminaConnectionHolder* cnnhld, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(RemminaConnectionHolder* cnnhld, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj,</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                            gint view_mode);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#abef663d930076deb3105f86dabe2a9c3">remmina_connection_window_hostkey_func</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, guint keyval, gboolean release,</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                               RemminaConnectionHolder* cnnhld);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3">remmina_connection_holder_grab_focus</a>(GtkNotebook *notebook);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="keyword">static</span> GtkWidget* <a class="code" href="remmina__connection__window_8c.html#af8138da72278e9e9000276e08a6fd984">remmina_connection_holder_create_toolbar</a>(RemminaConnectionHolder* cnnhld, gint mode);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a3627c2a73e45f25e4672fcce27af9a18">remmina_connection_holder_place_toolbar</a>(GtkToolbar *toolbar, GtkGrid *grid, GtkWidget *sibling, <span class="keywordtype">int</span> toolbar_placement);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a4b181dfe368b535a6082b4591cc8fc9c">remmina_connection_window_ftb_drag_begin</a>(GtkWidget *widget, GdkDragContext *context, gpointer user_data);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a6515e726b5d3e4c0a9aefc3cf20f3d90">  207</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> GtkTargetEntry <a class="code" href="remmina__connection__window_8c.html#a6515e726b5d3e4c0a9aefc3cf20f3d90">dnd_targets_ftb</a>[] =</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    {</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        (<span class="keywordtype">char</span>*)<span class="stringliteral">&quot;text/x-remmina-ftb&quot;</span>,</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        GTK_TARGET_SAME_APP | GTK_TARGET_OTHER_WIDGET,</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        0</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    },</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;};</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a7e71031254421ccb10e0c29699cc9523">  216</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> GtkTargetEntry <a class="code" href="remmina__connection__window_8c.html#a7e71031254421ccb10e0c29699cc9523">dnd_targets_tb</a>[] =</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;{</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    {</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        (<span class="keywordtype">char</span>*)<span class="stringliteral">&quot;text/x-remmina-tb&quot;</span>,</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        GTK_TARGET_SAME_APP,</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        0</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    },</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;};</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a571a93f113a0e732503308f5121cdbe5">  225</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a571a93f113a0e732503308f5121cdbe5">remmina_connection_window_class_init</a>(<a class="code" href="struct___remmina_connection_window_class.html">RemminaConnectionWindowClass</a>* klass)</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;{</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    GtkCssProvider  *provider;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    provider = gtk_css_provider_new();</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="comment">/* It&#39;s important to remove padding, border and shadow from GtkViewport or</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment">     * we will never know its internal area size, because GtkViweport::viewport_get_view_allocation,</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment">     * which returns the internal size of the GtkViewport, is private and we cannot access it */</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 14, 0)</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    gtk_css_provider_load_from_data(provider,</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="stringliteral">&quot;#remmina-cw-viewport, #remmina-cw-aspectframe {\n&quot;</span></div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="stringliteral">&quot;  padding:0;\n&quot;</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="stringliteral">&quot;  border:0;\n&quot;</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <span class="stringliteral">&quot;GtkDrawingArea {\n&quot;</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        <span class="stringliteral">&quot;GtkToolbar {\n&quot;</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <span class="stringliteral">&quot;  -GtkWidget-window-dragging: 0;\n&quot;</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        <span class="stringliteral">&quot;#remmina-connection-window-fullscreen {\n&quot;</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        <span class="stringliteral">&quot;#remmina-small-button {\n&quot;</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="stringliteral">&quot;  outline-offset: 0;\n&quot;</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="stringliteral">&quot;  outline-width: 0;\n&quot;</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="stringliteral">&quot;  padding: 0;\n&quot;</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="stringliteral">&quot;  border: 0;\n&quot;</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <span class="stringliteral">&quot;#remmina-pin-button {\n&quot;</span></div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="stringliteral">&quot;  outline-offset: 0;\n&quot;</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="stringliteral">&quot;  outline-width: 0;\n&quot;</span></div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="stringliteral">&quot;  padding: 2px;\n&quot;</span></div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="stringliteral">&quot;  border: 0;\n&quot;</span></div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <span class="stringliteral">&quot;#remmina-scrolled-container {\n&quot;</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="stringliteral">&quot;#remmina-scrolled-container.undershoot {\n&quot;</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="stringliteral">&quot;  background: none\n&quot;</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        <span class="stringliteral">&quot;#ftbbox-upper {\n&quot;</span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="stringliteral">&quot;  border-style: none solid solid solid;\n&quot;</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="stringliteral">&quot;  border-color: #808080;\n&quot;</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="stringliteral">&quot;  padding: 0px;\n&quot;</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="stringliteral">&quot;  background-color: #f0f0f0;\n&quot;</span></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="stringliteral">&quot;#ftbbox-lower {\n&quot;</span></div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <span class="stringliteral">&quot;  border-style: solid solid none solid;\n&quot;</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="stringliteral">&quot;  border-color: #808080;\n&quot;</span></div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="stringliteral">&quot;  padding: 0px;\n&quot;</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="stringliteral">&quot;  background-color: #f0f0f0;\n&quot;</span></div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="stringliteral">&quot;#ftb-handle {\n&quot;</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="stringliteral">&quot;  background-color: #f0f0f0;\n&quot;</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        , -1, NULL);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    gtk_css_provider_load_from_data(provider,</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        <span class="stringliteral">&quot;#remmina-cw-viewport, #remmina-cw-aspectframe {\n&quot;</span></div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="stringliteral">&quot;  padding:0;\n&quot;</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="stringliteral">&quot;  border:0;\n&quot;</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="stringliteral">&quot;GtkDrawingArea {\n&quot;</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="stringliteral">&quot;GtkToolbar {\n&quot;</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="stringliteral">&quot;  -GtkWidget-window-dragging: 0;\n&quot;</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <span class="stringliteral">&quot;#remmina-connection-window-fullscreen {\n&quot;</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="stringliteral">&quot;#remmina-small-button {\n&quot;</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <span class="stringliteral">&quot;  -GtkWidget-focus-padding: 0;\n&quot;</span></div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="stringliteral">&quot;  -GtkWidget-focus-line-width: 0;\n&quot;</span></div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="stringliteral">&quot;  padding: 0;\n&quot;</span></div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        <span class="stringliteral">&quot;  border: 0;\n&quot;</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <span class="stringliteral">&quot;#remmina-pin-button {\n&quot;</span></div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <span class="stringliteral">&quot;  -GtkWidget-focus-padding: 0;\n&quot;</span></div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="stringliteral">&quot;  -GtkWidget-focus-line-width: 0;\n&quot;</span></div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="stringliteral">&quot;  padding: 2px;\n&quot;</span></div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <span class="stringliteral">&quot;  border: 0;\n&quot;</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="stringliteral">&quot;#remmina-scrolled-container {\n&quot;</span></div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="stringliteral">&quot;#remmina-scrolled-container.undershoot {\n&quot;</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        <span class="stringliteral">&quot;  background: none\n&quot;</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        <span class="stringliteral">&quot;#ftbbox-upper {\n&quot;</span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="stringliteral">&quot;  border-style: none solid solid solid;\n&quot;</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <span class="stringliteral">&quot;  border-color: #808080;\n&quot;</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="stringliteral">&quot;  padding: 0px;\n&quot;</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        <span class="stringliteral">&quot;  background-color: #f0f0f0;\n&quot;</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <span class="stringliteral">&quot;#ftbbox-lower {\n&quot;</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <span class="stringliteral">&quot;  border-style: solid solid none solid;\n&quot;</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        <span class="stringliteral">&quot;  border-color: #808080;\n&quot;</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="stringliteral">&quot;  padding: 0px;\n&quot;</span></div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="stringliteral">&quot;  background-color: #f0f0f0;\n&quot;</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="stringliteral">&quot;#ftb-handle {\n&quot;</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="stringliteral">&quot;  background-color: #f0f0f0;\n&quot;</span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        , -1, NULL);</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        GTK_STYLE_PROVIDER(provider),</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    g_object_unref(provider);</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="comment">/* Define a signal used to notify all remmina_connection_windows of toolbar move */</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    remmina_connection_window_signals[<a class="code" href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668">TOOLBARPLACE_SIGNAL</a>] = g_signal_new(<span class="stringliteral">&quot;toolbar-place&quot;</span>, G_TYPE_FROM_CLASS(klass),</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(<a class="code" href="struct___remmina_connection_window_class.html">RemminaConnectionWindowClass</a>, toolbar_place), NULL, NULL,</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;}</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">  362</a></span>&#160;<span class="keyword">static</span> <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> <a class="code" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj, gboolean *dynres_avail, gboolean *scale_avail)</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;{</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    gboolean plugin_has_dynres, plugin_can_scale;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    scalemode = <a class="code" href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    plugin_has_dynres = <a class="code" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget_query_feature_by_type</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    plugin_can_scale = <a class="code" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget_query_feature_by_type</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    <span class="comment">/* forbid scalemode REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES when not possible */</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">if</span> ((!plugin_has_dynres || !cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</a>) &amp;&amp; scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>)</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="comment">/* forbid scalemode REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED when not possible */</span></div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordflow">if</span> (!plugin_can_scale &amp;&amp; scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a>)</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keywordflow">if</span> (scale_avail)</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        *scale_avail = plugin_can_scale;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordflow">if</span> (dynres_avail)</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        *dynres_avail = (plugin_has_dynres &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</a>);</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keywordflow">return</span> scalemode;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;}</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a1e4264610577737355a72e95d37787f7">  392</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a1e4264610577737355a72e95d37787f7">remmina_connection_holder_disconnect_current_page</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;{</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="comment">/* Disconnects the connection which is currently in view in the notebook */</span></div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a326a430fe4d298e3564d9fd5b7945a82">remmina_protocol_widget_close_connection</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;}</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">  402</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;{</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    GdkDeviceManager *manager;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    GdkDevice *keyboard = NULL;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    display = gtk_widget_get_display(GTK_WIDGET(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    seat = gdk_display_get_default_seat(display);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    keyboard = gdk_seat_get_pointer(seat);</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    manager = gdk_display_get_device_manager(display);</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    keyboard = gdk_device_manager_get_client_pointer(manager);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordflow">if</span> (!cnnhld-&gt;cnnwin-&gt;priv-&gt;kbcaptured) {</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    }</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="keywordflow">if</span> (keyboard != NULL) {</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keywordflow">if</span> ( gdk_device_get_source(keyboard) != GDK_SOURCE_KEYBOARD ) {</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;            keyboard = gdk_device_get_associated_device(keyboard);</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        }</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: --- ungrabbing\n&quot;</span>);</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        gdk_seat_ungrab(seat);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        gdk_device_ungrab(keyboard, GDK_CURRENT_TIME);</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        cnnhld-&gt;cnnwin-&gt;priv-&gt;kbcaptured = FALSE;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    }</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;}</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a6bcba3905245597b6393bbdc8a210e3d">  445</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a6bcba3905245597b6393bbdc8a210e3d">remmina_connection_holder_keyboard_grab</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;{</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    GdkDeviceManager *manager;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    GdkDevice *keyboard = NULL;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;kbcaptured || !cnnhld-&gt;cnnwin-&gt;priv-&gt;mouse_pointer_entered) {</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    }</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    display = gtk_widget_get_display(GTK_WIDGET(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    seat = gdk_display_get_default_seat(display);</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    keyboard = gdk_seat_get_pointer(seat);</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    manager = gdk_display_get_device_manager(display);</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    keyboard = gdk_device_manager_get_client_pointer(manager);</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="keywordflow">if</span> (keyboard != NULL) {</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        <span class="keywordflow">if</span> ( gdk_device_get_source(keyboard) != GDK_SOURCE_KEYBOARD) {</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;            keyboard = gdk_device_get_associated_device( keyboard );</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        }</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;keyboard_grab&quot;</span>, FALSE)) {</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;            printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: +++ grabbing\n&quot;</span>);</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;            <span class="keywordflow">if</span> (gdk_seat_grab(seat, gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)),</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;                    GDK_SEAT_CAPABILITY_KEYBOARD, FALSE, NULL, NULL, NULL, NULL) == GDK_GRAB_SUCCESS)</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;            <span class="keywordflow">if</span> (gdk_device_grab(keyboard, gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)), GDK_OWNERSHIP_WINDOW,</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;                    TRUE, GDK_KEY_PRESS | GDK_KEY_RELEASE, NULL, GDK_CURRENT_TIME) == GDK_GRAB_SUCCESS)</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;            {</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;                cnnhld-&gt;cnnwin-&gt;priv-&gt;kbcaptured = TRUE;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;            }</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a>(cnnhld);</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        }</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    }</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;}</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aa684847595283db326fd636735eed231">  496</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aa684847595283db326fd636735eed231">remmina_connection_window_close_all_connections</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin)</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;{</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    GtkNotebook* notebook = GTK_NOTEBOOK(priv-&gt;notebook);</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    GtkWidget* w;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    gint i, n;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_WIDGET(notebook)) {</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        n = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">for</span> (i = n - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;            w = gtk_notebook_get_nth_page(notebook, i);</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;            cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>*)g_object_get_data(G_OBJECT(w), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;            <span class="comment">/* Do close the connection on this tab */</span></div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;            <a class="code" href="remmina__protocol__widget_8c.html#a326a430fe4d298e3564d9fd5b7945a82">remmina_protocol_widget_close_connection</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        }</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    }</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;}</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="remmina__connection__window_8h.html#a47242e757b22622e8653643de24fdad9">  516</a></span>&#160;gboolean <a class="code" href="remmina__connection__window_8c.html#a47242e757b22622e8653643de24fdad9">remmina_connection_window_delete</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin)</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;{</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    RemminaConnectionHolder *cnnhld = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;cnnhld;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    GtkNotebook* notebook = GTK_NOTEBOOK(priv-&gt;notebook);</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    GtkWidget* dialog;</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    gint i, n;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="keywordflow">if</span> (!REMMINA_IS_CONNECTION_WINDOW(cnnwin))</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;on_delete_confirm_mode != <a class="code" href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307fafcfb1d365d23a2ae8e36377a8657b482">REMMINA_CONNECTION_WINDOW_ONDELETE_NOCONFIRM</a>) {</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        n = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <span class="keywordflow">if</span> (n &gt; 1) {</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;            dialog = gtk_message_dialog_new(GTK_WINDOW(cnnwin), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION,</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;                GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;                _(<span class="stringliteral">&quot;There are %i active connections in the current window. Are you sure to close?&quot;</span>), n);</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;            i = gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;            gtk_widget_destroy(dialog);</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;            <span class="keywordflow">if</span> (i != GTK_RESPONSE_YES)</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;                <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        }</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    }</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#aa684847595283db326fd636735eed231">remmina_connection_window_close_all_connections</a>(cnnwin);</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    <span class="comment">/* After remmina_connection_window_close_all_connections() call, cnnwin</span></div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="comment">     * has been already destroyed during a last page of notebook removal.</span></div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="comment">     * So we must rely on cnnhld */</span></div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin != NULL &amp;&amp; GTK_IS_WIDGET(cnnhld-&gt;cnnwin))</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        gtk_widget_destroy(GTK_WIDGET(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    cnnhld-&gt;cnnwin = NULL;</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;}</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aa84f957aaf2152717af3959b80ecfa8a">  552</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#aa84f957aaf2152717af3959b80ecfa8a">remmina_connection_window_delete_event</a>(GtkWidget* widget, GdkEvent* event, gpointer data)</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;{</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a47242e757b22622e8653643de24fdad9">remmina_connection_window_delete</a>(REMMINA_CONNECTION_WINDOW(widget));</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;}</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a2d157bba82de5684318381a8816db2af">  559</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a2d157bba82de5684318381a8816db2af">remmina_connection_window_destroy</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = REMMINA_CONNECTION_WINDOW(widget)-&gt;priv;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;kbcaptured)</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a>(cnnhld);</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_motion_handler) {</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        g_source_remove(priv-&gt;floating_toolbar_motion_handler);</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        priv-&gt;floating_toolbar_motion_handler = 0;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    }</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;ftb_hide_eventsource) {</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        g_source_remove(priv-&gt;ftb_hide_eventsource);</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        priv-&gt;ftb_hide_eventsource = 0;</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    }</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;savestate_eventsourceid) {</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        g_source_remove(priv-&gt;savestate_eventsourceid);</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        priv-&gt;savestate_eventsourceid = 0;</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    }</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="comment">/* There is no need to destroy priv-&gt;floating_toolbar_widget,</span></div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="comment">     * because it&#39;s our child and will be destroyed automatically */</span></div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window != NULL) {</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        gtk_widget_destroy(priv-&gt;floating_toolbar_window);</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;        priv-&gt;floating_toolbar_window = NULL;</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    }</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="comment">/* Timer used to hide the toolbar */</span></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;hidetb_timer) {</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        g_source_remove(priv-&gt;hidetb_timer);</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        priv-&gt;hidetb_timer = 0;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    }</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;switch_page_handler) {</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        g_source_remove(priv-&gt;switch_page_handler);</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        priv-&gt;switch_page_handler = 0;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    }</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    g_free(priv);</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <span class="keywordflow">if</span> (GTK_WIDGET(cnnhld-&gt;cnnwin) == widget) {</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        cnnhld-&gt;cnnwin-&gt;priv = NULL;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        cnnhld-&gt;cnnwin = NULL;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    }</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;}</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae2bb6008a2d00000b8c307a6e2646792">  607</a></span>&#160;gboolean <a class="code" href="remmina__connection__window_8c.html#ae2bb6008a2d00000b8c307a6e2646792">remmina_connection_window_notify_widget_toolbar_placement</a>(GtkWidget *widget, gpointer data)</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;{</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    GType rcwtype;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    rcwtype = <a class="code" href="remmina__connection__window_8h.html#a2dd8b9190bec1b9016cbe666ffca4dae">remmina_connection_window_get_type</a>();</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <span class="keywordflow">if</span> (G_TYPE_CHECK_INSTANCE_TYPE(widget, rcwtype)) {</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;        g_signal_emit_by_name(G_OBJECT(widget), <span class="stringliteral">&quot;toolbar-place&quot;</span>);</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    }</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;}</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aac99c87f16b44843e8eb41bea27cbe2a">  619</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#aac99c87f16b44843e8eb41bea27cbe2a">remmina_connection_window_tb_drag_failed</a>(GtkWidget *widget, GdkDragContext *context,</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;                             GtkDragResult result, gpointer user_data)</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;{</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    cnnhld = (RemminaConnectionHolder*)user_data;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar)</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        gtk_widget_show(GTK_WIDGET(priv-&gt;toolbar));</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;}</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a289101aed4f30397f39880960aae2ac3">  635</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a289101aed4f30397f39880960aae2ac3">remmina_connection_window_tb_drag_drop</a>(GtkWidget *widget, GdkDragContext *context,</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;                               gint x, gint y, guint time, gpointer user_data)</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;{</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    gint new_toolbar_placement;</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    cnnhld = (RemminaConnectionHolder*)user_data;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <span class="keywordflow">if</span> (wa.width * y &gt;= wa.height * x) {</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;        <span class="keywordflow">if</span> (wa.width * y &gt; wa.height * ( wa.width - x) )</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a95463ce23d03eb31b2bb61c29dab0076">TOOLBAR_PLACEMENT_BOTTOM</a>;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a>;</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        <span class="keywordflow">if</span> (wa.width * y &gt; wa.height * ( wa.width - x) )</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a069738542d6980f9594299ab57221a7f">TOOLBAR_PLACEMENT_TOP</a>;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    }</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    gtk_drag_finish(context, TRUE, TRUE, time);</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <span class="keywordflow">if</span> (new_toolbar_placement !=  remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a>) {</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        <span class="comment">/* Save new position */</span></div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a> = new_toolbar_placement;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;        <a class="code" href="remmina__pref_8c.html#a1c614a5e7dc3cd415be6e0a926e26983">remmina_pref_save</a>();</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;        <span class="comment">/* Signal all windows that the toolbar must be moved */</span></div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        <a class="code" href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool_foreach</a>(<a class="code" href="remmina__connection__window_8c.html#ae2bb6008a2d00000b8c307a6e2646792">remmina_connection_window_notify_widget_toolbar_placement</a>, NULL);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    }</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar)</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        gtk_widget_show(GTK_WIDGET(priv-&gt;toolbar));</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;}</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae072f58def6470b4cecd2c625d6411e6">  679</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae072f58def6470b4cecd2c625d6411e6">remmina_connection_window_tb_drag_begin</a>(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;{</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    cairo_surface_t *surface;</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    cairo_t *cr;</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    <span class="keywordtype">double</span> dashes[] = { 10 };</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    cnnhld = (RemminaConnectionHolder*)user_data;</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 16, 16);</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    cr = cairo_create(surface);</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    cairo_set_source_rgb(cr, 0.6, 0.6, 0.6);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    cairo_set_line_width(cr, 4);</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    cairo_set_dash(cr, dashes, 1, 0 );</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    cairo_rectangle(cr, 0, 0, 16, 16);</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    cairo_stroke(cr);</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    cairo_destroy(cr);</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    gtk_widget_hide(widget);</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    gtk_drag_set_icon_surface(context, surface);</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;}</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">  710</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;{</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    priv-&gt;floating_toolbar_opacity = (1.0 - TOOLBAR_OPACITY_MIN) / ((gdouble)TOOLBAR_OPACITY_LEVEL)</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;                     * ((gdouble)(TOOLBAR_OPACITY_LEVEL - <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;toolbar_opacity&quot;</span>, 0)))</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;                     + TOOLBAR_OPACITY_MIN;</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_widget) {</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;        gtk_widget_set_opacity(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), priv-&gt;floating_toolbar_opacity);</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    }</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window) {</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 8, 0)</span></div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;        gtk_widget_set_opacity(GTK_WIDGET(priv-&gt;floating_toolbar_window), priv-&gt;floating_toolbar_opacity);</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;        gtk_window_set_opacity(GTK_WINDOW(priv-&gt;floating_toolbar_window), priv-&gt;floating_toolbar_opacity);</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    }</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;}</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a0a92f6f998590a56e44964f0345f942b">  735</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a0a92f6f998590a56e44964f0345f942b">remmina_connection_holder_floating_toolbar_motion</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;{</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    GtkRequisition req;</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    gint x, y, t, cnnwin_x, cnnwin_y;</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window == NULL) {</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;        priv-&gt;floating_toolbar_motion_handler = 0;</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    }</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    gtk_widget_get_preferred_size(priv-&gt;floating_toolbar_window, &amp;req, NULL);</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;    gtk_window_get_position(GTK_WINDOW(priv-&gt;floating_toolbar_window), &amp;x, &amp;y);</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    gtk_window_get_position(GTK_WINDOW(cnnhld-&gt;cnnwin), &amp;cnnwin_x, &amp;cnnwin_y );</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    x -= cnnwin_x;</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    y -= cnnwin_y;</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_motion_show || priv-&gt;floating_toolbar_motion_visible) {</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_motion_show)</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;            y += 2;</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;            y -= 2;</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        t = (priv-&gt;pin_down ? 18 : 2) - req.height;</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        if (y &gt; 0)</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;            y = 0;</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        <span class="keywordflow">if</span> (y &lt; t)</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;            y = t;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        gtk_window_move(GTK_WINDOW(priv-&gt;floating_toolbar_window), x + cnnwin_x, y + cnnwin_y);</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f">fullscreen_toolbar_visibility</a> == <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53af179642fefe2ae4787e2d593519010dc">FLOATING_TOOLBAR_VISIBILITY_INVISIBLE</a> &amp;&amp; !priv-&gt;pin_down) {</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 8, 0)</span></div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;            gtk_widget_set_opacity(GTK_WIDGET(priv-&gt;floating_toolbar_window),</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;                (gdouble)(y - t) / (gdouble)(-t) * priv-&gt;floating_toolbar_opacity);</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;            gtk_window_set_opacity(GTK_WINDOW(priv-&gt;floating_toolbar_window),</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;                (gdouble)(y - t) / (gdouble)(-t) * priv-&gt;floating_toolbar_opacity);</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        }</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <span class="keywordflow">if</span> ((priv-&gt;floating_toolbar_motion_show &amp;&amp; y &gt;= 0) || (!priv-&gt;floating_toolbar_motion_show &amp;&amp; y &lt;= t)) {</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;            priv-&gt;floating_toolbar_motion_handler = 0;</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;            <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;        }</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        gtk_window_move(GTK_WINDOW(priv-&gt;floating_toolbar_window), x + cnnwin_x, -20 - req.height + cnnwin_y);</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        priv-&gt;floating_toolbar_motion_handler = 0;</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    }</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;}</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a2b7b33331e6fe8c8c70be62038f9f5ea">  789</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a2b7b33331e6fe8c8c70be62038f9f5ea">remmina_connection_holder_floating_toolbar_update</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;{</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_motion_show || priv-&gt;floating_toolbar_motion_visible) {</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_motion_handler)</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;            g_source_remove(priv-&gt;floating_toolbar_motion_handler);</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;        priv-&gt;floating_toolbar_motion_handler = g_idle_add(</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;            (GSourceFunc)<a class="code" href="remmina__connection__window_8c.html#a0a92f6f998590a56e44964f0345f942b">remmina_connection_holder_floating_toolbar_motion</a>, cnnhld);</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_motion_handler == 0) {</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;            priv-&gt;floating_toolbar_motion_handler = g_timeout_add(MOTION_TIME,</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;                (GSourceFunc)<a class="code" href="remmina__connection__window_8c.html#a0a92f6f998590a56e44964f0345f942b">remmina_connection_holder_floating_toolbar_motion</a>, cnnhld);</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        }</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    }</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;}</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !FLOATING_TOOLBAR_WIDGET */</span><span class="preprocessor"></span></div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af12f8b64866588b7b2360cbc2681ec40">  809</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#af12f8b64866588b7b2360cbc2681ec40">remmina_connection_holder_floating_toolbar_make_invisible</a>(gpointer data)</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;{</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = (<a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>*)data;</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    gtk_widget_set_opacity(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), 0.0);</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    priv-&gt;ftb_hide_eventsource = 0;</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;}</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">  819</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(RemminaConnectionHolder* cnnhld, gboolean show)</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;{</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_widget == NULL)</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="keywordflow">if</span> (show || priv-&gt;pin_down) {</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;        <span class="comment">/* Make the FTB no longer transparent, in case we have an hidden toolbar */</span></div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(cnnhld);</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;        <span class="comment">/* Remove outstanding hide events, if not yet active */</span></div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;ftb_hide_eventsource) {</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;            g_source_remove(priv-&gt;ftb_hide_eventsource);</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;            priv-&gt;ftb_hide_eventsource = 0;</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;        }</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;        <span class="comment">/* If we are hiding and the toolbar must be made invisible, schedule</span></div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;<span class="comment">         * a later toolbar hide */</span></div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;        <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f">fullscreen_toolbar_visibility</a> == <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53af179642fefe2ae4787e2d593519010dc">FLOATING_TOOLBAR_VISIBILITY_INVISIBLE</a>) {</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;            <span class="keywordflow">if</span> (priv-&gt;ftb_hide_eventsource == 0)</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;                priv-&gt;ftb_hide_eventsource = g_timeout_add(1000, <a class="code" href="remmina__connection__window_8c.html#af12f8b64866588b7b2360cbc2681ec40">remmina_connection_holder_floating_toolbar_make_invisible</a>, priv);</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        }</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    }</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    gtk_revealer_set_reveal_child(GTK_REVEALER(priv-&gt;revealer), show || priv-&gt;pin_down);</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window == NULL)</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    priv-&gt;floating_toolbar_motion_show = show;</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a2b7b33331e6fe8c8c70be62038f9f5ea">remmina_connection_holder_floating_toolbar_update</a>(cnnhld);</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;}</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aab1db8671426ff3a525451b96479c4f2">  857</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aab1db8671426ff3a525451b96479c4f2">remmina_connection_holder_floating_toolbar_visible</a>(RemminaConnectionHolder* cnnhld, gboolean visible)</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;{</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window == NULL)</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    priv-&gt;floating_toolbar_motion_visible = visible;</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a2b7b33331e6fe8c8c70be62038f9f5ea">remmina_connection_holder_floating_toolbar_update</a>(cnnhld);</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;}</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#acf5d62eb5dda2e3a1a76c4bcbb926fb8">  872</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#acf5d62eb5dda2e3a1a76c4bcbb926fb8">remmina_connection_holder_get_desktop_size</a>(RemminaConnectionHolder* cnnhld, gint* width, gint* height)</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;{</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp = REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    *width = <a class="code" href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a>(gp);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    *height = <a class="code" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a>(gp);</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;}</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae80a730a48eefb689b9957c4f669a020">  883</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae80a730a48eefb689b9957c4f669a020">remmina_connection_object_set_scrolled_policy</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj, GtkScrolledWindow* scrolled_window)</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;{</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    scalemode = <a class="code" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL);</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    gtk_scrolled_window_set_policy(scrolled_window,</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a> ? GTK_POLICY_NEVER : GTK_POLICY_AUTOMATIC,</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;        scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a> ? GTK_POLICY_NEVER : GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;}</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a92a6aa97bc751b0c096583a66351ada1">  893</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a92a6aa97bc751b0c096583a66351ada1">remmina_connection_holder_toolbar_autofit_restore</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;{</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    DECLARE_CNNOBJ_WITH_RETURN(FALSE)</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> * priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    gint dwidth, dheight;</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    GtkAllocation nba, ca, ta;</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> &amp;&amp; GTK_IS_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#acf5d62eb5dda2e3a1a76c4bcbb926fb8">remmina_connection_holder_get_desktop_size</a>(cnnhld, &amp;dwidth, &amp;dheight);</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        gtk_widget_get_allocation(priv-&gt;notebook, &amp;nba);</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;        gtk_widget_get_allocation(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>, &amp;ca);</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        gtk_widget_get_allocation(priv-&gt;toolbar, &amp;ta);</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;        <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a> == <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a> ||</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a> == <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>) {</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;            gtk_window_resize(GTK_WINDOW(cnnhld-&gt;cnnwin), MAX(1, dwidth + ta.width + nba.width - ca.width),</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;                MAX(1, dheight + nba.height - ca.height));</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;            gtk_window_resize(GTK_WINDOW(cnnhld-&gt;cnnwin), MAX(1, dwidth + nba.width - ca.width),</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;                MAX(1, dheight + ta.height + nba.height - ca.height));</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        }</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;        gtk_container_check_resize(GTK_CONTAINER(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;    }</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ae80a730a48eefb689b9957c4f669a020">remmina_connection_object_set_scrolled_policy</a>(cnnobj, GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>));</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    }</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;}</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;</div><div class="line"><a name="l00922"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac679e10d8be64d56ed13043dd4df7d1c">  922</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ac679e10d8be64d56ed13043dd4df7d1c">remmina_connection_holder_toolbar_autofit</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;{</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;        <span class="keywordflow">if</span> ((gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin))) &amp; GDK_WINDOW_STATE_MAXIMIZED) != 0) {</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;            gtk_window_unmaximize(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;        }</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;        <span class="comment">/* It&#39;s tricky to make the toolbars disappear automatically, while keeping scrollable.</span></div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;<span class="comment">           Please tell me if you know a better way to do this */</span></div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>), GTK_POLICY_NEVER,</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;            GTK_POLICY_NEVER);</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        g_timeout_add(200, (GSourceFunc)<a class="code" href="remmina__connection__window_8c.html#a92a6aa97bc751b0c096583a66351ada1">remmina_connection_holder_toolbar_autofit_restore</a>, cnnhld);</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;    }</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;}</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">  944</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;{</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    gboolean scroll_required = FALSE;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    GdkDisplay* display;</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    GdkMonitor* monitor;</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    GdkScreen* screen;</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    gint monitor;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    GdkRectangle screen_size;</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    gint screen_width, screen_height;</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    gint server_width, server_height;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    gint bordersz;</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#acf5d62eb5dda2e3a1a76c4bcbb926fb8">remmina_connection_holder_get_desktop_size</a>(cnnhld, &amp;server_width, &amp;server_height);</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    display = gtk_widget_get_display(GTK_WIDGET(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;    monitor = gdk_display_get_monitor_at_window(display, gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)));</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    screen = gtk_window_get_screen(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    monitor = gdk_screen_get_monitor_at_window(screen, gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)));</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    gdk_monitor_get_workarea(monitor, &amp;screen_size);</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;<span class="preprocessor">#elif gdk_screen_get_monitor_workarea</span></div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    gdk_screen_get_monitor_workarea(screen, monitor, &amp;screen_size);</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    gdk_screen_get_monitor_geometry(screen, monitor, &amp;screen_size);</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    screen_width = screen_size.width;</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;    screen_height = screen_size.height;</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>))</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        &amp;&amp; (server_width &lt;= 0 || server_height &lt;= 0 || screen_width &lt; server_width</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        || screen_height &lt; server_height)) {</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        scroll_required = TRUE;</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    }</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="keywordflow">switch</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode) {</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        gtk_window_resize(GTK_WINDOW(cnnhld-&gt;cnnwin), screen_width, screen_height);</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>),</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;            (scroll_required ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER),</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;            (scroll_required ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER));</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;        bordersz = scroll_required ? 1 : 0;</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        gtk_window_resize(GTK_WINDOW(cnnhld-&gt;cnnwin), screen_width, screen_height);</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;        <span class="keywordflow">if</span> (REMMINA_IS_SCROLLED_VIEWPORT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;            <span class="comment">/* Put a border around Notebook content (RemminaScrolledViewpord), so we can</span></div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="comment">             * move the mouse over the border to scroll */</span></div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;            gtk_container_set_border_width(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>), bordersz);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;        }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;viewmode&quot;</span>, <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dab1d633b014db4f3b67ec587e14035755">AUTO_MODE</a>) == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dab1d633b014db4f3b67ec587e14035755">AUTO_MODE</a>) {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;            gtk_window_set_default_size(GTK_WINDOW(cnnhld-&gt;cnnwin),</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;                MIN(server_width, screen_width), MIN(server_height, screen_height));</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;            <span class="keywordflow">if</span> (server_width &gt;= screen_width || server_height &gt;= screen_height) {</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;                gtk_window_maximize(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;                <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_maximize&quot;</span>, TRUE);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;            }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;                <a class="code" href="remmina__connection__window_8c.html#ac679e10d8be64d56ed13043dd4df7d1c">remmina_connection_holder_toolbar_autofit</a>(NULL, cnnhld);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;                <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_maximize&quot;</span>, FALSE);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;            }</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_maximize&quot;</span>, FALSE)) {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;                gtk_window_maximize(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;            }</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;        }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    }</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;}</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div><div class="line"><a name="l01028"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404"> 1028</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GtkWidget* item, <span class="keyword">const</span> gchar* tip, guint key1, guint key2)</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;{</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    gchar* s1;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    gchar* s2;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a> &amp;&amp; key1) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        <span class="keywordflow">if</span> (key2) {</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;            s1 = g_strdup_printf(<span class="stringliteral">&quot; (%s + %s,%s)&quot;</span>, gdk_keyval_name(remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a>),</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;                gdk_keyval_name(gdk_keyval_to_upper(key1)), gdk_keyval_name(gdk_keyval_to_upper(key2)));</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (key1 == remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a>) {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;            s1 = g_strdup_printf(<span class="stringliteral">&quot; (%s)&quot;</span>, gdk_keyval_name(remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a>));</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;            s1 = g_strdup_printf(<span class="stringliteral">&quot; (%s + %s)&quot;</span>, gdk_keyval_name(remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a>),</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;                gdk_keyval_name(gdk_keyval_to_upper(key1)));</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        }</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        s1 = NULL;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    s2 = g_strdup_printf(<span class="stringliteral">&quot;%s%s&quot;</span>, tip, s1 ? s1 : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    gtk_widget_set_tooltip_text(item, s2);</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    g_free(s2);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    g_free(s1);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;}</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ab7dc553cbd2005feb77163cf79f48f6d"> 1053</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;{</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    gboolean scaledexpandedmode;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    <span class="keywordtype">int</span> rdwidth, rdheight;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    gfloat aratio;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">plugin_can_scale</a>) {</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;        <span class="comment">/* If we have a plugin that cannot scale,</span></div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment">         * (i.e. SFTP plugin), then we expand proto */</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;        gtk_widget_set_halign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_FILL);</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;        gtk_widget_set_valign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_FILL);</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;        <span class="comment">/* Plugin can scale */</span></div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        scalemode = <a class="code" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;        scaledexpandedmode = <a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;        <span class="comment">/* Check if we need aspectframe and create/destroy it accordingly */</span></div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;        <span class="keywordflow">if</span> (scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a> &amp;&amp; !scaledexpandedmode) {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;            <span class="comment">/* We need an aspectframe as a parent of proto */</span></div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;            rdwidth = <a class="code" href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;            rdheight = <a class="code" href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;            aratio = (gfloat)rdwidth / (gfloat)rdheight;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;            <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>) {</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;                <span class="comment">/* We need a new aspectframe */</span></div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;                cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a> = gtk_aspect_frame_new(NULL, 0.5, 0.5, aratio, FALSE);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;                gtk_widget_set_name(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>, <span class="stringliteral">&quot;remmina-cw-aspectframe&quot;</span>);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;                gtk_frame_set_shadow_type(GTK_FRAME(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>), GTK_SHADOW_NONE);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;                g_object_ref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;                gtk_container_remove(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;                gtk_container_add(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>);</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;                gtk_container_add(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;                g_object_unref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;                gtk_widget_show(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>);</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;                <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a> != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin-&gt;priv-&gt;notebook != NULL)</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;                    <a class="code" href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3">remmina_connection_holder_grab_focus</a>(GTK_NOTEBOOK(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin-&gt;priv-&gt;notebook));</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;            }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;                gtk_aspect_frame_set(GTK_ASPECT_FRAME(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>), 0.5, 0.5, aratio, FALSE);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;            }</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;            <span class="comment">/* We do not need an aspectframe as a parent of proto */</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;            <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>) {</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;                <span class="comment">/* We must remove the old aspectframe reparenting proto to viewport */</span></div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;                g_object_ref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>);</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;                g_object_ref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;                gtk_container_remove(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;                gtk_container_remove(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>);</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;                g_object_unref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>);</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;                cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a> = NULL;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;                gtk_container_add(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;                g_object_unref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;                <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a> != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin-&gt;priv-&gt;notebook != NULL)</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;                    <a class="code" href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3">remmina_connection_holder_grab_focus</a>(GTK_NOTEBOOK(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin-&gt;priv-&gt;notebook));</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;            }</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;        }</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;        <span class="keywordflow">if</span> (scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a> || scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>) {</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;            <span class="comment">/* We have a plugin that can be scaled, and the scale button</span></div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment">             * has been pressed. Give it the correct WxH maintaining aspect</span></div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment">             * ratio of remote destkop size */</span></div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;            gtk_widget_set_halign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_FILL);</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;            gtk_widget_set_valign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_FILL);</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;            <span class="comment">/* Plugin can scale, but no scaling is active. Ensure that we have</span></div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment">             * aspectframe with a ratio of 1 */</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;            gtk_widget_set_halign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_CENTER);</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;            gtk_widget_set_valign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_CENTER);</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;        }</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    }</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;}</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div><div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a02ac20f50f1b7b816bd7208127efdbee"> 1127</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a02ac20f50f1b7b816bd7208127efdbee">remmina_connection_holder_toolbar_fullscreen</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;{</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    <span class="keywordflow">if</span> (gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget))) {</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(cnnhld, NULL, cnnhld-&gt;fullscreen_view_mode);</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a>(cnnhld, NULL);</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;    }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;}</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a0e99d0ff8c39f2c6de508eee9ef498c5"> 1137</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a0e99d0ff8c39f2c6de508eee9ef498c5">remmina_connection_holder_viewport_fullscreen_mode</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;{</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;    cnnhld-&gt;fullscreen_view_mode = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(cnnhld, NULL, cnnhld-&gt;fullscreen_view_mode);</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;}</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;</div><div class="line"><a name="l01146"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aa25cae5c0e15e13b817b925e42a044a9"> 1146</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aa25cae5c0e15e13b817b925e42a044a9">remmina_connection_holder_scrolled_fullscreen_mode</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;{</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    cnnhld-&gt;fullscreen_view_mode = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(cnnhld, NULL, cnnhld-&gt;fullscreen_view_mode);</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;}</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div><div class="line"><a name="l01155"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac1e63c7801614664d5da3ecd326a69e8"> 1155</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ac1e63c7801614664d5da3ecd326a69e8">remmina_connection_holder_fullscreen_option_popdown</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;{</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;fullscreen_option_button), FALSE);</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;}</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;</div><div class="line"><a name="l01166"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a1415cdcbed0e6fe9a7978586bf132207"> 1166</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a1415cdcbed0e6fe9a7978586bf132207">remmina_connection_holder_toolbar_fullscreen_option</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;{</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;    GtkWidget* menu;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    GtkWidget* menuitem;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    GSList* group;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    menuitem = gtk_radio_menu_item_new_with_label(NULL, _(<span class="stringliteral">&quot;Viewport fullscreen mode&quot;</span>));</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>) {</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    }</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a0e99d0ff8c39f2c6de508eee9ef498c5">remmina_connection_holder_viewport_fullscreen_mode</a>), cnnhld);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    menuitem = gtk_radio_menu_item_new_with_label(group, _(<span class="stringliteral">&quot;Scrolled fullscreen mode&quot;</span>));</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>) {</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    }</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#aa25cae5c0e15e13b817b925e42a044a9">remmina_connection_holder_scrolled_fullscreen_mode</a>), cnnhld);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ac1e63c7801614664d5da3ecd326a69e8">remmina_connection_holder_fullscreen_option_popdown</a>), cnnhld);</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, <a class="code" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a>, priv-&gt;toolitem_fullscreen, 0,</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;        gtk_get_current_event_time());</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;}</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div><div class="line"><a name="l01210"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a40efa9a7d27d7742477d73e7636a3d4e"> 1210</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a40efa9a7d27d7742477d73e7636a3d4e">remmina_connection_holder_scaler_option_popdown</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;{</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;scaler_option_button), FALSE);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;}</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;</div><div class="line"><a name="l01219"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a4495fca1215fef8e8484b7fee38ae996"> 1219</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a4495fca1215fef8e8484b7fee38ae996">remmina_connection_holder_scaler_expand</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;{</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), TRUE);</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;scaler_expand&quot;</span>, TRUE);</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(cnnobj);</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;}</div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a2d6419b0ee62c2730b024152a06bb6bc"> 1229</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a2d6419b0ee62c2730b024152a06bb6bc">remmina_connection_holder_scaler_keep_aspect</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;{</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), FALSE);</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;scaler_expand&quot;</span>, FALSE);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(cnnobj);</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;}</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div><div class="line"><a name="l01240"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a7a722d82899ce761356e47de2ac91452"> 1240</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a7a722d82899ce761356e47de2ac91452">remmina_connection_holder_toolbar_scaler_option</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;{</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    GtkWidget* menu;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    GtkWidget* menuitem;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    GSList* group;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;    gboolean scaler_expand;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;    scaler_expand = <a class="code" href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    menuitem = gtk_radio_menu_item_new_with_label(NULL, _(<span class="stringliteral">&quot;Keep aspect ratio when scaled&quot;</span>));</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    <span class="keywordflow">if</span> (!scaler_expand) {</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    }</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a2d6419b0ee62c2730b024152a06bb6bc">remmina_connection_holder_scaler_keep_aspect</a>), cnnhld);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;    menuitem = gtk_radio_menu_item_new_with_label(group, _(<span class="stringliteral">&quot;Fill client window when scaled&quot;</span>));</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;    <span class="keywordflow">if</span> (scaler_expand) {</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    }</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a4495fca1215fef8e8484b7fee38ae996">remmina_connection_holder_scaler_expand</a>), cnnhld);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a40efa9a7d27d7742477d73e7636a3d4e">remmina_connection_holder_scaler_option_popdown</a>), cnnhld);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, <a class="code" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a>, priv-&gt;toolitem_scale, 0,</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;        gtk_get_current_event_time());</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;}</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;</div><div class="line"><a name="l01287"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a7db84f4e2649b46a81df340f10743f7f"> 1287</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a7db84f4e2649b46a81df340f10743f7f">remmina_connection_holder_switch_page_activate</a>(GtkMenuItem* menuitem, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;{</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;    gint page_num;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;    page_num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;new-page-num&quot;</span>));</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    gtk_notebook_set_current_page(GTK_NOTEBOOK(priv-&gt;notebook), page_num);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;}</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac8c524ed2e2854209d3c88df260e022f"> 1297</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ac8c524ed2e2854209d3c88df260e022f">remmina_connection_holder_toolbar_switch_page_popdown</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;{</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_switch_page), FALSE);</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;}</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aefad8c92a20121f0563bfeaf06c25e8e"> 1308</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aefad8c92a20121f0563bfeaf06c25e8e">remmina_connection_holder_toolbar_switch_page</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;{</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;    GtkWidget* menu;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;    GtkWidget* menuitem;</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;    GtkWidget* image;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;    GtkWidget* page;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    gint i, n;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;    n = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook));</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;        page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(priv-&gt;notebook), i);</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;        <span class="keywordflow">if</span> (!page)</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;        cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>*)g_object_get_data(G_OBJECT(page), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;        menuitem = gtk_menu_item_new_with_label(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;        gtk_widget_show(menuitem);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;        image = gtk_image_new_from_icon_name(<a class="code" href="remmina__file_8c.html#a2feb8e9e32f3ff4e2fac836e67a77331">remmina_file_get_icon_name</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>), GTK_ICON_SIZE_MENU);</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;        gtk_widget_show(image);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;        g_object_set_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;new-page-num&quot;</span>, GINT_TO_POINTER(i));</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;activate&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a7db84f4e2649b46a81df340f10743f7f">remmina_connection_holder_switch_page_activate</a>),</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;            cnnhld);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;        <span class="keywordflow">if</span> (i == gtk_notebook_get_current_page(GTK_NOTEBOOK(priv-&gt;notebook))) {</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;            gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        }</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;    }</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ac8c524ed2e2854209d3c88df260e022f">remmina_connection_holder_toolbar_switch_page_popdown</a>),</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;        cnnhld);</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, <a class="code" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a>, widget, 0, gtk_get_current_event_time());</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;}</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;</div><div class="line"><a name="l01360"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#adb407338a545724966a1c62d3bd60fb5"> 1360</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#adb407338a545724966a1c62d3bd60fb5">remmina_connection_holder_update_toolbar_autofit_button</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;{</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    GtkToolItem* toolitem;</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> sc;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;    toolitem = priv-&gt;toolitem_autofit;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;    <span class="keywordflow">if</span> (toolitem) {</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;            gtk_widget_set_sensitive(GTK_WIDGET(toolitem), FALSE);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;            sc = <a class="code" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;            gtk_widget_set_sensitive(GTK_WIDGET(toolitem), sc == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;        }</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;    }</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;}</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div><div class="line"><a name="l01379"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a5565ebedf82eb9f2d54b7f447b4c930e"> 1379</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a5565ebedf82eb9f2d54b7f447b4c930e">remmina_connection_holder_change_scalemode</a>(RemminaConnectionHolder* cnnhld, gboolean bdyn, gboolean bscale)</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;{</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;    <span class="keywordflow">if</span> (bdyn &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</a>)</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bscale)</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a>;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    <span class="keywordflow">if</span> (scalemode != <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>) {</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;        <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;dynamic_resolution_width&quot;</span>, 0);</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;        <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;dynamic_resolution_height&quot;</span>, 0);</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;    }</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#ad6e2d00646e8268aa0e8bbe31b77db48">remmina_protocol_widget_set_current_scale_mode</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), scalemode);</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;    <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;scale&quot;</span>, scalemode);</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a>);</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adb407338a545724966a1c62d3bd60fb5">remmina_connection_holder_update_toolbar_autofit_button</a>(cnnhld);</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget_call_feature_by_type</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>, 0);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(cnnhld);</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;    }</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ae80a730a48eefb689b9957c4f669a020">remmina_connection_object_set_scrolled_policy</a>(cnnobj, GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>));</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    }</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;}</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;</div><div class="line"><a name="l01414"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a576e3800c7371f63b27e3832848ac4e5"> 1414</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a576e3800c7371f63b27e3832848ac4e5">remmina_connection_holder_toolbar_dynres</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;{</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    gboolean bdyn, bscale;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    bdyn = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;    bscale = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale));</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    <span class="keywordflow">if</span> (bdyn &amp;&amp; bscale) {</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), FALSE);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;        bscale = FALSE;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;    }</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a5565ebedf82eb9f2d54b7f447b4c930e">remmina_connection_holder_change_scalemode</a>(cnnhld, bdyn, bscale);</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;}</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;</div><div class="line"><a name="l01432"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ad6136dd7c0867a5a5f1c0b0645632ee4"> 1432</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ad6136dd7c0867a5a5f1c0b0645632ee4">remmina_connection_holder_toolbar_scaled_mode</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;{</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;    gboolean bdyn, bscale;</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;    bdyn = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres));</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    bscale = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;    <span class="keywordflow">if</span> (bdyn &amp;&amp; bscale) {</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), FALSE);</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;        bdyn = FALSE;</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;    }</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a5565ebedf82eb9f2d54b7f447b4c930e">remmina_connection_holder_change_scalemode</a>(cnnhld, bdyn, bscale);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;}</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a7f0d68059b8fe91317c6b62d9315ca44"> 1449</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a7f0d68059b8fe91317c6b62d9315ca44">remmina_connection_holder_toolbar_preferences_popdown</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;{</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_preferences), FALSE);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;}</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;</div><div class="line"><a name="l01460"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae18a8e7a72ec9a2f3e529708d7ffe0ce"> 1460</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae18a8e7a72ec9a2f3e529708d7ffe0ce">remmina_connection_holder_toolbar_tools_popdown</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;{</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_tools), FALSE);</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;}</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;</div><div class="line"><a name="l01471"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a86280cb973101817f7410af393bc2f98"> 1471</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a86280cb973101817f7410af393bc2f98">remmina_connection_holder_call_protocol_feature_radio</a>(GtkMenuItem* menuitem, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;{</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;    gpointer value;</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;    <span class="keywordflow">if</span> (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem))) {</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;        feature = (<a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>*)g_object_get_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-type&quot;</span>);</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;        value = g_object_get_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-value&quot;</span>);</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;        <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, (<span class="keyword">const</span> gchar*)feature-&gt;opt2, (<span class="keyword">const</span> gchar*)value);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;        <a class="code" href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget_call_feature_by_ref</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), feature);</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    }</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;}</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;</div><div class="line"><a name="l01487"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a8d924ded7fe147df8b5f113e2fb1d6e7"> 1487</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a8d924ded7fe147df8b5f113e2fb1d6e7">remmina_connection_holder_call_protocol_feature_check</a>(GtkMenuItem* menuitem, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;{</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;    <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;    gboolean value;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    feature = (<a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>*)g_object_get_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-type&quot;</span>);</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;    value = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem));</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, (<span class="keyword">const</span> gchar*)feature-&gt;opt2, value);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget_call_feature_by_ref</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), feature);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;}</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;</div><div class="line"><a name="l01500"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a4507b43c6fd10bc68d9512c6b253a552"> 1500</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a4507b43c6fd10bc68d9512c6b253a552">remmina_connection_holder_call_protocol_feature_activate</a>(GtkMenuItem* menuitem, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;{</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;    feature = (<a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>*)g_object_get_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-type&quot;</span>);</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget_call_feature_by_ref</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), feature);</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;}</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;</div><div class="line"><a name="l01510"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a1ddab4aacc284c606ab237eae9c0b5a9"> 1510</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a1ddab4aacc284c606ab237eae9c0b5a9">remmina_connection_holder_toolbar_preferences_radio</a>(RemminaConnectionHolder* cnnhld, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile,</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;                                GtkWidget* menu, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature, <span class="keyword">const</span> gchar* domain, gboolean enabled)</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;{</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;    GtkWidget* menuitem;</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;    GSList* group;</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;    gint i;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;    <span class="keyword">const</span> gchar** list;</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;    <span class="keyword">const</span> gchar* value;</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;    group = NULL;</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;    value = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, (<span class="keyword">const</span> gchar*)feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a>);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;    list = (<span class="keyword">const</span> gchar**)feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>;</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;    for (i = 0; list[i]; i += 2) {</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;        menuitem = gtk_radio_menu_item_new_with_label(group, g_dgettext(domain, list[i + 1]));</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;        group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;        gtk_widget_show(menuitem);</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;        <span class="keywordflow">if</span> (enabled) {</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;            g_object_set_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-type&quot;</span>, (gpointer)feature);</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;            g_object_set_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-value&quot;</span>, (gpointer)list[i]);</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;            <span class="keywordflow">if</span> (value &amp;&amp; g_strcmp0(list[i], value) == 0) {</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;                gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;            }</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;            g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;                G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a86280cb973101817f7410af393bc2f98">remmina_connection_holder_call_protocol_feature_radio</a>), cnnhld);</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;            gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;        }</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;    }</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;}</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;</div><div class="line"><a name="l01545"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ada0dce340f5f1484c496a2357e8a2c69"> 1545</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ada0dce340f5f1484c496a2357e8a2c69">remmina_connection_holder_toolbar_preferences_check</a>(RemminaConnectionHolder* cnnhld, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile,</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;                                GtkWidget* menu, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature, <span class="keyword">const</span> gchar* domain, gboolean enabled)</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;{</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;    GtkWidget* menuitem;</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;    menuitem = gtk_check_menu_item_new_with_label(g_dgettext(domain, (<span class="keyword">const</span> gchar*)feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>));</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;    <span class="keywordflow">if</span> (enabled) {</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;        g_object_set_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-type&quot;</span>, (gpointer)feature);</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;            <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, (<span class="keyword">const</span> gchar*)feature-&gt;opt2, FALSE));</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;        g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;            G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a8d924ded7fe147df8b5f113e2fb1d6e7">remmina_connection_holder_call_protocol_feature_check</a>), cnnhld);</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;        gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;    }</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;}</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;</div><div class="line"><a name="l01568"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a78ec7d6e66d6e6569c1a9a0230c74bc8"> 1568</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a78ec7d6e66d6e6569c1a9a0230c74bc8">remmina_connection_holder_toolbar_preferences</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;{</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature;</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;    GtkWidget* menu;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;    GtkWidget* menuitem;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;    gboolean separator;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;    <span class="keyword">const</span> gchar* domain;</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;    gboolean enabled;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;    separator = FALSE;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;    domain = <a class="code" href="remmina__protocol__widget_8c.html#aef28374d0056407bad6204997d2c3bf9">remmina_protocol_widget_get_domain</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;    <span class="keywordflow">for</span> (feature = <a class="code" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget_get_features</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>)); feature &amp;&amp; feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>;</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;         feature++) {</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;        <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a> != <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>)</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;        <span class="keywordflow">if</span> (separator) {</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;            menuitem = gtk_separator_menu_item_new();</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;            gtk_widget_show(menuitem);</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;            gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;            separator = FALSE;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;        }</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;        enabled = <a class="code" href="remmina__protocol__widget_8c.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget_query_feature_by_ref</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), feature);</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;        <span class="keywordflow">switch</span> (GPOINTER_TO_INT(feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a>)) {</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;        <span class="keywordflow">case</span> REMMINA_PROTOCOL_FEATURE_PREF_RADIO:</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a1ddab4aacc284c606ab237eae9c0b5a9">remmina_connection_holder_toolbar_preferences_radio</a>(cnnhld, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, menu, feature,</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;                domain, enabled);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;            separator = TRUE;</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;        <span class="keywordflow">case</span> REMMINA_PROTOCOL_FEATURE_PREF_CHECK:</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#ada0dce340f5f1484c496a2357e8a2c69">remmina_connection_holder_toolbar_preferences_check</a>(cnnhld, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, menu, feature,</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;                domain, enabled);</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;        }</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;    }</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a7f0d68059b8fe91317c6b62d9315ca44">remmina_connection_holder_toolbar_preferences_popdown</a>),</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;        cnnhld);</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;        GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, <a class="code" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a>, widget, 0, gtk_get_current_event_time());</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;}</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div><div class="line"><a name="l01626"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a51cc0b2274049920f67c71047bd76213"> 1626</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a51cc0b2274049920f67c71047bd76213">remmina_connection_holder_toolbar_tools</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;{</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature;</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;    GtkWidget* menu;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    GtkWidget* menuitem = NULL;</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    GtkMenu *submenu_keystrokes;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;    <span class="keyword">const</span> gchar* domain;</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    gboolean enabled;</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    gchar **keystrokes;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;    gchar **keystroke_values;</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    gint i;</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;    domain = <a class="code" href="remmina__protocol__widget_8c.html#aef28374d0056407bad6204997d2c3bf9">remmina_protocol_widget_get_domain</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;    <span class="keywordflow">for</span> (feature = <a class="code" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget_get_features</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>)); feature &amp;&amp; feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>;</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;         feature++) {</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;        <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a> != <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>)</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;        <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a>) {</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;            menuitem = gtk_menu_item_new_with_label(g_dgettext(domain, (<span class="keyword">const</span> gchar*)feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">opt1</a>));</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;        }</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;        <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>) {</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(menuitem, <span class="stringliteral">&quot;&quot;</span>, GPOINTER_TO_UINT(feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>), 0);</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;        }</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;        gtk_widget_show(menuitem);</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;        enabled = <a class="code" href="remmina__protocol__widget_8c.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget_query_feature_by_ref</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), feature);</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;        <span class="keywordflow">if</span> (enabled) {</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;            g_object_set_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-type&quot;</span>, (gpointer)feature);</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;            g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;activate&quot;</span>,</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;                G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a4507b43c6fd10bc68d9512c6b253a552">remmina_connection_holder_call_protocol_feature_activate</a>), cnnhld);</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;            gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;        }</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    }</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ae18a8e7a72ec9a2f3e529708d7ffe0ce">remmina_connection_holder_toolbar_tools_popdown</a>), cnnhld);</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    <span class="comment">/* If the plugin accepts keystrokes include the keystrokes menu */</span></div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina__protocol__widget_8c.html#a480f842fac65440c367bf3c3d87d2601">remmina_protocol_widget_plugin_receives_keystrokes</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>))) {</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;        <span class="comment">/* Get the registered keystrokes list */</span></div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;        keystrokes = g_strsplit(remmina_pref.<a class="code" href="struct___remmina_pref.html#a086c9b0fe4bcfe0e5349422d17886d65">keystrokes</a>, STRING_DELIMITOR, -1);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;        <span class="keywordflow">if</span> (g_strv_length(keystrokes)) {</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;            <span class="comment">/* Add a keystrokes submenu */</span></div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;            menuitem = gtk_menu_item_new_with_label(_(<span class="stringliteral">&quot;Keystrokes&quot;</span>));</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;            submenu_keystrokes = GTK_MENU(gtk_menu_new());</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;            gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), GTK_WIDGET(submenu_keystrokes));</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;            gtk_widget_show(menuitem);</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;            gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;            <span class="comment">/* Add each registered keystroke */</span></div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;            <span class="keywordflow">for</span> (i = 0; i &lt; g_strv_length(keystrokes); i++) {</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;                keystroke_values = g_strsplit(keystrokes[i], STRING_DELIMITOR2, -1);</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;                <span class="keywordflow">if</span> (g_strv_length(keystroke_values) &gt; 1) {</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;                    <span class="comment">/* Add the keystroke if no description was available */</span></div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;                    menuitem = gtk_menu_item_new_with_label(</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;                        g_strdup(keystroke_values[strlen(keystroke_values[0]) ? 0 : 1]));</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;                    g_object_set_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;keystrokes&quot;</span>, g_strdup(keystroke_values[1]));</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;                    g_signal_connect_swapped(G_OBJECT(menuitem), <span class="stringliteral">&quot;activate&quot;</span>,</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;                        G_CALLBACK(<a class="code" href="remmina__protocol__widget_8c.html#affb2413c00f0681fe08f90523f7e1471">remmina_protocol_widget_send_keystrokes</a>),</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;                        REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;                    gtk_widget_show(menuitem);</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;                    gtk_menu_shell_append(GTK_MENU_SHELL(submenu_keystrokes), menuitem);</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;                }</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;                g_strfreev(keystroke_values);</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;            }</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;        }</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;        g_strfreev(keystrokes);</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;    }</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;        GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, <a class="code" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a>, widget, 0, gtk_get_current_event_time());</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;}</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;</div><div class="line"><a name="l01714"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a7959ed5b51966bb0fb9e7b84bbb9878d"> 1714</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a7959ed5b51966bb0fb9e7b84bbb9878d">remmina_connection_holder_toolbar_screenshot</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;{</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;    GdkPixbuf *screenshot;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    GdkWindow *active_window;</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;    cairo_t *cr;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    gint width, height;</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;    <span class="keyword">const</span> gchar* remminafile;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;    gchar* pngname;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;    gchar* pngdate;</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    GtkWidget* dialog;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;    <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;    <a class="code" href="struct___remmina_plugin_screenshot_data.html">RemminaPluginScreenshotData</a> rpsd;</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;    cairo_surface_t *srcsurface;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;    cairo_format_t cairo_format;</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;    cairo_surface_t *surface;</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    <span class="keywordtype">int</span> stride;</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;    GDateTime *date = g_date_time_new_now_utc();</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;    <span class="comment">// We will take a screenshot of the currently displayed RemminaProtocolWidget.</span></div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;    <span class="comment">// DECLARE_CNNOBJ already did part of the job for us.</span></div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;        gp = REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    <span class="comment">// Ask the plugin if it can give us a screenshot</span></div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina__protocol__widget_8c.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget_plugin_screenshot</a>(gp, &amp;rpsd)) {</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;        <span class="comment">// Good, we have a screenshot from the plugin !</span></div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;        <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;Screenshot from plugin: w=%d h=%d bpp=%d bytespp=%d\n&quot;</span>,</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;            rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a>, rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a>, rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a>, rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">bytesPerPixel</a>);</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;        width = rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a>;</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;        height = rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a>;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;        <span class="keywordflow">if</span> (rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a> == 32)</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;            cairo_format = CAIRO_FORMAT_ARGB32;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">bitsPerPixel</a> == 24)</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;            cairo_format = CAIRO_FORMAT_RGB24;</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;            cairo_format = CAIRO_FORMAT_RGB16_565;</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;        stride = cairo_format_stride_for_width(cairo_format, width);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;        srcsurface = cairo_image_surface_create_for_data(rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>, cairo_format, width, height, stride);</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;        surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, width, height);</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;        cr = cairo_create(surface);</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;        cairo_set_source_surface(cr, srcsurface, 0, 0);</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;        cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;        cairo_paint(cr);</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;        cairo_surface_destroy(srcsurface);</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;        free(rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;        <span class="comment">// The plugin is not releasing us a screenshot, just try to catch one via GTK</span></div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;        <span class="comment">/* Warn the user if image is distorted */</span></div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;        <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">plugin_can_scale</a> &amp;&amp;</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL) == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a>) {</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;            dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;                _(<span class="stringliteral">&quot;Warning: screenshot is scaled or distorted. Disable scaling to have better screenshot.&quot;</span>));</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;            g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;response&quot;</span>, G_CALLBACK(gtk_widget_destroy), NULL);</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;            gtk_widget_show(dialog);</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;        }</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;        <span class="comment">// Get the screenshot.</span></div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;        active_window = gtk_widget_get_window(GTK_WIDGET(gp));</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;        <span class="comment">// width = gdk_window_get_width(gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)));</span></div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;        width = gdk_window_get_width(active_window);</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;        <span class="comment">// height = gdk_window_get_height(gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)));</span></div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;        height = gdk_window_get_height(active_window);</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;        screenshot = gdk_pixbuf_get_from_window(active_window, 0, 0, width, height);</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;        <span class="keywordflow">if</span> (screenshot == NULL)</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;            g_print(<span class="stringliteral">&quot;gdk_pixbuf_get_from_window failed\n&quot;</span>);</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;        <span class="comment">// Prepare the destination cairo surface.</span></div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;        surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, width, height);</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;        cr = cairo_create(surface);</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;        <span class="comment">// Copy the source pixbuf to the surface and paint it.</span></div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;        gdk_cairo_set_source_pixbuf(cr, screenshot, 0, 0);</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;        cairo_paint(cr);</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;        <span class="comment">// Deallocate screenshot pixbuf</span></div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;        g_object_unref(screenshot);</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;    }</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;    remminafile = <a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    <span class="comment">//imagedir = g_get_user_special_dir(G_USER_DIRECTORY_PICTURES);</span></div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;<span class="comment"></span>    pngdate = g_strdup_printf(<span class="stringliteral">&quot;%d-%d-%d-%d:%d:%f&quot;</span>,</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;        g_date_time_get_year(date),</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;        g_date_time_get_month(date),</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;        g_date_time_get_day_of_month(date),</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;        g_date_time_get_hour(date),</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;        g_date_time_get_minute(date),</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;        g_date_time_get_seconds(date));</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;    g_date_time_unref(date);</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;    <span class="keywordflow">if</span> (remminafile == NULL)</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;        remminafile = <span class="stringliteral">&quot;remmina_screenshot&quot;</span>;</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;    pngname = g_strdup_printf(<span class="stringliteral">&quot;%s/%s-%s.png&quot;</span>, remmina_pref.<a class="code" href="struct___remmina_pref.html#a3df98a686c4e2703455c1a786d3f1f5c">screenshot_path</a>,</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;        g_path_get_basename(remminafile), pngdate);</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;    cairo_surface_write_to_png(surface, pngname);</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;    <span class="comment">/* send a desktop notification */</span></div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;    <a class="code" href="remmina__public_8c.html#a893f0cfe2d694ab700975f4f427ee2f6">remmina_public_send_notification</a>(<span class="stringliteral">&quot;remmina-screenshot-is-ready-id&quot;</span>, _(<span class="stringliteral">&quot;Screenshot taken&quot;</span>), pngname);</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;    <span class="comment">//Clean up and return.</span></div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;    cairo_destroy(cr);</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;    cairo_surface_destroy(surface);</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;}</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div><div class="line"><a name="l01835"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac4d1d30f9b5f09e300b18f60f37f5b8f"> 1835</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ac4d1d30f9b5f09e300b18f60f37f5b8f">remmina_connection_holder_toolbar_minimize</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;{</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;    gtk_window_iconify(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;}</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;</div><div class="line"><a name="l01842"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af1106bba32f40c7f42221a0483987503"> 1842</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#af1106bba32f40c7f42221a0483987503">remmina_connection_holder_toolbar_disconnect</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;{</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a1e4264610577737355a72e95d37787f7">remmina_connection_holder_disconnect_current_page</a>(cnnhld);</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;}</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div><div class="line"><a name="l01848"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae505b986ad4b310e51a5e956eae3d2a0"> 1848</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae505b986ad4b310e51a5e956eae3d2a0">remmina_connection_holder_toolbar_grab</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;{</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;    gboolean capture;</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;    capture = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;    <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;keyboard_grab&quot;</span>, capture);</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;    <span class="keywordflow">if</span> (capture) {</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: Grabbing for button\n&quot;</span>);</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a6bcba3905245597b6393bbdc8a210e3d">remmina_connection_holder_keyboard_grab</a>(cnnhld);</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;    }<span class="keywordflow">else</span></div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a>(cnnhld);</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;}</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;<span class="keyword">static</span> GtkWidget*</div><div class="line"><a name="l01866"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af8138da72278e9e9000276e08a6fd984"> 1866</a></span>&#160;<a class="code" href="remmina__connection__window_8c.html#af8138da72278e9e9000276e08a6fd984">remmina_connection_holder_create_toolbar</a>(RemminaConnectionHolder* cnnhld, gint mode)</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;{</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;    GtkWidget* toolbar;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;    GtkToolItem* toolitem;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;    GtkWidget* widget;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;    GtkWidget* arrow;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;    toolbar = gtk_toolbar_new();</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;    gtk_widget_show(toolbar);</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;    gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;    gtk_toolbar_set_show_arrow(GTK_TOOLBAR(toolbar), FALSE);</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a293541cc884cabe4f9b2b3181b3ea9c0">small_toolbutton</a>) {</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;        gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_MENU);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;    }</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;    <span class="comment">/* Auto-Fit */</span></div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;    toolitem = gtk_tool_button_new(NULL, NULL);</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-fit-window&quot;</span>);</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Resize the window to fit in remote resolution&quot;</span>),</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#ae5c3a7fd35cc51f658dda67052440b47">shortcutkey_autofit</a>, 0);</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ac679e10d8be64d56ed13043dd4df7d1c">remmina_connection_holder_toolbar_autofit</a>), cnnhld);</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;    priv-&gt;toolitem_autofit = toolitem;</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;    <span class="comment">/* Fullscreen toggle */</span></div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-fullscreen&quot;</span>);</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Toggle fullscreen mode&quot;</span>),</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#a10b1f3d9b49687c09ec5dd98a0577d7f">shortcutkey_fullscreen</a>, 0);</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;    priv-&gt;toolitem_fullscreen = toolitem;</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(toolitem), mode != <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a02ac20f50f1b7b816bd7208127efdbee">remmina_connection_holder_toolbar_fullscreen</a>), cnnhld);</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;    <span class="comment">/* Fullscreen drop-down options */</span></div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;    toolitem = gtk_tool_item_new();</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;    widget = gtk_toggle_button_new();</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(widget), 0);</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;    gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NONE);</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(widget), FALSE);</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a293541cc884cabe4f9b2b3181b3ea9c0">small_toolbutton</a>) {</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;        gtk_widget_set_name(widget, <span class="stringliteral">&quot;remmina-small-button&quot;</span>);</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;    }</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;    gtk_container_add(GTK_CONTAINER(toolitem), widget);</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 14, 0)</span></div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;    arrow = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;pan-down-symbolic&quot;</span>, GTK_ICON_SIZE_BUTTON);</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;    arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;    gtk_widget_show(arrow);</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;    gtk_container_add(GTK_CONTAINER(widget), arrow);</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;    g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a1415cdcbed0e6fe9a7978586bf132207">remmina_connection_holder_toolbar_fullscreen_option</a>), cnnhld);</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;    priv-&gt;fullscreen_option_button = widget;</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;    <span class="keywordflow">if</span> (mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;    }</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;    <span class="comment">/* Switch tabs */</span></div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-switch-page&quot;</span>);</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Switch tab pages&quot;</span>), remmina_pref.<a class="code" href="struct___remmina_pref.html#a45d70bbebf5163081d67df3dbb73cc1b">shortcutkey_prevtab</a>,</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#a712773f926eb2ec030d6af80cdc33095">shortcutkey_nexttab</a>);</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#aefad8c92a20121f0563bfeaf06c25e8e">remmina_connection_holder_toolbar_switch_page</a>), cnnhld);</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;    priv-&gt;toolitem_switch_page = toolitem;</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;    toolitem = gtk_separator_tool_item_new();</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;    <span class="comment">/* Dynamic Resolution Update */</span></div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-dynres&quot;</span>);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Toggle dynamic resolution update&quot;</span>),</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#a2cc56c093d45511af91c6b05c522c45a">shortcutkey_dynres</a>, 0);</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a576e3800c7371f63b27e3832848ac4e5">remmina_connection_holder_toolbar_dynres</a>), cnnhld);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;    priv-&gt;toolitem_dynres = toolitem;</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;    <span class="comment">/* Scaler button */</span></div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-scale&quot;</span>);</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Toggle scaled mode&quot;</span>), remmina_pref.<a class="code" href="struct___remmina_pref.html#a2859598ef2f87afb5a970a197a503765">shortcutkey_scale</a>, 0);</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ad6136dd7c0867a5a5f1c0b0645632ee4">remmina_connection_holder_toolbar_scaled_mode</a>), cnnhld);</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;    priv-&gt;toolitem_scale = toolitem;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;    <span class="comment">/* Scaler aspect ratio dropdown menu */</span></div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    toolitem = gtk_tool_item_new();</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;    widget = gtk_toggle_button_new();</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(widget), 0);</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;    gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NONE);</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(widget), FALSE);</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a293541cc884cabe4f9b2b3181b3ea9c0">small_toolbutton</a>) {</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;        gtk_widget_set_name(widget, <span class="stringliteral">&quot;remmina-small-button&quot;</span>);</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;    }</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;    gtk_container_add(GTK_CONTAINER(toolitem), widget);</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 14, 0)</span></div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;    arrow = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;pan-down-symbolic&quot;</span>, GTK_ICON_SIZE_BUTTON);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;    arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;    gtk_widget_show(arrow);</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;    gtk_container_add(GTK_CONTAINER(widget), arrow);</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;    g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a7a722d82899ce761356e47de2ac91452">remmina_connection_holder_toolbar_scaler_option</a>), cnnhld);</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;    priv-&gt;scaler_option_button = widget;</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;    <span class="comment">/* Grab keyboard button */</span></div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;input-keyboard&quot;</span>);</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Grab all keyboard events&quot;</span>),</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#a363642437f5920c93fe35c07ef3601cc">shortcutkey_grab</a>, 0);</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ae505b986ad4b310e51a5e956eae3d2a0">remmina_connection_holder_toolbar_grab</a>), cnnhld);</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;    priv-&gt;toolitem_grab = toolitem;</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;preferences-system&quot;</span>);</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;    gtk_tool_item_set_tooltip_text(toolitem, _(<span class="stringliteral">&quot;Preferences&quot;</span>));</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a78ec7d6e66d6e6569c1a9a0230c74bc8">remmina_connection_holder_toolbar_preferences</a>), cnnhld);</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;    priv-&gt;toolitem_preferences = toolitem;</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;system-run&quot;</span>);</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;    gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolitem), _(<span class="stringliteral">&quot;Tools&quot;</span>));</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;    gtk_tool_item_set_tooltip_text(toolitem, _(<span class="stringliteral">&quot;Tools&quot;</span>));</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a51cc0b2274049920f67c71047bd76213">remmina_connection_holder_toolbar_tools</a>), cnnhld);</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;    priv-&gt;toolitem_tools = toolitem;</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;    toolitem = gtk_separator_tool_item_new();</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;_Screenshot&quot;</span>);</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;camera-photo&quot;</span>);</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Screenshot&quot;</span>), remmina_pref.<a class="code" href="struct___remmina_pref.html#a1b5f4704fb50b67ff1e3daaf7d7d3209">shortcutkey_screenshot</a>, 0);</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a7959ed5b51966bb0fb9e7b84bbb9878d">remmina_connection_holder_toolbar_screenshot</a>), cnnhld);</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;_Bottom&quot;</span>);</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;go-bottom&quot;</span>);</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Minimize window&quot;</span>), remmina_pref.<a class="code" href="struct___remmina_pref.html#a887cbbd379d159cd0ac1acea7173d07b">shortcutkey_minimize</a>, 0);</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ac4d1d30f9b5f09e300b18f60f37f5b8f">remmina_connection_holder_toolbar_minimize</a>), cnnhld);</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;_Disconnect&quot;</span>);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;gtk-disconnect&quot;</span>);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Disconnect&quot;</span>), remmina_pref.<a class="code" href="struct___remmina_pref.html#a17bfba7a11836808719d33d5f6edbdc7">shortcutkey_disconnect</a>, 0);</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#af1106bba32f40c7f42221a0483987503">remmina_connection_holder_toolbar_disconnect</a>), cnnhld);</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;    <span class="keywordflow">return</span> toolbar;</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;}</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;</div><div class="line"><a name="l02050"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a3627c2a73e45f25e4672fcce27af9a18"> 2050</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a3627c2a73e45f25e4672fcce27af9a18">remmina_connection_holder_place_toolbar</a>(GtkToolbar *toolbar, GtkGrid *grid, GtkWidget *sibling, <span class="keywordtype">int</span> toolbar_placement)</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;{</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;    <span class="comment">/* Place the toolbar inside the grid and set its orientation */</span></div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;    <span class="keywordflow">if</span> ( toolbar_placement == <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a> || toolbar_placement == <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>)</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;        gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_VERTICAL);</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;        gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_HORIZONTAL);</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;    <span class="keywordflow">switch</span> (toolbar_placement) {</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a069738542d6980f9594299ab57221a7f">TOOLBAR_PLACEMENT_TOP</a>:</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;        gtk_grid_attach_next_to(GTK_GRID(grid), GTK_WIDGET(toolbar), sibling, GTK_POS_TOP, 1, 1);</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>:</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;        gtk_grid_attach_next_to(GTK_GRID(grid), GTK_WIDGET(toolbar), sibling, GTK_POS_RIGHT, 1, 1);</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a95463ce23d03eb31b2bb61c29dab0076">TOOLBAR_PLACEMENT_BOTTOM</a>:</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;        gtk_grid_attach_next_to(GTK_GRID(grid), GTK_WIDGET(toolbar), sibling, GTK_POS_BOTTOM, 1, 1);</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a>:</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;        gtk_grid_attach_next_to(GTK_GRID(grid), GTK_WIDGET(toolbar), sibling, GTK_POS_LEFT, 1, 1);</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;    }</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;}</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;</div><div class="line"><a name="l02085"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c"> 2085</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;{</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;    GtkToolItem* toolitem;</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;    gboolean bval, dynres_avail, scale_avail;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;    gboolean test_floating_toolbar;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adb407338a545724966a1c62d3bd60fb5">remmina_connection_holder_update_toolbar_autofit_button</a>(cnnhld);</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;    toolitem = priv-&gt;toolitem_switch_page;</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;    bval = (gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook)) &gt; 1);</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), bval);</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;    scalemode = <a class="code" href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, &amp;dynres_avail, &amp;scale_avail);</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_dynres), dynres_avail);</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_scale), scale_avail);</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;    <span class="keywordflow">switch</span> (scalemode) {</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>:</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), FALSE);</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), FALSE);</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), FALSE);</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a>:</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), FALSE);</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), TRUE);</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), TRUE);</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>:</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), TRUE);</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), FALSE);</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), FALSE);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;    }</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;    toolitem = priv-&gt;toolitem_grab;</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(toolitem),</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;        <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;keyboard_grab&quot;</span>, FALSE));</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;    toolitem = priv-&gt;toolitem_preferences;</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;    bval = <a class="code" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget_query_feature_by_type</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>);</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), bval);</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;    toolitem = priv-&gt;toolitem_tools;</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;    bval = <a class="code" href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget_query_feature_by_type</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>);</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), bval);</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;    gtk_window_set_title(GTK_WINDOW(cnnhld-&gt;cnnwin), <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;    test_floating_toolbar = (priv-&gt;floating_toolbar_widget != NULL);</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;    test_floating_toolbar = (priv-&gt;floating_toolbar_window != NULL);</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;    <span class="keywordflow">if</span> (test_floating_toolbar) {</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;        gtk_label_set_text(GTK_LABEL(priv-&gt;floating_toolbar_label),</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;            <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;    }</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;}</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;</div><div class="line"><a name="l02151"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a3542c1aed620129ef10a0cb01b2db526"> 2151</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a3542c1aed620129ef10a0cb01b2db526">remmina_connection_holder_showhide_toolbar</a>(RemminaConnectionHolder* cnnhld, gboolean resize)</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;{</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;    <span class="comment">/* Here we should threat the resize flag, but we don&#39;t */</span></div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;        <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e">hide_connection_toolbar</a>) {</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;            gtk_widget_hide(priv-&gt;toolbar);</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;            gtk_widget_show(priv-&gt;toolbar);</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;        }</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;    }</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;}</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;</div><div class="line"><a name="l02166"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a5b12b74df51eda99c7e34a4d016e4f1e"> 2166</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a5b12b74df51eda99c7e34a4d016e4f1e">remmina_connection_holder_floating_toolbar_on_enter</a>(GtkWidget* widget, GdkEventCrossing* event,</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;                                    RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;{</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, TRUE);</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;}</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;</div><div class="line"><a name="l02174"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a158cccca5a2fe5a770a99d8772ba62b2"> 2174</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a158cccca5a2fe5a770a99d8772ba62b2">remmina_connection_object_enter_protocol_widget</a>(GtkWidget* widget, GdkEventCrossing* event,</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;                                <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;{</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;    RemminaConnectionHolder* cnnhld = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>;</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;    <span class="keywordflow">if</span> (!priv-&gt;sticky &amp;&amp; event-&gt;mode == GDK_CROSSING_NORMAL) {</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;    }</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;}</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;</div><div class="line"><a name="l02187"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a6f4427665eeef5af2091621c1e89b589"> 2187</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a6f4427665eeef5af2091621c1e89b589">remmina_connection_window_focus_in</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;{</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window) {</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#aab1db8671426ff3a525451b96479c4f2">remmina_connection_holder_floating_toolbar_visible</a>(cnnhld, TRUE);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;    }</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a6bcba3905245597b6393bbdc8a210e3d">remmina_connection_holder_keyboard_grab</a>(cnnhld);</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;}</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;</div><div class="line"><a name="l02202"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a8c242e0a7ee57ed79099c330d696b43f"> 2202</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a8c242e0a7ee57ed79099c330d696b43f">remmina_connection_window_focus_out</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;{</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> * priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a>(cnnhld);</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;    cnnhld-&gt;hostkey_activated = FALSE;</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;    <span class="keywordflow">if</span> (!priv-&gt;sticky &amp;&amp; priv-&gt;floating_toolbar_window) {</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#aab1db8671426ff3a525451b96479c4f2">remmina_connection_holder_floating_toolbar_visible</a>(cnnhld, FALSE);</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;    }</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;    <span class="keywordflow">if</span> (REMMINA_IS_SCROLLED_VIEWPORT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;        <a class="code" href="remmina__scrolled__viewport_8c.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport_remove_motion</a>(REMMINA_SCROLLED_VIEWPORT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>));</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;    }</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget_call_feature_by_type</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>, 0);</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;}</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;</div><div class="line"><a name="l02227"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a539828a1dd435bee083d82136691176c"> 2227</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a539828a1dd435bee083d82136691176c">remmina_connection_window_focus_out_event</a>(GtkWidget* widget, GdkEvent* event, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;{</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: focus out and mouse_pointer_entered is %s\n&quot;</span>, cnnhld-&gt;cnnwin-&gt;priv-&gt;mouse_pointer_entered ? <span class="stringliteral">&quot;true&quot;</span> : <span class="stringliteral">&quot;false&quot;</span>);</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a8c242e0a7ee57ed79099c330d696b43f">remmina_connection_window_focus_out</a>(widget, cnnhld);</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;}</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;</div><div class="line"><a name="l02237"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aac168486f2fb093eb6347cb0726153b5"> 2237</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#aac168486f2fb093eb6347cb0726153b5">remmina_connection_window_focus_in_event</a>(GtkWidget* widget, GdkEvent* event, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;{</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: focus in and mouse_pointer_entered is %s\n&quot;</span>, cnnhld-&gt;cnnwin-&gt;priv-&gt;mouse_pointer_entered ? <span class="stringliteral">&quot;true&quot;</span> : <span class="stringliteral">&quot;false&quot;</span>);</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a6f4427665eeef5af2091621c1e89b589">remmina_connection_window_focus_in</a>(widget, cnnhld);</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;}</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;</div><div class="line"><a name="l02247"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a2b5a6494f27dca9408e2640f11a7738c"> 2247</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a2b5a6494f27dca9408e2640f11a7738c">remmina_connection_window_on_enter</a>(GtkWidget* widget, GdkEventCrossing* event, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;{</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;    cnnhld-&gt;cnnwin-&gt;priv-&gt;mouse_pointer_entered = TRUE;</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: enter detail=&quot;</span>);</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;    <span class="keywordflow">switch</span> (event-&gt;detail) {</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_ANCESTOR: printf(<span class="stringliteral">&quot;GDK_NOTIFY_ANCESTOR&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_VIRTUAL: printf(<span class="stringliteral">&quot;GDK_NOTIFY_VIRTUAL&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_NONLINEAR: printf(<span class="stringliteral">&quot;GDK_NOTIFY_NONLINEAR&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_NONLINEAR_VIRTUAL: printf(<span class="stringliteral">&quot;GDK_NOTIFY_NONLINEAR_VIRTUAL&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_UNKNOWN: printf(<span class="stringliteral">&quot;GDK_NOTIFY_UNKNOWN&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_INFERIOR: printf(<span class="stringliteral">&quot;GDK_NOTIFY_INFERIOR&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;    }</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;    printf(<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;    <span class="keywordflow">if</span> (gtk_window_is_active(GTK_WINDOW(cnnhld-&gt;cnnwin))) {</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a6bcba3905245597b6393bbdc8a210e3d">remmina_connection_holder_keyboard_grab</a>(cnnhld);</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;    }</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;}</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;</div><div class="line"><a name="l02270"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a63c87d892406b77f16956a54b039ab1b"> 2270</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a63c87d892406b77f16956a54b039ab1b">remmina_connection_window_on_leave</a>(GtkWidget* widget, GdkEventCrossing* event, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;{</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: leave detail=&quot;</span>);</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;    <span class="keywordflow">switch</span> (event-&gt;detail) {</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_ANCESTOR: printf(<span class="stringliteral">&quot;GDK_NOTIFY_ANCESTOR&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_VIRTUAL: printf(<span class="stringliteral">&quot;GDK_NOTIFY_VIRTUAL&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_NONLINEAR: printf(<span class="stringliteral">&quot;GDK_NOTIFY_NONLINEAR&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_NONLINEAR_VIRTUAL: printf(<span class="stringliteral">&quot;GDK_NOTIFY_NONLINEAR_VIRTUAL&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_UNKNOWN: printf(<span class="stringliteral">&quot;GDK_NOTIFY_UNKNOWN&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;    <span class="keywordflow">case</span> GDK_NOTIFY_INFERIOR: printf(<span class="stringliteral">&quot;GDK_NOTIFY_INFERIOR&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;    }</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;    printf(<span class="stringliteral">&quot;  x=%f y=%f\n&quot;</span>, event-&gt;x, event-&gt;y);</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;    printf(<span class="stringliteral">&quot;  focus=%s\n&quot;</span>, event-&gt;focus ? <span class="stringliteral">&quot;yes&quot;</span> : <span class="stringliteral">&quot;no&quot;</span>);</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;    printf(<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;<span class="comment">     * Unity: we leave windows with GDK_NOTIFY_VIRTUAL or GDK_NOTIFY_NONLINEAR_VIRTUAL</span></div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;<span class="comment">     * Gnome shell: we leave windows with both GDK_NOTIFY_VIRTUAL or GDK_NOTIFY_ANCESTOR</span></div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;<span class="comment">     * Xfce: we cannot drag this window when grabbed, so we need to ungrab in response to GDK_NOTIFY_NONLINEAR</span></div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;    <span class="keywordflow">if</span> (event-&gt;detail == GDK_NOTIFY_VIRTUAL || event-&gt;detail == GDK_NOTIFY_ANCESTOR ||</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;        event-&gt;detail == GDK_NOTIFY_NONLINEAR_VIRTUAL || event-&gt;detail == GDK_NOTIFY_NONLINEAR) {</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;        cnnhld-&gt;cnnwin-&gt;priv-&gt;mouse_pointer_entered = FALSE;</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a>(cnnhld);</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;    }</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;}</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;<span class="keyword">static</span> gboolean</div><div class="line"><a name="l02301"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af0ca467e68db4fb9baa872d57ef3bca4"> 2301</a></span>&#160;<a class="code" href="remmina__connection__window_8c.html#af0ca467e68db4fb9baa872d57ef3bca4">remmina_connection_holder_floating_toolbar_hide</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;{</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;    priv-&gt;hidetb_timer = 0;</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, FALSE);</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;}</div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;</div><div class="line"><a name="l02310"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a9d0e16bc9f0d555b3832b2ff6be66e3f"> 2310</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a9d0e16bc9f0d555b3832b2ff6be66e3f">remmina_connection_holder_floating_toolbar_on_scroll</a>(GtkWidget* widget, GdkEventScroll* event,</div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;                                     RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;{</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;    DECLARE_CNNOBJ_WITH_RETURN(FALSE)</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;    <span class="keywordtype">int</span> opacity;</div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;    opacity = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;toolbar_opacity&quot;</span>, 0);</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;    <span class="keywordflow">switch</span> (event-&gt;direction) {</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;    <span class="keywordflow">case</span> GDK_SCROLL_UP:</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;        <span class="keywordflow">if</span> (opacity &gt; 0) {</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;toolbar_opacity&quot;</span>, opacity - 1);</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(cnnhld);</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;        }</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;    <span class="keywordflow">case</span> GDK_SCROLL_DOWN:</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;        <span class="keywordflow">if</span> (opacity &lt; TOOLBAR_OPACITY_LEVEL) {</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;toolbar_opacity&quot;</span>, opacity + 1);</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(cnnhld);</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;        }</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;<span class="preprocessor">#ifdef GDK_SCROLL_SMOOTH</span></div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;    <span class="keywordflow">case</span> GDK_SCROLL_SMOOTH:</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;        <span class="keywordflow">if</span> (event-&gt;delta_y &lt; 0 &amp;&amp; opacity &gt; 0) {</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;toolbar_opacity&quot;</span>, opacity - 1);</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(cnnhld);</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;        }</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;        <span class="keywordflow">if</span> (event-&gt;delta_y &gt; 0 &amp;&amp; opacity &lt; TOOLBAR_OPACITY_LEVEL) {</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;toolbar_opacity&quot;</span>, opacity + 1);</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(cnnhld);</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;        }</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;    }</div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;}</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;</div><div class="line"><a name="l02353"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac342d0fa24e77d124fa84dece8b13feb"> 2353</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#ac342d0fa24e77d124fa84dece8b13feb">remmina_connection_window_after_configure_scrolled</a>(gpointer user_data)</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;{</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;    gint width, height;</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;    GdkWindowState s;</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;    gint ipg, npages;</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj;</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;    cnnhld = (RemminaConnectionHolder*)user_data;</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;    s = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin)));</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;    <span class="keywordflow">if</span> (!cnnhld || !cnnhld-&gt;cnnwin)</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;    <span class="comment">/* Changed window_maximize, window_width and window_height for all</span></div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;<span class="comment">     * connections inside the notebook */</span></div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;    npages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook));</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;    <span class="keywordflow">for</span> (ipg = 0; ipg &lt; npages; ipg++) {</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;        cnnobj = g_object_get_data(</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;            G_OBJECT(gtk_notebook_get_nth_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook), ipg)),</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;            <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;        <span class="keywordflow">if</span> (s &amp; GDK_WINDOW_STATE_MAXIMIZED) {</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_maximize&quot;</span>, TRUE);</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;            gtk_window_get_size(GTK_WINDOW(cnnhld-&gt;cnnwin), &amp;width, &amp;height);</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_width&quot;</span>, width);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_height&quot;</span>, height);</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_maximize&quot;</span>, FALSE);</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;        }</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;    }</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;    cnnhld-&gt;cnnwin-&gt;priv-&gt;savestate_eventsourceid = 0;</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;}</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;</div><div class="line"><a name="l02389"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af79fdcdd07b28c1cde08489d7986ca37"> 2389</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#af79fdcdd07b28c1cde08489d7986ca37">remmina_connection_window_on_configure</a>(GtkWidget* widget, GdkEventConfigure* event,</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;                               RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;{</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;    DECLARE_CNNOBJ_WITH_RETURN(FALSE)</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> * priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;    GtkRequisition req;</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;    gint y;</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;savestate_eventsourceid) {</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;        g_source_remove(cnnhld-&gt;cnnwin-&gt;priv-&gt;savestate_eventsourceid);</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;        cnnhld-&gt;cnnwin-&gt;priv-&gt;savestate_eventsourceid = 0;</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;    }</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin &amp;&amp; gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin))</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;        &amp;&amp; cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;        <span class="comment">/* Under gnome shell we receive this configure_event BEFORE a window</span></div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;<span class="comment">         * is really unmaximized, so we must read its new state and dimensions</span></div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;<span class="comment">         * later, not now */</span></div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;        cnnhld-&gt;cnnwin-&gt;priv-&gt;savestate_eventsourceid = g_timeout_add(500, <a class="code" href="remmina__connection__window_8c.html#ac342d0fa24e77d124fa84dece8b13feb">remmina_connection_window_after_configure_scrolled</a>, cnnhld);</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;    }</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;<span class="preprocessor">#if !FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_window) {</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;        gtk_widget_get_preferred_size(priv-&gt;floating_toolbar_window, &amp;req, NULL);</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;        gtk_window_get_position(GTK_WINDOW(priv-&gt;floating_toolbar_window), NULL, &amp;y);</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;        gtk_window_move(GTK_WINDOW(priv-&gt;floating_toolbar_window), event-&gt;x + MAX(0, (event-&gt;width - req.width) / 2), y);</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a2b7b33331e6fe8c8c70be62038f9f5ea">remmina_connection_holder_floating_toolbar_update</a>(cnnhld);</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;    }</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;        <span class="comment">/* Notify window of change so that scroll border can be hidden or shown if needed */</span></div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>);</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;    }</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;}</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;</div><div class="line"><a name="l02431"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aac226c5115a432b09cff71ecd772ea6c"> 2431</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aac226c5115a432b09cff71ecd772ea6c">remmina_connection_holder_update_pin</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;{</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;pin_down) {</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;        gtk_button_set_image(GTK_BUTTON(cnnhld-&gt;cnnwin-&gt;priv-&gt;pin_button),</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;            gtk_image_new_from_icon_name(<span class="stringliteral">&quot;remmina-pin-down&quot;</span>, GTK_ICON_SIZE_MENU));</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;        gtk_button_set_image(GTK_BUTTON(cnnhld-&gt;cnnwin-&gt;priv-&gt;pin_button),</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;            gtk_image_new_from_icon_name(<span class="stringliteral">&quot;remmina-pin-up&quot;</span>, GTK_ICON_SIZE_MENU));</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;    }</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;}</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;</div><div class="line"><a name="l02443"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a735747875f8442962795c7a2ec027378"> 2443</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a735747875f8442962795c7a2ec027378">remmina_connection_holder_toolbar_pin</a>(GtkWidget* widget, RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;{</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;    remmina_pref.<a class="code" href="struct___remmina_pref.html#a62b161b504422d53a766abb3444f8449">toolbar_pin_down</a> = cnnhld-&gt;cnnwin-&gt;priv-&gt;pin_down = !cnnhld-&gt;cnnwin-&gt;priv-&gt;pin_down;</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;    <a class="code" href="remmina__pref_8c.html#a1c614a5e7dc3cd415be6e0a926e26983">remmina_pref_save</a>();</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#aac226c5115a432b09cff71ecd772ea6c">remmina_connection_holder_update_pin</a>(cnnhld);</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160;}</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;</div><div class="line"><a name="l02451"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a967dca6c1876afc3e6bcb763f9709d43"> 2451</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a967dca6c1876afc3e6bcb763f9709d43">remmina_connection_holder_create_floating_toolbar</a>(RemminaConnectionHolder* cnnhld, gint mode)</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;{</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;    DECLARE_CNNOBJ</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;    GtkWidget* ftb_widget;</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;    GtkWidget* ftb_popup_window;</div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;    GtkWidget* eventbox;</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;    GtkWidget* vbox;</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;    GtkWidget* hbox;</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;    GtkWidget* label;</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160;    GtkWidget* pinbutton;</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;    GtkWidget* tb;</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;</div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160;</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;    <span class="comment">/* A widget to be used for GtkOverlay for GTK &gt;= 3.10 */</span></div><div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;    ftb_widget = gtk_event_box_new();</div><div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160;    <span class="comment">/* A popup window for GTK &lt; 3.10 */</span></div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;    ftb_popup_window = gtk_window_new(GTK_WINDOW_POPUP);</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;</div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;    vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;    gtk_widget_show(vbox);</div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;    gtk_container_add(GTK_CONTAINER(ftb_widget), vbox);</div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160;    gtk_container_add(GTK_CONTAINER(ftb_popup_window), vbox);</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;    tb = <a class="code" href="remmina__connection__window_8c.html#af8138da72278e9e9000276e08a6fd984">remmina_connection_holder_create_toolbar</a>(cnnhld, mode);</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160;    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;    gtk_widget_show(hbox);</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160;</div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;    <span class="comment">/* The pin button */</span></div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;    pinbutton = gtk_button_new();</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160;    gtk_widget_show(pinbutton);</div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), pinbutton, FALSE, FALSE, 0);</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;    gtk_button_set_relief(GTK_BUTTON(pinbutton), GTK_RELIEF_NONE);</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(pinbutton), FALSE);</div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(pinbutton), FALSE);</div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;    gtk_widget_set_name(pinbutton, <span class="stringliteral">&quot;remmina-pin-button&quot;</span>);</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;    g_signal_connect(G_OBJECT(pinbutton), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a735747875f8442962795c7a2ec027378">remmina_connection_holder_toolbar_pin</a>), cnnhld);</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160;    priv-&gt;pin_button = pinbutton;</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;    priv-&gt;pin_down = remmina_pref.<a class="code" href="struct___remmina_pref.html#a62b161b504422d53a766abb3444f8449">toolbar_pin_down</a>;</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#aac226c5115a432b09cff71ecd772ea6c">remmina_connection_holder_update_pin</a>(cnnhld);</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;</div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;    label = gtk_label_new(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;    gtk_label_set_max_width_chars(GTK_LABEL(label), 50);</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;    gtk_widget_show(label);</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;    <span class="comment">/* An event box is required to wrap the label to avoid infinite &quot;leave-enter&quot; event loop */</span></div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;    eventbox = gtk_event_box_new();</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160;    gtk_widget_show(eventbox);</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), eventbox, TRUE, TRUE, 0);</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;    gtk_container_add(GTK_CONTAINER(eventbox), label);</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;    priv-&gt;floating_toolbar_label = label;</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#ac95fed56e8995e3361928ebf87505f21">floating_toolbar_placement</a> == <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>) {</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), tb, FALSE, FALSE, 0);</div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), tb, FALSE, FALSE, 0);</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160;    }</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160;</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;    priv-&gt;floating_toolbar_widget = ftb_widget;</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>)</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;        gtk_widget_show(ftb_widget);</div><div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;</div><div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160;</div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;    gtk_box_pack_start(GTK_BOX(vbox), tb, FALSE, FALSE, 0);</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);</div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;    <span class="comment">/* The position will be moved in configure event instead during maximizing. Just make it invisible here */</span></div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;    gtk_window_move(GTK_WINDOW(ftb_popup_window), 0, 6000);</div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;    gtk_window_set_accept_focus(GTK_WINDOW(ftb_popup_window), FALSE);</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;</div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;    priv-&gt;floating_toolbar_window = ftb_popup_window;</div><div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;</div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a>(cnnhld);</div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f">fullscreen_toolbar_visibility</a> == <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53af179642fefe2ae4787e2d593519010dc">FLOATING_TOOLBAR_VISIBILITY_INVISIBLE</a> &amp;&amp; !priv-&gt;pin_down) {</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 8, 0)</span></div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;        gtk_widget_set_opacity(GTK_WIDGET(ftb_popup_window), 0.0);</div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;        gtk_window_set_opacity(GTK_WINDOW(ftb_popup_window), 0.0);</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160;    }</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>)</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;        gtk_widget_show(ftb_popup_window);</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160;}</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;</div><div class="line"><a name="l02565"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a80906d852763452c11199efbbb1d4cf3"> 2565</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a80906d852763452c11199efbbb1d4cf3">remmina_connection_window_toolbar_place_signal</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin, gpointer data)</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160;{</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160;    <span class="comment">/* Detach old toolbar widget and reattach in new position in the grid */</span></div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar &amp;&amp; priv-&gt;grid) {</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;        g_object_ref(priv-&gt;toolbar);</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;        gtk_container_remove(GTK_CONTAINER(priv-&gt;grid), priv-&gt;toolbar);</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a3627c2a73e45f25e4672fcce27af9a18">remmina_connection_holder_place_toolbar</a>(GTK_TOOLBAR(priv-&gt;toolbar), GTK_GRID(priv-&gt;grid), priv-&gt;notebook, remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a>);</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;        g_object_unref(priv-&gt;toolbar);</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;    }</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;}</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;</div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160;</div><div class="line"><a name="l02581"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a1b58d7fa4bb5b76f17451bd665854d9d"> 2581</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a1b58d7fa4bb5b76f17451bd665854d9d">remmina_connection_window_init</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin)</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160;{</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;    priv = g_new0(<a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>, 1);</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a> = priv;</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;    priv-&gt;view_mode = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dab1d633b014db4f3b67ec587e14035755">AUTO_MODE</a>;</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;    priv-&gt;floating_toolbar_opacity = 1.0;</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;    priv-&gt;kbcaptured = FALSE;</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;    priv-&gt;mouse_pointer_entered = FALSE;</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(cnnwin), 0);</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160;</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;    <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;toolbar-place&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a80906d852763452c11199efbbb1d4cf3">remmina_connection_window_toolbar_place_signal</a>), NULL);</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;}</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;</div><div class="line"><a name="l02601"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a174d5b1e983a96c98aae2e8078f462bd"> 2601</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a174d5b1e983a96c98aae2e8078f462bd">remmina_connection_window_state_event</a>(GtkWidget* widget, GdkEventWindowState* event, gpointer user_data)</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;{</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160;    <span class="keywordflow">if</span> (event-&gt;changed_mask &amp; GDK_WINDOW_STATE_FOCUSED) {</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;        <span class="keywordflow">if</span> (event-&gt;new_window_state &amp; GDK_WINDOW_STATE_FOCUSED)</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a6f4427665eeef5af2091621c1e89b589">remmina_connection_window_focus_in</a>(widget, user_data);</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a8c242e0a7ee57ed79099c330d696b43f">remmina_connection_window_focus_out</a>(widget, user_data);</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;    }</div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160;</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;<span class="preprocessor">#ifdef ENABLE_MINIMIZE_TO_TRAY</span></div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160;    GdkScreen* screen;</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;    screen = gdk_screen_get_default();</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.minimize_to_tray &amp;&amp; (event-&gt;changed_mask &amp; GDK_WINDOW_STATE_ICONIFIED) != 0</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;        &amp;&amp; (event-&gt;new_window_state &amp; GDK_WINDOW_STATE_ICONIFIED) != 0</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160;        &amp;&amp; <a class="code" href="remmina__public_8c.html#a7ff5e5c4dabc3fb001125a6da14ad758">remmina_public_get_current_workspace</a>(screen)</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;        == <a class="code" href="remmina__public_8c.html#a9c0688cfe4ec55f8b563943aab570b25">remmina_public_get_window_workspace</a>(GTK_WINDOW(widget))</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;        &amp;&amp; gdk_screen_get_number(screen) == gdk_screen_get_number(gtk_widget_get_screen(widget))) {</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;        gtk_widget_hide(widget);</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160;    }</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;    <span class="keywordflow">return</span> FALSE; <span class="comment">// moved here because a function should return a value. Should be correct</span></div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160;}</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160;</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160;<span class="keyword">static</span> GtkWidget*</div><div class="line"><a name="l02629"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a0ff4775a640861c11f2bc9f4e4680ed5"> 2629</a></span>&#160;<a class="code" href="remmina__connection__window_8c.html#a0ff4775a640861c11f2bc9f4e4680ed5">remmina_connection_window_new_from_holder</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160;{</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin;</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160;</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;    cnnwin = REMMINA_CONNECTION_WINDOW(g_object_new(REMMINA_TYPE_CONNECTION_WINDOW, NULL));</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;cnnhld = cnnhld;</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;on_delete_confirm_mode = <a class="code" href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307faab7bf0c707f20f72a8b76af66f1702ab">REMMINA_CONNECTION_WINDOW_ONDELETE_CONFIRM_IF_2_OR_MORE</a>;</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;</div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;delete-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#aa84f957aaf2152717af3959b80ecfa8a">remmina_connection_window_delete_event</a>), cnnhld);</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a2d157bba82de5684318381a8816db2af">remmina_connection_window_destroy</a>), cnnhld);</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;    <span class="comment">/* focus-in-event and focus-out-event don&#39;t work when keyboard is grabbed</span></div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;<span class="comment">     * via gdk_device_grab. So we listen for window-state-event to detect focus in and focus out */</span></div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;window-state-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a174d5b1e983a96c98aae2e8078f462bd">remmina_connection_window_state_event</a>), cnnhld);</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;focus-in-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#aac168486f2fb093eb6347cb0726153b5">remmina_connection_window_focus_in_event</a>), cnnhld);</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;focus-out-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a539828a1dd435bee083d82136691176c">remmina_connection_window_focus_out_event</a>), cnnhld);</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;enter-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a2b5a6494f27dca9408e2640f11a7738c">remmina_connection_window_on_enter</a>), cnnhld);</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;leave-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a63c87d892406b77f16956a54b039ab1b">remmina_connection_window_on_leave</a>), cnnhld);</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160;</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;configure_event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#af79fdcdd07b28c1cde08489d7986ca37">remmina_connection_window_on_configure</a>), cnnhld);</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;    <span class="keywordflow">return</span> GTK_WIDGET(cnnwin);</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;}</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160;</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;<span class="comment">/* This function will be called for the first connection. A tag is set to the window so that</span></div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160;<span class="comment"> * other connections can determine if whether a new tab should be append to the same window</span></div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02659"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a49552d7adf2f4e22a59d89802171e52b"> 2659</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a49552d7adf2f4e22a59d89802171e52b">remmina_connection_window_update_tag</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160;{</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;    gchar* tag;</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160;    <span class="keywordflow">switch</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#aecbe4c6a13ec6eda818c9f74c6f63468">tab_mode</a>) {</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556ea18b9b9f60fb377c589ff11b5388fee33">REMMINA_TAB_BY_GROUP</a>:</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160;        tag = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;group&quot;</span>));</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eaedb9eb53656e5315bf173ec9d0f5b558">REMMINA_TAB_BY_PROTOCOL</a>:</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;        tag = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;protocol&quot;</span>));</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;        tag = NULL;</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160;    }</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;    g_object_set_data_full(G_OBJECT(cnnwin), <span class="stringliteral">&quot;tag&quot;</span>, tag, (GDestroyNotify)g_free);</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;}</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160;</div><div class="line"><a name="l02678"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a789a6a8ad49883d67479a264ef7befbe"> 2678</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a789a6a8ad49883d67479a264ef7befbe">remmina_connection_object_create_scrolled_container</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj, gint view_mode)</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160;{</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;    GtkWidget* container;</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;    <span class="keywordflow">if</span> (view_mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>) {</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;        container = <a class="code" href="remmina__scrolled__viewport_8c.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport_new</a>();</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;        container = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ae80a730a48eefb689b9957c4f669a020">remmina_connection_object_set_scrolled_policy</a>(cnnobj, GTK_SCROLLED_WINDOW(container));</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;        gtk_container_set_border_width(GTK_CONTAINER(container), 0);</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;        gtk_widget_set_can_focus(container, FALSE);</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;    }</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;    gtk_widget_set_name(container, <span class="stringliteral">&quot;remmina-scrolled-container&quot;</span>);</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;    g_object_set_data(G_OBJECT(container), <span class="stringliteral">&quot;cnnobj&quot;</span>, cnnobj);</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;    gtk_widget_show(container);</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a> = container;</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160;</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;    g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;enter-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a158cccca5a2fe5a770a99d8772ba62b2">remmina_connection_object_enter_protocol_widget</a>), cnnobj);</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;}</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;</div><div class="line"><a name="l02702"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3"> 2702</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3">remmina_connection_holder_grab_focus</a>(GtkNotebook *notebook)</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;{</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj;</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;    GtkWidget* child;</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160;</div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;    child = gtk_notebook_get_nth_page(notebook, gtk_notebook_get_current_page(notebook));</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160;    cnnobj = g_object_get_data(G_OBJECT(child), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>)) {</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;        <a class="code" href="remmina__protocol__widget_8c.html#a290eb68f0e86de1b7b82e2d98a1494d1">remmina_protocol_widget_grab_focus</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;    }</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;}</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;</div><div class="line"><a name="l02715"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a4108c65715a02c0a7b570a2393027c2b"> 2715</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a4108c65715a02c0a7b570a2393027c2b">remmina_connection_object_on_close_button_clicked</a>(GtkButton* button, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;{</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;    <span class="keywordflow">if</span> (REMMINA_IS_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>)) {</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;        <a class="code" href="remmina__protocol__widget_8c.html#a326a430fe4d298e3564d9fd5b7945a82">remmina_protocol_widget_close_connection</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;    }</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;}</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;</div><div class="line"><a name="l02723"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a888c4dd031e9366a3284cb34351865aa"> 2723</a></span>&#160;<span class="keyword">static</span> GtkWidget* <a class="code" href="remmina__connection__window_8c.html#a888c4dd031e9366a3284cb34351865aa">remmina_connection_object_create_tab</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;{</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;    GtkWidget* hbox;</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;    GtkWidget* widget;</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;    GtkWidget* button;</div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;</div><div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160;</div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;    gtk_widget_show(hbox);</div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;</div><div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160;    widget = gtk_image_new_from_icon_name(<a class="code" href="remmina__file_8c.html#a2feb8e9e32f3ff4e2fac836e67a77331">remmina_file_get_icon_name</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>), GTK_ICON_SIZE_MENU);</div><div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160;</div><div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160;    widget = gtk_label_new(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;name&quot;</span>));</div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160;    gtk_widget_set_valign(widget, GTK_ALIGN_CENTER);</div><div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160;    gtk_widget_set_halign(widget, GTK_ALIGN_CENTER);</div><div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;</div><div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;</div><div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;    button = gtk_button_new();      <span class="comment">// The &quot;x&quot; to close the tab</span></div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);</div><div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(button), FALSE);</div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;    gtk_widget_set_name(button, <span class="stringliteral">&quot;remmina-small-button&quot;</span>);</div><div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;    gtk_widget_show(button);</div><div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;</div><div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;    widget = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;window-close&quot;</span>, GTK_ICON_SIZE_MENU);</div><div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160;    gtk_container_add(GTK_CONTAINER(button), widget);</div><div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;</div><div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);</div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;</div><div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;    g_signal_connect(G_OBJECT(button), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a4108c65715a02c0a7b570a2393027c2b">remmina_connection_object_on_close_button_clicked</a>), cnnobj);</div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160;</div><div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160;    <span class="keywordflow">return</span> hbox;</div><div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160;}</div><div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;</div><div class="line"><a name="l02766"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac06b41c974d5cfc6277f50b617a550bb"> 2766</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina__connection__window_8c.html#ac06b41c974d5cfc6277f50b617a550bb">remmina_connection_object_append_page</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj, GtkNotebook* notebook, GtkWidget* tab,</div><div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;                          gint view_mode)</div><div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160;{</div><div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;    gint i;</div><div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;</div><div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a789a6a8ad49883d67479a264ef7befbe">remmina_connection_object_create_scrolled_container</a>(cnnobj, view_mode);</div><div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;    i = gtk_notebook_append_page(notebook, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>, tab);</div><div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;    gtk_notebook_set_tab_reorderable(notebook, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>, TRUE);</div><div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160;    gtk_notebook_set_tab_detachable(notebook, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>, TRUE);</div><div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;    <span class="comment">/* This trick prevents the tab label from being focused */</span></div><div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;    gtk_widget_set_can_focus(gtk_widget_get_parent(tab), FALSE);</div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;    <span class="keywordflow">return</span> i;</div><div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160;}</div><div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160;</div><div class="line"><a name="l02781"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#aa28770c2f7c156eb4574227310481041"> 2781</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aa28770c2f7c156eb4574227310481041">remmina_connection_window_initialize_notebook</a>(GtkNotebook* to, GtkNotebook* from, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj,</div><div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160;                              gint view_mode)</div><div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160;{</div><div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;    gint i, n, c;</div><div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;    GtkWidget* tab;</div><div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160;    GtkWidget* widget;</div><div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* tc;</div><div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160;</div><div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160;    <span class="keywordflow">if</span> (cnnobj) {</div><div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;        <span class="comment">/* Search cnnobj in the &quot;from&quot; notebook */</span></div><div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;        tc = NULL;</div><div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;        <span class="keywordflow">if</span> (from) {</div><div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160;            n = gtk_notebook_get_n_pages(from);</div><div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;            <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160;                widget = gtk_notebook_get_nth_page(from, i);</div><div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160;                tc = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>*)g_object_get_data(G_OBJECT(widget), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;                <span class="keywordflow">if</span> (tc == cnnobj)</div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160;            }</div><div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;        }</div><div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;        <span class="keywordflow">if</span> (tc) {</div><div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;            <span class="comment">/* if cnnobj is already in the &quot;from&quot; notebook, we should be in the drag and drop case.</span></div><div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;<span class="comment">             * just... do not move it. GTK will do the move when the create-window signal</span></div><div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;<span class="comment">             * of GtkNotebook will return */</span></div><div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;</div><div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;            <span class="comment">/* cnnobj is not on the &quot;from&quot; notebook. This is a new connection for a newly created window */</span></div><div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;            tab = <a class="code" href="remmina__connection__window_8c.html#a888c4dd031e9366a3284cb34351865aa">remmina_connection_object_create_tab</a>(cnnobj);</div><div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#ac06b41c974d5cfc6277f50b617a550bb">remmina_connection_object_append_page</a>(cnnobj, to, tab, view_mode);</div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;</div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;            G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;            gtk_widget_reparent(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>);</div><div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160;            G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;</div><div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;            <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a>) {</div><div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160;                gtk_widget_destroy(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a>);</div><div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160;                cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a> = NULL;</div><div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160;            }</div><div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160;        }</div><div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160;        <span class="comment">/* cnnobj=null: migrate all existing connections to the new notebook */</span></div><div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160;        <span class="keywordflow">if</span> (from != NULL &amp;&amp; GTK_IS_NOTEBOOK(from)) {</div><div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160;            c = gtk_notebook_get_current_page(from);</div><div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160;            n = gtk_notebook_get_n_pages(from);</div><div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160;            <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;                widget = gtk_notebook_get_nth_page(from, i);</div><div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;                tc = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>*)g_object_get_data(G_OBJECT(widget), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;</div><div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;                tab = <a class="code" href="remmina__connection__window_8c.html#a888c4dd031e9366a3284cb34351865aa">remmina_connection_object_create_tab</a>(tc);</div><div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;                <a class="code" href="remmina__connection__window_8c.html#ac06b41c974d5cfc6277f50b617a550bb">remmina_connection_object_append_page</a>(tc, to, tab, view_mode);</div><div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160;</div><div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;                <span class="comment">/* Reparent cnnobj-&gt;viewport */</span></div><div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;                G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;                gtk_widget_reparent(tc-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>, tc-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>);</div><div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;                G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160;            }</div><div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;            gtk_notebook_set_current_page(to, c);</div><div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;        }</div><div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160;    }</div><div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160;}</div><div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160;</div><div class="line"><a name="l02843"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae9bb344de3fcb51b6ecf56a664b6a3cb"> 2843</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae9bb344de3fcb51b6ecf56a664b6a3cb">remmina_connection_holder_update_notebook</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160;{</div><div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160;    GtkNotebook* notebook;</div><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160;    gint n;</div><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160;</div><div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160;    <span class="keywordflow">if</span> (!cnnhld-&gt;cnnwin)</div><div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160;</div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160;    notebook = GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook);</div><div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160;</div><div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;    <span class="keywordflow">switch</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode) {</div><div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;        n = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160;        gtk_notebook_set_show_tabs(notebook, remmina_pref.<a class="code" href="struct___remmina_pref.html#a6d77a2663675f01670ed7cc2f14e39c9">always_show_tab</a> ? TRUE : n &gt; 1);</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160;        gtk_notebook_set_show_border(notebook, remmina_pref.<a class="code" href="struct___remmina_pref.html#a6d77a2663675f01670ed7cc2f14e39c9">always_show_tab</a> ? TRUE : n &gt; 1);</div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;        gtk_notebook_set_show_tabs(notebook, FALSE);</div><div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;        gtk_notebook_set_show_border(notebook, FALSE);</div><div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;    }</div><div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;}</div><div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;</div><div class="line"><a name="l02867"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#af0cc437cd94ed03047f1e2b195317b54"> 2867</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#af0cc437cd94ed03047f1e2b195317b54">remmina_connection_holder_on_switch_page_real</a>(gpointer data)</div><div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160;{</div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;    RemminaConnectionHolder* cnnhld = (RemminaConnectionHolder*)data;</div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;</div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_WIDGET(cnnhld-&gt;cnnwin)) {</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, TRUE);</div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160;        <span class="keywordflow">if</span> (!priv-&gt;hidetb_timer)</div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160;            priv-&gt;hidetb_timer = g_timeout_add(TB_HIDE_TIME_TIME, (GSourceFunc)</div><div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160;                <a class="code" href="remmina__connection__window_8c.html#af0ca467e68db4fb9baa872d57ef3bca4">remmina_connection_holder_floating_toolbar_hide</a>, cnnhld);</div><div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a>(cnnhld);</div><div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3">remmina_connection_holder_grab_focus</a>(GTK_NOTEBOOK(priv-&gt;notebook));</div><div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160;        <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(cnnhld);</div><div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;        }</div><div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;</div><div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;    }</div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;    priv-&gt;switch_page_handler = 0;</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;}</div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160;</div><div class="line"><a name="l02889"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ac93e70cd6f65ebb4bee3827240cf1c05"> 2889</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ac93e70cd6f65ebb4bee3827240cf1c05">remmina_connection_holder_on_switch_page</a>(GtkNotebook* notebook, GtkWidget* page, guint page_num,</div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;                             RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;{</div><div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;</div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;    <span class="keywordflow">if</span> (!priv-&gt;switch_page_handler) {</div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;        priv-&gt;switch_page_handler = g_idle_add(<a class="code" href="remmina__connection__window_8c.html#af0cc437cd94ed03047f1e2b195317b54">remmina_connection_holder_on_switch_page_real</a>, cnnhld);</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;    }</div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160;}</div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160;</div><div class="line"><a name="l02900"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a17841adaac1f1d03395629af001f9135"> 2900</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a17841adaac1f1d03395629af001f9135">remmina_connection_holder_on_page_added</a>(GtkNotebook* notebook, GtkWidget* child, guint page_num,</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;                            RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160;{</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;    <span class="keywordflow">if</span> (gtk_notebook_get_n_pages(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook)) &gt; 0)</div><div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ae9bb344de3fcb51b6ecf56a664b6a3cb">remmina_connection_holder_update_notebook</a>(cnnhld);</div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160;}</div><div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160;</div><div class="line"><a name="l02907"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a6f585d526b1cbf7224329da51ad40005"> 2907</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a6f585d526b1cbf7224329da51ad40005">remmina_connection_holder_on_page_removed</a>(GtkNotebook* notebook, GtkWidget* child, guint page_num,</div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;                              RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160;{</div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160;</div><div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160;    <span class="keywordflow">if</span> (!cnnhld-&gt;cnnwin)</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;</div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;    <span class="keywordflow">if</span> (gtk_notebook_get_n_pages(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook)) &lt;= 0) {</div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;        gtk_widget_destroy(GTK_WIDGET(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160;        cnnhld-&gt;cnnwin = NULL;</div><div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;    }</div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;</div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;}</div><div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;</div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;GtkNotebook*</div><div class="line"><a name="l02923"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a2f5fc595c1aad851962aa58e2009bcce"> 2923</a></span>&#160;<a class="code" href="remmina__connection__window_8c.html#a2f5fc595c1aad851962aa58e2009bcce">remmina_connection_holder_on_notebook_create_window</a>(GtkNotebook* notebook, GtkWidget* page, gint x, gint y, gpointer data)</div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160;{</div><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;    <span class="comment">/* This signal callback is called by GTK when a detachable tab is dropped on the root window */</span></div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;</div><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* srccnnwin;</div><div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* dstcnnwin;</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj;</div><div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;    gint srcpagenum;</div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;    GdkWindow* window;</div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;</div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;    GdkDeviceManager *manager;</div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160;    GdkDevice* device = NULL;</div><div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160;</div><div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160;    seat = gdk_display_get_default_seat(gdk_display_get_default());</div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;    device = gdk_seat_get_pointer(seat);</div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160;    manager = gdk_display_get_device_manager(gdk_display_get_default());</div><div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160;    device = gdk_device_manager_get_client_pointer(manager);</div><div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160;</div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;    window = gdk_device_get_window_at_position(device, &amp;x, &amp;y);</div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160;    srccnnwin = REMMINA_CONNECTION_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(notebook)));</div><div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160;    dstcnnwin = REMMINA_CONNECTION_WINDOW(<a class="code" href="remmina__widget__pool_8c.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool_find_by_window</a>(REMMINA_TYPE_CONNECTION_WINDOW, window));</div><div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160;</div><div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160;    <span class="keywordflow">if</span> (srccnnwin == dstcnnwin)</div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160;</div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160;    <span class="keywordflow">if</span> (gtk_notebook_get_n_pages(GTK_NOTEBOOK(srccnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook)) == 1 &amp;&amp; !dstcnnwin)</div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;</div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;    cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>*)g_object_get_data(G_OBJECT(page), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;    srcpagenum = gtk_notebook_page_num(GTK_NOTEBOOK(srccnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>);</div><div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;</div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;    <span class="keywordflow">if</span> (dstcnnwin) {</div><div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a> = dstcnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;cnnhld;</div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a> = g_new0(RemminaConnectionHolder, 1);</div><div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;        <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin) {</div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;            <span class="comment">/* Create a new scrolled window to accomodate the dropped connection</span></div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;<span class="comment">             * and move our cnnobj there */</span></div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;            cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin = srccnnwin;</div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>, cnnobj);</div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;        }</div><div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160;    }</div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160;</div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a9e77e4da16282ef5413f57b124038bff">remmina_protocol_widget_set_hostkey_func</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;        (<a class="code" href="remmina__protocol__widget_8h.html#a741639f1800defdb42f235a8816a495b">RemminaHostkeyFunc</a>)remmina_connection_window_hostkey_func, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>);</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;    <span class="keywordflow">return</span> GTK_NOTEBOOK(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin-&gt;priv-&gt;notebook);</div><div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160;}</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;</div><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;<span class="keyword">static</span> GtkWidget*</div><div class="line"><a name="l02981"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae616dc409c5775dc73d9a83c1f081705"> 2981</a></span>&#160;<a class="code" href="remmina__connection__window_8c.html#ae616dc409c5775dc73d9a83c1f081705">remmina_connection_holder_create_notebook</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160;{</div><div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;    GtkWidget* notebook;</div><div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160;</div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160;    notebook = gtk_notebook_new();</div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160;</div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;    gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), TRUE);</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;    gtk_widget_show(notebook);</div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;create-window&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a2f5fc595c1aad851962aa58e2009bcce">remmina_connection_holder_on_notebook_create_window</a>),</div><div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;        cnnhld);</div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;switch-page&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ac93e70cd6f65ebb4bee3827240cf1c05">remmina_connection_holder_on_switch_page</a>), cnnhld);</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;page-added&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a17841adaac1f1d03395629af001f9135">remmina_connection_holder_on_page_added</a>), cnnhld);</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;page-removed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a6f585d526b1cbf7224329da51ad40005">remmina_connection_holder_on_page_removed</a>), cnnhld);</div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;    gtk_widget_set_can_focus(notebook, FALSE);</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;    <span class="keywordflow">return</span> notebook;</div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160;}</div><div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160;<span class="comment">/* Create a scrolled window container */</span></div><div class="line"><a name="l03002"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7"> 3002</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a>(RemminaConnectionHolder* cnnhld, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;{</div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;    GtkWidget* window;</div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;    GtkWidget* oldwindow;</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;    GtkWidget* grid;</div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;    GtkWidget* toolbar;</div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;    GtkWidget* notebook;</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;    GList *chain;</div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;    gchar* tag;</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;    <span class="keywordtype">int</span> newwin_width, newwin_height;</div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;    oldwindow = GTK_WIDGET(cnnhld-&gt;cnnwin);</div><div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160;    window = <a class="code" href="remmina__connection__window_8c.html#a0ff4775a640861c11f2bc9f4e4680ed5">remmina_connection_window_new_from_holder</a>(cnnhld);</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;    gtk_widget_realize(window);</div><div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;    cnnhld-&gt;cnnwin = REMMINA_CONNECTION_WINDOW(window);</div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160;</div><div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160;</div><div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160;    newwin_width = newwin_height = 100;</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;    <span class="keywordflow">if</span> (cnnobj) {</div><div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;        <span class="comment">/* If we have a cnnobj as a reference for this window, we can setup its default size here */</span></div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;        newwin_width = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_width&quot;</span>, 640);</div><div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160;        newwin_height = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_height&quot;</span>, 480);</div><div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160;        <span class="comment">/* Try to get a temporary RemminaConnectionObject from the old window and get</span></div><div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160;<span class="comment">         * a remmina_file and width/height */</span></div><div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160;        <span class="keywordtype">int</span> np;</div><div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160;        GtkWidget* page;</div><div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;        <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* oldwindow_currentpage_cnnobj;</div><div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160;</div><div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;        np = gtk_notebook_get_current_page(GTK_NOTEBOOK(REMMINA_CONNECTION_WINDOW(oldwindow)-&gt;priv-&gt;notebook));</div><div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;        page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(REMMINA_CONNECTION_WINDOW(oldwindow)-&gt;priv-&gt;notebook), np);</div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;        oldwindow_currentpage_cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>*)g_object_get_data(G_OBJECT(page), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160;        newwin_width = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(oldwindow_currentpage_cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_width&quot;</span>, 640);</div><div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160;        newwin_height = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(oldwindow_currentpage_cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_height&quot;</span>, 480);</div><div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160;    }</div><div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160;</div><div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;    gtk_window_set_default_size(GTK_WINDOW(cnnhld-&gt;cnnwin), newwin_width, newwin_height);</div><div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160;</div><div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160;    <span class="comment">/* Create the toolbar */</span></div><div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;    toolbar = <a class="code" href="remmina__connection__window_8c.html#af8138da72278e9e9000276e08a6fd984">remmina_connection_holder_create_toolbar</a>(cnnhld, <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;</div><div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;    <span class="comment">/* Create the notebook */</span></div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160;    notebook = <a class="code" href="remmina__connection__window_8c.html#ae616dc409c5775dc73d9a83c1f081705">remmina_connection_holder_create_notebook</a>(cnnhld);</div><div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160;</div><div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160;    <span class="comment">/* Create the grid container for toolbars+notebook and populate it */</span></div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160;    grid = gtk_grid_new();</div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160;    gtk_grid_attach(GTK_GRID(grid), notebook, 0, 0, 1, 1);</div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160;</div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;    gtk_widget_set_hexpand(notebook, TRUE);</div><div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;    gtk_widget_set_vexpand(notebook, TRUE);</div><div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;</div><div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a3627c2a73e45f25e4672fcce27af9a18">remmina_connection_holder_place_toolbar</a>(GTK_TOOLBAR(toolbar), GTK_GRID(grid), notebook, remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a>);</div><div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;</div><div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160;</div><div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160;    gtk_container_add(GTK_CONTAINER(window), grid);</div><div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160;</div><div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160;    chain = g_list_append(NULL, notebook);</div><div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;    gtk_container_set_focus_chain(GTK_CONTAINER(grid), chain);</div><div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;    g_list_free(chain);</div><div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;</div><div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;    <span class="comment">/* Add drag capabilities to the toolbar */</span></div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;    gtk_drag_source_set(GTK_WIDGET(toolbar), GDK_BUTTON1_MASK,</div><div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160;        dnd_targets_tb, <span class="keyword">sizeof</span> dnd_targets_tb / <span class="keyword">sizeof</span> *dnd_targets_tb, GDK_ACTION_MOVE);</div><div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160;    g_signal_connect_after(GTK_WIDGET(toolbar), <span class="stringliteral">&quot;drag-begin&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ae072f58def6470b4cecd2c625d6411e6">remmina_connection_window_tb_drag_begin</a>), cnnhld);</div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160;    g_signal_connect(GTK_WIDGET(toolbar), <span class="stringliteral">&quot;drag-failed&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#aac99c87f16b44843e8eb41bea27cbe2a">remmina_connection_window_tb_drag_failed</a>), cnnhld);</div><div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160;</div><div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160;    <span class="comment">/* Add drop capabilities to the drop/dest target for the toolbar (the notebook) */</span></div><div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160;    gtk_drag_dest_set(GTK_WIDGET(notebook), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT,</div><div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160;        dnd_targets_tb, <span class="keyword">sizeof</span> dnd_targets_tb / <span class="keyword">sizeof</span> *dnd_targets_tb, GDK_ACTION_MOVE);</div><div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160;    gtk_drag_dest_set_track_motion(GTK_WIDGET(notebook), TRUE);</div><div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160;    g_signal_connect(GTK_WIDGET(notebook), <span class="stringliteral">&quot;drag-drop&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a289101aed4f30397f39880960aae2ac3">remmina_connection_window_tb_drag_drop</a>), cnnhld);</div><div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160;</div><div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160;    cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>;</div><div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160;    cnnhld-&gt;cnnwin-&gt;priv-&gt;toolbar = toolbar;</div><div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160;    cnnhld-&gt;cnnwin-&gt;priv-&gt;grid = grid;</div><div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160;    cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook = notebook;</div><div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160;</div><div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160;    <span class="comment">/* The notebook and all its child must be realized now, or a reparent will</span></div><div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160;<span class="comment">     * call unrealize() and will destroy a GtkSocket */</span></div><div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160;    gtk_widget_show(grid);</div><div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160;    gtk_widget_show(GTK_WIDGET(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160;</div><div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#aa28770c2f7c156eb4574227310481041">remmina_connection_window_initialize_notebook</a>(GTK_NOTEBOOK(notebook),</div><div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160;        (oldwindow ? GTK_NOTEBOOK(REMMINA_CONNECTION_WINDOW(oldwindow)-&gt;priv-&gt;notebook) : NULL), cnnobj,</div><div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;        <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;</div><div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;    <span class="keywordflow">if</span> (cnnobj) {</div><div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;        <span class="keywordflow">if</span> (!oldwindow)</div><div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a49552d7adf2f4e22a59d89802171e52b">remmina_connection_window_update_tag</a>(cnnhld-&gt;cnnwin, cnnobj);</div><div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160;</div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;window_maximize&quot;</span>, FALSE)) {</div><div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;            gtk_window_maximize(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;        }</div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;    }</div><div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160;</div><div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160;    <span class="keywordflow">if</span> (oldwindow) {</div><div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;        tag = g_strdup((gchar*)g_object_get_data(G_OBJECT(oldwindow), <span class="stringliteral">&quot;tag&quot;</span>));</div><div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;        g_object_set_data_full(G_OBJECT(cnnhld-&gt;cnnwin), <span class="stringliteral">&quot;tag&quot;</span>, tag, (GDestroyNotify)g_free);</div><div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160;        <span class="keywordflow">if</span> (!cnnobj)</div><div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160;            gtk_widget_destroy(oldwindow);</div><div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160;    }</div><div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160;</div><div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a>(cnnhld);</div><div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a3542c1aed620129ef10a0cb01b2db526">remmina_connection_holder_showhide_toolbar</a>(cnnhld, FALSE);</div><div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(cnnhld);</div><div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;</div><div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;</div><div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;}</div><div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160;</div><div class="line"><a name="l03112"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a10b3a54bf50f7522ee272932673e9419"> 3112</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a10b3a54bf50f7522ee272932673e9419">remmina_connection_window_go_fullscreen</a>(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160;{</div><div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160;</div><div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160;    cnnhld = (RemminaConnectionHolder*)data;</div><div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160;</div><div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 18, 0)</span></div><div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a4a74d72f34e960155c489e0f91574d2b">fullscreen_on_auto</a>) {</div><div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;        gtk_window_fullscreen_on_monitor(GTK_WINDOW(cnnhld-&gt;cnnwin),</div><div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160;            gdk_screen_get_default(),</div><div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160;            gdk_screen_get_monitor_at_window</div><div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>&#160;                (gdk_screen_get_default(), gtk_widget_get_window(GTK_WIDGET(cnnhld-&gt;cnnwin))</div><div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160;                ));</div><div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160;        <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(<span class="stringliteral">&quot;Fullscreen managed by WM or by the user, as per settings&quot;</span>);</div><div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160;        gtk_window_fullscreen(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160;    }</div><div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160;    <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(<span class="stringliteral">&quot;Cannot fullscreen on a specific monitor, feature available from GTK 3.18&quot;</span>);</div><div class="line"><a name="l03134"></a><span class="lineno"> 3134</span>&#160;    gtk_window_fullscreen(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;}</div><div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160;</div><div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>&#160;</div><div class="line"><a name="l03141"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ab2edcb806312b3367c70fbb13c383ae0"> 3141</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ab2edcb806312b3367c70fbb13c383ae0">remmina_connection_holder_create_overlay_ftb_overlay</a>(RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>&#160;{</div><div class="line"><a name="l03143"></a><span class="lineno"> 3143</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160;</div><div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;    GtkWidget* revealer;</div><div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160;</div><div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;overlay_ftb_overlay != NULL) {</div><div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160;        gtk_widget_destroy(priv-&gt;overlay_ftb_overlay);</div><div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160;        priv-&gt;overlay_ftb_overlay = NULL;</div><div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160;        priv-&gt;revealer = NULL;</div><div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160;    }</div><div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160;</div><div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a967dca6c1876afc3e6bcb763f9709d43">remmina_connection_holder_create_floating_toolbar</a>(cnnhld, cnnhld-&gt;fullscreen_view_mode);</div><div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a>(cnnhld);</div><div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160;</div><div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160;    priv-&gt;overlay_ftb_overlay = gtk_event_box_new();</div><div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160;</div><div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;    GtkWidget* vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);</div><div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160;</div><div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160;    GtkWidget* handle = gtk_drawing_area_new();</div><div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;    gtk_widget_set_size_request(handle, 4, 4);</div><div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;    gtk_widget_set_name(handle, <span class="stringliteral">&quot;ftb-handle&quot;</span>);</div><div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160;</div><div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160;    revealer = gtk_revealer_new();</div><div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160;</div><div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;    gtk_widget_set_halign(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GTK_ALIGN_CENTER);</div><div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160;</div><div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#ac95fed56e8995e3361928ebf87505f21">floating_toolbar_placement</a> == <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>) {</div><div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), handle, FALSE, FALSE, 0);</div><div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), revealer, FALSE, FALSE, 0);</div><div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160;        gtk_revealer_set_transition_type(GTK_REVEALER(revealer), GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);</div><div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160;        gtk_widget_set_valign(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GTK_ALIGN_END);</div><div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), revealer, FALSE, FALSE, 0);</div><div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), handle, FALSE, FALSE, 0);</div><div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160;        gtk_revealer_set_transition_type(GTK_REVEALER(revealer), GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);</div><div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160;        gtk_widget_set_valign(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GTK_ALIGN_START);</div><div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160;    }</div><div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160;</div><div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160;</div><div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160;    gtk_container_add(GTK_CONTAINER(revealer), priv-&gt;floating_toolbar_widget);</div><div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160;    gtk_widget_set_halign(GTK_WIDGET(revealer), GTK_ALIGN_CENTER);</div><div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160;    gtk_widget_set_valign(GTK_WIDGET(revealer), GTK_ALIGN_START);</div><div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160;</div><div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160;    priv-&gt;revealer = revealer;</div><div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160;</div><div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160;    GtkWidget *fr;</div><div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160;    fr = gtk_frame_new(NULL);</div><div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160;    gtk_container_add(GTK_CONTAINER(priv-&gt;overlay_ftb_overlay), fr );</div><div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160;    gtk_container_add(GTK_CONTAINER(fr), vbox);</div><div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160;</div><div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160;    gtk_widget_show(vbox);</div><div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160;    gtk_widget_show(revealer);</div><div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;    gtk_widget_show(handle);</div><div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160;    gtk_widget_show(priv-&gt;overlay_ftb_overlay);</div><div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160;    gtk_widget_show(fr);</div><div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160;</div><div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#ac95fed56e8995e3361928ebf87505f21">floating_toolbar_placement</a> == <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>) {</div><div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;        gtk_widget_set_name(fr, <span class="stringliteral">&quot;ftbbox-lower&quot;</span>);</div><div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;        gtk_widget_set_name(fr, <span class="stringliteral">&quot;ftbbox-upper&quot;</span>);</div><div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160;    }</div><div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160;</div><div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160;    gtk_overlay_add_overlay(GTK_OVERLAY(priv-&gt;overlay), priv-&gt;overlay_ftb_overlay);</div><div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160;</div><div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a>(cnnhld, TRUE);</div><div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160;</div><div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160;    g_signal_connect(G_OBJECT(priv-&gt;overlay_ftb_overlay), <span class="stringliteral">&quot;enter-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a5b12b74df51eda99c7e34a4d016e4f1e">remmina_connection_holder_floating_toolbar_on_enter</a>), cnnhld);</div><div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160;    g_signal_connect(G_OBJECT(priv-&gt;overlay_ftb_overlay), <span class="stringliteral">&quot;scroll-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a9d0e16bc9f0d555b3832b2ff6be66e3f">remmina_connection_holder_floating_toolbar_on_scroll</a>), cnnhld);</div><div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;    gtk_widget_add_events(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GDK_SCROLL_MASK);</div><div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;</div><div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160;    <span class="comment">/* Add drag and drop capabilities to the source */</span></div><div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160;    gtk_drag_source_set(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GDK_BUTTON1_MASK,</div><div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160;        dnd_targets_ftb, <span class="keyword">sizeof</span> dnd_targets_ftb / <span class="keyword">sizeof</span> *dnd_targets_ftb, GDK_ACTION_MOVE);</div><div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160;    g_signal_connect_after(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), <span class="stringliteral">&quot;drag-begin&quot;</span>, G_CALLBACK(remmina_connection_window_ftb_drag_begin), cnnhld);</div><div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160;}</div><div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160;</div><div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160;</div><div class="line"><a name="l03222"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a15c9b2bd929f8f2bb64d0bb6fa60f067"> 3222</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#a15c9b2bd929f8f2bb64d0bb6fa60f067">remmina_connection_window_ftb_drag_drop</a>(GtkWidget *widget, GdkDragContext *context,</div><div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160;                            gint x, gint y, guint time, gpointer user_data)</div><div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;{</div><div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160;    gint new_floating_toolbar_placement;</div><div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160;</div><div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160;    cnnhld = (RemminaConnectionHolder*)user_data;</div><div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160;</div><div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160;</div><div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;</div><div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160;    <span class="keywordflow">if</span> (y &gt;= wa.height / 2) {</div><div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160;        new_floating_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>;</div><div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160;        new_floating_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a9cdc370e02904c1f50681b7fe8bd1796">FLOATING_TOOLBAR_PLACEMENT_TOP</a>;</div><div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160;    }</div><div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160;</div><div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160;    gtk_drag_finish(context, TRUE, TRUE, time);</div><div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160;</div><div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160;    <span class="keywordflow">if</span> (new_floating_toolbar_placement !=  remmina_pref.<a class="code" href="struct___remmina_pref.html#ac95fed56e8995e3361928ebf87505f21">floating_toolbar_placement</a>) {</div><div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160;        <span class="comment">/* Destroy and recreate the FTB */</span></div><div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;        remmina_pref.<a class="code" href="struct___remmina_pref.html#ac95fed56e8995e3361928ebf87505f21">floating_toolbar_placement</a> = new_floating_toolbar_placement;</div><div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;        <a class="code" href="remmina__pref_8c.html#a1c614a5e7dc3cd415be6e0a926e26983">remmina_pref_save</a>();</div><div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ab2edcb806312b3367c70fbb13c383ae0">remmina_connection_holder_create_overlay_ftb_overlay</a>(cnnhld);</div><div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160;    }</div><div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160;</div><div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160;</div><div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160;}</div><div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160;</div><div class="line"><a name="l03256"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a4b181dfe368b535a6082b4591cc8fc9c"> 3256</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a4b181dfe368b535a6082b4591cc8fc9c">remmina_connection_window_ftb_drag_begin</a>(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160;{</div><div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160;</div><div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160;    cairo_surface_t *surface;</div><div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160;    cairo_t *cr;</div><div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160;    <span class="keywordtype">double</span> dashes[] = { 10 };</div><div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;</div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160;    cnnhld = (RemminaConnectionHolder*)user_data;</div><div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160;</div><div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160;</div><div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160;    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, wa.width, wa.height);</div><div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160;    cr = cairo_create(surface);</div><div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;    cairo_set_source_rgb(cr, 0.6, 0.6, 0.6);</div><div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160;    cairo_set_line_width(cr, 2);</div><div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160;    cairo_set_dash(cr, dashes, 1, 0 );</div><div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;    cairo_rectangle(cr, 0, 0, wa.width, wa.height);</div><div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;    cairo_stroke(cr);</div><div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160;    cairo_destroy(cr);</div><div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160;</div><div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160;    gtk_drag_set_icon_surface(context, surface);</div><div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;</div><div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160;}</div><div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160;</div><div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160;</div><div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160;</div><div class="line"><a name="l03288"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf"> 3288</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(RemminaConnectionHolder* cnnhld, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj,</div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160;                            gint view_mode)</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;{</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160;    GtkWidget* window;</div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160;    GtkWidget* oldwindow;</div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;    GtkWidget* notebook;</div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv;</div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160;</div><div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160;    gchar* tag;</div><div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;</div><div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160;    oldwindow = GTK_WIDGET(cnnhld-&gt;cnnwin);</div><div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160;    window = <a class="code" href="remmina__connection__window_8c.html#a0ff4775a640861c11f2bc9f4e4680ed5">remmina_connection_window_new_from_holder</a>(cnnhld);</div><div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;    gtk_widget_set_name(GTK_WIDGET(window), <span class="stringliteral">&quot;remmina-connection-window-fullscreen&quot;</span>);</div><div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;    gtk_widget_realize(window);</div><div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160;</div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160;    cnnhld-&gt;cnnwin = REMMINA_CONNECTION_WINDOW(window);</div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;    priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160;</div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160;    <span class="keywordflow">if</span> (!view_mode)</div><div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160;        view_mode = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160;</div><div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160;    notebook = <a class="code" href="remmina__connection__window_8c.html#ae616dc409c5775dc73d9a83c1f081705">remmina_connection_holder_create_notebook</a>(cnnhld);</div><div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;</div><div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160;    priv-&gt;overlay = gtk_overlay_new();</div><div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160;    gtk_container_add(GTK_CONTAINER(window), priv-&gt;overlay);</div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160;    gtk_container_add(GTK_CONTAINER(priv-&gt;overlay), notebook);</div><div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160;    gtk_widget_show(GTK_WIDGET(priv-&gt;overlay));</div><div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;    gtk_container_add(GTK_CONTAINER(window), notebook);</div><div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160;</div><div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;    priv-&gt;notebook = notebook;</div><div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160;    priv-&gt;view_mode = view_mode;</div><div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;    cnnhld-&gt;fullscreen_view_mode = view_mode;</div><div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160;</div><div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#aa28770c2f7c156eb4574227310481041">remmina_connection_window_initialize_notebook</a>(GTK_NOTEBOOK(notebook),</div><div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160;        (oldwindow ? GTK_NOTEBOOK(REMMINA_CONNECTION_WINDOW(oldwindow)-&gt;priv-&gt;notebook) : NULL), cnnobj,</div><div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;        view_mode);</div><div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160;</div><div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160;    <span class="keywordflow">if</span> (cnnobj) {</div><div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a49552d7adf2f4e22a59d89802171e52b">remmina_connection_window_update_tag</a>(cnnhld-&gt;cnnwin, cnnobj);</div><div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160;    }</div><div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160;    <span class="keywordflow">if</span> (oldwindow) {</div><div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160;        tag = g_strdup((gchar*)g_object_get_data(G_OBJECT(oldwindow), <span class="stringliteral">&quot;tag&quot;</span>));</div><div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160;        g_object_set_data_full(G_OBJECT(cnnhld-&gt;cnnwin), <span class="stringliteral">&quot;tag&quot;</span>, tag, (GDestroyNotify)g_free);</div><div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160;        gtk_widget_destroy(oldwindow);</div><div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160;    }</div><div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160;</div><div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160;    <span class="comment">/* Create the floating toolbar */</span></div><div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f">fullscreen_toolbar_visibility</a> != <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53ad947c85d5ea917958d90298dab033b2c">FLOATING_TOOLBAR_VISIBILITY_DISABLE</a>) {</div><div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ab2edcb806312b3367c70fbb13c383ae0">remmina_connection_holder_create_overlay_ftb_overlay</a>(cnnhld);</div><div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160;        <span class="comment">/* Add drag and drop capabilities to the drop/dest target for floating toolbar */</span></div><div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160;        gtk_drag_dest_set(GTK_WIDGET(priv-&gt;overlay), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT,</div><div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160;            dnd_targets_ftb, <span class="keyword">sizeof</span> dnd_targets_ftb / <span class="keyword">sizeof</span> *dnd_targets_ftb, GDK_ACTION_MOVE);</div><div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;        gtk_drag_dest_set_track_motion(GTK_WIDGET(priv-&gt;notebook), TRUE);</div><div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;        g_signal_connect(GTK_WIDGET(priv-&gt;overlay), <span class="stringliteral">&quot;drag-drop&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a15c9b2bd929f8f2bb64d0bb6fa60f067">remmina_connection_window_ftb_drag_drop</a>), cnnhld);</div><div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160;    }</div><div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f">fullscreen_toolbar_visibility</a> != <a class="code" href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53ad947c85d5ea917958d90298dab033b2c">FLOATING_TOOLBAR_VISIBILITY_DISABLE</a>) {</div><div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a967dca6c1876afc3e6bcb763f9709d43">remmina_connection_holder_create_floating_toolbar</a>(cnnhld, view_mode);</div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a>(cnnhld);</div><div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160;</div><div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;        g_signal_connect(G_OBJECT(priv-&gt;floating_toolbar_window), <span class="stringliteral">&quot;enter-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a5b12b74df51eda99c7e34a4d016e4f1e">remmina_connection_holder_floating_toolbar_on_enter</a>), cnnhld);</div><div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160;        g_signal_connect(G_OBJECT(priv-&gt;floating_toolbar_window), <span class="stringliteral">&quot;scroll-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a9d0e16bc9f0d555b3832b2ff6be66e3f">remmina_connection_holder_floating_toolbar_on_scroll</a>), cnnhld);</div><div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160;        gtk_widget_add_events(GTK_WIDGET(priv-&gt;floating_toolbar_window), GDK_SCROLL_MASK);</div><div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160;    }</div><div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;</div><div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(cnnhld);</div><div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160;</div><div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160;    gtk_widget_show(window);</div><div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160;</div><div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160;    <span class="comment">/* Put the window in fullscreen after it is mapped to have it appear on the same monitor */</span></div><div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160;    g_signal_connect(G_OBJECT(window), <span class="stringliteral">&quot;map-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a10b3a54bf50f7522ee272932673e9419">remmina_connection_window_go_fullscreen</a>), (gpointer)cnnhld);</div><div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160;}</div><div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160;</div><div class="line"><a name="l03367"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#abef663d930076deb3105f86dabe2a9c3"> 3367</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__connection__window_8c.html#abef663d930076deb3105f86dabe2a9c3">remmina_connection_window_hostkey_func</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, guint keyval, gboolean release,</div><div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160;                               RemminaConnectionHolder* cnnhld)</div><div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160;{</div><div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160;    DECLARE_CNNOBJ_WITH_RETURN(FALSE);</div><div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160;    <a class="code" href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>* priv = cnnhld-&gt;cnnwin-&gt;priv;</div><div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a>* feature;</div><div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160;    gint i;</div><div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;</div><div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160;    <span class="keywordflow">if</span> (release) {</div><div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160;        <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a> &amp;&amp; keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a>) {</div><div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160;            cnnhld-&gt;hostkey_activated = FALSE;</div><div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160;            <span class="keywordflow">if</span> (cnnhld-&gt;hostkey_used) {</div><div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;                <span class="comment">/* hostkey pressed + something else */</span></div><div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;                <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160;            }</div><div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160;        }</div><div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160;        <span class="comment">/* If hostkey is released without pressing other keys, we should execute the</span></div><div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160;<span class="comment">         * shortcut key which is the same as hostkey. Be default, this is grab/ungrab</span></div><div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160;<span class="comment">         * keyboard */</span></div><div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cnnhld-&gt;hostkey_activated) {</div><div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160;            <span class="comment">/* Trap all key releases when hostkey is pressed */</span></div><div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160;            <span class="comment">/* hostkey pressed + something else */</span></div><div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160;</div><div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160;            <span class="comment">/* Any key pressed, no hostkey */</span></div><div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160;            <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160;        }</div><div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a> &amp;&amp; keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">hostkey</a>) {</div><div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160;        cnnhld-&gt;hostkey_activated = TRUE;</div><div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160;        cnnhld-&gt;hostkey_used = FALSE;</div><div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (!cnnhld-&gt;hostkey_activated) {</div><div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160;        <span class="comment">/* Any key pressed, no hostkey */</span></div><div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160;    }</div><div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160;</div><div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160;    cnnhld-&gt;hostkey_used = TRUE;</div><div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160;    keyval = gdk_keyval_to_lower(keyval);</div><div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;    <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down</div><div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;        || keyval == GDK_KEY_Left || keyval == GDK_KEY_Right) {</div><div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160;        DECLARE_CNNOBJ_WITH_RETURN(FALSE);</div><div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160;        GtkAdjustment *adjust;</div><div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160;        <span class="keywordtype">int</span> pos;</div><div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160;</div><div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160;        <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> &amp;&amp; GTK_IS_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down)</div><div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160;                adjust = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>));</div><div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;                adjust = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>));</div><div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;</div><div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Left)</div><div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160;                pos = 0;</div><div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160;                pos = gtk_adjustment_get_upper(adjust);</div><div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160;</div><div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160;            gtk_adjustment_set_value(adjust, pos);</div><div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down)</div><div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160;                gtk_scrolled_window_set_vadjustment(GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>), adjust);</div><div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160;                gtk_scrolled_window_set_hadjustment(GTK_SCROLLED_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>), adjust);</div><div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160;        }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (REMMINA_IS_SCROLLED_VIEWPORT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)) {</div><div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160;            <a class="code" href="struct___remmina_scrolled_viewport.html">RemminaScrolledViewport</a> *gsv;</div><div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;            GtkWidget *child;</div><div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160;            GdkWindow *gsvwin;</div><div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160;            gint sz;</div><div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160;            GtkAdjustment *adj;</div><div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160;            gdouble value;</div><div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160;</div><div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>&#160;            <span class="keywordflow">if</span> (!GTK_IS_BIN(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>))</div><div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160;                <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160;</div><div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;            gsv = REMMINA_SCROLLED_VIEWPORT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>);</div><div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160;            child = gtk_bin_get_child(GTK_BIN(gsv));</div><div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;            <span class="keywordflow">if</span> (!GTK_IS_VIEWPORT(child))</div><div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160;                <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160;</div><div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160;            gsvwin = gtk_widget_get_window(GTK_WIDGET(gsv));</div><div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160;            <span class="keywordflow">if</span> (!gsv)</div><div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;                <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160;</div><div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down) {</div><div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160;                sz = gdk_window_get_height(gsvwin) + 2; <span class="comment">// Add 2px of black scroll border</span></div><div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160;                adj = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(child));</div><div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;            }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;                sz = gdk_window_get_width(gsvwin) + 2; <span class="comment">// Add 2px of black scroll border</span></div><div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160;                adj = gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(child));</div><div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160;            }</div><div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;</div><div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Left) {</div><div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160;                value = 0;</div><div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160;            }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;                value = gtk_adjustment_get_upper(GTK_ADJUSTMENT(adj)) - (gdouble)sz + 2.0;</div><div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;            }</div><div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160;</div><div class="line"><a name="l03464"></a><span class="lineno"> 3464</span>&#160;            gtk_adjustment_set_value(GTK_ADJUSTMENT(adj), value);</div><div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160;        }</div><div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;    }</div><div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;</div><div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160;    <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a10b1f3d9b49687c09ec5dd98a0577d7f">shortcutkey_fullscreen</a>) {</div><div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;        <span class="keywordflow">switch</span> (priv-&gt;view_mode) {</div><div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(</div><div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;                cnnhld,</div><div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;                NULL,</div><div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160;                cnnhld-&gt;fullscreen_view_mode ?</div><div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160;                cnnhld-&gt;fullscreen_view_mode : <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>);</div><div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a>(cnnhld, NULL);</div><div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160;        }</div><div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#ae5c3a7fd35cc51f658dda67052440b47">shortcutkey_autofit</a>) {</div><div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;toolitem_autofit &amp;&amp; gtk_widget_is_sensitive(GTK_WIDGET(priv-&gt;toolitem_autofit))) {</div><div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#ac679e10d8be64d56ed13043dd4df7d1c">remmina_connection_holder_toolbar_autofit</a>(GTK_WIDGET(gp), cnnhld);</div><div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160;        }</div><div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a712773f926eb2ec030d6af80cdc33095">shortcutkey_nexttab</a>) {</div><div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160;        i = gtk_notebook_get_current_page(GTK_NOTEBOOK(priv-&gt;notebook)) + 1;</div><div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160;        <span class="keywordflow">if</span> (i &gt;= gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook)))</div><div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160;            i = 0;</div><div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160;        gtk_notebook_set_current_page(GTK_NOTEBOOK(priv-&gt;notebook), i);</div><div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a45d70bbebf5163081d67df3dbb73cc1b">shortcutkey_prevtab</a>) {</div><div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160;        i = gtk_notebook_get_current_page(GTK_NOTEBOOK(priv-&gt;notebook)) - 1;</div><div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160;        <span class="keywordflow">if</span> (i &lt; 0)</div><div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160;            i = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook)) - 1;</div><div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160;        gtk_notebook_set_current_page(GTK_NOTEBOOK(priv-&gt;notebook), i);</div><div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a2859598ef2f87afb5a970a197a503765">shortcutkey_scale</a>) {</div><div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160;        <span class="keywordflow">if</span> (gtk_widget_is_sensitive(GTK_WIDGET(priv-&gt;toolitem_scale))) {</div><div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160;            gtk_toggle_tool_button_set_active(</div><div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;                GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale),</div><div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;                !gtk_toggle_tool_button_get_active(</div><div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;                    GTK_TOGGLE_TOOL_BUTTON(</div><div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160;                        priv-&gt;toolitem_scale)));</div><div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;        }</div><div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a363642437f5920c93fe35c07ef3601cc">shortcutkey_grab</a>) {</div><div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;        gtk_toggle_tool_button_set_active(</div><div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;            GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_grab),</div><div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160;            !gtk_toggle_tool_button_get_active(</div><div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160;                GTK_TOGGLE_TOOL_BUTTON(</div><div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160;                    priv-&gt;toolitem_grab)));</div><div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a887cbbd379d159cd0ac1acea7173d07b">shortcutkey_minimize</a>) {</div><div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#ac4d1d30f9b5f09e300b18f60f37f5b8f">remmina_connection_holder_toolbar_minimize</a>(GTK_WIDGET(gp),</div><div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160;            cnnhld);</div><div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a4eb866c8e08104362aa51f14f5894e51">shortcutkey_viewonly</a>) {</div><div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;        <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;viewonly&quot;</span>,</div><div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;            ( <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;viewonly&quot;</span>, 0 )</div><div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;              == 0  ) ? 1 : 0 );</div><div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a1b5f4704fb50b67ff1e3daaf7d7d3209">shortcutkey_screenshot</a>) {</div><div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a7959ed5b51966bb0fb9e7b84bbb9878d">remmina_connection_holder_toolbar_screenshot</a>(GTK_WIDGET(gp),</div><div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160;            cnnhld);</div><div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#a17bfba7a11836808719d33d5f6edbdc7">shortcutkey_disconnect</a>) {</div><div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a1e4264610577737355a72e95d37787f7">remmina_connection_holder_disconnect_current_page</a>(cnnhld);</div><div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;    }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (keyval == remmina_pref.<a class="code" href="struct___remmina_pref.html#aa3dc5f8676c4747f2fcaf9a68d16d11b">shortcutkey_toolbar</a>) {</div><div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e">hide_connection_toolbar</a> =</div><div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;                !remmina_pref.<a class="code" href="struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e">hide_connection_toolbar</a>;</div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a3542c1aed620129ef10a0cb01b2db526">remmina_connection_holder_showhide_toolbar</a>( cnnhld, TRUE);</div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;        }</div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;        <span class="keywordflow">for</span> (feature =</div><div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160;                 <a class="code" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget_get_features</a>(</div><div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160;                     REMMINA_PROTOCOL_WIDGET(</div><div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160;                         cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;             feature &amp;&amp; feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a>;</div><div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;             feature++) {</div><div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;            <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">type</a></div><div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160;                == <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;                &amp;&amp; GPOINTER_TO_UINT(</div><div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;                    feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>)</div><div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160;                == keyval) {</div><div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;                <a class="code" href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget_call_feature_by_ref</a>(</div><div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160;                    REMMINA_PROTOCOL_WIDGET(</div><div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;                        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;                    feature);</div><div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160;            }</div><div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160;        }</div><div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160;    }</div><div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160;    cnnhld-&gt;hostkey_activated = FALSE;</div><div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;    <span class="comment">/* Trap all key presses when hostkey is pressed */</span></div><div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;}</div><div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160;</div><div class="line"><a name="l03555"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ae73329eababe2888df3ace5c2b94b410"> 3555</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* <a class="code" href="remmina__connection__window_8c.html#ae73329eababe2888df3ace5c2b94b410">remmina_connection_window_find</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile)</div><div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;{</div><div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160;    <span class="keyword">const</span> gchar* tag;</div><div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160;</div><div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160;    <span class="keywordflow">switch</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#aecbe4c6a13ec6eda818c9f74c6f63468">tab_mode</a>) {</div><div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556ea18b9b9f60fb377c589ff11b5388fee33">REMMINA_TAB_BY_GROUP</a>:</div><div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;        tag = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;group&quot;</span>);</div><div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eaedb9eb53656e5315bf173ec9d0f5b558">REMMINA_TAB_BY_PROTOCOL</a>:</div><div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>&#160;        tag = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>);</div><div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eafb68a1eeda5303774bbc922ef8d364e9">REMMINA_TAB_ALL</a>:</div><div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;        tag = NULL;</div><div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eadc41dc23d32d8955a469953bee975631">REMMINA_TAB_NONE</a>:</div><div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160;    }</div><div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160;    <span class="keywordflow">return</span> REMMINA_CONNECTION_WINDOW(<a class="code" href="remmina__widget__pool_8c.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool_find</a>(REMMINA_TYPE_CONNECTION_WINDOW, tag));</div><div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;}</div><div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160;</div><div class="line"><a name="l03577"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a0ad685a873ecef95ec13caba17e0c22e"> 3577</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a0ad685a873ecef95ec13caba17e0c22e">remmina_connection_object_on_connect</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160;{</div><div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin;</div><div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160;    RemminaConnectionHolder* cnnhld;</div><div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160;    GtkWidget* tab;</div><div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160;    gint i;</div><div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160;</div><div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160;    <span class="comment">/* This signal handler is called by a plugin where it&#39;s correctly connected</span></div><div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160;<span class="comment">     * (and authenticated) */</span></div><div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160;</div><div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;    <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>) {</div><div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160;        cnnwin = <a class="code" href="remmina__connection__window_8c.html#ae73329eababe2888df3ace5c2b94b410">remmina_connection_window_find</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>);</div><div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160;        <span class="keywordflow">if</span> (cnnwin) {</div><div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160;            cnnhld = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;cnnhld;</div><div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160;        }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160;            cnnhld = g_new0(RemminaConnectionHolder, 1);</div><div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160;        }</div><div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a> = cnnhld;</div><div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160;        cnnhld = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>;</div><div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160;    }</div><div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160;</div><div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> = TRUE;</div><div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160;</div><div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a9e77e4da16282ef5413f57b124038bff">remmina_protocol_widget_set_hostkey_func</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l03603"></a><span class="lineno"> 3603</span>&#160;        (<a class="code" href="remmina__protocol__widget_8h.html#a741639f1800defdb42f235a8816a495b">RemminaHostkeyFunc</a>)remmina_connection_window_hostkey_func, cnnhld);</div><div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160;</div><div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;    <span class="comment">/* Remember recent list for quick connect */</span></div><div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>) == NULL) {</div><div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;        <a class="code" href="remmina__pref_8c.html#ab9e75c6bf39aa93a87d421fc3d742d60">remmina_pref_add_recent</a>(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;protocol&quot;</span>),</div><div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;            <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;server&quot;</span>));</div><div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;    }</div><div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160;</div><div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;    <span class="comment">/* Save credentials */</span></div><div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;    <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>);</div><div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160;</div><div class="line"><a name="l03614"></a><span class="lineno"> 3614</span>&#160;    <span class="keywordflow">if</span> (!cnnhld-&gt;cnnwin) {</div><div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>&#160;        i = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;viewmode&quot;</span>, 0);</div><div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160;        <span class="keywordflow">switch</span> (i) {</div><div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a>(cnnhld, cnnobj, i);</div><div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160;            <a class="code" href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a>(cnnhld, cnnobj);</div><div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>&#160;        }</div><div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160;        tab = <a class="code" href="remmina__connection__window_8c.html#a888c4dd031e9366a3284cb34351865aa">remmina_connection_object_create_tab</a>(cnnobj);</div><div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>&#160;        i = <a class="code" href="remmina__connection__window_8c.html#ac06b41c974d5cfc6277f50b617a550bb">remmina_connection_object_append_page</a>(cnnobj, GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook), tab,</div><div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160;            cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode);</div><div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160;        G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160;        gtk_widget_reparent(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>);</div><div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;        G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160;</div><div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160;        gtk_window_present(GTK_WINDOW(cnnhld-&gt;cnnwin));</div><div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;        gtk_notebook_set_current_page(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook), i);</div><div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;    }</div><div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;</div><div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160;<span class="preprocessor">#if FLOATING_TOOLBAR_WIDGET</span></div><div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;floating_toolbar_widget) {</div><div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160;        gtk_widget_show(cnnhld-&gt;cnnwin-&gt;priv-&gt;floating_toolbar_widget);</div><div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160;    }</div><div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;    <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin-&gt;priv-&gt;floating_toolbar_window) {</div><div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160;        gtk_widget_show(cnnhld-&gt;cnnwin-&gt;priv-&gt;floating_toolbar_window);</div><div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160;    }</div><div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160;</div><div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160;}</div><div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160;</div><div class="line"><a name="l03650"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a6d866a05da5d47a9342d4c87dbf70863"> 3650</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a6d866a05da5d47a9342d4c87dbf70863">cb_autoclose_widget</a>(GtkWidget *widget)</div><div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160;{</div><div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160;    gtk_widget_destroy(widget);</div><div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;    <a class="code" href="remmina__exec_8c.html#aaa67e07e2426828d7e7b9b30d2038d31">remmina_application_condexit</a>(<a class="code" href="remmina__exec_8h.html#ae9dfd6986f18cb3d846a4933ac792fd5a3272be70c922ec6a1eaf498461943c51">REMMINA_CONDEXIT_ONDISCONNECT</a>);</div><div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;}</div><div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160;</div><div class="line"><a name="l03656"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#ad6ea67e2303625444fb4936a114e82df"> 3656</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#ad6ea67e2303625444fb4936a114e82df">remmina_connection_object_on_disconnect</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160;{</div><div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160;    RemminaConnectionHolder* cnnhld = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>;</div><div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160;    GtkWidget* dialog;</div><div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160;    GtkWidget* pparent;</div><div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;</div><div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;</div><div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;    <span class="comment">/* Detach the protocol widget from the notebook now, or we risk that a</span></div><div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160;<span class="comment">     * window delete will destroy cnnobj-&gt;proto before we complete disconnection.</span></div><div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160;    pparent = gtk_widget_get_parent(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;    <span class="keywordflow">if</span> (pparent != NULL) {</div><div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160;        g_object_ref(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;        gtk_container_remove(GTK_CONTAINER(pparent), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160;    }</div><div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160;</div><div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> = FALSE;</div><div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160;</div><div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;    <span class="keywordflow">if</span> (cnnhld &amp;&amp; remmina_pref.<a class="code" href="struct___remmina_pref.html#aad6660781f636788d5f05b3bac85d676">save_view_mode</a>) {</div><div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160;        <span class="keywordflow">if</span> (cnnhld-&gt;cnnwin) {</div><div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160;            <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;viewmode&quot;</span>, cnnhld-&gt;cnnwin-&gt;priv-&gt;view_mode);</div><div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;        }</div><div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;        <a class="code" href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>);</div><div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;    }</div><div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;</div><div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>(gp)) {</div><div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;        dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,</div><div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;            <a class="code" href="remmina__protocol__widget_8c.html#a0aa0f7d6c411f9061892848ffb558877">remmina_protocol_widget_get_error_message</a>(gp), NULL);</div><div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;        g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;response&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a6d866a05da5d47a9342d4c87dbf70863">cb_autoclose_widget</a>), NULL);</div><div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;        gtk_widget_show(dialog);</div><div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;        <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>(dialog);</div><div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;    }</div><div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;</div><div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;    <span class="keywordflow">if</span> (cnnhld &amp;&amp; cnnhld-&gt;cnnwin &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>) {</div><div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;        gtk_notebook_remove_page(</div><div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;            GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook),</div><div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;            gtk_notebook_page_num(GTK_NOTEBOOK(cnnhld-&gt;cnnwin-&gt;priv-&gt;notebook),</div><div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;                cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>));</div><div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;    }</div><div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;</div><div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a> = NULL;</div><div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;    g_free(cnnobj);</div><div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;</div><div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;    <a class="code" href="remmina__exec_8c.html#aaa67e07e2426828d7e7b9b30d2038d31">remmina_application_condexit</a>(<a class="code" href="remmina__exec_8h.html#ae9dfd6986f18cb3d846a4933ac792fd5a3272be70c922ec6a1eaf498461943c51">REMMINA_CONDEXIT_ONDISCONNECT</a>);</div><div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;}</div><div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;</div><div class="line"><a name="l03703"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a3bb0386b166904eb00902d08d6c959a5"> 3703</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a3bb0386b166904eb00902d08d6c959a5">remmina_connection_object_on_desktop_resize</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160;{</div><div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a> &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>-&gt;cnnwin-&gt;priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>);</div><div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;    }</div><div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160;}</div><div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160;</div><div class="line"><a name="l03711"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a0872efe4b1084b17bab7ac962920c3e9"> 3711</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a0872efe4b1084b17bab7ac962920c3e9">remmina_connection_object_on_update_align</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160;{</div><div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(cnnobj);</div><div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;}</div><div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;</div><div class="line"><a name="l03717"></a><span class="lineno"><a class="line" href="remmina__connection__window_8c.html#a0cffd168e21bdd3d9469ca2e86e19c31"> 3717</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a0cffd168e21bdd3d9469ca2e86e19c31">remmina_connection_object_on_unlock_dynres</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>* gp, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj)</div><div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;{</div><div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</a> = TRUE;</div><div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">cnnhld</a>);</div><div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160;}</div><div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;</div><div class="line"><a name="l03724"></a><span class="lineno"><a class="line" href="remmina__connection__window_8h.html#ab0ed27ef360efc7d92906cbabf9da5db"> 3724</a></span>&#160;gboolean <a class="code" href="remmina__connection__window_8c.html#ab0ed27ef360efc7d92906cbabf9da5db">remmina_connection_window_open_from_filename</a>(<span class="keyword">const</span> gchar* filename)</div><div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;{</div><div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;    <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile;</div><div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;    GtkWidget* dialog;</div><div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;</div><div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;    remminafile = <a class="code" href="remmina__file__manager_8c.html#af7b58659604660eb0cb40b0e0f8348ab">remmina_file_manager_load_file</a>(filename);</div><div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;    <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;        <a class="code" href="remmina__connection__window_8c.html#a1c7f722a89609523cc4de079cc82f23c">remmina_connection_window_open_from_file</a>(remminafile);</div><div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;    }<span class="keywordflow">else</span>  {</div><div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;        dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,</div><div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;            _(<span class="stringliteral">&quot;File %s not found.&quot;</span>), filename);</div><div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;        g_signal_connect(G_OBJECT(dialog), <span class="stringliteral">&quot;response&quot;</span>, G_CALLBACK(gtk_widget_destroy), NULL);</div><div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;        gtk_widget_show(dialog);</div><div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;        <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>(dialog);</div><div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;    }</div><div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;}</div><div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;</div><div class="line"><a name="l03744"></a><span class="lineno"><a class="line" href="remmina__connection__window_8h.html#a1c7f722a89609523cc4de079cc82f23c"> 3744</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#a1c7f722a89609523cc4de079cc82f23c">remmina_connection_window_open_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile)</div><div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160;{</div><div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160;    <a class="code" href="remmina__connection__window_8c.html#adbf2b670ca3bae96a99cb0b36021a961">remmina_connection_window_open_from_file_full</a>(remminafile, NULL, NULL, NULL);</div><div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160;}</div><div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160;</div><div class="line"><a name="l03750"></a><span class="lineno"><a class="line" href="remmina__connection__window_8h.html#adbf2b670ca3bae96a99cb0b36021a961"> 3750</a></span>&#160;GtkWidget* <a class="code" href="remmina__connection__window_8c.html#adbf2b670ca3bae96a99cb0b36021a961">remmina_connection_window_open_from_file_full</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile, GCallback disconnect_cb, gpointer data, guint* handler)</div><div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;{</div><div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>* cnnobj;</div><div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;    GtkWidget* protocolwidget;</div><div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;</div><div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;    cnnobj = g_new0(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>, 1);</div><div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a> = remminafile;</div><div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;</div><div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;    <span class="comment">/* Create the RemminaProtocolWidget */</span></div><div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160;    protocolwidget = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a> = <a class="code" href="remmina__protocol__widget_8c.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget_new</a>();</div><div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160;</div><div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;    <span class="comment">/* Set default remote desktop size in the profile, so the plugins can query</span></div><div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;<span class="comment">     * protocolwidget and know WxH that the user put on the profile settings */</span></div><div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a75c70486dec7682aeccaab235e65f6a1">remmina_protocol_widget_update_remote_resolution</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a>*)protocolwidget,</div><div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;        <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;resolution_width&quot;</span>, -1),</div><div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;        <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;resolution_height&quot;</span>, -1)</div><div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;        );</div><div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160;</div><div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;    <span class="comment">/* Set a name for the widget, for CSS selector */</span></div><div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;    gtk_widget_set_name(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;remmina-protocol-widget&quot;</span>);</div><div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;</div><div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;    gtk_widget_set_halign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_FILL);</div><div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;    gtk_widget_set_valign(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), GTK_ALIGN_FILL);</div><div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160;</div><div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;    <span class="keywordflow">if</span> (data) {</div><div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;        g_object_set_data(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;user-data&quot;</span>, data);</div><div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160;    }</div><div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;</div><div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;    gtk_widget_show(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;    g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;connect&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a0ad685a873ecef95ec13caba17e0c22e">remmina_connection_object_on_connect</a>), cnnobj);</div><div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;    <span class="keywordflow">if</span> (disconnect_cb) {</div><div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160;        *handler = g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;disconnect&quot;</span>, disconnect_cb, data);</div><div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;    }</div><div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160;    g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;disconnect&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#ad6ea67e2303625444fb4936a114e82df">remmina_connection_object_on_disconnect</a>), cnnobj);</div><div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;    g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;desktop-resize&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a3bb0386b166904eb00902d08d6c959a5">remmina_connection_object_on_desktop_resize</a>),</div><div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;        cnnobj);</div><div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160;    g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;update-align&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a0872efe4b1084b17bab7ac962920c3e9">remmina_connection_object_on_update_align</a>),</div><div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160;        cnnobj);</div><div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160;    g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;unlock-dynres&quot;</span>, G_CALLBACK(<a class="code" href="remmina__connection__window_8c.html#a0cffd168e21bdd3d9469ca2e86e19c31">remmina_connection_object_on_unlock_dynres</a>),</div><div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160;        cnnobj);</div><div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;</div><div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160;    <span class="comment">/* Create the viewport to make the RemminaProtocolWidget scrollable */</span></div><div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a> = gtk_viewport_new(NULL, NULL);</div><div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160;    gtk_widget_set_name(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>, <span class="stringliteral">&quot;remmina-cw-viewport&quot;</span>);</div><div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160;    gtk_widget_show(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>);</div><div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), 0);</div><div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160;    gtk_viewport_set_shadow_type(GTK_VIEWPORT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), GTK_SHADOW_NONE);</div><div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;</div><div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160;    <span class="comment">/* Determine whether the plugin can scale or not. If the plugin can scale and we do</span></div><div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;<span class="comment">     * not want to expand, then we add a GtkAspectFrame to maintain aspect ratio during scaling */</span></div><div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">plugin_can_scale</a> = <a class="code" href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a>(<a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>,</div><div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;        <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;protocol&quot;</span>),</div><div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160;</div><div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a> = NULL;</div><div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;    gtk_container_add(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;</div><div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a> = gtk_window_new(GTK_WINDOW_TOPLEVEL);</div><div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;    gtk_widget_realize(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a>);</div><div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160;    gtk_container_add(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">window</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>);</div><div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;</div><div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;    <span class="keywordflow">if</span> (!remmina_pref.<a class="code" href="struct___remmina_pref.html#aad6660781f636788d5f05b3bac85d676">save_view_mode</a>)</div><div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;        <a class="code" href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, <span class="stringliteral">&quot;viewmode&quot;</span>, remmina_pref.<a class="code" href="struct___remmina_pref.html#ab0928bd64388cb1ced2f542d3b35019d">default_mode</a>);</div><div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;</div><div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#aeffcbd7db351d4cacd7c8ba801ea2c37">remmina_protocol_widget_open_connection</a>(REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), remminafile);</div><div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;</div><div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;    <span class="keywordflow">return</span> protocolwidget;</div><div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;}</div><div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;</div><div class="line"><a name="l03820"></a><span class="lineno"><a class="line" href="remmina__connection__window_8h.html#aaedb0044bf386cc1ecd815e29684ee64"> 3820</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__connection__window_8c.html#aaedb0044bf386cc1ecd815e29684ee64">remmina_connection_window_set_delete_confirm_mode</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>* cnnwin, <a class="code" href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307f">RemminaConnectionWindowOnDeleteConfirmMode</a> mode)</div><div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;{</div><div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;on_delete_confirm_mode = mode;</div><div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;}</div><div class="ttc" id="remmina__protocol__widget_8c_html_a25bcb2ae99449624fed6f770218e3d25"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a25bcb2ae99449624fed6f770218e3d25">remmina_protocol_widget_get_expand</a></div><div class="ttdeci">gboolean remmina_protocol_widget_get_expand(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00900">remmina_protocol_widget.c:900</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af657fd4825d16d8d003a8b42fbd0c715"><div class="ttname"><a href="remmina__connection__window_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a></div><div class="ttdeci">gchar * remmina_pref_file</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00063">remmina_connection_window.c:63</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1e4264610577737355a72e95d37787f7"><div class="ttname"><a href="remmina__connection__window_8c.html#a1e4264610577737355a72e95d37787f7">remmina_connection_holder_disconnect_current_page</a></div><div class="ttdeci">static void remmina_connection_holder_disconnect_current_page(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00392">remmina_connection_window.c:392</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a10b1f3d9b49687c09ec5dd98a0577d7f"><div class="ttname"><a href="struct___remmina_pref.html#a10b1f3d9b49687c09ec5dd98a0577d7f">_RemminaPref::shortcutkey_fullscreen</a></div><div class="ttdeci">guint shortcutkey_fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00118">remmina_pref.h:118</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a7c854f5cba54518e846372e01891f013"><div class="ttname"><a href="struct___remmina_connection_object.html#a7c854f5cba54518e846372e01891f013">_RemminaConnectionObject::cnnhld</a></div><div class="ttdeci">RemminaConnectionHolder * cnnhld</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00141">remmina_connection_window.c:141</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aa84f957aaf2152717af3959b80ecfa8a"><div class="ttname"><a href="remmina__connection__window_8c.html#aa84f957aaf2152717af3959b80ecfa8a">remmina_connection_window_delete_event</a></div><div class="ttdeci">static gboolean remmina_connection_window_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00552">remmina_connection_window.c:552</a></div></div>
<div class="ttc" id="struct___remmina_pref_html"><div class="ttname"><a href="struct___remmina_pref.html">_RemminaPref</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00088">remmina_pref.h:88</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_ac95fed56e8995e3361928ebf87505f21"><div class="ttname"><a href="struct___remmina_pref.html#ac95fed56e8995e3361928ebf87505f21">_RemminaPref::floating_toolbar_placement</a></div><div class="ttdeci">gint floating_toolbar_placement</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00153">remmina_pref.h:153</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af1106bba32f40c7f42221a0483987503"><div class="ttname"><a href="remmina__connection__window_8c.html#af1106bba32f40c7f42221a0483987503">remmina_connection_holder_toolbar_disconnect</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_disconnect(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01842">remmina_connection_window.c:1842</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac6cb432c862ff1bc12fde186e9e39b5c"><div class="ttname"><a href="remmina__connection__window_8c.html#ac6cb432c862ff1bc12fde186e9e39b5c">remmina_connection_window_signals</a></div><div class="ttdeci">static guint remmina_connection_window_signals[LAST_SIGNAL]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00177">remmina_connection_window.c:177</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a289101aed4f30397f39880960aae2ac3"><div class="ttname"><a href="remmina__connection__window_8c.html#a289101aed4f30397f39880960aae2ac3">remmina_connection_window_tb_drag_drop</a></div><div class="ttdeci">static gboolean remmina_connection_window_tb_drag_drop(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00635">remmina_connection_window.c:635</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_adbe15328275677cb38bd8c8a2d5e039d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#adbe15328275677cb38bd8c8a2d5e039d">remmina_protocol_widget_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_protocol_widget_query_feature_by_type(RemminaProtocolWidget *gp, RemminaProtocolFeatureType type)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00480">remmina_protocol_widget.c:480</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_af9b6a2c2665010ab09a6d9943f9850bd"><div class="ttname"><a href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget_get_features</a></div><div class="ttdeci">const RemminaProtocolFeature * remmina_protocol_widget_get_features(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00468">remmina_protocol_widget.c:468</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a887cbbd379d159cd0ac1acea7173d07b"><div class="ttname"><a href="struct___remmina_pref.html#a887cbbd379d159cd0ac1acea7173d07b">_RemminaPref::shortcutkey_minimize</a></div><div class="ttdeci">guint shortcutkey_minimize</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00127">remmina_pref.h:127</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae2bb6008a2d00000b8c307a6e2646792"><div class="ttname"><a href="remmina__connection__window_8c.html#ae2bb6008a2d00000b8c307a6e2646792">remmina_connection_window_notify_widget_toolbar_placement</a></div><div class="ttdeci">gboolean remmina_connection_window_notify_widget_toolbar_placement(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00607">remmina_connection_window.c:607</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html"><div class="ttname"><a href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a0e99d0ff8c39f2c6de508eee9ef498c5"><div class="ttname"><a href="remmina__connection__window_8c.html#a0e99d0ff8c39f2c6de508eee9ef498c5">remmina_connection_holder_viewport_fullscreen_mode</a></div><div class="ttdeci">static void remmina_connection_holder_viewport_fullscreen_mode(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01137">remmina_connection_window.c:1137</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668"><div class="ttname"><a href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668">TOOLBARPLACE_SIGNAL</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00173">remmina_connection_window.c:173</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4a069738542d6980f9594299ab57221a7f"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a069738542d6980f9594299ab57221a7f">TOOLBAR_PLACEMENT_TOP</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00069">remmina_pref.h:69</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a80906d852763452c11199efbbb1d4cf3"><div class="ttname"><a href="remmina__connection__window_8c.html#a80906d852763452c11199efbbb1d4cf3">remmina_connection_window_toolbar_place_signal</a></div><div class="ttdeci">static void remmina_connection_window_toolbar_place_signal(RemminaConnectionWindow *cnnwin, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02565">remmina_connection_window.c:2565</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8eb1b213d9d08c6ad13683ce05f4355e"><div class="ttname"><a href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a></div><div class="ttdeci">const gchar * remmina_file_get_string(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00317">remmina_file.c:317</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_a0a6a2069cdbbb920fb09f95bec3e997e"><div class="ttname"><a href="remmina__widget__pool_8c.html#a0a6a2069cdbbb920fb09f95bec3e997e">remmina_widget_pool_find_by_window</a></div><div class="ttdeci">GtkWidget * remmina_widget_pool_find_by_window(GType type, GdkWindow *window)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00085">remmina_widget_pool.c:85</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a174d5b1e983a96c98aae2e8078f462bd"><div class="ttname"><a href="remmina__connection__window_8c.html#a174d5b1e983a96c98aae2e8078f462bd">remmina_connection_window_state_event</a></div><div class="ttdeci">static gboolean remmina_connection_window_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02601">remmina_connection_window.c:2601</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a40efa9a7d27d7742477d73e7636a3d4e"><div class="ttname"><a href="remmina__connection__window_8c.html#a40efa9a7d27d7742477d73e7636a3d4e">remmina_connection_holder_scaler_option_popdown</a></div><div class="ttdeci">static void remmina_connection_holder_scaler_option_popdown(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01210">remmina_connection_window.c:1210</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a4017a800d7803a40d606ffce2578509a"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a4017a800d7803a40d606ffce2578509a">remmina_protocol_widget_query_feature_by_ref</a></div><div class="ttdeci">gboolean remmina_protocol_widget_query_feature_by_ref(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00498">remmina_protocol_widget.c:498</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aac226c5115a432b09cff71ecd772ea6c"><div class="ttname"><a href="remmina__connection__window_8c.html#aac226c5115a432b09cff71ecd772ea6c">remmina_connection_holder_update_pin</a></div><div class="ttdeci">static void remmina_connection_holder_update_pin(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02431">remmina_connection_window.c:2431</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a96a58e29e8dbf2b5bdeb775cba46556eaedb9eb53656e5315bf173ec9d0f5b558"><div class="ttname"><a href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eaedb9eb53656e5315bf173ec9d0f5b558">REMMINA_TAB_BY_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00077">remmina_pref.h:77</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac342d0fa24e77d124fa84dece8b13feb"><div class="ttname"><a href="remmina__connection__window_8c.html#ac342d0fa24e77d124fa84dece8b13feb">remmina_connection_window_after_configure_scrolled</a></div><div class="ttdeci">static gboolean remmina_connection_window_after_configure_scrolled(gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02353">remmina_connection_window.c:2353</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aaf355ea7103fc57a4cbc7b815cde2995"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aaf355ea7103fc57a4cbc7b815cde2995">remmina_protocol_widget_get_width</a></div><div class="ttdeci">gint remmina_protocol_widget_get_width(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00864">remmina_protocol_widget.c:864</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a86280cb973101817f7410af393bc2f98"><div class="ttname"><a href="remmina__connection__window_8c.html#a86280cb973101817f7410af393bc2f98">remmina_connection_holder_call_protocol_feature_radio</a></div><div class="ttdeci">static void remmina_connection_holder_call_protocol_feature_radio(GtkMenuItem *menuitem, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01471">remmina_connection_window.c:1471</a></div></div>
<div class="ttc" id="remmina__scrolled__viewport_8c_html_a0ba56f429a9c1ec05b093f5f78be692c"><div class="ttname"><a href="remmina__scrolled__viewport_8c.html#a0ba56f429a9c1ec05b093f5f78be692c">remmina_scrolled_viewport_remove_motion</a></div><div class="ttdeci">void remmina_scrolled_viewport_remove_motion(RemminaScrolledViewport *gsv)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__scrolled__viewport_8c_source.html#l00174">remmina_scrolled_viewport.c:174</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a7e71031254421ccb10e0c29699cc9523"><div class="ttname"><a href="remmina__connection__window_8c.html#a7e71031254421ccb10e0c29699cc9523">dnd_targets_tb</a></div><div class="ttdeci">static const GtkTargetEntry dnd_targets_tb[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00216">remmina_connection_window.c:216</a></div></div>
<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00120">types.h:120</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a78ec7d6e66d6e6569c1a9a0230c74bc8"><div class="ttname"><a href="remmina__connection__window_8c.html#a78ec7d6e66d6e6569c1a9a0230c74bc8">remmina_connection_holder_toolbar_preferences</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_preferences(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01568">remmina_connection_window.c:1568</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a6ae707cecd1f6660d8e2168d7422b797"><div class="ttname"><a href="struct___remmina_pref.html#a6ae707cecd1f6660d8e2168d7422b797">_RemminaPref::hostkey</a></div><div class="ttdeci">guint hostkey</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00117">remmina_pref.h:117</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a086c9b0fe4bcfe0e5349422d17886d65"><div class="ttname"><a href="struct___remmina_pref.html#a086c9b0fe4bcfe0e5349422d17886d65">_RemminaPref::keystrokes</a></div><div class="ttdeci">gchar * keystrokes</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00097">remmina_pref.h:97</a></div></div>
<div class="ttc" id="remmina__file__manager_8h_html"><div class="ttname"><a href="remmina__file__manager_8h.html">remmina_file_manager.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8h_html_a2450dfe27d3ded59370ea879419f307faab7bf0c707f20f72a8b76af66f1702ab"><div class="ttname"><a href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307faab7bf0c707f20f72a8b76af66f1702ab">REMMINA_CONNECTION_WINDOW_ONDELETE_CONFIRM_IF_2_OR_MORE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00063">remmina_connection_window.h:63</a></div></div>
<div class="ttc" id="remmina__file_8c_html_ad1e4f3a0f64cd98e301044b6c38a1f1d"><div class="ttname"><a href="remmina__file_8c.html#ad1e4f3a0f64cd98e301044b6c38a1f1d">remmina_file_get_filename</a></div><div class="ttdeci">const gchar * remmina_file_get_filename(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00131">remmina_file.c:131</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a2cc56c093d45511af91c6b05c522c45a"><div class="ttname"><a href="struct___remmina_pref.html#a2cc56c093d45511af91c6b05c522c45a">_RemminaPref::shortcutkey_dynres</a></div><div class="ttdeci">guint shortcutkey_dynres</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00122">remmina_pref.h:122</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a893f0cfe2d694ab700975f4f427ee2f6"><div class="ttname"><a href="remmina__public_8c.html#a893f0cfe2d694ab700975f4f427ee2f6">remmina_public_send_notification</a></div><div class="ttdeci">void remmina_public_send_notification(const gchar *notification_id, const gchar *notification_title, const gchar *notification_message)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00643">remmina_public.c:643</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00059">remmina_pref.h:59</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a1b5f4704fb50b67ff1e3daaf7d7d3209"><div class="ttname"><a href="struct___remmina_pref.html#a1b5f4704fb50b67ff1e3daaf7d7d3209">_RemminaPref::shortcutkey_screenshot</a></div><div class="ttdeci">guint shortcutkey_screenshot</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00126">remmina_pref.h:126</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00041">types.h:41</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a45d70bbebf5163081d67df3dbb73cc1b"><div class="ttname"><a href="struct___remmina_pref.html#a45d70bbebf5163081d67df3dbb73cc1b">_RemminaPref::shortcutkey_prevtab</a></div><div class="ttdeci">guint shortcutkey_prevtab</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00120">remmina_pref.h:120</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a7f0d68059b8fe91317c6b62d9315ca44"><div class="ttname"><a href="remmina__connection__window_8c.html#a7f0d68059b8fe91317c6b62d9315ca44">remmina_connection_holder_toolbar_preferences_popdown</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_preferences_popdown(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01449">remmina_connection_window.c:1449</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aab2f304822ccfd4979854ef1afd81771"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a></div><div class="ttdeci">gboolean remmina_protocol_widget_has_error(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00913">remmina_protocol_widget.c:913</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_abbc84b2c450f62c288ff827c5d2c5cd2"><div class="ttname"><a href="remmina__connection__window_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a></div><div class="ttdeci">static RemminaScaleMode get_current_allowed_scale_mode(RemminaConnectionObject *cnnobj, gboolean *dynres_avail, gboolean *scale_avail)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00362">remmina_connection_window.c:362</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a9c0688cfe4ec55f8b563943aab570b25"><div class="ttname"><a href="remmina__public_8c.html#a9c0688cfe4ec55f8b563943aab570b25">remmina_public_get_window_workspace</a></div><div class="ttdeci">guint remmina_public_get_window_workspace(GtkWindow *gtkwindow)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00495">remmina_public.c:495</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af137217cf6ef1ea58f40781f54fd8fe9"><div class="ttname"><a href="remmina__connection__window_8c.html#af137217cf6ef1ea58f40781f54fd8fe9">remmina_connection_holder_keyboard_ungrab</a></div><div class="ttdeci">static void remmina_connection_holder_keyboard_ungrab(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00402">remmina_connection_window.c:402</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a1f3920f6710917d6944491ae1d7b1250"><div class="ttname"><a href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">_RemminaConnectionObject::plugin_can_scale</a></div><div class="ttdeci">gboolean plugin_can_scale</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00156">remmina_connection_window.c:156</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_ae3c9c9853eb5bedbfeadbfac1d495b95"><div class="ttname"><a href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a></div><div class="ttdeci">void remmina_widget_pool_register(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00056">remmina_widget_pool.c:56</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a1c614a5e7dc3cd415be6e0a926e26983"><div class="ttname"><a href="remmina__pref_8c.html#a1c614a5e7dc3cd415be6e0a926e26983">remmina_pref_save</a></div><div class="ttdeci">void remmina_pref_save(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00692">remmina_pref.c:692</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a158cccca5a2fe5a770a99d8772ba62b2"><div class="ttname"><a href="remmina__connection__window_8c.html#a158cccca5a2fe5a770a99d8772ba62b2">remmina_connection_object_enter_protocol_widget</a></div><div class="ttdeci">static gboolean remmina_connection_object_enter_protocol_widget(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02174">remmina_connection_window.c:2174</a></div></div>
<div class="ttc" id="remmina__connection__window_8h_html"><div class="ttname"><a href="remmina__connection__window_8h.html">remmina_connection_window.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a75c70486dec7682aeccaab235e65f6a1"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a75c70486dec7682aeccaab235e65f6a1">remmina_protocol_widget_update_remote_resolution</a></div><div class="ttdeci">void remmina_protocol_widget_update_remote_resolution(RemminaProtocolWidget *gp, gint w, gint h)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01266">remmina_protocol_widget.c:1266</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ab7dc553cbd2005feb77163cf79f48f6d"><div class="ttname"><a href="remmina__connection__window_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a></div><div class="ttdeci">static void remmina_protocol_widget_update_alignment(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01053">remmina_connection_window.c:1053</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291daf963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00057">remmina_pref.h:57</a></div></div>
<div class="ttc" id="remmina__widget__pool_8h_html"><div class="ttname"><a href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aac168486f2fb093eb6347cb0726153b5"><div class="ttname"><a href="remmina__connection__window_8c.html#aac168486f2fb093eb6347cb0726153b5">remmina_connection_window_focus_in_event</a></div><div class="ttdeci">static gboolean remmina_connection_window_focus_in_event(GtkWidget *widget, GdkEvent *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02237">remmina_connection_window.c:2237</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac4d1d30f9b5f09e300b18f60f37f5b8f"><div class="ttname"><a href="remmina__connection__window_8c.html#ac4d1d30f9b5f09e300b18f60f37f5b8f">remmina_connection_holder_toolbar_minimize</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_minimize(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01835">remmina_connection_window.c:1835</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a2d6419b0ee62c2730b024152a06bb6bc"><div class="ttname"><a href="remmina__connection__window_8c.html#a2d6419b0ee62c2730b024152a06bb6bc">remmina_connection_holder_scaler_keep_aspect</a></div><div class="ttdeci">static void remmina_connection_holder_scaler_keep_aspect(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01229">remmina_connection_window.c:1229</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a7db84f4e2649b46a81df340f10743f7f"><div class="ttname"><a href="remmina__connection__window_8c.html#a7db84f4e2649b46a81df340f10743f7f">remmina_connection_holder_switch_page_activate</a></div><div class="ttdeci">static void remmina_connection_holder_switch_page_activate(GtkMenuItem *menuitem, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01287">remmina_connection_window.c:1287</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a96a58e29e8dbf2b5bdeb775cba46556ea18b9b9f60fb377c589ff11b5388fee33"><div class="ttname"><a href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556ea18b9b9f60fb377c589ff11b5388fee33">REMMINA_TAB_BY_GROUP</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00076">remmina_pref.h:76</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_ae9dfd6986f18cb3d846a4933ac792fd5a3272be70c922ec6a1eaf498461943c51"><div class="ttname"><a href="remmina__exec_8h.html#ae9dfd6986f18cb3d846a4933ac792fd5a3272be70c922ec6a1eaf498461943c51">REMMINA_CONDEXIT_ONDISCONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00055">remmina_exec.h:55</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1cc1f656edfbe0d9c5483ac858b76517"><div class="ttname"><a href="remmina__connection__window_8c.html#a1cc1f656edfbe0d9c5483ac858b76517">RemminaConnectionObject</a></div><div class="ttdeci">struct _RemminaConnectionObject RemminaConnectionObject</div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00045">plugin.h:45</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9e77e4da16282ef5413f57b124038bff"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9e77e4da16282ef5413f57b124038bff">remmina_protocol_widget_set_hostkey_func</a></div><div class="ttdeci">void remmina_protocol_widget_set_hostkey_func(RemminaProtocolWidget *gp, RemminaHostkeyFunc func, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00569">remmina_protocol_widget.c:569</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae18a8e7a72ec9a2f3e529708d7ffe0ce"><div class="ttname"><a href="remmina__connection__window_8c.html#ae18a8e7a72ec9a2f3e529708d7ffe0ce">remmina_connection_holder_toolbar_tools_popdown</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_tools_popdown(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01460">remmina_connection_window.c:1460</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_ab0928bd64388cb1ced2f542d3b35019d"><div class="ttname"><a href="struct___remmina_pref.html#ab0928bd64388cb1ced2f542d3b35019d">_RemminaPref::default_mode</a></div><div class="ttdeci">gint default_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00102">remmina_pref.h:102</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a967dca6c1876afc3e6bcb763f9709d43"><div class="ttname"><a href="remmina__connection__window_8c.html#a967dca6c1876afc3e6bcb763f9709d43">remmina_connection_holder_create_floating_toolbar</a></div><div class="ttdeci">static void remmina_connection_holder_create_floating_toolbar(RemminaConnectionHolder *cnnhld, gint mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02451">remmina_connection_window.c:2451</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_adb407338a545724966a1c62d3bd60fb5"><div class="ttname"><a href="remmina__connection__window_8c.html#adb407338a545724966a1c62d3bd60fb5">remmina_connection_holder_update_toolbar_autofit_button</a></div><div class="ttdeci">static void remmina_connection_holder_update_toolbar_autofit_button(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01360">remmina_connection_window.c:1360</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a6515e726b5d3e4c0a9aefc3cf20f3d90"><div class="ttname"><a href="remmina__connection__window_8c.html#a6515e726b5d3e4c0a9aefc3cf20f3d90">dnd_targets_ftb</a></div><div class="ttdeci">static const GtkTargetEntry dnd_targets_ftb[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00207">remmina_connection_window.c:207</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ad6f6d8dd7e157f8fffabb6c22ec604e3"><div class="ttname"><a href="remmina__connection__window_8c.html#ad6f6d8dd7e157f8fffabb6c22ec604e3">remmina_connection_holder_grab_focus</a></div><div class="ttdeci">static void remmina_connection_holder_grab_focus(GtkNotebook *notebook)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02702">remmina_connection_window.c:2702</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291dab1d633b014db4f3b67ec587e14035755"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dab1d633b014db4f3b67ec587e14035755">AUTO_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00056">remmina_pref.h:56</a></div></div>
<div class="ttc" id="config_8h_html"><div class="ttname"><a href="config_8h.html">config.h</a></div></div>
<div class="ttc" id="remmina__scrolled__viewport_8h_html"><div class="ttname"><a href="remmina__scrolled__viewport_8h.html">remmina_scrolled_viewport.h</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4790f45dcc812c1b00184a2edccdddf5a7ed1345b9857b7029a8e0c61918dd95d"><div class="ttname"><a href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00065">remmina_pref.h:65</a></div></div>
<div class="ttc" id="struct___remmina_scrolled_viewport_html"><div class="ttname"><a href="struct___remmina_scrolled_viewport.html">_RemminaScrolledViewport</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__scrolled__viewport_8h_source.html#l00053">remmina_scrolled_viewport.h:53</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a016a7b65f9db00458f3fc000c7e3a89d"><div class="ttname"><a href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">_RemminaConnectionObject::viewport</a></div><div class="ttdeci">GtkWidget * viewport</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00151">remmina_connection_window.c:151</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_ae5c3a7fd35cc51f658dda67052440b47"><div class="ttname"><a href="struct___remmina_pref.html#ae5c3a7fd35cc51f658dda67052440b47">_RemminaPref::shortcutkey_autofit</a></div><div class="ttdeci">guint shortcutkey_autofit</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00119">remmina_pref.h:119</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a6a630e96e5b914d60d678ae8eaad4cd9"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a6a630e96e5b914d60d678ae8eaad4cd9">remmina_protocol_widget_call_feature_by_type</a></div><div class="ttdeci">void remmina_protocol_widget_call_feature_by_type(RemminaProtocolWidget *gp, RemminaProtocolFeatureType type, gint id)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00504">remmina_protocol_widget.c:504</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a2b7b33331e6fe8c8c70be62038f9f5ea"><div class="ttname"><a href="remmina__connection__window_8c.html#a2b7b33331e6fe8c8c70be62038f9f5ea">remmina_connection_holder_floating_toolbar_update</a></div><div class="ttdeci">static void remmina_connection_holder_floating_toolbar_update(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00789">remmina_connection_window.c:789</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html"><div class="ttname"><a href="struct___remmina_connection_object.html">_RemminaConnectionObject</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00140">remmina_connection_window.c:140</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ae609b351fff17c235251b0ba7c480da5"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a></div><div class="ttdeci">gint remmina_protocol_widget_get_height(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00876">remmina_protocol_widget.c:876</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a5ec62969da54155e24edcb1d998f93f7"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a></div><div class="ttdeci">RemminaScaleMode remmina_protocol_widget_get_current_scale_mode(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00888">remmina_protocol_widget.c:888</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_ae76b72824da7d27a61e22d2bddb1e6c5"><div class="ttname"><a href="struct___remmina_connection_object.html#ae76b72824da7d27a61e22d2bddb1e6c5">_RemminaConnectionObject::window</a></div><div class="ttdeci">GtkWidget * window</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00146">remmina_connection_window.c:146</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ad6e2d00646e8268aa0e8bbe31b77db48"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ad6e2d00646e8268aa0e8bbe31b77db48">remmina_protocol_widget_set_current_scale_mode</a></div><div class="ttdeci">void remmina_protocol_widget_set_current_scale_mode(RemminaProtocolWidget *gp, RemminaScaleMode scalemode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00894">remmina_protocol_widget.c:894</a></div></div>
<div class="ttc" id="remmina__connection__window_8h_html_a4bfcfdfd9d43712dd05d90ed3fd47dec"><div class="ttname"><a href="remmina__connection__window_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a></div><div class="ttdeci">struct _RemminaConnectionWindowPriv RemminaConnectionWindowPriv</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00050">remmina_connection_window.h:50</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_aea86c673d5c1600844e0d1642c856995"><div class="ttname"><a href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">_RemminaConnectionObject::proto</a></div><div class="ttdeci">GtkWidget * proto</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00149">remmina_connection_window.c:149</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af0cc437cd94ed03047f1e2b195317b54"><div class="ttname"><a href="remmina__connection__window_8c.html#af0cc437cd94ed03047f1e2b195317b54">remmina_connection_holder_on_switch_page_real</a></div><div class="ttdeci">static gboolean remmina_connection_holder_on_switch_page_real(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02867">remmina_connection_window.c:2867</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_ab9e75c6bf39aa93a87d421fc3d742d60"><div class="ttname"><a href="remmina__pref_8c.html#ab9e75c6bf39aa93a87d421fc3d742d60">remmina_pref_add_recent</a></div><div class="ttdeci">void remmina_pref_add_recent(const gchar *protocol, const gchar *server)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00782">remmina_pref.c:782</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a2f5fc595c1aad851962aa58e2009bcce"><div class="ttname"><a href="remmina__connection__window_8c.html#a2f5fc595c1aad851962aa58e2009bcce">remmina_connection_holder_on_notebook_create_window</a></div><div class="ttdeci">GtkNotebook * remmina_connection_holder_on_notebook_create_window(GtkNotebook *notebook, GtkWidget *page, gint x, gint y, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02923">remmina_connection_window.c:2923</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_ab48899087cc647f0f791ed0c459adc53ad947c85d5ea917958d90298dab033b2c"><div class="ttname"><a href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53ad947c85d5ea917958d90298dab033b2c">FLOATING_TOOLBAR_VISIBILITY_DISABLE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00085">remmina_pref.h:85</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac93e70cd6f65ebb4bee3827240cf1c05"><div class="ttname"><a href="remmina__connection__window_8c.html#ac93e70cd6f65ebb4bee3827240cf1c05">remmina_connection_holder_on_switch_page</a></div><div class="ttdeci">static void remmina_connection_holder_on_switch_page(GtkNotebook *notebook, GtkWidget *page, guint page_num, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02889">remmina_connection_window.c:2889</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac8196ece2700e66594020189362bd404"><div class="ttname"><a href="remmina__connection__window_8c.html#ac8196ece2700e66594020189362bd404">remmina_connection_holder_set_tooltip</a></div><div class="ttdeci">static void remmina_connection_holder_set_tooltip(GtkWidget *item, const gchar *tip, guint key1, guint key2)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01028">remmina_connection_window.c:1028</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a0aa0f7d6c411f9061892848ffb558877"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a0aa0f7d6c411f9061892848ffb558877">remmina_protocol_widget_get_error_message</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_error_message(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00919">remmina_protocol_widget.c:919</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aef28374d0056407bad6204997d2c3bf9"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aef28374d0056407bad6204997d2c3bf9">remmina_protocol_widget_get_domain</a></div><div class="ttdeci">const gchar * remmina_protocol_widget_get_domain(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00474">remmina_protocol_widget.c:474</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae616dc409c5775dc73d9a83c1f081705"><div class="ttname"><a href="remmina__connection__window_8c.html#ae616dc409c5775dc73d9a83c1f081705">remmina_connection_holder_create_notebook</a></div><div class="ttdeci">static GtkWidget * remmina_connection_holder_create_notebook(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02981">remmina_connection_window.c:2981</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_acf5d62eb5dda2e3a1a76c4bcbb926fb8"><div class="ttname"><a href="remmina__connection__window_8c.html#acf5d62eb5dda2e3a1a76c4bcbb926fb8">remmina_connection_holder_get_desktop_size</a></div><div class="ttdeci">static void remmina_connection_holder_get_desktop_size(RemminaConnectionHolder *cnnhld, gint *width, gint *height)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00872">remmina_connection_window.c:872</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00046">types.h:46</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_a9274a9d62e527ca25683af512505242e"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">_RemminaPluginScreenshotData::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00068">types.h:68</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4790f45dcc812c1b00184a2edccdddf5a9cdc370e02904c1f50681b7fe8bd1796"><div class="ttname"><a href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a9cdc370e02904c1f50681b7fe8bd1796">FLOATING_TOOLBAR_PLACEMENT_TOP</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00064">remmina_pref.h:64</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a539828a1dd435bee083d82136691176c"><div class="ttname"><a href="remmina__connection__window_8c.html#a539828a1dd435bee083d82136691176c">remmina_connection_window_focus_out_event</a></div><div class="ttdeci">static gboolean remmina_connection_window_focus_out_event(GtkWidget *widget, GdkEvent *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02227">remmina_connection_window.c:2227</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00045">types.h:45</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00048">types.h:48</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a789a6a8ad49883d67479a264ef7befbe"><div class="ttname"><a href="remmina__connection__window_8c.html#a789a6a8ad49883d67479a264ef7befbe">remmina_connection_object_create_scrolled_container</a></div><div class="ttdeci">static void remmina_connection_object_create_scrolled_container(RemminaConnectionObject *cnnobj, gint view_mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02678">remmina_connection_window.c:2678</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_affb2413c00f0681fe08f90523f7e1471"><div class="ttname"><a href="remmina__protocol__widget_8c.html#affb2413c00f0681fe08f90523f7e1471">remmina_protocol_widget_send_keystrokes</a></div><div class="ttdeci">void remmina_protocol_widget_send_keystrokes(RemminaProtocolWidget *gp, GtkMenuItem *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00357">remmina_protocol_widget.c:357</a></div></div>
<div class="ttc" id="remmina__scrolled__viewport_8c_html_aadfe00c3960eab12d17bdb47495dd1ee"><div class="ttname"><a href="remmina__scrolled__viewport_8c.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport_new</a></div><div class="ttdeci">GtkWidget * remmina_scrolled_viewport_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__scrolled__viewport_8c_source.html#l00185">remmina_scrolled_viewport.c:185</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae73329eababe2888df3ace5c2b94b410"><div class="ttname"><a href="remmina__connection__window_8c.html#ae73329eababe2888df3ace5c2b94b410">remmina_connection_window_find</a></div><div class="ttdeci">static RemminaConnectionWindow * remmina_connection_window_find(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03555">remmina_connection_window.c:3555</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a7ff5e5c4dabc3fb001125a6da14ad758"><div class="ttname"><a href="remmina__public_8c.html#a7ff5e5c4dabc3fb001125a6da14ad758">remmina_public_get_current_workspace</a></div><div class="ttdeci">guint remmina_public_get_current_workspace(GdkScreen *screen)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00444">remmina_public.c:444</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aab1db8671426ff3a525451b96479c4f2"><div class="ttname"><a href="remmina__connection__window_8c.html#aab1db8671426ff3a525451b96479c4f2">remmina_connection_holder_floating_toolbar_visible</a></div><div class="ttdeci">static void remmina_connection_holder_floating_toolbar_visible(RemminaConnectionHolder *cnnhld, gboolean visible)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00857">remmina_connection_window.c:857</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4adb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00070">remmina_pref.h:70</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1ddab4aacc284c606ab237eae9c0b5a9"><div class="ttname"><a href="remmina__connection__window_8c.html#a1ddab4aacc284c606ab237eae9c0b5a9">remmina_connection_holder_toolbar_preferences_radio</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_preferences_radio(RemminaConnectionHolder *cnnhld, RemminaFile *remminafile, GtkWidget *menu, const RemminaProtocolFeature *feature, const gchar *domain, gboolean enabled)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01510">remmina_connection_window.c:1510</a></div></div>
<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00119">types.h:119</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a7a722d82899ce761356e47de2ac91452"><div class="ttname"><a href="remmina__connection__window_8c.html#a7a722d82899ce761356e47de2ac91452">remmina_connection_holder_toolbar_scaler_option</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_scaler_option(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01240">remmina_connection_window.c:1240</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aeffcbd7db351d4cacd7c8ba801ea2c37"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aeffcbd7db351d4cacd7c8ba801ea2c37">remmina_protocol_widget_open_connection</a></div><div class="ttdeci">void remmina_protocol_widget_open_connection(RemminaProtocolWidget *gp, RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00278">remmina_protocol_widget.c:278</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a3df98a686c4e2703455c1a786d3f1f5c"><div class="ttname"><a href="struct___remmina_pref.html#a3df98a686c4e2703455c1a786d3f1f5c">_RemminaPref::screenshot_path</a></div><div class="ttdeci">const gchar * screenshot_path</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00093">remmina_pref.h:93</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_aa0f78eb9b36ba248c2e368684903ae44"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#aa0f78eb9b36ba248c2e368684903ae44">_RemminaPluginScreenshotData::bytesPerPixel</a></div><div class="ttdeci">int bytesPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00066">types.h:66</a></div></div>
<div class="ttc" id="remmina__ext__exec_8h_html"><div class="ttname"><a href="remmina__ext__exec_8h.html">remmina_ext_exec.h</a></div></div>
<div class="ttc" id="remmina__public_8h_html"><div class="ttname"><a href="remmina__public_8h.html">remmina_public.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_adf48e258e535235d29c9638333488920"><div class="ttname"><a href="remmina__connection__window_8c.html#adf48e258e535235d29c9638333488920">remmina_connection_holder_check_resize</a></div><div class="ttdeci">static void remmina_connection_holder_check_resize(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00944">remmina_connection_window.c:944</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae505b986ad4b310e51a5e956eae3d2a0"><div class="ttname"><a href="remmina__connection__window_8c.html#ae505b986ad4b310e51a5e956eae3d2a0">remmina_connection_holder_toolbar_grab</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_grab(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01848">remmina_connection_window.c:1848</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a147924e56eceebe1f61e47bf5af2218a"><div class="ttname"><a href="remmina__connection__window_8c.html#a147924e56eceebe1f61e47bf5af2218a">remmina_connection_holder_floating_toolbar_show</a></div><div class="ttdeci">static void remmina_connection_holder_floating_toolbar_show(RemminaConnectionHolder *cnnhld, gboolean show)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00819">remmina_connection_window.c:819</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a5c2137462d3168e90c812f1ce75a6e62"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a5c2137462d3168e90c812f1ce75a6e62">remmina_protocol_widget_new</a></div><div class="ttdeci">GtkWidget * remmina_protocol_widget_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01218">remmina_protocol_widget.c:1218</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a96a58e29e8dbf2b5bdeb775cba46556eafb68a1eeda5303774bbc922ef8d364e9"><div class="ttname"><a href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eafb68a1eeda5303774bbc922ef8d364e9">REMMINA_TAB_ALL</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00078">remmina_pref.h:78</a></div></div>
<div class="ttc" id="remmina__connection__window_8h_html_a2dd8b9190bec1b9016cbe666ffca4dae"><div class="ttname"><a href="remmina__connection__window_8h.html#a2dd8b9190bec1b9016cbe666ffca4dae">remmina_connection_window_get_type</a></div><div class="ttdeci">GType remmina_connection_window_get_type(void) G_GNUC_CONST</div></div>
<div class="ttc" id="remmina__log_8h_html"><div class="ttname"><a href="remmina__log_8h.html">remmina_log.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a51cc0b2274049920f67c71047bd76213"><div class="ttname"><a href="remmina__connection__window_8c.html#a51cc0b2274049920f67c71047bd76213">remmina_connection_holder_toolbar_tools</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_tools(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01626">remmina_connection_window.c:1626</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_ab5d115d8f9fc675f2419d38cdd424ce6"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">_RemminaPluginScreenshotData::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00067">types.h:67</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a0242e9fcc63d6d24257f63fc23077133"><div class="ttname"><a href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">_RemminaPref::toolbar_placement</a></div><div class="ttdeci">gint toolbar_placement</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00154">remmina_pref.h:154</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a6f585d526b1cbf7224329da51ad40005"><div class="ttname"><a href="remmina__connection__window_8c.html#a6f585d526b1cbf7224329da51ad40005">remmina_connection_holder_on_page_removed</a></div><div class="ttdeci">static void remmina_connection_holder_on_page_removed(GtkNotebook *notebook, GtkWidget *child, guint page_num, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02907">remmina_connection_window.c:2907</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_a1826baafd2d7b5dc8a009ef4fcad77e9"><div class="ttname"><a href="struct___remmina_protocol_feature.html#a1826baafd2d7b5dc8a009ef4fcad77e9">_RemminaProtocolFeature::type</a></div><div class="ttdeci">RemminaProtocolFeatureType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00056">types.h:56</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_ab48899087cc647f0f791ed0c459adc53af179642fefe2ae4787e2d593519010dc"><div class="ttname"><a href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53af179642fefe2ae4787e2d593519010dc">FLOATING_TOOLBAR_VISIBILITY_INVISIBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00084">remmina_pref.h:84</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a4108c65715a02c0a7b570a2393027c2b"><div class="ttname"><a href="remmina__connection__window_8c.html#a4108c65715a02c0a7b570a2393027c2b">remmina_connection_object_on_close_button_clicked</a></div><div class="ttdeci">static void remmina_connection_object_on_close_button_clicked(GtkButton *button, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02715">remmina_connection_window.c:2715</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_abef663d930076deb3105f86dabe2a9c3"><div class="ttname"><a href="remmina__connection__window_8c.html#abef663d930076deb3105f86dabe2a9c3">remmina_connection_window_hostkey_func</a></div><div class="ttdeci">static gboolean remmina_connection_window_hostkey_func(RemminaProtocolWidget *gp, guint keyval, gboolean release, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03367">remmina_connection_window.c:3367</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a45652d9f81875c51991ddf6942d7b2ae"><div class="ttname"><a href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">_RemminaConnectionObject::aspectframe</a></div><div class="ttdeci">GtkWidget * aspectframe</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00150">remmina_connection_window.c:150</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_ab3c15094a16418c5951c5382c8a44190"><div class="ttname"><a href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">_RemminaProtocolFeature::opt3</a></div><div class="ttdeci">gpointer opt3</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00060">types.h:60</a></div></div>
<div class="ttc" id="struct___remmina_connection_holder_html_a5394c17fd2a4b988a807f9d6b1d8a522"><div class="ttname"><a href="struct___remmina_connection_holder.html#a5394c17fd2a4b988a807f9d6b1d8a522">_RemminaConnectionHolder::hostkey_used</a></div><div class="ttdeci">gboolean hostkey_used</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00168">remmina_connection_window.c:168</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a1668951fd7067f2c405e001836855080"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a1668951fd7067f2c405e001836855080">remmina_plugin_manager_query_feature_by_type</a></div><div class="ttdeci">gboolean remmina_plugin_manager_query_feature_by_type(RemminaPluginType ptype, const gchar *name, RemminaProtocolFeatureType ftype)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00422">remmina_plugin_manager.c:422</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae80a730a48eefb689b9957c4f669a020"><div class="ttname"><a href="remmina__connection__window_8c.html#ae80a730a48eefb689b9957c4f669a020">remmina_connection_object_set_scrolled_policy</a></div><div class="ttdeci">static void remmina_connection_object_set_scrolled_policy(RemminaConnectionObject *cnnobj, GtkScrolledWindow *scrolled_window)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00883">remmina_connection_window.c:883</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae072f58def6470b4cecd2c625d6411e6"><div class="ttname"><a href="remmina__connection__window_8c.html#ae072f58def6470b4cecd2c625d6411e6">remmina_connection_window_tb_drag_begin</a></div><div class="ttdeci">static void remmina_connection_window_tb_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00679">remmina_connection_window.c:679</a></div></div>
<div class="ttc" id="remmina__file_8c_html_af153b0d289ac93f6ecdaa15d5f3b9b8c"><div class="ttname"><a href="remmina__file_8c.html#af153b0d289ac93f6ecdaa15d5f3b9b8c">remmina_file_set_int</a></div><div class="ttdeci">void remmina_file_set_int(RemminaFile *remminafile, const gchar *setting, gint value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00362">remmina_file.c:362</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00057">remmina_protocol_widget.h:57</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a17bfba7a11836808719d33d5f6edbdc7"><div class="ttname"><a href="struct___remmina_pref.html#a17bfba7a11836808719d33d5f6edbdc7">_RemminaPref::shortcutkey_disconnect</a></div><div class="ttdeci">guint shortcutkey_disconnect</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00128">remmina_pref.h:128</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4a4f58be8cee9e890445909866d5b11eaf"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00072">remmina_pref.h:72</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce"><div class="ttname"><a href="remmina__connection__window_8c.html#adf764cbdea00d65edcd07bb9953ad2b7a0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00174">remmina_connection_window.c:174</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html"><div class="ttname"><a href="struct___remmina_protocol_feature.html">_RemminaProtocolFeature</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00055">types.h:55</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a293541cc884cabe4f9b2b3181b3ea9c0"><div class="ttname"><a href="struct___remmina_pref.html#a293541cc884cabe4f9b2b3181b3ea9c0">_RemminaPref::small_toolbutton</a></div><div class="ttdeci">gboolean small_toolbutton</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00141">remmina_pref.h:141</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a363642437f5920c93fe35c07ef3601cc"><div class="ttname"><a href="struct___remmina_pref.html#a363642437f5920c93fe35c07ef3601cc">_RemminaPref::shortcutkey_grab</a></div><div class="ttdeci">guint shortcutkey_grab</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00124">remmina_pref.h:124</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a6d77a2663675f01670ed7cc2f14e39c9"><div class="ttname"><a href="struct___remmina_pref.html#a6d77a2663675f01670ed7cc2f14e39c9">_RemminaPref::always_show_tab</a></div><div class="ttdeci">gboolean always_show_tab</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00100">remmina_pref.h:100</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a71136a01b1cc4d14e0047b32ec4d8a4a"><div class="ttname"><a href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">_RemminaConnectionObject::dynres_unlocked</a></div><div class="ttdeci">gboolean dynres_unlocked</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00159">remmina_connection_window.c:159</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a62b161b504422d53a766abb3444f8449"><div class="ttname"><a href="struct___remmina_pref.html#a62b161b504422d53a766abb3444f8449">_RemminaPref::toolbar_pin_down</a></div><div class="ttdeci">gboolean toolbar_pin_down</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00152">remmina_pref.h:152</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af79fdcdd07b28c1cde08489d7986ca37"><div class="ttname"><a href="remmina__connection__window_8c.html#af79fdcdd07b28c1cde08489d7986ca37">remmina_connection_window_on_configure</a></div><div class="ttdeci">static gboolean remmina_connection_window_on_configure(GtkWidget *widget, GdkEventConfigure *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02389">remmina_connection_window.c:2389</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a2859598ef2f87afb5a970a197a503765"><div class="ttname"><a href="struct___remmina_pref.html#a2859598ef2f87afb5a970a197a503765">_RemminaPref::shortcutkey_scale</a></div><div class="ttdeci">guint shortcutkey_scale</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00123">remmina_pref.h:123</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a47242e757b22622e8653643de24fdad9"><div class="ttname"><a href="remmina__connection__window_8c.html#a47242e757b22622e8653643de24fdad9">remmina_connection_window_delete</a></div><div class="ttdeci">gboolean remmina_connection_window_delete(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00516">remmina_connection_window.c:516</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a4507b43c6fd10bc68d9512c6b253a552"><div class="ttname"><a href="remmina__connection__window_8c.html#a4507b43c6fd10bc68d9512c6b253a552">remmina_connection_holder_call_protocol_feature_activate</a></div><div class="ttdeci">static void remmina_connection_holder_call_protocol_feature_activate(GtkMenuItem *menuitem, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01500">remmina_connection_window.c:1500</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a326a430fe4d298e3564d9fd5b7945a82"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a326a430fe4d298e3564d9fd5b7945a82">remmina_protocol_widget_close_connection</a></div><div class="ttdeci">gboolean remmina_protocol_widget_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00293">remmina_protocol_widget.c:293</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aac6895538e595984302a03c07bc51fbe"><div class="ttname"><a href="remmina__connection__window_8c.html#aac6895538e595984302a03c07bc51fbe">remmina_connection_holder_update_toolbar_opacity</a></div><div class="ttdeci">static void remmina_connection_holder_update_toolbar_opacity(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00710">remmina_connection_window.c:710</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00060">remmina_pref.h:60</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a0a92f6f998590a56e44964f0345f942b"><div class="ttname"><a href="remmina__connection__window_8c.html#a0a92f6f998590a56e44964f0345f942b">remmina_connection_holder_floating_toolbar_motion</a></div><div class="ttdeci">static gboolean remmina_connection_holder_floating_toolbar_motion(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00735">remmina_connection_window.c:735</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a735747875f8442962795c7a2ec027378"><div class="ttname"><a href="remmina__connection__window_8c.html#a735747875f8442962795c7a2ec027378">remmina_connection_holder_toolbar_pin</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_pin(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02443">remmina_connection_window.c:2443</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ada0dce340f5f1484c496a2357e8a2c69"><div class="ttname"><a href="remmina__connection__window_8c.html#ada0dce340f5f1484c496a2357e8a2c69">remmina_connection_holder_toolbar_preferences_check</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_preferences_check(RemminaConnectionHolder *cnnhld, RemminaFile *remminafile, GtkWidget *menu, const RemminaProtocolFeature *feature, const gchar *domain, gboolean enabled)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01545">remmina_connection_window.c:1545</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ab0ed27ef360efc7d92906cbabf9da5db"><div class="ttname"><a href="remmina__connection__window_8c.html#ab0ed27ef360efc7d92906cbabf9da5db">remmina_connection_window_open_from_filename</a></div><div class="ttdeci">gboolean remmina_connection_window_open_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03724">remmina_connection_window.c:3724</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a92025b5f6512955f9c29608b5451a12c"><div class="ttname"><a href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a></div><div class="ttdeci">void remmina_public_popup_position(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00287">remmina_public.c:287</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_acc352444c31929a1ef7aee2a0e37827d"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">_RemminaPluginScreenshotData::bitsPerPixel</a></div><div class="ttdeci">int bitsPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00065">types.h:65</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a57ac13fc4a2653c40e0601183628c0ca"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a57ac13fc4a2653c40e0601183628c0ca">remmina_protocol_widget_plugin_screenshot</a></div><div class="ttdeci">gboolean remmina_protocol_widget_plugin_screenshot(RemminaProtocolWidget *gp, RemminaPluginScreenshotData *rpsd)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00438">remmina_protocol_widget.c:438</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a0ff4775a640861c11f2bc9f4e4680ed5"><div class="ttname"><a href="remmina__connection__window_8c.html#a0ff4775a640861c11f2bc9f4e4680ed5">remmina_connection_window_new_from_holder</a></div><div class="ttdeci">static GtkWidget * remmina_connection_window_new_from_holder(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02629">remmina_connection_window.c:2629</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a290eb68f0e86de1b7b82e2d98a1494d1"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a290eb68f0e86de1b7b82e2d98a1494d1">remmina_protocol_widget_grab_focus</a></div><div class="ttdeci">void remmina_protocol_widget_grab_focus(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00186">remmina_protocol_widget.c:186</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a888c4dd031e9366a3284cb34351865aa"><div class="ttname"><a href="remmina__connection__window_8c.html#a888c4dd031e9366a3284cb34351865aa">remmina_connection_object_create_tab</a></div><div class="ttdeci">static GtkWidget * remmina_connection_object_create_tab(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02723">remmina_connection_window.c:2723</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a57b3656c37df65d276ddd50a16906dc7"><div class="ttname"><a href="remmina__connection__window_8c.html#a57b3656c37df65d276ddd50a16906dc7">remmina_connection_holder_create_scrolled</a></div><div class="ttdeci">static void remmina_connection_holder_create_scrolled(RemminaConnectionHolder *cnnhld, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03002">remmina_connection_window.c:3002</a></div></div>
<div class="ttc" id="struct___remmina_connection_holder_html_a393eb10c59a1b32081950e210a2ed309"><div class="ttname"><a href="struct___remmina_connection_holder.html#a393eb10c59a1b32081950e210a2ed309">_RemminaConnectionHolder::cnnwin</a></div><div class="ttdeci">RemminaConnectionWindow * cnnwin</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00164">remmina_connection_window.c:164</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a4b181dfe368b535a6082b4591cc8fc9c"><div class="ttname"><a href="remmina__connection__window_8c.html#a4b181dfe368b535a6082b4591cc8fc9c">remmina_connection_window_ftb_drag_begin</a></div><div class="ttdeci">static void remmina_connection_window_ftb_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03256">remmina_connection_window.c:3256</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a02ac20f50f1b7b816bd7208127efdbee"><div class="ttname"><a href="remmina__connection__window_8c.html#a02ac20f50f1b7b816bd7208127efdbee">remmina_connection_holder_toolbar_fullscreen</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_fullscreen(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01127">remmina_connection_window.c:1127</a></div></div>
<div class="ttc" id="remmina__connection__window_8h_html_a2450dfe27d3ded59370ea879419f307fafcfb1d365d23a2ae8e36377a8657b482"><div class="ttname"><a href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307fafcfb1d365d23a2ae8e36377a8657b482">REMMINA_CONNECTION_WINDOW_ONDELETE_NOCONFIRM</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00064">remmina_connection_window.h:64</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a712773f926eb2ec030d6af80cdc33095"><div class="ttname"><a href="struct___remmina_pref.html#a712773f926eb2ec030d6af80cdc33095">_RemminaPref::shortcutkey_nexttab</a></div><div class="ttdeci">guint shortcutkey_nexttab</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00121">remmina_pref.h:121</a></div></div>
<div class="ttc" id="remmina__init__dialog_8h_html"><div class="ttname"><a href="remmina__init__dialog_8h.html">remmina_init_dialog.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a0872efe4b1084b17bab7ac962920c3e9"><div class="ttname"><a href="remmina__connection__window_8c.html#a0872efe4b1084b17bab7ac962920c3e9">remmina_connection_object_on_update_align</a></div><div class="ttdeci">static void remmina_connection_object_on_update_align(RemminaProtocolWidget *gp, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03711">remmina_connection_window.c:3711</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aecbe4c6a13ec6eda818c9f74c6f63468"><div class="ttname"><a href="struct___remmina_pref.html#aecbe4c6a13ec6eda818c9f74c6f63468">_RemminaPref::tab_mode</a></div><div class="ttdeci">gint tab_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00103">remmina_pref.h:103</a></div></div>
<div class="ttc" id="struct___remmina_connection_holder_html_af1d0ef71660cc5a6721ee4b3de962397"><div class="ttname"><a href="struct___remmina_connection_holder.html#af1d0ef71660cc5a6721ee4b3de962397">_RemminaConnectionHolder::fullscreen_view_mode</a></div><div class="ttdeci">gint fullscreen_view_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00165">remmina_connection_window.c:165</a></div></div>
<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
<div class="ttc" id="struct___remmina_connection_window_html_a05faadfc5f0372cca2f4552b1882813c"><div class="ttname"><a href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">_RemminaConnectionWindow::priv</a></div><div class="ttdeci">RemminaConnectionWindowPriv * priv</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00054">remmina_connection_window.h:54</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a0ad685a873ecef95ec13caba17e0c22e"><div class="ttname"><a href="remmina__connection__window_8c.html#a0ad685a873ecef95ec13caba17e0c22e">remmina_connection_object_on_connect</a></div><div class="ttdeci">static void remmina_connection_object_on_connect(RemminaProtocolWidget *gp, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03577">remmina_connection_window.c:3577</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aa7ac5ec9d95867734619583a2049e952"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aa7ac5ec9d95867734619583a2049e952">_RemminaProtocolFeature::opt1</a></div><div class="ttdeci">gpointer opt1</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00058">types.h:58</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a6bcba3905245597b6393bbdc8a210e3d"><div class="ttname"><a href="remmina__connection__window_8c.html#a6bcba3905245597b6393bbdc8a210e3d">remmina_connection_holder_keyboard_grab</a></div><div class="ttdeci">static void remmina_connection_holder_keyboard_grab(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00445">remmina_connection_window.c:445</a></div></div>
<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac8c524ed2e2854209d3c88df260e022f"><div class="ttname"><a href="remmina__connection__window_8c.html#ac8c524ed2e2854209d3c88df260e022f">remmina_connection_holder_toolbar_switch_page_popdown</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_switch_page_popdown(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01297">remmina_connection_window.c:1297</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af0ca467e68db4fb9baa872d57ef3bca4"><div class="ttname"><a href="remmina__connection__window_8c.html#af0ca467e68db4fb9baa872d57ef3bca4">remmina_connection_holder_floating_toolbar_hide</a></div><div class="ttdeci">static gboolean remmina_connection_holder_floating_toolbar_hide(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02301">remmina_connection_window.c:2301</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_a741639f1800defdb42f235a8816a495b"><div class="ttname"><a href="remmina__protocol__widget_8h.html#a741639f1800defdb42f235a8816a495b">RemminaHostkeyFunc</a></div><div class="ttdeci">gboolean(* RemminaHostkeyFunc)(RemminaProtocolWidget *gp, guint keyval, gboolean release, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00110">remmina_protocol_widget.h:110</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a49552d7adf2f4e22a59d89802171e52b"><div class="ttname"><a href="remmina__connection__window_8c.html#a49552d7adf2f4e22a59d89802171e52b">remmina_connection_window_update_tag</a></div><div class="ttdeci">static void remmina_connection_window_update_tag(RemminaConnectionWindow *cnnwin, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02659">remmina_connection_window.c:2659</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a4884356c195dcfb4ceacf641a1e74e66"><div class="ttname"><a href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a></div><div class="ttdeci">gint remmina_file_get_int(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00368">remmina_file.c:368</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aac99c87f16b44843e8eb41bea27cbe2a"><div class="ttname"><a href="remmina__connection__window_8c.html#aac99c87f16b44843e8eb41bea27cbe2a">remmina_connection_window_tb_drag_failed</a></div><div class="ttdeci">static gboolean remmina_connection_window_tb_drag_failed(GtkWidget *widget, GdkDragContext *context, GtkDragResult result, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00619">remmina_connection_window.c:619</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a4495fca1215fef8e8484b7fee38ae996"><div class="ttname"><a href="remmina__connection__window_8c.html#a4495fca1215fef8e8484b7fee38ae996">remmina_connection_holder_scaler_expand</a></div><div class="ttdeci">static void remmina_connection_holder_scaler_expand(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01219">remmina_connection_window.c:1219</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aa3dc5f8676c4747f2fcaf9a68d16d11b"><div class="ttname"><a href="struct___remmina_pref.html#aa3dc5f8676c4747f2fcaf9a68d16d11b">_RemminaPref::shortcutkey_toolbar</a></div><div class="ttdeci">guint shortcutkey_toolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00129">remmina_pref.h:129</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_aef266e6ae11db020512b3dec8f689d30"><div class="ttname"><a href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">_RemminaConnectionObject::scrolled_container</a></div><div class="ttdeci">GtkWidget * scrolled_container</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00154">remmina_connection_window.c:154</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a605b69a9aa4393024369cc5070488692"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a605b69a9aa4393024369cc5070488692">remmina_protocol_widget_call_feature_by_ref</a></div><div class="ttdeci">void remmina_protocol_widget_call_feature_by_ref(RemminaProtocolWidget *gp, const RemminaProtocolFeature *feature)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00517">remmina_protocol_widget.c:517</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a431b19fa993d0810e88cc973a307303c"><div class="ttname"><a href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">_RemminaConnectionObject::remmina_file</a></div><div class="ttdeci">RemminaFile * remmina_file</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00143">remmina_connection_window.c:143</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ab2edcb806312b3367c70fbb13c383ae0"><div class="ttname"><a href="remmina__connection__window_8c.html#ab2edcb806312b3367c70fbb13c383ae0">remmina_connection_holder_create_overlay_ftb_overlay</a></div><div class="ttdeci">static void remmina_connection_holder_create_overlay_ftb_overlay(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03141">remmina_connection_window.c:3141</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a8d924ded7fe147df8b5f113e2fb1d6e7"><div class="ttname"><a href="remmina__connection__window_8c.html#a8d924ded7fe147df8b5f113e2fb1d6e7">remmina_connection_holder_call_protocol_feature_check</a></div><div class="ttdeci">static void remmina_connection_holder_call_protocol_feature_check(GtkMenuItem *menuitem, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01487">remmina_connection_window.c:1487</a></div></div>
<div class="ttc" id="struct___remmina_connection_window_class_html"><div class="ttname"><a href="struct___remmina_connection_window_class.html">_RemminaConnectionWindowClass</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00057">remmina_connection_window.h:57</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a15c9b2bd929f8f2bb64d0bb6fa60f067"><div class="ttname"><a href="remmina__connection__window_8c.html#a15c9b2bd929f8f2bb64d0bb6fa60f067">remmina_connection_window_ftb_drag_drop</a></div><div class="ttdeci">static gboolean remmina_connection_window_ftb_drag_drop(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03222">remmina_connection_window.c:3222</a></div></div>
<div class="ttc" id="struct___remmina_protocol_feature_html_aab44850c13a7e5e20a02603ae173d53d"><div class="ttname"><a href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">_RemminaProtocolFeature::opt2</a></div><div class="ttdeci">gpointer opt2</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00059">types.h:59</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00047">types.h:47</a></div></div>
<div class="ttc" id="remmina__pref_8h_html"><div class="ttname"><a href="remmina__pref_8h.html">remmina_pref.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ad6136dd7c0867a5a5f1c0b0645632ee4"><div class="ttname"><a href="remmina__connection__window_8c.html#ad6136dd7c0867a5a5f1c0b0645632ee4">remmina_connection_holder_toolbar_scaled_mode</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_scaled_mode(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01432">remmina_connection_window.c:1432</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a6d866a05da5d47a9342d4c87dbf70863"><div class="ttname"><a href="remmina__connection__window_8c.html#a6d866a05da5d47a9342d4c87dbf70863">cb_autoclose_widget</a></div><div class="ttdeci">static void cb_autoclose_widget(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03650">remmina_connection_window.c:3650</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a9258f6c3c18f14b4abb148aa43e6bc0e"><div class="ttname"><a href="struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e">_RemminaPref::hide_connection_toolbar</a></div><div class="ttdeci">gboolean hide_connection_toolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00101">remmina_pref.h:101</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a6f4427665eeef5af2091621c1e89b589"><div class="ttname"><a href="remmina__connection__window_8c.html#a6f4427665eeef5af2091621c1e89b589">remmina_connection_window_focus_in</a></div><div class="ttdeci">static void remmina_connection_window_focus_in(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02187">remmina_connection_window.c:2187</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac1e63c7801614664d5da3ecd326a69e8"><div class="ttname"><a href="remmina__connection__window_8c.html#ac1e63c7801614664d5da3ecd326a69e8">remmina_connection_holder_fullscreen_option_popdown</a></div><div class="ttdeci">static void remmina_connection_holder_fullscreen_option_popdown(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01155">remmina_connection_window.c:1155</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a3627c2a73e45f25e4672fcce27af9a18"><div class="ttname"><a href="remmina__connection__window_8c.html#a3627c2a73e45f25e4672fcce27af9a18">remmina_connection_holder_place_toolbar</a></div><div class="ttdeci">static void remmina_connection_holder_place_toolbar(GtkToolbar *toolbar, GtkGrid *grid, GtkWidget *sibling, int toolbar_placement)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02050">remmina_connection_window.c:2050</a></div></div>
<div class="ttc" id="struct___remmina_connection_holder_html_a47338974261e8d5506b8ece744a3b14f"><div class="ttname"><a href="struct___remmina_connection_holder.html#a47338974261e8d5506b8ece744a3b14f">_RemminaConnectionHolder::hostkey_activated</a></div><div class="ttdeci">gboolean hostkey_activated</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00167">remmina_connection_window.c:167</a></div></div>
<div class="ttc" id="struct___remmina_connection_holder_html"><div class="ttname"><a href="struct___remmina_connection_holder.html">_RemminaConnectionHolder</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00163">remmina_connection_window.c:163</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac06b41c974d5cfc6277f50b617a550bb"><div class="ttname"><a href="remmina__connection__window_8c.html#ac06b41c974d5cfc6277f50b617a550bb">remmina_connection_object_append_page</a></div><div class="ttdeci">static gint remmina_connection_object_append_page(RemminaConnectionObject *cnnobj, GtkNotebook *notebook, GtkWidget *tab, gint view_mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02766">remmina_connection_window.c:2766</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_aaa67e07e2426828d7e7b9b30d2038d31"><div class="ttname"><a href="remmina__exec_8c.html#aaa67e07e2426828d7e7b9b30d2038d31">remmina_application_condexit</a></div><div class="ttdeci">void remmina_application_condexit(RemminaCondExitType why)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00100">remmina_exec.c:100</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a0b19dbe685e4465e7f06706270e120fa"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a></div><div class="ttdeci">void remmina_protocol_widget_set_expand(RemminaProtocolWidget *gp, gboolean expand)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00906">remmina_protocol_widget.c:906</a></div></div>
<div class="ttc" id="remmina__log_8c_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00165">remmina_log.c:165</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00291">remmina_file.c:291</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af8138da72278e9e9000276e08a6fd984"><div class="ttname"><a href="remmina__connection__window_8c.html#af8138da72278e9e9000276e08a6fd984">remmina_connection_holder_create_toolbar</a></div><div class="ttdeci">static GtkWidget * remmina_connection_holder_create_toolbar(RemminaConnectionHolder *cnnhld, gint mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01866">remmina_connection_window.c:1866</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a3bb0386b166904eb00902d08d6c959a5"><div class="ttname"><a href="remmina__connection__window_8c.html#a3bb0386b166904eb00902d08d6c959a5">remmina_connection_object_on_desktop_resize</a></div><div class="ttdeci">static void remmina_connection_object_on_desktop_resize(RemminaProtocolWidget *gp, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03703">remmina_connection_window.c:3703</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8c893a5deec9bc446bd89cc9973416c7"><div class="ttname"><a href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a></div><div class="ttdeci">void remmina_file_save(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00405">remmina_file.c:405</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ad6ea67e2303625444fb4936a114e82df"><div class="ttname"><a href="remmina__connection__window_8c.html#ad6ea67e2303625444fb4936a114e82df">remmina_connection_object_on_disconnect</a></div><div class="ttdeci">static void remmina_connection_object_on_disconnect(RemminaProtocolWidget *gp, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03656">remmina_connection_window.c:3656</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="remmina__connection__window_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00064">remmina_connection_window.c:64</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aa25cae5c0e15e13b817b925e42a044a9"><div class="ttname"><a href="remmina__connection__window_8c.html#aa25cae5c0e15e13b817b925e42a044a9">remmina_connection_holder_scrolled_fullscreen_mode</a></div><div class="ttdeci">static void remmina_connection_holder_scrolled_fullscreen_mode(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01146">remmina_connection_window.c:1146</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a9d0e16bc9f0d555b3832b2ff6be66e3f"><div class="ttname"><a href="remmina__connection__window_8c.html#a9d0e16bc9f0d555b3832b2ff6be66e3f">remmina_connection_holder_floating_toolbar_on_scroll</a></div><div class="ttdeci">static gboolean remmina_connection_holder_floating_toolbar_on_scroll(GtkWidget *widget, GdkEventScroll *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02310">remmina_connection_window.c:2310</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4a95463ce23d03eb31b2bb61c29dab0076"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a95463ce23d03eb31b2bb61c29dab0076">TOOLBAR_PLACEMENT_BOTTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00071">remmina_pref.h:71</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a480f842fac65440c367bf3c3d87d2601"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a480f842fac65440c367bf3c3d87d2601">remmina_protocol_widget_plugin_receives_keystrokes</a></div><div class="ttdeci">gboolean remmina_protocol_widget_plugin_receives_keystrokes(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00351">remmina_protocol_widget.c:351</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1b31d50e3792f41f4f78c1dbc1c5b27c"><div class="ttname"><a href="remmina__connection__window_8c.html#a1b31d50e3792f41f4f78c1dbc1c5b27c">remmina_connection_holder_update_toolbar</a></div><div class="ttdeci">static void remmina_connection_holder_update_toolbar(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02085">remmina_connection_window.c:2085</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a8c242e0a7ee57ed79099c330d696b43f"><div class="ttname"><a href="remmina__connection__window_8c.html#a8c242e0a7ee57ed79099c330d696b43f">remmina_connection_window_focus_out</a></div><div class="ttdeci">static void remmina_connection_window_focus_out(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02202">remmina_connection_window.c:2202</a></div></div>
<div class="ttc" id="struct___remmina_connection_window_html"><div class="ttname"><a href="struct___remmina_connection_window.html">_RemminaConnectionWindow</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00052">remmina_connection_window.h:52</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_adbf2b670ca3bae96a99cb0b36021a961"><div class="ttname"><a href="remmina__connection__window_8c.html#adbf2b670ca3bae96a99cb0b36021a961">remmina_connection_window_open_from_file_full</a></div><div class="ttdeci">GtkWidget * remmina_connection_window_open_from_file_full(RemminaFile *remminafile, GCallback disconnect_cb, gpointer data, guint *handler)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03750">remmina_connection_window.c:3750</a></div></div>
<div class="ttc" id="remmina__log_8c_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00156">remmina_log.c:156</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_af7b58659604660eb0cb40b0e0f8348ab"><div class="ttname"><a href="remmina__file__manager_8c.html#af7b58659604660eb0cb40b0e0f8348ab">remmina_file_manager_load_file</a></div><div class="ttdeci">RemminaFile * remmina_file_manager_load_file(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00322">remmina_file_manager.c:322</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aa684847595283db326fd636735eed231"><div class="ttname"><a href="remmina__connection__window_8c.html#aa684847595283db326fd636735eed231">remmina_connection_window_close_all_connections</a></div><div class="ttdeci">static void remmina_connection_window_close_all_connections(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00496">remmina_connection_window.c:496</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a17841adaac1f1d03395629af001f9135"><div class="ttname"><a href="remmina__connection__window_8c.html#a17841adaac1f1d03395629af001f9135">remmina_connection_holder_on_page_added</a></div><div class="ttdeci">static void remmina_connection_holder_on_page_added(GtkNotebook *notebook, GtkWidget *child, guint page_num, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02900">remmina_connection_window.c:2900</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a10b3a54bf50f7522ee272932673e9419"><div class="ttname"><a href="remmina__connection__window_8c.html#a10b3a54bf50f7522ee272932673e9419">remmina_connection_window_go_fullscreen</a></div><div class="ttdeci">static gboolean remmina_connection_window_go_fullscreen(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03112">remmina_connection_window.c:3112</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a3542c1aed620129ef10a0cb01b2db526"><div class="ttname"><a href="remmina__connection__window_8c.html#a3542c1aed620129ef10a0cb01b2db526">remmina_connection_holder_showhide_toolbar</a></div><div class="ttdeci">static void remmina_connection_holder_showhide_toolbar(RemminaConnectionHolder *cnnhld, gboolean resize)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02151">remmina_connection_window.c:2151</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html"><div class="ttname"><a href="remmina__protocol__widget_8h.html">remmina_protocol_widget.h</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aae5d48ae04bd39576296ade15f4df385"><div class="ttname"><a href="remmina__connection__window_8c.html#aae5d48ae04bd39576296ade15f4df385">G_DEFINE_TYPE</a></div><div class="ttdeci">G_DEFINE_TYPE(RemminaConnectionWindow, remmina_connection_window, GTK_TYPE_WINDOW)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00066">remmina_connection_window.c:66</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a2d157bba82de5684318381a8816db2af"><div class="ttname"><a href="remmina__connection__window_8c.html#a2d157bba82de5684318381a8816db2af">remmina_connection_window_destroy</a></div><div class="ttdeci">static void remmina_connection_window_destroy(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00559">remmina_connection_window.c:559</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a5565ebedf82eb9f2d54b7f447b4c930e"><div class="ttname"><a href="remmina__connection__window_8c.html#a5565ebedf82eb9f2d54b7f447b4c930e">remmina_connection_holder_change_scalemode</a></div><div class="ttdeci">static void remmina_connection_holder_change_scalemode(RemminaConnectionHolder *cnnhld, gboolean bdyn, gboolean bscale)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01379">remmina_connection_window.c:1379</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a7959ed5b51966bb0fb9e7b84bbb9878d"><div class="ttname"><a href="remmina__connection__window_8c.html#a7959ed5b51966bb0fb9e7b84bbb9878d">remmina_connection_holder_toolbar_screenshot</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_screenshot(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01714">remmina_connection_window.c:1714</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1415cdcbed0e6fe9a7978586bf132207"><div class="ttname"><a href="remmina__connection__window_8c.html#a1415cdcbed0e6fe9a7978586bf132207">remmina_connection_holder_toolbar_fullscreen_option</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_fullscreen_option(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01166">remmina_connection_window.c:1166</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a92a6aa97bc751b0c096583a66351ada1"><div class="ttname"><a href="remmina__connection__window_8c.html#a92a6aa97bc751b0c096583a66351ada1">remmina_connection_holder_toolbar_autofit_restore</a></div><div class="ttdeci">static gboolean remmina_connection_holder_toolbar_autofit_restore(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00893">remmina_connection_window.c:893</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a2feb8e9e32f3ff4e2fac836e67a77331"><div class="ttname"><a href="remmina__file_8c.html#a2feb8e9e32f3ff4e2fac836e67a77331">remmina_file_get_icon_name</a></div><div class="ttdeci">const gchar * remmina_file_get_icon_name(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00513">remmina_file.c:513</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html">_RemminaPluginScreenshotData</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00063">types.h:63</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae9bb344de3fcb51b6ecf56a664b6a3cb"><div class="ttname"><a href="remmina__connection__window_8c.html#ae9bb344de3fcb51b6ecf56a664b6a3cb">remmina_connection_holder_update_notebook</a></div><div class="ttdeci">static void remmina_connection_holder_update_notebook(RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02843">remmina_connection_window.c:2843</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_a53fad3994b2550300cfd4fd8bb2a2b5b"><div class="ttname"><a href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool_foreach</a></div><div class="ttdeci">gint remmina_widget_pool_foreach(RemminaWidgetPoolForEachFunc callback, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00108">remmina_widget_pool.c:108</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_aed1d667ed3085ee229c0dfdcf715084d"><div class="ttname"><a href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">_RemminaConnectionObject::connected</a></div><div class="ttdeci">gboolean connected</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00158">remmina_connection_window.c:158</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a4eb866c8e08104362aa51f14f5894e51"><div class="ttname"><a href="struct___remmina_pref.html#a4eb866c8e08104362aa51f14f5894e51">_RemminaPref::shortcutkey_viewonly</a></div><div class="ttdeci">guint shortcutkey_viewonly</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00125">remmina_pref.h:125</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aa28770c2f7c156eb4574227310481041"><div class="ttname"><a href="remmina__connection__window_8c.html#aa28770c2f7c156eb4574227310481041">remmina_connection_window_initialize_notebook</a></div><div class="ttdeci">static void remmina_connection_window_initialize_notebook(GtkNotebook *to, GtkNotebook *from, RemminaConnectionObject *cnnobj, gint view_mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02781">remmina_connection_window.c:2781</a></div></div>
<div class="ttc" id="remmina__exec_8h_html"><div class="ttname"><a href="remmina__exec_8h.html">remmina_exec.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_a757f692624e3e110eaa5bf0c05ac2a6c"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">_RemminaPluginScreenshotData::buffer</a></div><div class="ttdeci">unsigned char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00064">types.h:64</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_af12f8b64866588b7b2360cbc2681ec40"><div class="ttname"><a href="remmina__connection__window_8c.html#af12f8b64866588b7b2360cbc2681ec40">remmina_connection_holder_floating_toolbar_make_invisible</a></div><div class="ttdeci">static gboolean remmina_connection_holder_floating_toolbar_make_invisible(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00809">remmina_connection_window.c:809</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ac679e10d8be64d56ed13043dd4df7d1c"><div class="ttname"><a href="remmina__connection__window_8c.html#ac679e10d8be64d56ed13043dd4df7d1c">remmina_connection_holder_toolbar_autofit</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_autofit(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00922">remmina_connection_window.c:922</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a5b12b74df51eda99c7e34a4d016e4f1e"><div class="ttname"><a href="remmina__connection__window_8c.html#a5b12b74df51eda99c7e34a4d016e4f1e">remmina_connection_holder_floating_toolbar_on_enter</a></div><div class="ttdeci">static gboolean remmina_connection_holder_floating_toolbar_on_enter(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02166">remmina_connection_window.c:2166</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a4a74d72f34e960155c489e0f91574d2b"><div class="ttname"><a href="struct___remmina_pref.html#a4a74d72f34e960155c489e0f91574d2b">_RemminaPref::fullscreen_on_auto</a></div><div class="ttdeci">gboolean fullscreen_on_auto</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00099">remmina_pref.h:99</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aefad8c92a20121f0563bfeaf06c25e8e"><div class="ttname"><a href="remmina__connection__window_8c.html#aefad8c92a20121f0563bfeaf06c25e8e">remmina_connection_holder_toolbar_switch_page</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_switch_page(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01308">remmina_connection_window.c:1308</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a0cffd168e21bdd3d9469ca2e86e19c31"><div class="ttname"><a href="remmina__connection__window_8c.html#a0cffd168e21bdd3d9469ca2e86e19c31">remmina_connection_object_on_unlock_dynres</a></div><div class="ttdeci">static void remmina_connection_object_on_unlock_dynres(RemminaProtocolWidget *gp, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03717">remmina_connection_window.c:3717</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a2b5a6494f27dca9408e2640f11a7738c"><div class="ttname"><a href="remmina__connection__window_8c.html#a2b5a6494f27dca9408e2640f11a7738c">remmina_connection_window_on_enter</a></div><div class="ttdeci">static gboolean remmina_connection_window_on_enter(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02247">remmina_connection_window.c:2247</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1c7f722a89609523cc4de079cc82f23c"><div class="ttname"><a href="remmina__connection__window_8c.html#a1c7f722a89609523cc4de079cc82f23c">remmina_connection_window_open_from_file</a></div><div class="ttdeci">void remmina_connection_window_open_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03744">remmina_connection_window.c:3744</a></div></div>
<div class="ttc" id="remmina__connection__window_8h_html_a2450dfe27d3ded59370ea879419f307f"><div class="ttname"><a href="remmina__connection__window_8h.html#a2450dfe27d3ded59370ea879419f307f">RemminaConnectionWindowOnDeleteConfirmMode</a></div><div class="ttdeci">RemminaConnectionWindowOnDeleteConfirmMode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8h_source.html#l00062">remmina_connection_window.h:62</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a576e3800c7371f63b27e3832848ac4e5"><div class="ttname"><a href="remmina__connection__window_8c.html#a576e3800c7371f63b27e3832848ac4e5">remmina_connection_holder_toolbar_dynres</a></div><div class="ttdeci">static void remmina_connection_holder_toolbar_dynres(GtkWidget *widget, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l01414">remmina_connection_window.c:1414</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a63c87d892406b77f16956a54b039ab1b"><div class="ttname"><a href="remmina__connection__window_8c.html#a63c87d892406b77f16956a54b039ab1b">remmina_connection_window_on_leave</a></div><div class="ttdeci">static gboolean remmina_connection_window_on_leave(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionHolder *cnnhld)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02270">remmina_connection_window.c:2270</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aad6660781f636788d5f05b3bac85d676"><div class="ttname"><a href="struct___remmina_pref.html#aad6660781f636788d5f05b3bac85d676">_RemminaPref::save_view_mode</a></div><div class="ttdeci">gboolean save_view_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00090">remmina_pref.h:90</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a96a58e29e8dbf2b5bdeb775cba46556eadc41dc23d32d8955a469953bee975631"><div class="ttname"><a href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eadc41dc23d32d8955a469953bee975631">REMMINA_TAB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00079">remmina_pref.h:79</a></div></div>
<div class="ttc" id="remmina__file_8h_html"><div class="ttname"><a href="remmina__file_8h.html">remmina_file.h</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a97ad6670df5c399df233f0a74f5c148f"><div class="ttname"><a href="struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f">_RemminaPref::fullscreen_toolbar_visibility</a></div><div class="ttdeci">gint fullscreen_toolbar_visibility</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00104">remmina_pref.h:104</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a1b58d7fa4bb5b76f17451bd665854d9d"><div class="ttname"><a href="remmina__connection__window_8c.html#a1b58d7fa4bb5b76f17451bd665854d9d">remmina_connection_window_init</a></div><div class="ttdeci">static void remmina_connection_window_init(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l02581">remmina_connection_window.c:2581</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_aaedb0044bf386cc1ecd815e29684ee64"><div class="ttname"><a href="remmina__connection__window_8c.html#aaedb0044bf386cc1ecd815e29684ee64">remmina_connection_window_set_delete_confirm_mode</a></div><div class="ttdeci">void remmina_connection_window_set_delete_confirm_mode(RemminaConnectionWindow *cnnwin, RemminaConnectionWindowOnDeleteConfirmMode mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03820">remmina_connection_window.c:3820</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_ab776b24a3b829a1d5dd7974cb8582c05"><div class="ttname"><a href="remmina__widget__pool_8c.html#ab776b24a3b829a1d5dd7974cb8582c05">remmina_widget_pool_find</a></div><div class="ttdeci">GtkWidget * remmina_widget_pool_find(GType type, const gchar *tag)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00064">remmina_widget_pool.c:64</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_ae67ca4d276339723c1ff87fc224eaccf"><div class="ttname"><a href="remmina__connection__window_8c.html#ae67ca4d276339723c1ff87fc224eaccf">remmina_connection_holder_create_fullscreen</a></div><div class="ttdeci">static void remmina_connection_holder_create_fullscreen(RemminaConnectionHolder *cnnhld, RemminaConnectionObject *cnnobj, gint view_mode)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l03288">remmina_connection_window.c:3288</a></div></div>
<div class="ttc" id="remmina__connection__window_8c_html_a571a93f113a0e732503308f5121cdbe5"><div class="ttname"><a href="remmina__connection__window_8c.html#a571a93f113a0e732503308f5121cdbe5">remmina_connection_window_class_init</a></div><div class="ttdeci">static void remmina_connection_window_class_init(RemminaConnectionWindowClass *klass)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__connection__window_8c_source.html#l00225">remmina_connection_window.c:225</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_a7b173271d93cbf421f16394d9116fe0.html">remmina</a></li><li class="navelem"><a class="el" href="dir_77551dfb79d2dc134bf6b6b50e985072.html">src</a></li><li class="navelem"><a class="el" href="remmina__connection__window_8c.html">remmina_connection_window.c</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>