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

rcw_8c_source.html « docs - gitlab.com/Remmina/remminadoc.gitlab.io.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 30b16c68aacc1daf3c0b24afb97b8a3d1152a409 (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
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
<!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: rcw.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="org.remmina.Remmina.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Remmina - The GTK+ Remote Desktop Client
   &#160;<span id="projectnumber">v1.4.2</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('rcw_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">rcw.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="rcw_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-2020 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;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo-xlib.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;gdk/gdk.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkkeysyms.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina_8h.html">remmina.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__main_8h.html">remmina_main.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="rcw_8h.html">rcw.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__file_8h.html">remmina_file.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__file__manager_8h.html">remmina_file_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__message__panel_8h.html">remmina_message_panel.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__ext__exec_8h.html">remmina_ext_exec.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__plugin__manager_8h.html">remmina_plugin_manager.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__pref_8h.html">remmina_pref.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__protocol__widget_8h.html">remmina_protocol_widget.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__public_8h.html">remmina_public.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__scrolled__viewport_8h.html">remmina_scrolled_viewport.h</a>&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__utils_8h.html">remmina_utils.h</a>&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</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="l00061"></a><span class="lineno">   61</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="l00062"></a><span class="lineno">   62</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="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_WAYLAND</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#endif</span></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;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#define DEBUG_KB_GRABBING 0</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</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="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#af657fd4825d16d8d003a8b42fbd0c715">   72</a></span>&#160;gchar *<a class="code" href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#a29701ae152ba15f6d8921f395174d2df">   73</a></span>&#160;<a class="code" href="struct___remmina_pref.html">RemminaPref</a> <a class="code" href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>;</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"><a class="line" href="rcw_8c.html#a21e0a6e416667f30c2b1599b8b24faec">   75</a></span>&#160;<a class="code" href="rcw_8c.html#a21e0a6e416667f30c2b1599b8b24faec">G_DEFINE_TYPE</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>, rcw, GTK_TYPE_WINDOW)</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;<span class="preprocessor">#define MOTION_TIME 100</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">/* default timeout used to hide the floating toolbar wen switching profile */</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#define TB_HIDE_TIME_TIME 1000</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#define FULL_SCREEN_TARGET_MONITOR_UNDEFINED -1</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="keyword">struct </span>_RemminaConnectionWindowPriv {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    GtkNotebook *                   notebook;</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;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    GtkWidget *                 floating_toolbar_label;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    gdouble                     floating_toolbar_opacity;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">/* Various delayed and timer event source ids */</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    guint                       acs_eventsourceid;  <span class="comment">// timeout</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    guint                       spf_eventsourceid;      <span class="comment">// idle</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    guint                       grab_retry_eventsourceid;   <span class="comment">// timeout</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    guint                       ftb_hide_eventsource;   <span class="comment">// timeout</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    guint                       tar_eventsource;    <span class="comment">// timeout</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    guint                       hidetb_eventsource; <span class="comment">// timeout</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    guint                       dwp_eventsourceid;  <span class="comment">// timeout</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    GtkWidget *                 toolbar;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    GtkWidget *                 grid;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="comment">/* Toolitems that need to be handled */</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    GtkToolItem *                   toolitem_autofit;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    GtkToolItem *                   toolitem_fullscreen;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    GtkToolItem *                   toolitem_switch_page;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    GtkToolItem *                   toolitem_dynres;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    GtkToolItem *                   toolitem_scale;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    GtkToolItem *                   toolitem_grab;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    GtkToolItem *                   toolitem_preferences;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    GtkToolItem *                   toolitem_tools;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    GtkToolItem *                   toolitem_duplicate;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    GtkToolItem *                   toolitem_screenshot;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    GtkWidget *                 fullscreen_option_button;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    GtkWidget *                 fullscreen_scaler_button;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    GtkWidget *                 scaler_option_button;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    GtkWidget *                 pin_button;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    gboolean                    pin_down;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    gboolean                    sticky;</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;    <span class="comment">/* Flag to turn off toolbar signal handling when toolbar is</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">     * reconfiguring, usually due to a tab switch */</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    gboolean                    toolbar_is_reconfiguring;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="comment">/* This is the current view mode, i.e. VIEWPORT_FULLSCREEN_MODE,</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">     * as saved on the &quot;viwemode&quot; profile preference file */</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    gint                        view_mode;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="comment">/* Status variables used when in fullscreen mode. Needed</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">     * to restore a fullscreen mode after coming from scrolled */</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    gint                        fss_view_mode;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="comment">/* Status variables used when in scrolled window mode. Needed</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment">     * to restore a scrolled window mode after coming from fullscreen */</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    gint                        ss_width, ss_height;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    gboolean                    ss_maximized;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    gboolean                    kbcaptured;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    gboolean                    pointer_captured;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    gboolean                    hostkey_activated;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    gboolean                    hostkey_used;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    gboolean                    pointer_entered;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <a class="code" href="rcw_8h.html#a2450dfe27d3ded59370ea879419f307f">RemminaConnectionWindowOnDeleteConfirmMode</a>  on_delete_confirm_mode;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;};</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html">  152</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="l00153"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">  153</a></span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *   <a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">  154</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="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#aea86c673d5c1600844e0d1642c856995">  156</a></span>&#160;    GtkWidget *         <a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">  157</a></span>&#160;    GtkWidget *         <a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">  158</a></span>&#160;    GtkWidget *         <a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">  160</a></span>&#160;    GtkWidget *         <a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">  162</a></span>&#160;    gboolean            <a class="code" href="struct___remmina_connection_object.html#a1f3920f6710917d6944491ae1d7b1250">plugin_can_scale</a>;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">  164</a></span>&#160;    gboolean            <a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">  165</a></span>&#160;    gboolean            <a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</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_object.html#a09f89d6c0e4e52905aba1dd093e5c7f2">  167</a></span>&#160;    gulong              <a class="code" href="struct___remmina_connection_object.html#a09f89d6c0e4e52905aba1dd093e5c7f2">deferred_open_size_allocate_handler</a>;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;} <a class="code" href="rcw_8c.html#a1cc1f656edfbe0d9c5483ac858b76517">RemminaConnectionObject</a>;</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;<span class="keyword">enum</span> {</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55baa9941863b5633ddecb019f793f2f7668">  172</a></span>&#160;    <a class="code" href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55baa9941863b5633ddecb019f793f2f7668">TOOLBARPLACE_SIGNAL</a>,</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba0c34d85df8279641afad9e3c9b3a54ce">  173</a></span>&#160;    <a class="code" href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;};</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"><a class="line" href="rcw_8c.html#a2ea4e41deacf11e9b9b71e7eac06869e">  176</a></span>&#160;<span class="keyword">static</span> guint <a class="code" href="rcw_8c.html#a2ea4e41deacf11e9b9b71e7eac06869e">rcw_signals</a>[<a class="code" href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a>] =</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;{ 0 };</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *<a class="code" href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0">rcw_create_scrolled</a>(gint width, gint height, gboolean maximize);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *<a class="code" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a>(GtkWindow *old, gint view_mode);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#acb1b2ab629603837e08f8d8de542316d">rcw_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="l00182"></a><span class="lineno">  182</span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#a1c40706e7ac542d396d2db99ba944dc6">rco_create_tab_page</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#a3928a83b083a55e3af1ed81da49b25eb">rco_create_tab_label</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#a2caca4bce3a8ec22a99ede169746af86">rcw_create_toolbar</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, gint mode);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#afc62938ff8bcaad6b743f50ecf36d292">rcw_place_toolbar</a>(GtkToolbar *toolbar, GtkGrid *grid, GtkWidget *sibling, <span class="keywordtype">int</span> toolbar_placement);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</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="l00190"></a><span class="lineno">  190</span>&#160;</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="rcw_8c.html#a73532ae8f8fa05711035bc3d4c82ac2a">rcw_ftb_drag_begin</a>(GtkWidget *widget, GdkDragContext *context, gpointer user_data);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="rcw_8c.html#a6515e726b5d3e4c0a9aefc3cf20f3d90">  194</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> GtkTargetEntry <a class="code" href="rcw_8c.html#a6515e726b5d3e4c0a9aefc3cf20f3d90">dnd_targets_ftb</a>[] =</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    {</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        (<span class="keywordtype">char</span> *)<span class="stringliteral">&quot;text/x-remmina-ftb&quot;</span>,</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        GTK_TARGET_SAME_APP | GTK_TARGET_OTHER_WIDGET,</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        0</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    },</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;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="rcw_8c.html#a7e71031254421ccb10e0c29699cc9523">  203</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> GtkTargetEntry <a class="code" href="rcw_8c.html#a7e71031254421ccb10e0c29699cc9523">dnd_targets_tb</a>[] =</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;{</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;        (<span class="keywordtype">char</span> *)<span class="stringliteral">&quot;text/x-remmina-tb&quot;</span>,</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        GTK_TARGET_SAME_APP,</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        0</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;};</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="rcw_8c.html#a36b924d7fb7ccb1418912ea4c47620a4">  212</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a36b924d7fb7ccb1418912ea4c47620a4">rcw_class_init</a>(<a class="code" href="struct___remmina_connection_window_class.html">RemminaConnectionWindowClass</a> *klass)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    GtkCssProvider *provider;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    provider = gtk_css_provider_new();</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;    <span class="comment">/* It’s important to remove padding, border and shadow from GtkViewport or</span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</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="l00220"></a><span class="lineno">  220</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="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 14, 0)</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    gtk_css_provider_load_from_data(provider,</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                    <span class="stringliteral">&quot;#remmina-cw-viewport, #remmina-cw-aspectframe {\n&quot;</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                    <span class="stringliteral">&quot;  padding:0;\n&quot;</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                    <span class="stringliteral">&quot;  border:0;\n&quot;</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                    <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                    <span class="stringliteral">&quot;GtkDrawingArea {\n&quot;</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                    <span class="stringliteral">&quot;GtkToolbar {\n&quot;</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                    <span class="stringliteral">&quot;  -GtkWidget-window-dragging: 0;\n&quot;</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                    <span class="stringliteral">&quot;#remmina-connection-window-fullscreen {\n&quot;</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                    <span class="stringliteral">&quot;  border-color: black;\n&quot;</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                    <span class="stringliteral">&quot;#remmina-small-button {\n&quot;</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                    <span class="stringliteral">&quot;  outline-offset: 0;\n&quot;</span></div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                    <span class="stringliteral">&quot;  outline-width: 0;\n&quot;</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                    <span class="stringliteral">&quot;  padding: 0;\n&quot;</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                    <span class="stringliteral">&quot;  border: 0;\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;#remmina-pin-button {\n&quot;</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                    <span class="stringliteral">&quot;  outline-offset: 0;\n&quot;</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                    <span class="stringliteral">&quot;  outline-width: 0;\n&quot;</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                    <span class="stringliteral">&quot;  padding: 2px;\n&quot;</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                    <span class="stringliteral">&quot;  border: 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-tab-page {\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-scrolled-container {\n&quot;</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;                    <span class="stringliteral">&quot;#remmina-scrolled-container.undershoot {\n&quot;</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                    <span class="stringliteral">&quot;  background: none;\n&quot;</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                    <span class="stringliteral">&quot;#remmina-tab-page {\n&quot;</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                    <span class="stringliteral">&quot;#ftbbox-upper {\n&quot;</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;                    <span class="stringliteral">&quot;  background-color: white;\n&quot;</span></div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                    <span class="stringliteral">&quot;  color: black;\n&quot;</span></div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                    <span class="stringliteral">&quot;  border-style: none solid solid solid;\n&quot;</span></div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                    <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;                    <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                    <span class="stringliteral">&quot;  padding: 0px;\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;#ftbbox-lower {\n&quot;</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;                    <span class="stringliteral">&quot;  background-color: white;\n&quot;</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                    <span class="stringliteral">&quot;  color: black;\n&quot;</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                    <span class="stringliteral">&quot;  border-style: solid solid none solid;\n&quot;</span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                    <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;                    <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                    <span class="stringliteral">&quot;  padding: 0px;\n&quot;</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                    <span class="stringliteral">&quot;#ftb-handle {\n&quot;</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                    <span class="stringliteral">&quot;.message_panel {\n&quot;</span></div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                    <span class="stringliteral">&quot;  border: 0px solid;\n&quot;</span></div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                    <span class="stringliteral">&quot;  padding: 20px 20px 20px 20px;\n&quot;</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                    <span class="stringliteral">&quot;.message_panel entry {\n&quot;</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                    <span class="stringliteral">&quot;  background-image: none;\n&quot;</span></div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                    <span class="stringliteral">&quot;  border-width: 4px;\n&quot;</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                    <span class="stringliteral">&quot;  border-radius: 8px;\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;.message_panel .title_label {\n&quot;</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                    <span class="stringliteral">&quot;  font-size: 2em; \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;                    , -1, NULL);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    gtk_css_provider_load_from_data(provider,</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                    <span class="stringliteral">&quot;#remmina-cw-viewport, #remmina-cw-aspectframe {\n&quot;</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                    <span class="stringliteral">&quot;  padding:0;\n&quot;</span></div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                    <span class="stringliteral">&quot;  border:0;\n&quot;</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                    <span class="stringliteral">&quot;  background-color: black;\n&quot;</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                    <span class="stringliteral">&quot;#remmina-cw-message-panel {\n&quot;</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                    <span class="stringliteral">&quot;GtkDrawingArea {\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;  border-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;}\n&quot;</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                    <span class="stringliteral">&quot;#remmina-scrolled-container.undershoot {\n&quot;</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;                    <span class="stringliteral">&quot;  background: none\n&quot;</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;                    <span class="stringliteral">&quot;#remmina-tab-page {\n&quot;</span></div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                    <span class="stringliteral">&quot;#ftbbox-upper {\n&quot;</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;                    <span class="stringliteral">&quot;  border-style: none solid solid solid;\n&quot;</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;                    <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;                    <span class="stringliteral">&quot;  border-radius: 4px;\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;}\n&quot;</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                    <span class="stringliteral">&quot;#ftbbox-lower {\n&quot;</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;                    <span class="stringliteral">&quot;  border-style: solid solid none solid;\n&quot;</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                    <span class="stringliteral">&quot;  border-width: 1px;\n&quot;</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;                    <span class="stringliteral">&quot;  border-radius: 4px;\n&quot;</span></div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;                    <span class="stringliteral">&quot;  padding: 0px;\n&quot;</span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;                    <span class="stringliteral">&quot;#ftb-handle {\n&quot;</span></div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;                    <span class="stringliteral">&quot;}\n&quot;</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;                    , -1, NULL);</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                          GTK_STYLE_PROVIDER(provider),</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;                          GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);</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;    g_object_unref(provider);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="comment">/* Define a signal used to notify all rcws of toolbar move */</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    rcw_signals[<a class="code" href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55baa9941863b5633ddecb019f793f2f7668">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="l00353"></a><span class="lineno">  353</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="l00354"></a><span class="lineno">  354</span>&#160;                            g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;}</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="rcw_8c.html#aaad3184fedef1eccd1f92d8ef43cca44">  357</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *<a class="code" href="rcw_8c.html#aaad3184fedef1eccd1f92d8ef43cca44">rcw_get_cnnobj_at_page</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, gint npage)</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;{</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    GtkWidget *po;</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;    <span class="keywordflow">if</span> (!cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook)</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    po = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook), npage);</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordflow">return</span> g_object_get_data(G_OBJECT(po), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;}</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"><a class="line" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">  367</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *<a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    gint np;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordflow">if</span> (cnnwin != NULL &amp;&amp; cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a> != NULL &amp;&amp; cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook != NULL) {</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        np = gtk_notebook_get_current_page(GTK_NOTEBOOK(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook));</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordflow">if</span> (np &lt; 0)</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;            <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="rcw_8c.html#aaad3184fedef1eccd1f92d8ef43cca44">rcw_get_cnnobj_at_page</a>(cnnwin, np);</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordflow">return</span> NULL;</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;}</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="rcw_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">  381</a></span>&#160;<span class="keyword">static</span> <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> <a class="code" href="rcw_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="l00382"></a><span class="lineno">  382</span>&#160;{</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    gboolean plugin_has_dynres, plugin_can_scale;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</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="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</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="l00390"></a><span class="lineno">  390</span>&#160;                                      <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</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">  392</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="l00393"></a><span class="lineno">  393</span>&#160;                                     <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="comment">/* Forbid scalemode REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES when not possible */</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordflow">if</span> ((!plugin_has_dynres) &amp;&amp; scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>)</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>;</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;    <span class="comment">/* Forbid scalemode REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED when not possible */</span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</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="l00401"></a><span class="lineno">  401</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="keywordflow">if</span> (scale_avail)</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        *scale_avail = plugin_can_scale;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="keywordflow">if</span> (dynres_avail)</div><div class="line"><a name="l00406"></a><span class="lineno">  406</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="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    <span class="keywordflow">return</span> scalemode;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;}</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="rcw_8c.html#a2690c97a972e458dea9f5c0566ea50b9">  411</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a2690c97a972e458dea9f5c0566ea50b9">rco_disconnect_current_page</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="comment">/* Disconnects the connection which is currently in view in the notebook */</span></div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#aa41324b7175c46bb42b978332db95d22">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="l00417"></a><span class="lineno">  417</span>&#160;}</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">  419</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;{</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    GdkDeviceManager *manager;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    GdkDevice *keyboard = NULL;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid) {</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        g_source_remove(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid);</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid = 0;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    }</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;    display = gtk_widget_get_display(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    seat = gdk_display_get_default_seat(display);</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="comment">// keyboard = gdk_seat_get_pointer(seat);</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    manager = gdk_display_get_device_manager(display);</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    keyboard = gdk_device_manager_get_client_pointer(manager);</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">#endif</span></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;    <span class="keywordflow">if</span> (!cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;kbcaptured &amp;&amp; !cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_captured)</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <span class="keywordflow">return</span>;</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;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: --- ungrabbing\n&quot;</span>);</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        <span class="comment">/* We can use gtk_seat_grab()/_ungrab() only after GTK 3.24 */</span></div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    gdk_seat_ungrab(seat);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keywordflow">if</span> (keyboard != NULL) {</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordflow">if</span> (gdk_device_get_source(keyboard) != GDK_SOURCE_KEYBOARD)</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;            keyboard = gdk_device_get_associated_device(keyboard);</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        gdk_device_ungrab(keyboard, GDK_CURRENT_TIME);</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;kbcaptured = FALSE;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_captured = FALSE;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;}</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"><a class="line" href="rcw_8c.html#a71284e0ce3acb9fce6d4ecf6fea1a3f5">  470</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a71284e0ce3acb9fce6d4ecf6fea1a3f5">rcw_keyboard_grab_retry</a>(gpointer user_data)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin = (<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)user_data;</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;    <a class="code" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a>(cnnwin);</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid = 0;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;}</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="rcw_8c.html#a177a2ece80374b29bc26595fff8bed42">  480</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a177a2ece80374b29bc26595fff8bed42">rcw_pointer_ungrab</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">if</span> (!cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_captured)</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        <span class="keywordflow">return</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;    display = gtk_widget_get_display(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    seat = gdk_display_get_default_seat(display);</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    gdk_seat_ungrab(seat);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">#endif</span></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"><a class="line" href="rcw_8c.html#ac3e012d5e499aebb8fcbef55f505f2f3">  494</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ac3e012d5e499aebb8fcbef55f505f2f3">rcw_pointer_grab</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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">  496</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    GdkGrabStatus ggs;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_captured) {</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: pointer_captured is true, it should not\n&quot;</span>);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    }</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    display = gtk_widget_get_display(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    seat = gdk_display_get_default_seat(display);</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    ggs = gdk_seat_grab(seat, gtk_widget_get_window(GTK_WIDGET(cnnwin)),</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;                GDK_SEAT_CAPABILITY_ALL_POINTING, TRUE, NULL, NULL, NULL, NULL);</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    <span class="keywordflow">if</span> (ggs != GDK_GRAB_SUCCESS) {</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;            printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: GRAB of POINTER failed. GdkGrabStatus: %d\n&quot;</span>, (<span class="keywordtype">int</span>)ggs);</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;        cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_captured = TRUE;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    }</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;}</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">  524</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;{</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    GdkDeviceManager *manager;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    GdkGrabStatus ggs;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    GdkDevice *keyboard = NULL;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;kbcaptured)</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        <span class="keywordflow">return</span>;</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;    display = gtk_widget_get_display(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    seat = gdk_display_get_default_seat(display);</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    keyboard = gdk_seat_get_pointer(seat);</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    manager = gdk_display_get_device_manager(display);</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    keyboard = gdk_device_manager_get_client_pointer(manager);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordflow">if</span> (keyboard != NULL) {</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        <span class="keywordflow">if</span> (gdk_device_get_source(keyboard) != GDK_SOURCE_KEYBOARD)</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;            keyboard = gdk_device_get_associated_device(keyboard);</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">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: profile asks for grabbing, let’s try.\n&quot;</span>);</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        <span class="comment">/* Up to GTK version 3.20 we can grab the keyboard with gdk_device_grab().</span></div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="comment">         * in GTK 3.20 gdk_seat_grab() should be used instead of gdk_device_grab().</span></div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="comment">         * There is a bug in GTK up to 3.22: When gdk_device_grab() fails</span></div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="comment">         * the widget is hidden:</span></div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;<span class="comment">         * https://gitlab.gnome.org/GNOME/gtk/commit/726ad5a5ae7c4f167e8dd454cd7c250821c400ab</span></div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="comment">         * The bugfix will be released with GTK 3.24.</span></div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;<span class="comment">         * Also please note that the newer gdk_seat_grab() is still calling gdk_device_grab().</span></div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<span class="comment">         * Warning: gdk_seat_grab() will call XGrabKeyboard() or XIGrabDevice()</span></div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="comment">         * which in turn will generate a core X input event FocusOut and FocusIn</span></div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="comment">         * but not Xinput2 events.</span></div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;<span class="comment">         * In some cases, GTK is unable to neutralize FocusIn and FocusOut core</span></div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="comment">         * events (ie: i3wm+Plasma with GDK_CORE_DEVICE_EVENTS=1 because detail=NotifyNonlinear</span></div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="comment">         * instead of detail=NotifyAncestor/detail=NotifyInferior)</span></div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="comment">         * Receiving a FocusOut event for Remmina at this time will cause an infinite loop.</span></div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="comment">         * Therefore is important for GTK to use Xinput2 insetead of core X events</span></div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<span class="comment">         * by unsetting GDK_CORE_DEVICE_EVENTS</span></div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 24, 0)</span></div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        ggs = gdk_seat_grab(seat, gtk_widget_get_window(GTK_WIDGET(cnnwin)),</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;                    GDK_SEAT_CAPABILITY_KEYBOARD, TRUE, NULL, NULL, NULL, NULL);</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;            ggs = gdk_device_grab(keyboard, gtk_widget_get_window(GTK_WIDGET(cnnwin)), GDK_OWNERSHIP_WINDOW,</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;                          TRUE, GDK_KEY_PRESS | GDK_KEY_RELEASE, NULL, GDK_CURRENT_TIME);</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        <span class="keywordflow">if</span> (ggs != GDK_GRAB_SUCCESS) {</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        printf(<span class="stringliteral">&quot;GRAB of keyboard failed.\n&quot;</span>);</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;            <span class="comment">/* Reschedule grabbing in half a second if not already done */</span></div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;            <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid == 0)</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;                cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid = g_timeout_add(500, (GSourceFunc)<a class="code" href="rcw_8c.html#a71284e0ce3acb9fce6d4ecf6fea1a3f5">rcw_keyboard_grab_retry</a>, cnnwin);</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;            printf(<span class="stringliteral">&quot;Keyboard grabbed\n&quot;</span>);</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;            <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid != 0) {</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;                g_source_remove(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid);</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;                cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grab_retry_eventsourceid = 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;            cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;kbcaptured = TRUE;</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">else</span> {</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(cnnwin);</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    }</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"><a class="line" href="rcw_8c.html#a6bd6b600564be75e95870a0375c0a4d3">  605</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a6bd6b600564be75e95870a0375c0a4d3">rcw_close_all_connections</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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">  607</span>&#160;    <a class="code" href="rcw_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="l00608"></a><span class="lineno">  608</span>&#160;    GtkNotebook *notebook = GTK_NOTEBOOK(priv-&gt;notebook);</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    GtkWidget *w;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    gint i, n;</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_WIDGET(notebook)) {</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        n = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="keywordflow">for</span> (i = n - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;            w = gtk_notebook_get_nth_page(notebook, i);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</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="l00618"></a><span class="lineno">  618</span>&#160;            <span class="comment">/* Do close the connection on this tab */</span></div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;            <a class="code" href="remmina__protocol__widget_8c.html#aa41324b7175c46bb42b978332db95d22">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="l00620"></a><span class="lineno">  620</span>&#160;        }</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;}</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="rcw_8h.html#adae469553aa0647d0df5d88b180e7cd7">  624</a></span>&#160;gboolean <a class="code" href="rcw_8c.html#adae469553aa0647d0df5d88b180e7cd7">rcw_delete</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <a class="code" href="rcw_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="l00628"></a><span class="lineno">  628</span>&#160;    GtkNotebook *notebook = GTK_NOTEBOOK(priv-&gt;notebook);</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    GtkWidget *dialog;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    gint i, n;</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">if</span> (!REMMINA_IS_CONNECTION_WINDOW(cnnwin))</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <span class="keywordflow">return</span> TRUE;</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">  635</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="rcw_8h.html#a2450dfe27d3ded59370ea879419f307fadd57127d30bc4755bf3a8323045922bc">RCW_ONDELETE_NOCONFIRM</a>) {</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        n = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;        <span class="keywordflow">if</span> (n &gt; 1) {</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;            dialog = gtk_message_dialog_new(GTK_WINDOW(cnnwin), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION,</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;                            GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;                            _(<span class="stringliteral">&quot;Are you sure you want to close %i active connections in the current window?&quot;</span>), n);</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;            i = gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;            gtk_widget_destroy(dialog);</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;            <span class="keywordflow">if</span> (i != GTK_RESPONSE_YES)</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;                <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;        }</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;    <a class="code" href="rcw_8c.html#a6bd6b600564be75e95870a0375c0a4d3">rcw_close_all_connections</a>(cnnwin);</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">return</span> TRUE;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;}</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="rcw_8c.html#a07802fc420dc07560fe937d29172573c">  652</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a07802fc420dc07560fe937d29172573c">rcw_delete_event</a>(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;{</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <a class="code" href="rcw_8c.html#adae469553aa0647d0df5d88b180e7cd7">rcw_delete</a>(RCW(widget));</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;}</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="rcw_8c.html#aa7de86386944c333dc9f4bf87f819f9c">  659</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aa7de86386944c333dc9f4bf87f819f9c">rcw_destroy</a>(GtkWidget *widget, gpointer data)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    <span class="keywordflow">if</span> (!REMMINA_IS_CONNECTION_WINDOW(widget))</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;        <span class="keywordflow">return</span>;</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;    cnnwin = (<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)widget;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</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;    <span class="keywordflow">if</span> (priv-&gt;kbcaptured)</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;        <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(cnnwin);</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;acs_eventsourceid) {</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        g_source_remove(priv-&gt;acs_eventsourceid);</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        priv-&gt;acs_eventsourceid = 0;</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;    <span class="keywordflow">if</span> (priv-&gt;spf_eventsourceid) {</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        g_source_remove(priv-&gt;spf_eventsourceid);</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        priv-&gt;spf_eventsourceid = 0;</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    }</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;grab_retry_eventsourceid) {</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        g_source_remove(priv-&gt;grab_retry_eventsourceid);</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        priv-&gt;grab_retry_eventsourceid = 0;</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    }</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;ftb_hide_eventsource) {</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;        g_source_remove(priv-&gt;ftb_hide_eventsource);</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;        priv-&gt;ftb_hide_eventsource = 0;</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;    <span class="keywordflow">if</span> (priv-&gt;tar_eventsource) {</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;        g_source_remove(priv-&gt;tar_eventsource);</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        priv-&gt;tar_eventsource = 0;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    }</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;hidetb_eventsource) {</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        g_source_remove(priv-&gt;hidetb_eventsource);</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        priv-&gt;hidetb_eventsource = 0;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    }</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;dwp_eventsourceid) {</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        g_source_remove(priv-&gt;dwp_eventsourceid);</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        priv-&gt;dwp_eventsourceid = 0;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    }</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    <span class="comment">/* There is no need to destroy priv-&gt;floating_toolbar_widget,</span></div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="comment">     * because it’s our child and will be destroyed automatically */</span></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;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a> = NULL;</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    g_free(priv);</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="rcw_8c.html#a60f9f738cfd988cfc7cc39997538e4e0">  710</a></span>&#160;gboolean <a class="code" href="rcw_8c.html#a60f9f738cfd988cfc7cc39997538e4e0">rcw_notify_widget_toolbar_placement</a>(GtkWidget *widget, gpointer data)</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;    GType rcwtype;</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    rcwtype = <a class="code" href="rcw_8h.html#a2e3ebdd3e3450d651445ab54a7113f8b">rcw_get_type</a>();</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    <span class="keywordflow">if</span> (G_TYPE_CHECK_INSTANCE_TYPE(widget, rcwtype)) {</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        g_signal_emit_by_name(G_OBJECT(widget), <span class="stringliteral">&quot;toolbar-place&quot;</span>);</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    }</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;}</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="rcw_8c.html#a14a8e53afac8e750b7839d74dc50c758">  722</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a14a8e53afac8e750b7839d74dc50c758">rcw_tb_drag_failed</a>(GtkWidget *widget, GdkDragContext *context,</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;                   GtkDragResult result, gpointer user_data)</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;{</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    cnnwin = (<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)user_data;</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</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;    <span class="keywordflow">if</span> (priv-&gt;toolbar)</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;        gtk_widget_show(GTK_WIDGET(priv-&gt;toolbar));</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;}</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"><a class="line" href="rcw_8c.html#a70d89903e3279a1650dc0684f26ed9c2">  739</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a70d89903e3279a1650dc0684f26ed9c2">rcw_tb_drag_drop</a>(GtkWidget *widget, GdkDragContext *context,</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;                 gint x, gint y, guint time, gpointer user_data)</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;{</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    gint new_toolbar_placement;</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</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;    cnnwin = (<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)user_data;</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</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_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    <span class="keywordflow">if</span> (wa.width * y &gt;= wa.height * x) {</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keywordflow">if</span> (wa.width * y &gt; wa.height * (wa.width - x))</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da95463ce23d03eb31b2bb61c29dab0076">TOOLBAR_PLACEMENT_BOTTOM</a>;</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a>;</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <span class="keywordflow">if</span> (wa.width * y &gt; wa.height * (wa.width - x))</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dadb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>;</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;            new_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da069738542d6980f9594299ab57221a7f">TOOLBAR_PLACEMENT_TOP</a>;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    }</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    gtk_drag_finish(context, TRUE, TRUE, time);</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;    <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="l00768"></a><span class="lineno">  768</span>&#160;        <span class="comment">/* Save new position */</span></div><div class="line"><a name="l00769"></a><span class="lineno">  769</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="l00770"></a><span class="lineno">  770</span>&#160;        <a class="code" href="remmina__pref_8c.html#ae17aaf37449083a4322b6748c8f3a39f">remmina_pref_save</a>();</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        <span class="comment">/* Signal all windows that the toolbar must be moved */</span></div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;        <a class="code" href="remmina__widget__pool_8c.html#a53fad3994b2550300cfd4fd8bb2a2b5b">remmina_widget_pool_foreach</a>(<a class="code" href="rcw_8c.html#a60f9f738cfd988cfc7cc39997538e4e0">rcw_notify_widget_toolbar_placement</a>, NULL);</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    }</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar)</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        gtk_widget_show(GTK_WIDGET(priv-&gt;toolbar));</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;}</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"><a class="line" href="rcw_8c.html#a0ca9e87bf2fc3855699f80315d72314b">  781</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0ca9e87bf2fc3855699f80315d72314b">rcw_tb_drag_begin</a>(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;{</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    cairo_surface_t *surface;</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    cairo_t *cr;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    <span class="keywordtype">double</span> dashes[] = { 10 };</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 16, 16);</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    cr = cairo_create(surface);</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    cairo_set_source_rgb(cr, 0.6, 0.6, 0.6);</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    cairo_set_line_width(cr, 4);</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    cairo_set_dash(cr, dashes, 1, 0);</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    cairo_rectangle(cr, 0, 0, 16, 16);</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    cairo_stroke(cr);</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    cairo_destroy(cr);</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    gtk_widget_hide(widget);</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    gtk_drag_set_icon_surface(context, surface);</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"><a class="line" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">  806</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <a class="code" href="rcw_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="l00810"></a><span class="lineno">  810</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin);</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    <span class="keywordflow">if</span> (!cnnobj) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    priv-&gt;floating_toolbar_opacity = (1.0 - TOOLBAR_OPACITY_MIN) / ((gdouble)TOOLBAR_OPACITY_LEVEL)</div><div class="line"><a name="l00816"></a><span class="lineno">  816</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="l00817"></a><span class="lineno">  817</span>&#160;                     + TOOLBAR_OPACITY_MIN;</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;floating_toolbar_widget)</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        gtk_widget_set_opacity(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), priv-&gt;floating_toolbar_opacity);</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;</div><div class="line"><a name="l00822"></a><span class="lineno"><a class="line" href="rcw_8c.html#a544a61088b93ffc31a79554c70d97dff">  822</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a544a61088b93ffc31a79554c70d97dff">rcw_floating_toolbar_make_invisible</a>(gpointer data)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = (<a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *)data;</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    gtk_widget_set_opacity(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), 0.0);</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    priv-&gt;ftb_hide_eventsource = 0;</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;}</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">  831</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, gboolean show)</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;{</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    <a class="code" href="rcw_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="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">if</span> (priv-&gt;floating_toolbar_widget == NULL)</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    <span class="keywordflow">if</span> (show || priv-&gt;pin_down) {</div><div class="line"><a name="l00840"></a><span class="lineno">  840</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="l00841"></a><span class="lineno">  841</span>&#160;        <a class="code" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a>(cnnwin);</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <span class="comment">/* Remove outstanding hide events, if not yet active */</span></div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;ftb_hide_eventsource) {</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;            g_source_remove(priv-&gt;ftb_hide_eventsource);</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;            priv-&gt;ftb_hide_eventsource = 0;</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;        }</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;        <span class="comment">/* If we are hiding and the toolbar must be made invisible, schedule</span></div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;<span class="comment">         * a later toolbar hide */</span></div><div class="line"><a name="l00850"></a><span class="lineno">  850</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#a4caf8d8f829279fba122163d961608a4af179642fefe2ae4787e2d593519010dc">FLOATING_TOOLBAR_VISIBILITY_INVISIBLE</a>)</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;            <span class="keywordflow">if</span> (priv-&gt;ftb_hide_eventsource == 0)</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;                priv-&gt;ftb_hide_eventsource = g_timeout_add(1000, <a class="code" href="rcw_8c.html#a544a61088b93ffc31a79554c70d97dff">rcw_floating_toolbar_make_invisible</a>, priv);</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    }</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    gtk_revealer_set_reveal_child(GTK_REVEALER(priv-&gt;revealer), show || priv-&gt;pin_down);</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">  857</span>&#160;</div><div class="line"><a name="l00858"></a><span class="lineno"><a class="line" href="rcw_8c.html#a8cb8bd7679116f409b29399a5d14c527">  858</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a8cb8bd7679116f409b29399a5d14c527">rco_get_desktop_size</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, gint *width, gint *height)</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;{</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00861"></a><span class="lineno">  861</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="l00862"></a><span class="lineno">  862</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno">  864</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="l00865"></a><span class="lineno">  865</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="l00866"></a><span class="lineno">  866</span>&#160;    <span class="keywordflow">if</span> (*width == 0) {</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;        <span class="comment">/* Before connecting we do not have real remote width/height,</span></div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;<span class="comment">         * so we ask profile values */</span></div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;        *width = <a class="code" href="remmina__protocol__widget_8c.html#ab4c6435ef92e34a94270069ce1861907">remmina_protocol_widget_get_profile_remote_width</a>(gp);</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;        *height = <a class="code" href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget_get_profile_remote_height</a>(gp);</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">  872</span>&#160;}</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"><a class="line" href="rcw_8c.html#ae0f54fdd4d7526ba4e110d04d7fb2844">  874</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ae0f54fdd4d7526ba4e110d04d7fb2844">rco_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="l00875"></a><span class="lineno">  875</span>&#160;{</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;    scalemode = <a class="code" href="rcw_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL);</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    gtk_scrolled_window_set_policy(scrolled_window,</div><div class="line"><a name="l00880"></a><span class="lineno">  880</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="l00881"></a><span class="lineno">  881</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="l00882"></a><span class="lineno">  882</span>&#160;}</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="rcw_8c.html#afcbac7a8924d543a58039037837710ba">  884</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#afcbac7a8924d543a58039037837710ba">rco_create_scrolled_container</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, <span class="keywordtype">int</span> view_mode)</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;{</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;    GtkWidget *scrolled_container;</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    <span class="keywordflow">if</span> (view_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>) {</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        scrolled_container = <a class="code" href="remmina__scrolled__viewport_8c.html#aadfe00c3960eab12d17bdb47495dd1ee">remmina_scrolled_viewport_new</a>();</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        scrolled_container = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;        <a class="code" href="rcw_8c.html#ae0f54fdd4d7526ba4e110d04d7fb2844">rco_set_scrolled_policy</a>(cnnobj, GTK_SCROLLED_WINDOW(scrolled_container));</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        gtk_container_set_border_width(GTK_CONTAINER(scrolled_container), 0);</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;        gtk_widget_set_can_focus(scrolled_container, FALSE);</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    }</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    gtk_widget_set_name(scrolled_container, <span class="stringliteral">&quot;remmina-scrolled-container&quot;</span>);</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    gtk_widget_show(scrolled_container);</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    <span class="keywordflow">return</span> scrolled_container;</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;}</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="rcw_8c.html#aa1044979d82ce73db51117de1262832f">  903</a></span>&#160;gboolean <a class="code" href="rcw_8c.html#aa1044979d82ce73db51117de1262832f">rcw_toolbar_autofit_restore</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;{</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    <a class="code" href="rcw_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="l00908"></a><span class="lineno">  908</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    gint dwidth, dheight;</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;    GtkAllocation nba, ca, ta;</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;tar_eventsource = 0;</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;    <span class="keywordflow">if</span> (priv-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;        <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span> FALSE;</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">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="l00920"></a><span class="lineno">  920</span>&#160;        <a class="code" href="rcw_8c.html#a8cb8bd7679116f409b29399a5d14c527">rco_get_desktop_size</a>(cnnobj, &amp;dwidth, &amp;dheight);</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        gtk_widget_get_allocation(GTK_WIDGET(priv-&gt;notebook), &amp;nba);</div><div class="line"><a name="l00922"></a><span class="lineno">  922</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="l00923"></a><span class="lineno">  923</span>&#160;        gtk_widget_get_allocation(priv-&gt;toolbar, &amp;ta);</div><div class="line"><a name="l00924"></a><span class="lineno">  924</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#a0944a4353780132eeab7b06e3e42291da4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a> ||</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a> == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dadb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>)</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;            gtk_window_resize(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), MAX(1, dwidth + ta.width + nba.width - ca.width),</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;                      MAX(1, dheight + nba.height - ca.height));</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;            gtk_window_resize(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), MAX(1, dwidth + nba.width - ca.width),</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;                      MAX(1, dheight + ta.height + nba.height - ca.height));</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;        gtk_container_check_resize(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    }</div><div class="line"><a name="l00933"></a><span class="lineno">  933</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="l00934"></a><span class="lineno">  934</span>&#160;        <a class="code" href="rcw_8c.html#ae0f54fdd4d7526ba4e110d04d7fb2844">rco_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="l00935"></a><span class="lineno">  935</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;}</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="rcw_8c.html#ab4b9810ed2b9ae62933b969c1d9acf3c">  939</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ab4b9810ed2b9ae62933b969c1d9acf3c">rcw_toolbar_autofit</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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">  944</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</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="l00949"></a><span class="lineno">  949</span>&#160;        <span class="keywordflow">if</span> ((gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(cnnwin))) &amp; GDK_WINDOW_STATE_MAXIMIZED) != 0)</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;            gtk_window_unmaximize(GTK_WINDOW(cnnwin));</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        <span class="comment">/* It’s tricky to make the toolbars disappear automatically, while keeping scrollable.</span></div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;<span class="comment">         * Please tell me if you know a better way to do this */</span></div><div class="line"><a name="l00954"></a><span class="lineno">  954</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, GTK_POLICY_NEVER);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;        cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;tar_eventsource = g_timeout_add(200, (GSourceFunc)<a class="code" href="rcw_8c.html#aa1044979d82ce73db51117de1262832f">rcw_toolbar_autofit_restore</a>, cnnwin);</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    }</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;}</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno"><a class="line" href="rcw_8h.html#aee06df544a91184cba1fe77c6991065a">  960</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aee06df544a91184cba1fe77c6991065a">rco_get_monitor_geometry</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, GdkRectangle *sz)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    <span class="comment">/* Fill sz with the monitor (or workarea) size and position</span></div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;<span class="comment">     * of the monitor (or workarea) where cnnobj-&gt;cnnwin is located */</span></div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    GdkRectangle monitor_geometry;</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    sz-&gt;x = sz-&gt;y = sz-&gt;width = sz-&gt;height = 0;</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    <span class="keywordflow">if</span> (!cnnobj)</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    <span class="keywordflow">if</span> (!gtk_widget_is_visible(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)))</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    GdkDisplay *display;</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    GdkMonitor *monitor;</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    display = gtk_widget_get_display(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    monitor = gdk_display_get_monitor_at_window(display, gtk_widget_get_window(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)));</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    GdkScreen *screen;</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    gint monitor;</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    screen = gtk_window_get_screen(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    monitor = gdk_screen_get_monitor_at_window(screen, gtk_widget_get_window(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)));</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    gdk_monitor_get_workarea(monitor, &amp;monitor_geometry);</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    <span class="comment">/* Under Wayland, GTK 3.22, all values returned by gdk_monitor_get_geometry()</span></div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;<span class="comment">     * and gdk_monitor_get_workarea() seem to have been divided by the</span></div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;<span class="comment">     * gdk scale factor, so we need to adjust the returned rect</span></div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;<span class="comment">     * undoing the division */</span></div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_WAYLAND</span></div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;    <span class="keywordflow">if</span> (GDK_IS_WAYLAND_DISPLAY(display)) {</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;        <span class="keywordtype">int</span> monitor_scale_factor = gdk_monitor_get_scale_factor(monitor);</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        monitor_geometry.width *= monitor_scale_factor;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;        monitor_geometry.height *= monitor_scale_factor;</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;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor">#elif gdk_screen_get_monitor_workarea</span></div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    gdk_screen_get_monitor_workarea(screen, monitor, &amp;monitor_geometry);</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    gdk_screen_get_monitor_geometry(screen, monitor, &amp;monitor_geometry);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    *sz = monitor_geometry;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;}</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34"> 1011</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;{</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    gboolean scroll_required = 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;    GdkRectangle monitor_geometry;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    gint rd_width, rd_height;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    gint bordersz;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    gint scalemode;</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;    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="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="comment">/* Get remote destkop size */</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    <a class="code" href="rcw_8c.html#a8cb8bd7679116f409b29399a5d14c527">rco_get_desktop_size</a>(cnnobj, &amp;rd_width, &amp;rd_height);</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;    <span class="comment">/* Get our monitor size */</span></div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;    <a class="code" href="rcw_8c.html#aee06df544a91184cba1fe77c6991065a">rco_get_monitor_geometry</a>(cnnobj, &amp;monitor_geometry);</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</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>)) &amp;&amp;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        (monitor_geometry.width &lt; rd_width || monitor_geometry.height &lt; rd_height) &amp;&amp;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        scalemode == <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>)</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        scroll_required = TRUE;</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">switch</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        gtk_window_resize(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), monitor_geometry.width, monitor_geometry.height);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</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="l01038"></a><span class="lineno"> 1038</span>&#160;                           (scroll_required ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER),</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;                           (scroll_required ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER));</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        bordersz = scroll_required ? SCROLL_BORDER_SIZE : 0;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        gtk_window_resize(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), monitor_geometry.width, monitor_geometry.height);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</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="l01046"></a><span class="lineno"> 1046</span>&#160;            <span class="comment">/* Put a border around Notebook content (RemminaScrolledViewpord), so we can</span></div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="comment">             * move the mouse over the border to scroll */</span></div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</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="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;        <span class="keywordflow">break</span>;</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;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</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#aac34dfe6c6b73b43a4656c9dce041034a86e471283504c1e470e4d0e7b8b5842f">UNDEFINED_MODE</a>) == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e471283504c1e470e4d0e7b8b5842f">UNDEFINED_MODE</a>) {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;            <span class="comment">/* ToDo: is this really needed ? When ? */</span></div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;            gtk_window_set_default_size(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>),</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;                            MIN(rd_width, monitor_geometry.width), MIN(rd_height, monitor_geometry.height));</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;            <span class="keywordflow">if</span> (rd_width &gt;= monitor_geometry.width || rd_height &gt;= monitor_geometry.height) {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;                gtk_window_maximize(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</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="l01060"></a><span class="lineno"> 1060</span>&#160;            } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;                <a class="code" href="rcw_8c.html#ab4b9810ed2b9ae62933b969c1d9acf3c">rcw_toolbar_autofit</a>(NULL, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</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="l01063"></a><span class="lineno"> 1063</span>&#160;            }</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</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="l01066"></a><span class="lineno"> 1066</span>&#160;                gtk_window_maximize(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;        }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    }</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;}</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div><div class="line"><a name="l01075"></a><span class="lineno"><a class="line" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701"> 1075</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_set_tooltip</a>(GtkWidget *item, <span class="keyword">const</span> gchar *tip, guint key1, guint key2)</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;{</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;    gchar *s1;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    gchar *s2;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</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="l01082"></a><span class="lineno"> 1082</span>&#160;        <span class="keywordflow">if</span> (key2)</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</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="l01084"></a><span class="lineno"> 1084</span>&#160;                         gdk_keyval_name(gdk_keyval_to_upper(key1)), gdk_keyval_name(gdk_keyval_to_upper(key2)));</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</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="l01086"></a><span class="lineno"> 1086</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="l01087"></a><span class="lineno"> 1087</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</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="l01089"></a><span class="lineno"> 1089</span>&#160;                         gdk_keyval_name(gdk_keyval_to_upper(key1)));</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;        s1 = NULL;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    }</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</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="l01094"></a><span class="lineno"> 1094</span>&#160;    gtk_widget_set_tooltip_text(item, s2);</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;    g_free(s2);</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    g_free(s1);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;}</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div><div class="line"><a name="l01099"></a><span class="lineno"><a class="line" href="rcw_8c.html#ab7dc553cbd2005feb77163cf79f48f6d"> 1099</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_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="l01100"></a><span class="lineno"> 1100</span>&#160;{</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;    gboolean scaledexpandedmode;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <span class="keywordtype">int</span> rdwidth, rdheight;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    gfloat aratio;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</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="l01108"></a><span class="lineno"> 1108</span>&#160;        <span class="comment">/* If we have a plugin that cannot scale,</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="comment">         * (i.e. SFTP plugin), then we expand proto */</span></div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</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="l01111"></a><span class="lineno"> 1111</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="l01112"></a><span class="lineno"> 1112</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;        <span class="comment">/* Plugin can scale */</span></div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;        scalemode = <a class="code" href="rcw_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL);</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</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="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;        <span class="comment">/* Check if we need aspectframe and create/destroy it accordingly */</span></div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</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="l01120"></a><span class="lineno"> 1120</span>&#160;            <span class="comment">/* We need an aspectframe as a parent of proto */</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</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="l01122"></a><span class="lineno"> 1122</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="l01123"></a><span class="lineno"> 1123</span>&#160;            aratio = (gfloat)rdwidth / (gfloat)rdheight;</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</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="l01125"></a><span class="lineno"> 1125</span>&#160;                <span class="comment">/* We need a new aspectframe */</span></div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</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="l01127"></a><span class="lineno"> 1127</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="l01128"></a><span class="lineno"> 1128</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="l01129"></a><span class="lineno"> 1129</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="l01130"></a><span class="lineno"> 1130</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="l01131"></a><span class="lineno"> 1131</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="l01132"></a><span class="lineno"> 1132</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="l01133"></a><span class="lineno"> 1133</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="l01134"></a><span class="lineno"> 1134</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="l01135"></a><span class="lineno"> 1135</span>&#160;                <span class="keywordflow">if</span> (cnnobj != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook != NULL)</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;                    <a class="code" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;            } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</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="l01139"></a><span class="lineno"> 1139</span>&#160;            }</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;            <span class="comment">/* We do not need an aspectframe as a parent of proto */</span></div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</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="l01143"></a><span class="lineno"> 1143</span>&#160;                <span class="comment">/* We must remove the old aspectframe reparenting proto to viewport */</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</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="l01145"></a><span class="lineno"> 1145</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="l01146"></a><span class="lineno"> 1146</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="l01147"></a><span class="lineno"> 1147</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="l01148"></a><span class="lineno"> 1148</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="l01149"></a><span class="lineno"> 1149</span>&#160;                cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a> = NULL;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</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="l01151"></a><span class="lineno"> 1151</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="l01152"></a><span class="lineno"> 1152</span>&#160;                <span class="keywordflow">if</span> (cnnobj != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> != NULL &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook != NULL)</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;                    <a class="code" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</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"> 1155</span>&#160;        }</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;        <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="l01158"></a><span class="lineno"> 1158</span>&#160;            <span class="comment">/* We have a plugin that can be scaled, and the scale button</span></div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="comment">             * has been pressed. Give it the correct WxH maintaining aspect</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="comment">             * ratio of remote destkop size */</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</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="l01162"></a><span class="lineno"> 1162</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="l01163"></a><span class="lineno"> 1163</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;            <span class="comment">/* Plugin can scale, but no scaling is active. Ensure that we have</span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="comment">             * aspectframe with a ratio of 1 */</span></div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</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="l01167"></a><span class="lineno"> 1167</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="l01168"></a><span class="lineno"> 1168</span>&#160;        }</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    }</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;}</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;</div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="rcw_8c.html#a5e70819cad41022a0070c8102dd6dd6f"> 1172</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a5e70819cad41022a0070c8102dd6dd6f">nb_set_current_page</a>(GtkNotebook *notebook, GtkWidget *page)</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;    gint np, i;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    np = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; np; i++) {</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;        <span class="keywordflow">if</span> (gtk_notebook_get_nth_page(notebook, i) == page) {</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;            gtk_notebook_set_current_page(notebook, i);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;        }</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    }</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;}</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div><div class="line"><a name="l01185"></a><span class="lineno"><a class="line" href="rcw_8c.html#ac21387fbd4b689472e4796467bd50a55"> 1185</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ac21387fbd4b689472e4796467bd50a55">nb_migrate_page_content</a>(GtkWidget *frompage, GtkWidget *topage)</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;{</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    <span class="comment">/* Migrate a single connection tab from a notebook to another one */</span></div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    GList *lst, *l;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *)g_object_get_data(G_OBJECT(frompage), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="comment">/* Reparent message panels */</span></div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    lst = gtk_container_get_children(GTK_CONTAINER(frompage));</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    <span class="keywordflow">for</span> (l = lst; l != NULL; l = l-&gt;next) {</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;        <span class="keywordflow">if</span> (REMMINA_IS_MESSAGE_PANEL(l-&gt;data)) {</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;            g_object_ref(l-&gt;data);</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;            gtk_container_remove(GTK_CONTAINER(frompage), GTK_WIDGET(l-&gt;data));</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;            gtk_container_add(GTK_CONTAINER(topage), GTK_WIDGET(l-&gt;data));</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;            g_object_unref(l-&gt;data);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;            gtk_box_reorder_child(GTK_BOX(topage), GTK_WIDGET(l-&gt;data), 0);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        }</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;    }</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    g_list_free(lst);</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    <span class="comment">/* Reparent the viewport (which is inside scrolled_container inside frompage */</span></div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</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="l01209"></a><span class="lineno"> 1209</span>&#160;    G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;}</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"><a class="line" href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76"> 1212</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76">rcw_migrate</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *from, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *to)</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;{</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    <span class="comment">/* Migrate a complete notebook from a window to another */</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    gchar *tag;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;    gint cp, np, i;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    GtkNotebook *from_notebook;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    GtkWidget *frompage, *newpage;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    <span class="comment">/* Migrate TAG */</span></div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    tag = g_strdup((gchar *)g_object_get_data(G_OBJECT(from), <span class="stringliteral">&quot;tag&quot;</span>));</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;    g_object_set_data_full(G_OBJECT(to), <span class="stringliteral">&quot;tag&quot;</span>, tag, (GDestroyNotify)g_free);</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <span class="comment">/* Migrate notebook content */</span></div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    from_notebook = from-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    <span class="keywordflow">if</span> (from_notebook &amp;&amp; GTK_IS_NOTEBOOK(from_notebook)) {</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;        cp = gtk_notebook_get_current_page(from_notebook);</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;        np = gtk_notebook_get_n_pages(from_notebook);</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;        <span class="comment">/* Create pages on dest notebook and migrate</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;<span class="comment">         * page content */</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; np; i++) {</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;            frompage = gtk_notebook_get_nth_page(from_notebook, i);</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;            cnnobj = g_object_get_data(G_OBJECT(frompage), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;            cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a> = <a class="code" href="rcw_8c.html#afcbac7a8924d543a58039037837710ba">rco_create_scrolled_container</a>(cnnobj, to-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;            newpage = <a class="code" href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</a>(to, cnnobj);</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;            <a class="code" href="rcw_8c.html#ac21387fbd4b689472e4796467bd50a55">nb_migrate_page_content</a>(frompage, newpage);</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"> 1240</span>&#160;        <span class="comment">/* Remove all the pages from source notebook */</span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;        <span class="keywordflow">for</span> (i = np - 1; i &gt;= 0; i--)</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;            gtk_notebook_remove_page(from_notebook, i);</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        gtk_notebook_set_current_page(to-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, cp);</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    }</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;}</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;</div><div class="line"><a name="l01247"></a><span class="lineno"><a class="line" href="rcw_8c.html#afec9666876babf3ae115fade7470915e"> 1247</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#afec9666876babf3ae115fade7470915e">rcw_switch_viewmode</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, <span class="keywordtype">int</span> newmode)</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;{</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;    GdkWindowState s;</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *newwin;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;    gint old_width, old_height;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    <span class="keywordtype">int</span> old_mode;</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    old_mode = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <span class="keywordflow">if</span> (old_mode == newmode)</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;    <span class="keywordflow">if</span> (newmode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a> || newmode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>) {</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;        <span class="keywordflow">if</span> (old_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;            <span class="comment">/* We are leaving SCROLLED_WINDOW_MODE, save W,H, and maximized</span></div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="comment">             * status before self destruction of cnnwin */</span></div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;            gtk_window_get_size(GTK_WINDOW(cnnwin), &amp;old_width, &amp;old_height);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;            s = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(cnnwin)));</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;        }</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;        newwin = <a class="code" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a>(GTK_WINDOW(cnnwin), cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;fss_view_mode);</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;        <a class="code" href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76">rcw_migrate</a>(cnnwin, newwin);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;        <span class="keywordflow">if</span> (old_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;            newwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_maximized = (s &amp; GDK_WINDOW_STATE_MAXIMIZED) ? TRUE : FALSE;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;            newwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_width = old_width;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;            newwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_height = old_height;</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;        }</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;        newwin = <a class="code" href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0">rcw_create_scrolled</a>(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_width, cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_height,</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;                         cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_maximized);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;        <a class="code" href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76">rcw_migrate</a>(cnnwin, newwin);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;        <span class="keywordflow">if</span> (old_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a> || old_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>)</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;            <span class="comment">/* We are leaving a FULLSCREEN mode, save some parameters</span></div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="comment">             * status before self destruction of cnnwin */</span></div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;            newwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;fss_view_mode = old_mode;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    }</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;    <span class="comment">/* Prevent unreleased hostkey from old window to be released here */</span></div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;    newwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;hostkey_used = TRUE;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;}</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="rcw_8c.html#a0cc69ded61b733b2d01a489f1c3c72d3"> 1287</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0cc69ded61b733b2d01a489f1c3c72d3">rcw_toolbar_fullscreen</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;        <span class="keywordflow">return</span>;</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;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    <span class="keywordflow">if</span> (gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;        <a class="code" href="rcw_8c.html#afec9666876babf3ae115fade7470915e">rcw_switch_viewmode</a>(cnnwin, cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;fss_view_mode);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;        <a class="code" href="rcw_8c.html#afec9666876babf3ae115fade7470915e">rcw_switch_viewmode</a>(cnnwin, <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;}</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"><a class="line" href="rcw_8c.html#a3463779f231df73defb8ff86f27ec9ef"> 1304</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a3463779f231df73defb8ff86f27ec9ef">rco_viewport_fullscreen_mode</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;{</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *newwin;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;fss_view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;    newwin = <a class="code" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a>(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>);</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    <a class="code" href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76">rcw_migrate</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, newwin);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;}</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;</div><div class="line"><a name="l01315"></a><span class="lineno"><a class="line" href="rcw_8c.html#a7b60c2cb02c4a893d8d2054f0bb53790"> 1315</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a7b60c2cb02c4a893d8d2054f0bb53790">rco_scrolled_fullscreen_mode</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;{</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *newwin;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(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;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;fss_view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;    newwin = <a class="code" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a>(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>);</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    <a class="code" href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76">rcw_migrate</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, newwin);</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;}</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"><a class="line" href="rcw_8c.html#a9ffed90419a36560bf0c4d213a853c28"> 1326</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a9ffed90419a36560bf0c4d213a853c28">rcw_fullscreen_option_popdown</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;{</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;    <a class="code" href="rcw_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="l01330"></a><span class="lineno"> 1330</span>&#160;</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;fullscreen_option_button), FALSE);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;}</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;</div><div class="line"><a name="l01336"></a><span class="lineno"><a class="line" href="rcw_8c.html#aaedf05f5ff4fadcb28346d1cfc4accab"> 1336</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aaedf05f5ff4fadcb28346d1cfc4accab">rcw_toolbar_fullscreen_option</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;{</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;    GtkWidget *menu;</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;    GtkWidget *menuitem;</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;    GSList *group;</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        <span class="keywordflow">return</span>;</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;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;sticky = TRUE;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</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="l01357"></a><span class="lineno"> 1357</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>)</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a3463779f231df73defb8ff86f27ec9ef">rco_viewport_fullscreen_mode</a>), cnnobj);</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    menuitem = gtk_radio_menu_item_new_with_label(group, _(<span class="stringliteral">&quot;Scrolled fullscreen&quot;</span>));</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>)</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a7b60c2cb02c4a893d8d2054f0bb53790">rco_scrolled_fullscreen_mode</a>), cnnobj);</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a9ffed90419a36560bf0c4d213a853c28">rcw_fullscreen_option_popdown</a>), cnnwin);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;                 GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, <a class="code" href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a>, cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolitem_fullscreen, 0,</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;               gtk_get_current_event_time());</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="preprocessor">#endif</span></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;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"><a class="line" href="rcw_8c.html#a45ecb24606954e4268f2f3c5d7e2e1e0"> 1383</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a45ecb24606954e4268f2f3c5d7e2e1e0">rcw_scaler_option_popdown</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;    <a class="code" href="rcw_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="l01387"></a><span class="lineno"> 1387</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv-&gt;scaler_option_button), FALSE);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;}</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"><a class="line" href="rcw_8c.html#ae747a0b62a922df1de61c62092757b19"> 1394</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ae747a0b62a922df1de61c62092757b19">rcw_scaler_expand</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;    cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin);</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;    <span class="keywordflow">if</span> (!cnnobj)</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</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="l01405"></a><span class="lineno"> 1405</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="l01406"></a><span class="lineno"> 1406</span>&#160;    <a class="code" href="rcw_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(cnnobj);</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"><a class="line" href="rcw_8c.html#abd0a6de10dd92a8a84f24b8e66da5767"> 1408</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#abd0a6de10dd92a8a84f24b8e66da5767">rcw_scaler_keep_aspect</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;{</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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;    <span class="keywordflow">if</span> (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;    cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin);</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;    <span class="keywordflow">if</span> (!cnnobj)</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</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="l01420"></a><span class="lineno"> 1420</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="l01421"></a><span class="lineno"> 1421</span>&#160;    <a class="code" href="rcw_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(cnnobj);</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;</div><div class="line"><a name="l01424"></a><span class="lineno"><a class="line" href="rcw_8c.html#a4cfb767a626e63e3003ddbe0a8fea8a1"> 1424</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a4cfb767a626e63e3003ddbe0a8fea8a1">rcw_toolbar_scaler_option</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;{</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;    GtkWidget *menu;</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;    GtkWidget *menuitem;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;    GSList *group;</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;    gboolean scaler_expand;</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;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</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="l01444"></a><span class="lineno"> 1444</span>&#160;</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;    menu = gtk_menu_new();</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"> 1449</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="l01450"></a><span class="lineno"> 1450</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;    <span class="keywordflow">if</span> (!scaler_expand)</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#abd0a6de10dd92a8a84f24b8e66da5767">rcw_scaler_keep_aspect</a>), cnnwin);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</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="l01458"></a><span class="lineno"> 1458</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;    <span class="keywordflow">if</span> (scaler_expand)</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;    g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ae747a0b62a922df1de61c62092757b19">rcw_scaler_expand</a>), cnnwin);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a45ecb24606954e4268f2f3c5d7e2e1e0">rcw_scaler_option_popdown</a>), cnnwin);</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;                 GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</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="l01471"></a><span class="lineno"> 1471</span>&#160;               gtk_get_current_event_time());</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;}</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;</div><div class="line"><a name="l01475"></a><span class="lineno"><a class="line" href="rcw_8c.html#acfe9306fecab6d93b5ab51571b69fc6a"> 1475</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#acfe9306fecab6d93b5ab51571b69fc6a">rco_switch_page_activate</a>(GtkMenuItem *menuitem, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;{</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;    gint page_num;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</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="l01482"></a><span class="lineno"> 1482</span>&#160;    gtk_notebook_set_current_page(GTK_NOTEBOOK(priv-&gt;notebook), page_num);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;}</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"><a class="line" href="rcw_8c.html#a03311f33ff921f943f6edbbc1867d1ec"> 1485</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a03311f33ff921f943f6edbbc1867d1ec">rcw_toolbar_switch_page_popdown</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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"> 1487</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;    <a class="code" href="rcw_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="l01489"></a><span class="lineno"> 1489</span>&#160;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_switch_page), FALSE);</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;}</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;</div><div class="line"><a name="l01496"></a><span class="lineno"><a class="line" href="rcw_8c.html#a7d26c5dd2d9e941486a7a9bfe0f81304"> 1496</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a7d26c5dd2d9e941486a7a9bfe0f81304">rcw_toolbar_switch_page</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;{</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;    TRACE_CALL(__func__);</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"> 1500</span>&#160;    <a class="code" href="rcw_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="l01501"></a><span class="lineno"> 1501</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    GtkWidget *menu;</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    GtkWidget *menuitem;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;    GtkWidget *image;</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;    gint i, n;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;    priv-&gt;sticky = TRUE;</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;    n = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook));</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;        cnnobj = <a class="code" href="rcw_8c.html#aaad3184fedef1eccd1f92d8ef43cca44">rcw_get_cnnobj_at_page</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, i);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</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="l01524"></a><span class="lineno"> 1524</span>&#160;        gtk_widget_show(menuitem);</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</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="l01528"></a><span class="lineno"> 1528</span>&#160;        gtk_widget_show(image);</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</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;new-page-num&quot;</span>, GINT_TO_POINTER(i));</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;        g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;activate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#acfe9306fecab6d93b5ab51571b69fc6a">rco_switch_page_activate</a>), cnnobj);</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;        <span class="keywordflow">if</span> (i == gtk_notebook_get_current_page(GTK_NOTEBOOK(priv-&gt;notebook)))</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;            gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;    }</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;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a03311f33ff921f943f6edbbc1867d1ec">rcw_toolbar_switch_page_popdown</a>),</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;             cnnwin);</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;                 GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</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="l01544"></a><span class="lineno"> 1544</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;}</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;</div><div class="line"><a name="l01547"></a><span class="lineno"><a class="line" href="rcw_8c.html#a23692809213a6dfe683afe3d0dece3aa"> 1547</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a23692809213a6dfe683afe3d0dece3aa">rco_update_toolbar_autofit_button</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;{</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;    GtkToolItem *toolitem;</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> sc;</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;    toolitem = priv-&gt;toolitem_autofit;</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;    <span class="keywordflow">if</span> (toolitem) {</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;            gtk_widget_set_sensitive(GTK_WIDGET(toolitem), FALSE);</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;            sc = <a class="code" href="rcw_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, NULL, NULL);</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</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="l01561"></a><span class="lineno"> 1561</span>&#160;        }</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;    }</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;}</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;</div><div class="line"><a name="l01565"></a><span class="lineno"><a class="line" href="rcw_8c.html#a042a37c7e92f49443ddbdc6dc948b8b5"> 1565</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a042a37c7e92f49443ddbdc6dc948b8b5">rco_change_scalemode</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, gboolean bdyn, gboolean bscale)</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;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</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;    <span class="keywordflow">if</span> (bdyn)</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dea4d22c6eed721b661d618098159a20946">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES</a>;</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bscale)</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7deac7786e2cea7d9bf95026069ed774ea20">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_SCALED</a>;</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;        scalemode = <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7dead50ff64ad1e14caf78956850f03871bd">REMMINA_PROTOCOL_WIDGET_SCALE_MODE_NONE</a>;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</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="l01578"></a><span class="lineno"> 1578</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="l01579"></a><span class="lineno"> 1579</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="l01580"></a><span class="lineno"> 1580</span>&#160;    <a class="code" href="rcw_8c.html#a23692809213a6dfe683afe3d0dece3aa">rco_update_toolbar_autofit_button</a>(cnnobj);</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</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="l01583"></a><span class="lineno"> 1583</span>&#160;                             <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>, 0);</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;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>)</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;        <a class="code" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a>(cnnobj);</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</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="l01588"></a><span class="lineno"> 1588</span>&#160;        <a class="code" href="rcw_8c.html#ae0f54fdd4d7526ba4e110d04d7fb2844">rco_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="l01589"></a><span class="lineno"> 1589</span>&#160;}</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01591"></a><span class="lineno"><a class="line" href="rcw_8c.html#a1af82a0b7f5fd27477d6f4c55ed0898b"> 1591</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a1af82a0b7f5fd27477d6f4c55ed0898b">rcw_toolbar_dynres</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;{</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;    gboolean bdyn, bscale;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</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="l01602"></a><span class="lineno"> 1602</span>&#160;        bdyn = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;        bscale = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolitem_scale));</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;        <span class="keywordflow">if</span> (bdyn &amp;&amp; bscale) {</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;            gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolitem_scale), FALSE);</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;            bscale = FALSE;</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;        }</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;        <a class="code" href="rcw_8c.html#a042a37c7e92f49443ddbdc6dc948b8b5">rco_change_scalemode</a>(cnnobj, bdyn, bscale);</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;</div><div class="line"><a name="l01615"></a><span class="lineno"><a class="line" href="rcw_8c.html#a1647e25501f5ee2852dfd27a10e0d8c8"> 1615</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a1647e25501f5ee2852dfd27a10e0d8c8">rcw_toolbar_scaled_mode</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;    gboolean bdyn, bscale;</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</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;    bdyn = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolitem_dynres));</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;    bscale = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));</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;    <span class="keywordflow">if</span> (bdyn &amp;&amp; bscale) {</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolitem_dynres), FALSE);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;        bdyn = FALSE;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    }</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    <a class="code" href="rcw_8c.html#a042a37c7e92f49443ddbdc6dc948b8b5">rco_change_scalemode</a>(cnnobj, bdyn, bscale);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;}</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"><a class="line" href="rcw_8c.html#ab4b422fe9972866b74db8b763f8cb42e"> 1636</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ab4b422fe9972866b74db8b763f8cb42e">rcw_toolbar_preferences_popdown</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;{</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</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;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;sticky = FALSE;</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolitem_preferences), FALSE);</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;}</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;</div><div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="rcw_8c.html#ae0243af9dbe4b388a39ea432c3e580e5"> 1651</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ae0243af9dbe4b388a39ea432c3e580e5">rcw_toolbar_tools_popdown</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    <a class="code" href="rcw_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="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> (priv-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;        <span class="keywordflow">return</span>;</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;    priv-&gt;sticky = FALSE;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_tools), FALSE);</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;}</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;</div><div class="line"><a name="l01665"></a><span class="lineno"><a class="line" href="rcw_8c.html#a3a531286fa321e0931475b5afc86ec49"> 1665</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a3a531286fa321e0931475b5afc86ec49">rco_call_protocol_feature_radio</a>(GtkMenuItem *menuitem, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;{</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;    <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    gpointer value;</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;    <span class="keywordflow">if</span> (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem))) {</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</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="l01673"></a><span class="lineno"> 1673</span>&#160;        value = g_object_get_data(G_OBJECT(menuitem), <span class="stringliteral">&quot;feature-value&quot;</span>);</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;        <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;<a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a>, (<span class="keyword">const</span> gchar *)value);</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</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="l01677"></a><span class="lineno"> 1677</span>&#160;    }</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;}</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;</div><div class="line"><a name="l01680"></a><span class="lineno"><a class="line" href="rcw_8c.html#ae09c2a83e973c3041254fb57bd58666f"> 1680</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ae09c2a83e973c3041254fb57bd58666f">rco_call_protocol_feature_check</a>(GtkMenuItem *menuitem, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;{</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;    <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature;</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;    gboolean value;</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</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="l01687"></a><span class="lineno"> 1687</span>&#160;    value = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem));</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</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;<a class="code" href="struct___remmina_protocol_feature.html#aab44850c13a7e5e20a02603ae173d53d">opt2</a>, value);</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</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="l01690"></a><span class="lineno"> 1690</span>&#160;}</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;</div><div class="line"><a name="l01692"></a><span class="lineno"><a class="line" href="rcw_8c.html#a3cc04a8362110361d062a840b8ae5f64"> 1692</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a3cc04a8362110361d062a840b8ae5f64">rco_call_protocol_feature_activate</a>(GtkMenuItem *menuitem, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;{</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;    <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</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="l01698"></a><span class="lineno"> 1698</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="l01699"></a><span class="lineno"> 1699</span>&#160;}</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;</div><div class="line"><a name="l01701"></a><span class="lineno"><a class="line" href="rcw_8c.html#ad13167e478305c3fae8a4cea1d0e2f76"> 1701</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ad13167e478305c3fae8a4cea1d0e2f76">rcw_toolbar_preferences_radio</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile,</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</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="l01703"></a><span class="lineno"> 1703</span>&#160;{</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    GtkWidget *menuitem;</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;    GSList *group;</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;    gint i;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;    <span class="keyword">const</span> gchar **list;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;    <span class="keyword">const</span> gchar *value;</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;    group = NULL;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</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="l01713"></a><span class="lineno"> 1713</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="l01714"></a><span class="lineno"> 1714</span>&#160;    for (i = 0; list[i]; i += 2) {</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;        menuitem = gtk_radio_menu_item_new_with_label(group, g_dgettext(domain, list[i + 1]));</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;        group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(menuitem));</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;        gtk_widget_show(menuitem);</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;        <span class="keywordflow">if</span> (enabled) {</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</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="l01722"></a><span class="lineno"> 1722</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="l01723"></a><span class="lineno"> 1723</span>&#160;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;            <span class="keywordflow">if</span> (value &amp;&amp; g_strcmp0(list[i], value) == 0)</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;                gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;            g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;                     G_CALLBACK(<a class="code" href="rcw_8c.html#a3a531286fa321e0931475b5afc86ec49">rco_call_protocol_feature_radio</a>), cnnobj);</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;            gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;        }</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;}</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"><a class="line" href="rcw_8c.html#a366d1ea1fc39ddc72c384d07d47a25d9"> 1735</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a366d1ea1fc39ddc72c384d07d47a25d9">rcw_toolbar_preferences_check</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj,</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;                   GtkWidget *menu, <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_feature.html">RemminaProtocolFeature</a> *feature,</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;                   <span class="keyword">const</span> gchar *domain, gboolean enabled)</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;{</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    GtkWidget *menuitem;</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</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="l01743"></a><span class="lineno"> 1743</span>&#160;    gtk_widget_show(menuitem);</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;    <span class="keywordflow">if</span> (enabled) {</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</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="l01748"></a><span class="lineno"> 1748</span>&#160;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</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="keyword">const</span> gchar *)feature-&gt;opt2, FALSE));</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;        g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;toggled&quot;</span>,</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;                 G_CALLBACK(<a class="code" href="rcw_8c.html#ae09c2a83e973c3041254fb57bd58666f">rco_call_protocol_feature_check</a>), cnnobj);</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;        gtk_widget_set_sensitive(menuitem, FALSE);</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;}</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"><a class="line" href="rcw_8c.html#a4482a8c41ac6707436e8eb847867dc1a"> 1759</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a4482a8c41ac6707436e8eb847867dc1a">rcw_toolbar_preferences</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</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="l01765"></a><span class="lineno"> 1765</span>&#160;    GtkWidget *menu;</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    GtkWidget *menuitem;</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    gboolean separator;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;    gchar *domain;</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    gboolean enabled;</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;    priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;    priv-&gt;sticky = TRUE;</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;    separator = FALSE;</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;    domain = <a class="code" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">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="l01784"></a><span class="lineno"> 1784</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</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="l01786"></a><span class="lineno"> 1786</span>&#160;         feature++) {</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</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="l01788"></a><span class="lineno"> 1788</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;        <span class="keywordflow">if</span> (separator) {</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;            menuitem = gtk_separator_menu_item_new();</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;            gtk_widget_show(menuitem);</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;            gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;            separator = FALSE;</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;        }</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</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="l01797"></a><span class="lineno"> 1797</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="l01798"></a><span class="lineno"> 1798</span>&#160;        <span class="keywordflow">case</span> REMMINA_PROTOCOL_FEATURE_PREF_RADIO:</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;            <a class="code" href="rcw_8c.html#ad13167e478305c3fae8a4cea1d0e2f76">rcw_toolbar_preferences_radio</a>(cnnobj, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>, menu, feature,</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;                              domain, enabled);</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;            separator = TRUE;</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;        <span class="keywordflow">case</span> REMMINA_PROTOCOL_FEATURE_PREF_CHECK:</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;            <a class="code" href="rcw_8c.html#a366d1ea1fc39ddc72c384d07d47a25d9">rcw_toolbar_preferences_check</a>(cnnobj, menu, feature,</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;                              domain, enabled);</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;        }</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;    }</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;    g_free(domain);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ab4b422fe9972866b74db8b763f8cb42e">rcw_toolbar_preferences_popdown</a>), cnnwin);</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;                 GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</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="l01819"></a><span class="lineno"> 1819</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;}</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;</div><div class="line"><a name="l01822"></a><span class="lineno"><a class="line" href="rcw_8c.html#a7abfab8a6281126baaf5f443ff4adda1"> 1822</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a7abfab8a6281126baaf5f443ff4adda1">rcw_toolbar_tools</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;{</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</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="l01828"></a><span class="lineno"> 1828</span>&#160;    GtkWidget *menu;</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;    GtkWidget *menuitem = NULL;</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;    GtkMenu *submenu_keystrokes;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;    <span class="keyword">const</span> gchar *domain;</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;    gboolean enabled;</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;    gchar **keystrokes;</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;    gchar **keystroke_values;</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    gint i;</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;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;    priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</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"> 1842</span>&#160;    <span class="keywordflow">if</span> (!gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)))</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;    priv-&gt;sticky = TRUE;</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;    domain = <a class="code" href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">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="l01848"></a><span class="lineno"> 1848</span>&#160;    menu = gtk_menu_new();</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</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="l01850"></a><span class="lineno"> 1850</span>&#160;         feature++) {</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</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="l01852"></a><span class="lineno"> 1852</span>&#160;            <span class="keywordflow">continue</span>;</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;        <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="l01855"></a><span class="lineno"> 1855</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="l01856"></a><span class="lineno"> 1856</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="l01857"></a><span class="lineno"> 1857</span>&#160;            <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l01858"></a><span class="lineno"> 1858</span>&#160;        gtk_widget_show(menuitem);</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</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="l01862"></a><span class="lineno"> 1862</span>&#160;        <span class="keywordflow">if</span> (enabled) {</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</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="l01864"></a><span class="lineno"> 1864</span>&#160;</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;            g_signal_connect(G_OBJECT(menuitem), <span class="stringliteral">&quot;activate&quot;</span>,</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;                     G_CALLBACK(<a class="code" href="rcw_8c.html#a3cc04a8362110361d062a840b8ae5f64">rco_call_protocol_feature_activate</a>), cnnobj);</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;            gtk_widget_set_sensitive(menuitem, FALSE);</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;        }</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;    }</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;    g_signal_connect(G_OBJECT(menu), <span class="stringliteral">&quot;deactivate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ae0243af9dbe4b388a39ea432c3e580e5">rcw_toolbar_tools_popdown</a>), cnnwin);</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;    <span class="comment">/* If the plugin accepts keystrokes include the keystrokes menu */</span></div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</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="l01876"></a><span class="lineno"> 1876</span>&#160;        <span class="comment">/* Get the registered keystrokes list */</span></div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</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="l01878"></a><span class="lineno"> 1878</span>&#160;        <span class="keywordflow">if</span> (g_strv_length(keystrokes)) {</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;            <span class="comment">/* Add a keystrokes submenu */</span></div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;            menuitem = gtk_menu_item_new_with_label(_(<span class="stringliteral">&quot;Keystrokes&quot;</span>));</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;            submenu_keystrokes = GTK_MENU(gtk_menu_new());</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;            gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), GTK_WIDGET(submenu_keystrokes));</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;            gtk_widget_show(menuitem);</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;            gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;            <span class="comment">/* Add each registered keystroke */</span></div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;            <span class="keywordflow">for</span> (i = 0; i &lt; g_strv_length(keystrokes); i++) {</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;                keystroke_values = g_strsplit(keystrokes[i], STRING_DELIMITOR2, -1);</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;                <span class="keywordflow">if</span> (g_strv_length(keystroke_values) &gt; 1) {</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;                    <span class="comment">/* Add the keystroke if no description was available */</span></div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;                    menuitem = gtk_menu_item_new_with_label(</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;                        g_strdup(keystroke_values[strlen(keystroke_values[0]) ? 0 : 1]));</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</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="l01893"></a><span class="lineno"> 1893</span>&#160;                    g_signal_connect_swapped(G_OBJECT(menuitem), <span class="stringliteral">&quot;activate&quot;</span>,</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</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="l01895"></a><span class="lineno"> 1895</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="l01896"></a><span class="lineno"> 1896</span>&#160;                    gtk_widget_show(menuitem);</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;                    gtk_menu_shell_append(GTK_MENU_SHELL(submenu_keystrokes), menuitem);</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;                }</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;                g_strfreev(keystroke_values);</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;            }</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;        }</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;        g_strfreev(keystrokes);</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="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;    gtk_menu_popup_at_widget(GTK_MENU(menu), widget,</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;                 GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</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="l01909"></a><span class="lineno"> 1909</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;}</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div><div class="line"><a name="l01912"></a><span class="lineno"><a class="line" href="rcw_8c.html#ac973ca10137b1f285f45785f93966fd5"> 1912</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ac973ca10137b1f285f45785f93966fd5">rcw_toolbar_duplicate</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;{</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;    <span class="comment">//RemminaProtocolWidget *gp;</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;    <span class="comment">// We will duplicate the currently displayed RemminaProtocolWidget.</span></div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;    <span class="comment">//gp = REMMINA_PROTOCOL_WIDGET(cnnobj-&gt;proto);</span></div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;    <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a>, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>-&gt;filename);</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;}</div><div class="line"><a name="l01928"></a><span class="lineno"><a class="line" href="rcw_8c.html#a604971831f6ef8dd750ad6d29abb73a9"> 1928</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a604971831f6ef8dd750ad6d29abb73a9">rcw_toolbar_screenshot</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;{</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;    GdkPixbuf *screenshot;</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;    GdkWindow *active_window;</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;    cairo_t *cr;</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;    gint width, height;</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;    GString *pngstr;</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    gchar *pngname;</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;    GtkWidget *dialog;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;    <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp;</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;    <a class="code" href="struct___remmina_plugin_screenshot_data.html">RemminaPluginScreenshotData</a> rpsd;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;    cairo_surface_t *srcsurface;</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;    cairo_format_t cairo_format;</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;    cairo_surface_t *surface;</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;    <span class="keywordtype">int</span> stride;</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;    GDateTime *date = g_date_time_new_now_utc();</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;    <span class="comment">// We will take a screenshot of the currently displayed RemminaProtocolWidget.</span></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</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="l01955"></a><span class="lineno"> 1955</span>&#160;</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;    gchar *denyclip = <a class="code" href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref_get_value</a>(<span class="stringliteral">&quot;deny_screenshot_clipboard&quot;</span>);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;    g_debug (<span class="stringliteral">&quot;deny_screenshot_clipboard is set to %s&quot;</span>, denyclip);</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;    GtkClipboard *c = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;    <span class="comment">// Ask the plugin if it can give us a screenshot</span></div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</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="l01962"></a><span class="lineno"> 1962</span>&#160;        <span class="comment">// Good, we have a screenshot from the plugin !</span></div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;        <a class="code" href="remmina__log_8c.html#aa90e751e7bd5d477179188273c095d9a">remmina_debug</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="l01965"></a><span class="lineno"> 1965</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="l01966"></a><span class="lineno"> 1966</span>&#160;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;        width = rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#ab5d115d8f9fc675f2419d38cdd424ce6">width</a>;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;        height = rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#a9274a9d62e527ca25683af512505242e">height</a>;</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</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="l01971"></a><span class="lineno"> 1971</span>&#160;            cairo_format = CAIRO_FORMAT_ARGB32;</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</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="l01973"></a><span class="lineno"> 1973</span>&#160;            cairo_format = CAIRO_FORMAT_RGB24;</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;            cairo_format = CAIRO_FORMAT_RGB16_565;</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;        stride = cairo_format_stride_for_width(cairo_format, width);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</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="l01980"></a><span class="lineno"> 1980</span>&#160;        <span class="comment">// Transfer the PixBuf in the main clipboard selection</span></div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;        <span class="keywordflow">if</span> (denyclip &amp;&amp; (g_strcmp0 (denyclip, <span class="stringliteral">&quot;true&quot;</span>)))</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;            gtk_clipboard_set_image(c, gdk_pixbuf_get_from_surface(</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;                            srcsurface, 0, 0, width, height));</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;        surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, width, height);</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;        cr = cairo_create(surface);</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;        cairo_set_source_surface(cr, srcsurface, 0, 0);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;        cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;        cairo_paint(cr);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;        cairo_surface_destroy(srcsurface);</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;        free(rpsd.<a class="code" href="struct___remmina_plugin_screenshot_data.html#a757f692624e3e110eaa5bf0c05ac2a6c">buffer</a>);</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</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="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">/* Warn the user if image is distorted */</span></div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</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="l01997"></a><span class="lineno"> 1997</span>&#160;            <a class="code" href="rcw_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="l01998"></a><span class="lineno"> 1998</span>&#160;            dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;                            _(<span class="stringliteral">&quot;Turn off scaling to avoid screenshot distortion.&quot;</span>));</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</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="l02001"></a><span class="lineno"> 2001</span>&#160;            gtk_widget_show(dialog);</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;        }</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;        <span class="comment">// Get the screenshot.</span></div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;        active_window = gtk_widget_get_window(GTK_WIDGET(gp));</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;        <span class="comment">// width = gdk_window_get_width(gtk_widget_get_window(GTK_WIDGET(cnnobj-&gt;cnnwin)));</span></div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;        width = gdk_window_get_width(active_window);</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;        <span class="comment">// height = gdk_window_get_height(gtk_widget_get_window(GTK_WIDGET(cnnobj-&gt;cnnwin)));</span></div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;        height = gdk_window_get_height(active_window);</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        screenshot = gdk_pixbuf_get_from_window(active_window, 0, 0, width, height);</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        <span class="keywordflow">if</span> (screenshot == NULL)</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;            g_print(<span class="stringliteral">&quot;gdk_pixbuf_get_from_window failed\n&quot;</span>);</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;        <span class="comment">// Transfer the PixBuf in the main clipboard selection</span></div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;        <span class="keywordflow">if</span> (denyclip &amp;&amp; (g_strcmp0 (denyclip, <span class="stringliteral">&quot;true&quot;</span>)))</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;            gtk_clipboard_set_image(c, screenshot);</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;        <span class="comment">// Prepare the destination Cairo surface.</span></div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;        surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, width, height);</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;        cr = cairo_create(surface);</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;        <span class="comment">// Copy the source pixbuf to the surface and paint it.</span></div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;        gdk_cairo_set_source_pixbuf(cr, screenshot, 0, 0);</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;        cairo_paint(cr);</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;        <span class="comment">// Deallocate screenshot pixbuf</span></div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;        g_object_unref(screenshot);</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;    }</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;    <span class="comment">//home/antenore/Pictures/remmina_%p_%h_%Y  %m %d-%H%M%S.png pngname</span></div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;    <span class="comment">//home/antenore/Pictures/remmina_st_  _2018 9 24-151958.240374.png</span></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;    pngstr = g_string_new(g_strdup_printf(<span class="stringliteral">&quot;%s/%s.png&quot;</span>,</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;                          remmina_pref.<a class="code" href="struct___remmina_pref.html#a3df98a686c4e2703455c1a786d3f1f5c">screenshot_path</a>,</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;                          remmina_pref.<a class="code" href="struct___remmina_pref.html#ae2267a1de362addcee0c5801612dc5d6">screenshot_name</a>));</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%p&quot;</span>,</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</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="l02038"></a><span class="lineno"> 2038</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%h&quot;</span>,</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</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="l02040"></a><span class="lineno"> 2040</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%Y&quot;</span>,</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;                     g_strdup_printf(<span class="stringliteral">&quot;%d&quot;</span>, g_date_time_get_year(date)));</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%m&quot;</span>, g_strdup_printf(<span class="stringliteral">&quot;%d&quot;</span>,</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;                                       g_date_time_get_month(date)));</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%d&quot;</span>,</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;                     g_strdup_printf(<span class="stringliteral">&quot;%d&quot;</span>, g_date_time_get_day_of_month(date)));</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%H&quot;</span>,</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;                     g_strdup_printf(<span class="stringliteral">&quot;%d&quot;</span>, g_date_time_get_hour(date)));</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%M&quot;</span>,</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;                     g_strdup_printf(<span class="stringliteral">&quot;%d&quot;</span>, g_date_time_get_minute(date)));</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;    <a class="code" href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a>(pngstr, <span class="stringliteral">&quot;%S&quot;</span>,</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;                     g_strdup_printf(<span class="stringliteral">&quot;%f&quot;</span>, g_date_time_get_seconds(date)));</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;    g_date_time_unref(date);</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;    pngname = g_string_free(pngstr, FALSE);</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;    cairo_surface_write_to_png(surface, pngname);</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;    <span class="comment">/* send a desktop notification */</span></div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;    <span class="keywordflow">if</span> (g_file_test(pngname, G_FILE_TEST_EXISTS))</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</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="l02060"></a><span class="lineno"> 2060</span>&#160;</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;    <span class="comment">//Clean up and return.</span></div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;    cairo_destroy(cr);</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;    cairo_surface_destroy(surface);</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;}</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;</div><div class="line"><a name="l02066"></a><span class="lineno"><a class="line" href="rcw_8c.html#a51bb9efba28252cbf96da6797710c919"> 2066</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a51bb9efba28252cbf96da6797710c919">rcw_toolbar_minimize</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;{</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;    gtk_window_iconify(GTK_WINDOW(cnnwin));</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;}</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;</div><div class="line"><a name="l02077"></a><span class="lineno"><a class="line" href="rcw_8c.html#a0fbf6bfa4022b5f7b3286a68b0a3c446"> 2077</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0fbf6bfa4022b5f7b3286a68b0a3c446">rcw_toolbar_disconnect</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;{</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;    <a class="code" href="rcw_8c.html#a2690c97a972e458dea9f5c0566ea50b9">rco_disconnect_current_page</a>(cnnobj);</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;}</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"><a class="line" href="rcw_8c.html#aa6e4f2ac3249f0e5e537b65d0a7163d6"> 2087</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aa6e4f2ac3249f0e5e537b65d0a7163d6">rcw_toolbar_grab</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;{</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;    gboolean capture;</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar_is_reconfiguring)</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</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;    capture = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</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="l02099"></a><span class="lineno"> 2099</span>&#160;    <span class="keywordflow">if</span> (capture &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>) {</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: Grabbing for button\n&quot;</span>);</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;        <a class="code" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;        <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_entered) {</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;            <a class="code" href="rcw_8c.html#ac3e012d5e499aebb8fcbef55f505f2f3">rcw_pointer_grab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;        }</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;        <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;    }</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;}</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<span class="keyword">static</span> GtkWidget *</div><div class="line"><a name="l02113"></a><span class="lineno"><a class="line" href="rcw_8c.html#a2caca4bce3a8ec22a99ede169746af86"> 2113</a></span>&#160;<a class="code" href="rcw_8c.html#a2caca4bce3a8ec22a99ede169746af86">rcw_create_toolbar</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, gint mode)</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;{</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;    <a class="code" href="rcw_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="l02117"></a><span class="lineno"> 2117</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;    GtkWidget *toolbar;</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;    GtkToolItem *toolitem;</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;    GtkWidget *widget;</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;    GtkWidget *arrow;</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;    cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin);</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;    priv-&gt;toolbar_is_reconfiguring = TRUE;</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;    toolbar = gtk_toolbar_new();</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;    gtk_widget_show(toolbar);</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;    gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;    gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR);</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;    gtk_toolbar_set_show_arrow(GTK_TOOLBAR(toolbar), FALSE);</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;    <span class="comment">/* Auto-Fit */</span></div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;    toolitem = gtk_tool_button_new(NULL, NULL);</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-fit-window-symbolic&quot;</span>);</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l02137"></a><span class="lineno"> 2137</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#ae5c3a7fd35cc51f658dda67052440b47">shortcutkey_autofit</a>, 0);</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ab4b9810ed2b9ae62933b969c1d9acf3c">rcw_toolbar_autofit</a>), cnnwin);</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;    priv-&gt;toolitem_autofit = toolitem;</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;    <span class="comment">/* Fullscreen toggle */</span></div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-fullscreen-symbolic&quot;</span>);</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Toggle fullscreen mode&quot;</span>),</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a10b1f3d9b49687c09ec5dd98a0577d7f">shortcutkey_fullscreen</a>, 0);</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;    priv-&gt;toolitem_fullscreen = toolitem;</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a>) {</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(toolitem), FALSE);</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(toolitem), mode != <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;        g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a0cc69ded61b733b2d01a489f1c3c72d3">rcw_toolbar_fullscreen</a>), cnnwin);</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;    }</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;    <span class="comment">/* Fullscreen drop-down options */</span></div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;    toolitem = gtk_tool_item_new();</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;    widget = gtk_toggle_button_new();</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(widget), 0);</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;    gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NONE);</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</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="l02170"></a><span class="lineno"> 2170</span>&#160;        gtk_widget_set_name(widget, <span class="stringliteral">&quot;remmina-small-button&quot;</span>);</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(widget), FALSE);</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;    gtk_container_add(GTK_CONTAINER(toolitem), widget);</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;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 14, 0)</span></div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;    arrow = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;remmina-pan-down-symbolic&quot;</span>, GTK_ICON_SIZE_SMALL_TOOLBAR);</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;    arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;    gtk_widget_show(arrow);</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;    gtk_container_add(GTK_CONTAINER(widget), arrow);</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#aaedf05f5ff4fadcb28346d1cfc4accab">rcw_toolbar_fullscreen_option</a>), cnnwin);</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;    priv-&gt;fullscreen_option_button = widget;</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;    <span class="keywordflow">if</span> (mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>)</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE);</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;    <span class="comment">/* Switch tabs */</span></div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-switch-page-symbolic&quot;</span>);</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l02193"></a><span class="lineno"> 2193</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a712773f926eb2ec030d6af80cdc33095">shortcutkey_nexttab</a>);</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a7d26c5dd2d9e941486a7a9bfe0f81304">rcw_toolbar_switch_page</a>), cnnwin);</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;    priv-&gt;toolitem_switch_page = toolitem;</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;    toolitem = gtk_separator_tool_item_new();</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;    <span class="comment">/* Dynamic Resolution Update */</span></div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-dynres-symbolic&quot;</span>);</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Toggle dynamic resolution update&quot;</span>),</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a2cc56c093d45511af91c6b05c522c45a">shortcutkey_dynres</a>, 0);</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a1af82a0b7f5fd27477d6f4c55ed0898b">rcw_toolbar_dynres</a>), cnnwin);</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;    priv-&gt;toolitem_dynres = toolitem;</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;    <span class="comment">/* Scaler button */</span></div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-scale-symbolic&quot;</span>);</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l02217"></a><span class="lineno"> 2217</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a1647e25501f5ee2852dfd27a10e0d8c8">rcw_toolbar_scaled_mode</a>), cnnwin);</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;    priv-&gt;toolitem_scale = toolitem;</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;    <span class="comment">/* Scaler aspect ratio dropdown menu */</span></div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;    toolitem = gtk_tool_item_new();</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;    widget = gtk_toggle_button_new();</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(widget), 0);</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;    gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NONE);</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(widget), FALSE);</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</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="l02236"></a><span class="lineno"> 2236</span>&#160;        gtk_widget_set_name(widget, <span class="stringliteral">&quot;remmina-small-button&quot;</span>);</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;    gtk_container_add(GTK_CONTAINER(toolitem), widget);</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 14, 0)</span></div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;    arrow = gtk_image_new_from_icon_name(<span class="stringliteral">&quot;remmina-pan-down-symbolic&quot;</span>, GTK_ICON_SIZE_SMALL_TOOLBAR);</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;    arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);</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;    gtk_widget_show(arrow);</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;    gtk_container_add(GTK_CONTAINER(widget), arrow);</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;    g_signal_connect(G_OBJECT(widget), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a4cfb767a626e63e3003ddbe0a8fea8a1">rcw_toolbar_scaler_option</a>), cnnwin);</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;    priv-&gt;scaler_option_button = widget;</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;    <span class="comment">/* Grab keyboard button */</span></div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-keyboard-symbolic&quot;</span>);</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_set_tooltip</a>(GTK_WIDGET(toolitem), _(<span class="stringliteral">&quot;Grab all keyboard events&quot;</span>),</div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a363642437f5920c93fe35c07ef3601cc">shortcutkey_grab</a>, 0);</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#aa6e4f2ac3249f0e5e537b65d0a7163d6">rcw_toolbar_grab</a>), cnnwin);</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;    priv-&gt;toolitem_grab = toolitem;</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-preferences-system-symbolic&quot;</span>);</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;    gtk_tool_item_set_tooltip_text(toolitem, _(<span class="stringliteral">&quot;_Preferences&quot;</span>));</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a4482a8c41ac6707436e8eb847867dc1a">rcw_toolbar_preferences</a>), cnnwin);</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;    priv-&gt;toolitem_preferences = toolitem;</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;    toolitem = gtk_toggle_tool_button_new();</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-system-run-symbolic&quot;</span>);</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;    gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolitem), _(<span class="stringliteral">&quot;_Tools&quot;</span>));</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;    gtk_tool_item_set_tooltip_text(toolitem, _(<span class="stringliteral">&quot;Tools&quot;</span>));</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;toggled&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a7abfab8a6281126baaf5f443ff4adda1">rcw_toolbar_tools</a>), cnnwin);</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;    priv-&gt;toolitem_tools = toolitem;</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;    toolitem = gtk_separator_tool_item_new();</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;Duplicate connection&quot;</span>);</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-duplicate-symbolic&quot;</span>);</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;    gtk_tool_item_set_tooltip_text(toolitem, _(<span class="stringliteral">&quot;Duplicate current connection&quot;</span>));</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ac973ca10137b1f285f45785f93966fd5">rcw_toolbar_duplicate</a>), cnnwin);</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;    <span class="keywordflow">if</span> (!cnnobj)</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(toolitem), FALSE);</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;    priv-&gt;toolitem_duplicate = toolitem;</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;_Screenshot&quot;</span>);</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-camera-photo-symbolic&quot;</span>);</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l02293"></a><span class="lineno"> 2293</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a604971831f6ef8dd750ad6d29abb73a9">rcw_toolbar_screenshot</a>), cnnwin);</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;    priv-&gt;toolitem_screenshot = toolitem;</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;_Bottom&quot;</span>);</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-go-bottom-symbolic&quot;</span>);</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l02301"></a><span class="lineno"> 2301</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a51bb9efba28252cbf96da6797710c919">rcw_toolbar_minimize</a>), cnnwin);</div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a>)</div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(toolitem), FALSE);</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;    toolitem = gtk_tool_button_new(NULL, <span class="stringliteral">&quot;_Disconnect&quot;</span>);</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), <span class="stringliteral">&quot;remmina-disconnect-symbolic&quot;</span>);</div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;    <a class="code" href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_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="l02310"></a><span class="lineno"> 2310</span>&#160;    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);</div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;    gtk_widget_show(GTK_WIDGET(toolitem));</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;    g_signal_connect(G_OBJECT(toolitem), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a0fbf6bfa4022b5f7b3286a68b0a3c446">rcw_toolbar_disconnect</a>), cnnwin);</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;    priv-&gt;toolbar_is_reconfiguring = FALSE;</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;    <span class="keywordflow">return</span> toolbar;</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;</div><div class="line"><a name="l02318"></a><span class="lineno"><a class="line" href="rcw_8c.html#afc62938ff8bcaad6b743f50ecf36d292"> 2318</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#afc62938ff8bcaad6b743f50ecf36d292">rcw_place_toolbar</a>(GtkToolbar *toolbar, GtkGrid *grid, GtkWidget *sibling, <span class="keywordtype">int</span> toolbar_placement)</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;{</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;    <span class="comment">/* Place the toolbar inside the grid and set its orientation */</span></div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;    <span class="keywordflow">if</span> (toolbar_placement == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a> || toolbar_placement == <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dadb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>)</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;        gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_VERTICAL);</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;        gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_HORIZONTAL);</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;    <span class="keywordflow">switch</span> (toolbar_placement) {</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da069738542d6980f9594299ab57221a7f">TOOLBAR_PLACEMENT_TOP</a>:</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</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="l02333"></a><span class="lineno"> 2333</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dadb8aecbb1eda207dd5e18e665053ac27">TOOLBAR_PLACEMENT_RIGHT</a>:</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</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="l02338"></a><span class="lineno"> 2338</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da95463ce23d03eb31b2bb61c29dab0076">TOOLBAR_PLACEMENT_BOTTOM</a>:</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</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="l02343"></a><span class="lineno"> 2343</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da4f58be8cee9e890445909866d5b11eaf">TOOLBAR_PLACEMENT_LEFT</a>:</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;        gtk_widget_set_vexpand(GTK_WIDGET(toolbar), TRUE);</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;        gtk_widget_set_hexpand(GTK_WIDGET(toolbar), FALSE);</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</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="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;}</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"><a class="line" href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726"> 2352</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726">rco_update_toolbar</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;{</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;    GtkToolItem *toolitem;</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;    gboolean bval, dynres_avail, scale_avail;</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;    gboolean test_floating_toolbar;</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;    <a class="code" href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a> scalemode;</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;    priv-&gt;toolbar_is_reconfiguring = TRUE;</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;    <a class="code" href="rcw_8c.html#a23692809213a6dfe683afe3d0dece3aa">rco_update_toolbar_autofit_button</a>(cnnobj);</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;</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;    toolitem = priv-&gt;toolitem_switch_page;</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a>)</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;        bval = FALSE;</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;        bval = (gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook)) &gt; 1);</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), bval);</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a>-&gt;filename)</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_duplicate), TRUE);</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_duplicate), FALSE);</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;    scalemode = <a class="code" href="rcw_8c.html#abbc84b2c450f62c288ff827c5d2c5cd2">get_current_allowed_scale_mode</a>(cnnobj, &amp;dynres_avail, &amp;scale_avail);</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_dynres), dynres_avail &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_scale), scale_avail &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;    <span class="keywordflow">switch</span> (scalemode) {</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</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="l02384"></a><span class="lineno"> 2384</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), FALSE);</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), FALSE);</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), FALSE);</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</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="l02389"></a><span class="lineno"> 2389</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), FALSE);</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), TRUE);</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), TRUE &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</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="l02394"></a><span class="lineno"> 2394</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_dynres), TRUE);</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale), FALSE);</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;        gtk_widget_set_sensitive(GTK_WIDGET(priv-&gt;scaler_option_button), FALSE);</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;    }</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;    toolitem = priv-&gt;toolitem_grab;</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;    gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(toolitem),</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</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="l02404"></a><span class="lineno"> 2404</span>&#160;</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;    toolitem = priv-&gt;toolitem_preferences;</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</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="l02408"></a><span class="lineno"> 2408</span>&#160;                                 <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a26774624e955f451f7e4270c36622527">REMMINA_PROTOCOL_FEATURE_TYPE_PREF</a>);</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), bval &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;    toolitem = priv-&gt;toolitem_tools;</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</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="l02413"></a><span class="lineno"> 2413</span>&#160;                                 <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a>);</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;    gtk_widget_set_sensitive(GTK_WIDGET(toolitem), bval &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</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_set_sensitive(GTK_WIDGET(priv-&gt;toolitem_screenshot), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a>);</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;    gtk_window_set_title(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</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;name&quot;</span>));</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;    test_floating_toolbar = (priv-&gt;floating_toolbar_widget != NULL);</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;    <span class="keywordflow">if</span> (test_floating_toolbar)</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;        gtk_label_set_text(GTK_LABEL(priv-&gt;floating_toolbar_label),</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</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="l02424"></a><span class="lineno"> 2424</span>&#160;</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;    priv-&gt;toolbar_is_reconfiguring = FALSE;</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;}</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"><a class="line" href="rcw_8c.html#a23d848e45205a65618c84bb70b882b3f"> 2428</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a23d848e45205a65618c84bb70b882b3f">rcw_set_toolbar_visibility</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;    <a class="code" href="rcw_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="l02432"></a><span class="lineno"> 2432</span>&#160;</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</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="l02435"></a><span class="lineno"> 2435</span>&#160;            gtk_widget_hide(priv-&gt;toolbar);</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;            gtk_widget_show(priv-&gt;toolbar);</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;    }</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;}</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"><a class="line" href="rcw_8c.html#a961e539a6f6ccbe73a301869c6960ab6"> 2441</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a961e539a6f6ccbe73a301869c6960ab6">rcw_floating_toolbar_on_enter</a>(GtkWidget *widget, GdkEventCrossing *event,</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;                          <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;{</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, TRUE);</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;}</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;</div><div class="line"><a name="l02449"></a><span class="lineno"><a class="line" href="rcw_8c.html#a27f545a9630a481f4df747478cd227fb"> 2449</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a27f545a9630a481f4df747478cd227fb">rcw_on_leave_notify_event</a>(GtkWidget *widget, GdkEventCrossing *event,</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;                   gpointer user_data)</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;{</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;    <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>((<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>*)widget);</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;    <a class="code" href="rcw_8c.html#a177a2ece80374b29bc26595fff8bed42">rcw_pointer_ungrab</a>((<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a>*)widget);</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;}</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;</div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;</div><div class="line"><a name="l02460"></a><span class="lineno"><a class="line" href="rcw_8c.html#ad45e51f5a72b7ffe9bca86d336563757"> 2460</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#ad45e51f5a72b7ffe9bca86d336563757">rco_leave_protocol_widget</a>(GtkWidget *widget, GdkEventCrossing *event,</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;                   <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;{</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: leave detail=&quot;</span>);</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;    <span class="keywordflow">switch</span> (event-&gt;detail) {</div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</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="l02469"></a><span class="lineno"> 2469</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="l02470"></a><span class="lineno"> 2470</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="l02471"></a><span class="lineno"> 2471</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="l02472"></a><span class="lineno"> 2472</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="l02473"></a><span class="lineno"> 2473</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="l02474"></a><span class="lineno"> 2474</span>&#160;    <span class="keywordflow">default</span>: printf(<span class="stringliteral">&quot;unknown&quot;</span>);</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;    }</div><div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;    printf(<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: leave mode=&quot;</span>);</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;    <span class="keywordflow">switch</span> (event-&gt;mode) {</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_NORMAL: printf(<span class="stringliteral">&quot;GDK_CROSSING_NORMAL&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_GRAB: printf(<span class="stringliteral">&quot;GDK_CROSSING_GRAB&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_UNGRAB: printf(<span class="stringliteral">&quot;GDK_CROSSING_UNGRAB&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_GTK_GRAB: printf(<span class="stringliteral">&quot;GDK_CROSSING_GTK_GRAB&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_GTK_UNGRAB: printf(<span class="stringliteral">&quot;GDK_CROSSING_GTK_UNGRAB&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_STATE_CHANGED: printf(<span class="stringliteral">&quot;GDK_CROSSING_STATE_CHANGED&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_TOUCH_BEGIN: printf(<span class="stringliteral">&quot;GDK_CROSSING_TOUCH_BEGIN&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_TOUCH_END: printf(<span class="stringliteral">&quot;GDK_CROSSING_TOUCH_END&quot;</span>); <span class="keywordflow">break</span>;</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;    <span class="keywordflow">case</span> GDK_CROSSING_DEVICE_SWITCH: printf(<span class="stringliteral">&quot;GDK_CROSSING_DEVICE_SWITCH&quot;</span>); <span class="keywordflow">break</span>;</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;    <span class="keywordflow">default</span>: printf(<span class="stringliteral">&quot;unknown&quot;</span>);</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;    }</div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;    printf(<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_entered = FALSE;</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;    <span class="comment">/* Ungrab only if the leave is due to normal mouse motion */</span></div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;    <span class="keywordflow">if</span> (event-&gt;mode == GDK_CROSSING_NORMAL)</div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;        <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;</div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;}</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160;</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;</div><div class="line"><a name="l02506"></a><span class="lineno"><a class="line" href="rcw_8c.html#a0650f31e99dd15c719328345411deba0"> 2506</a></span>&#160;gboolean <a class="code" href="rcw_8c.html#a0650f31e99dd15c719328345411deba0">rco_enter_protocol_widget</a>(GtkWidget *widget, GdkEventCrossing *event,</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;                   <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;    gboolean active;</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;    printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: %s: enter event received\n&quot;</span>, __func__);</div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160;</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;    <span class="keywordflow">if</span> (!priv-&gt;sticky &amp;&amp; event-&gt;mode == GDK_CROSSING_NORMAL) {</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160;        <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, FALSE);</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;    }</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;    priv-&gt;pointer_entered = TRUE;</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;    <span class="comment">/* Check if we need pointer grabbing */</span></div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;    active = gtk_window_is_active(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</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) &amp;&amp; active) {</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;        <a class="code" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;        <a class="code" href="rcw_8c.html#ac3e012d5e499aebb8fcbef55f505f2f3">rcw_pointer_grab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;    }</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;}</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;</div><div class="line"><a name="l02533"></a><span class="lineno"><a class="line" href="rcw_8c.html#a8a789be4e849f79bf8064bc47ba85ea3"> 2533</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a8a789be4e849f79bf8064bc47ba85ea3">rcw_focus_in</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span>;</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="keywordflow">if</span> (cnnobj &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> &amp;&amp; <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="l02541"></a><span class="lineno"> 2541</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;        printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING: Received focus in and grabbing enabled, requesting kb grab\n&quot;</span>);</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;        <a class="code" href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;        <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pointer_entered) {</div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;<span class="preprocessor">#if DEBUG_KB_GRABBING</span></div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;            printf(<span class="stringliteral">&quot;DEBUG_KB_GRABBING:   requesting also pointer grab, because of pointer_entered\n&quot;</span>);</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;            <a class="code" href="rcw_8c.html#ac3e012d5e499aebb8fcbef55f505f2f3">rcw_pointer_grab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</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;    }</div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;}</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;</div><div class="line"><a name="l02554"></a><span class="lineno"><a class="line" href="rcw_8c.html#a010af24147287ef89f605e71ef315475"> 2554</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a010af24147287ef89f605e71ef315475">rcw_focus_out</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;{</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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;    <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(cnnwin);</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;hostkey_activated = FALSE;</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</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;    <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="l02565"></a><span class="lineno"> 2565</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="l02566"></a><span class="lineno"> 2566</span>&#160;</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a> &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>)</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</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="l02569"></a><span class="lineno"> 2569</span>&#160;                                 <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a0658dd6adcfaf5cb52d6d99c97c352d1">REMMINA_PROTOCOL_FEATURE_TYPE_UNFOCUS</a>, 0);</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;}</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160;</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160;<span class="keyword">static</span> gboolean</div><div class="line"><a name="l02573"></a><span class="lineno"><a class="line" href="rcw_8c.html#a423aaf9a4d3eed6dac67de5a8cc24a18"> 2573</a></span>&#160;<a class="code" href="rcw_8c.html#a423aaf9a4d3eed6dac67de5a8cc24a18">rcw_floating_toolbar_hide</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;{</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;    <a class="code" href="rcw_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="l02577"></a><span class="lineno"> 2577</span>&#160;    priv-&gt;hidetb_eventsource = 0;</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, FALSE);</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;    <span class="keywordflow">return</span> G_SOURCE_REMOVE;</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"> 2581</span>&#160;</div><div class="line"><a name="l02582"></a><span class="lineno"><a class="line" href="rcw_8c.html#a2f4b8ba7f51a4bf6e12a585177d55758"> 2582</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a2f4b8ba7f51a4bf6e12a585177d55758">rcw_floating_toolbar_on_scroll</a>(GtkWidget *widget, GdkEventScroll *event,</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160;                           <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;{</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;    <span class="keywordtype">int</span> opacity;</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;    cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin);</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;    <span class="keywordflow">if</span> (!cnnobj)</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;        <span class="keywordflow">return</span> TRUE;</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;    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="l02595"></a><span class="lineno"> 2595</span>&#160;    <span class="keywordflow">switch</span> (event-&gt;direction) {</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;    <span class="keywordflow">case</span> GDK_SCROLL_UP:</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;        <span class="keywordflow">if</span> (opacity &gt; 0) {</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</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="l02599"></a><span class="lineno"> 2599</span>&#160;            <a class="code" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a>(cnnwin);</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;        }</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;    <span class="keywordflow">case</span> GDK_SCROLL_DOWN:</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;        <span class="keywordflow">if</span> (opacity &lt; TOOLBAR_OPACITY_LEVEL) {</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</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="l02606"></a><span class="lineno"> 2606</span>&#160;            <a class="code" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a>(cnnwin);</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;        }</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;<span class="preprocessor">#ifdef GDK_SCROLL_SMOOTH</span></div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160;    <span class="keywordflow">case</span> GDK_SCROLL_SMOOTH:</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;        <span class="keywordflow">if</span> (event-&gt;delta_y &lt; 0 &amp;&amp; opacity &gt; 0) {</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</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="l02614"></a><span class="lineno"> 2614</span>&#160;            <a class="code" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a>(cnnwin);</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;        }</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</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="l02618"></a><span class="lineno"> 2618</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="l02619"></a><span class="lineno"> 2619</span>&#160;            <a class="code" href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a>(cnnwin);</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;        }</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;        <span class="keywordflow">break</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;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160;}</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;</div><div class="line"><a name="l02630"></a><span class="lineno"><a class="line" href="rcw_8c.html#a29df78f116c127e22a561beb4d8bae51"> 2630</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a29df78f116c127e22a561beb4d8bae51">rcw_after_configure_scrolled</a>(gpointer user_data)</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;{</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160;    gint width, height;</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;    GdkWindowState s;</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;    gint ipg, npages;</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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;    cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *)user_data;</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;    <span class="keywordflow">if</span> (!cnnobj || !cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160;    s = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)));</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;</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;    <span class="comment">/* Changed window_maximize, window_width and window_height for all</span></div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;<span class="comment">     * connections inside the notebook */</span></div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160;    npages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook));</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160;    <span class="keywordflow">for</span> (ipg = 0; ipg &lt; npages; ipg++) {</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160;        cnnobj = g_object_get_data(</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;            G_OBJECT(gtk_notebook_get_nth_page(GTK_NOTEBOOK(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook), ipg)),</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;            <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;        <span class="keywordflow">if</span> (s &amp; GDK_WINDOW_STATE_MAXIMIZED) {</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</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="l02655"></a><span class="lineno"> 2655</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;            gtk_window_get_size(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>), &amp;width, &amp;height);</div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</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="l02658"></a><span class="lineno"> 2658</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="l02659"></a><span class="lineno"> 2659</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="l02660"></a><span class="lineno"> 2660</span>&#160;        }</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;    }</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;acs_eventsourceid = 0;</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160;}</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160;</div><div class="line"><a name="l02666"></a><span class="lineno"><a class="line" href="rcw_8c.html#a1aa257faac7a8b75c12a286ad20ce823"> 2666</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a1aa257faac7a8b75c12a286ad20ce823">rcw_on_configure</a>(GtkWidget *widget, GdkEventConfigure *event,</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;                 gpointer data)</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160;{</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;    <span class="keywordflow">if</span> (!REMMINA_IS_CONNECTION_WINDOW(widget))</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;    cnnwin = (<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)widget;</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"> 2678</span>&#160;    <span class="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</span> FALSE;</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;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;acs_eventsourceid) {</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;        g_source_remove(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;acs_eventsourceid);</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;        cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;acs_eventsourceid = 0;</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;    }</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;    <span class="keywordflow">if</span> (gtk_widget_get_window(GTK_WIDGET(cnnwin))</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;        &amp;&amp; cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>)</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;        <span class="comment">/* Under Gnome shell we receive this configure_event BEFORE a window</span></div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;<span class="comment">         * is really unmaximized, so we must read its new state and dimensions</span></div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;<span class="comment">         * later, not now */</span></div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;        cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;acs_eventsourceid = g_timeout_add(500, <a class="code" href="rcw_8c.html#a29df78f116c127e22a561beb4d8bae51">rcw_after_configure_scrolled</a>, cnnobj);</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;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>)</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</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="l02694"></a><span class="lineno"> 2694</span>&#160;        <a class="code" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a>(cnnobj);</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;}</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"><a class="line" href="rcw_8c.html#a0e69db7ebd2d2998d34fbf6853ce2f27"> 2698</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0e69db7ebd2d2998d34fbf6853ce2f27">rcw_update_pin</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;    <span class="keywordflow">if</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pin_down)</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;        gtk_button_set_image(GTK_BUTTON(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pin_button),</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;                     gtk_image_new_from_icon_name(<span class="stringliteral">&quot;remmina-pin-down-symbolic&quot;</span>, GTK_ICON_SIZE_MENU));</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;        gtk_button_set_image(GTK_BUTTON(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pin_button),</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;                     gtk_image_new_from_icon_name(<span class="stringliteral">&quot;remmina-pin-up-symbolic&quot;</span>, GTK_ICON_SIZE_MENU));</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;</div><div class="line"><a name="l02709"></a><span class="lineno"><a class="line" href="rcw_8c.html#aba6a0bf71cc04aa6ac20920d4dd219d2"> 2709</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aba6a0bf71cc04aa6ac20920d4dd219d2">rcw_toolbar_pin</a>(GtkWidget *widget, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;{</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;    remmina_pref.<a class="code" href="struct___remmina_pref.html#a62b161b504422d53a766abb3444f8449">toolbar_pin_down</a> = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pin_down = !cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;pin_down;</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;    <a class="code" href="remmina__pref_8c.html#ae17aaf37449083a4322b6748c8f3a39f">remmina_pref_save</a>();</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;    <a class="code" href="rcw_8c.html#a0e69db7ebd2d2998d34fbf6853ce2f27">rcw_update_pin</a>(cnnwin);</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;}</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"><a class="line" href="rcw_8c.html#ad3c92ea50f889b1252614586d9f7a23e"> 2717</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ad3c92ea50f889b1252614586d9f7a23e">rcw_create_floating_toolbar</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, gint mode)</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;{</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;    TRACE_CALL(__func__);</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;    <a class="code" href="rcw_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="l02722"></a><span class="lineno"> 2722</span>&#160;    GtkWidget *ftb_widget;</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;    GtkWidget *vbox;</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;    GtkWidget *hbox;</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;    GtkWidget *label;</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;    GtkWidget *pinbutton;</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;    GtkWidget *tb;</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;</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;    <span class="comment">/* A widget to be used for GtkOverlay for GTK &gt;= 3.10 */</span></div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;    ftb_widget = gtk_event_box_new();</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;</div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;    vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160;    gtk_widget_show(vbox);</div><div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;</div><div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160;    gtk_container_add(GTK_CONTAINER(ftb_widget), vbox);</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;    tb = <a class="code" href="rcw_8c.html#a2caca4bce3a8ec22a99ede169746af86">rcw_create_toolbar</a>(cnnwin, mode);</div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160;    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);</div><div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160;    gtk_widget_show(hbox);</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;</div><div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;    <span class="comment">/* The pin button */</span></div><div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;    pinbutton = gtk_button_new();</div><div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;    gtk_widget_show(pinbutton);</div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), pinbutton, FALSE, FALSE, 0);</div><div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;    gtk_button_set_relief(GTK_BUTTON(pinbutton), GTK_RELIEF_NONE);</div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(pinbutton), FALSE);</div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(pinbutton), FALSE);</div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;    gtk_widget_set_name(pinbutton, <span class="stringliteral">&quot;remmina-pin-button&quot;</span>);</div><div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;    g_signal_connect(G_OBJECT(pinbutton), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#aba6a0bf71cc04aa6ac20920d4dd219d2">rcw_toolbar_pin</a>), cnnwin);</div><div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;    priv-&gt;pin_button = pinbutton;</div><div class="line"><a name="l02756"></a><span class="lineno"> 2756</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="l02757"></a><span class="lineno"> 2757</span>&#160;    <a class="code" href="rcw_8c.html#a0e69db7ebd2d2998d34fbf6853ce2f27">rcw_update_pin</a>(cnnwin);</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;</div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;    label = gtk_label_new(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;    gtk_label_set_max_width_chars(GTK_LABEL(label), 50);</div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160;    gtk_widget_show(label);</div><div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160;</div><div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);</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"> 2766</span>&#160;    priv-&gt;floating_toolbar_label = label;</div><div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;</div><div class="line"><a name="l02768"></a><span class="lineno"> 2768</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#a0ed680fdb405e7195d9f14032851eebba7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>) {</div><div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);</div><div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), tb, FALSE, FALSE, 0);</div><div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), tb, FALSE, FALSE, 0);</div><div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);</div><div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;    }</div><div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160;</div><div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;    priv-&gt;floating_toolbar_widget = ftb_widget;</div><div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;    gtk_widget_show(ftb_widget);</div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;}</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"><a class="line" href="rcw_8c.html#a366b8717c9906fdb1938659dc2ab1b03"> 2780</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a366b8717c9906fdb1938659dc2ab1b03">rcw_toolbar_place_signal</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, gpointer data)</div><div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160;{</div><div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160;</div><div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;    <span class="comment">/* Detach old toolbar widget and reattach in new position in the grid */</span></div><div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;toolbar &amp;&amp; priv-&gt;grid) {</div><div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;        g_object_ref(priv-&gt;toolbar);</div><div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160;        gtk_container_remove(GTK_CONTAINER(priv-&gt;grid), priv-&gt;toolbar);</div><div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160;        <a class="code" href="rcw_8c.html#afc62938ff8bcaad6b743f50ecf36d292">rcw_place_toolbar</a>(GTK_TOOLBAR(priv-&gt;toolbar), GTK_GRID(priv-&gt;grid), GTK_WIDGET(priv-&gt;notebook), remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a>);</div><div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;        g_object_unref(priv-&gt;toolbar);</div><div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;    }</div><div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;}</div><div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160;</div><div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;</div><div class="line"><a name="l02796"></a><span class="lineno"><a class="line" href="rcw_8c.html#a10c64d29db5f199eb4c86b0ae5a5a0bd"> 2796</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a10c64d29db5f199eb4c86b0ae5a5a0bd">rcw_init</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160;{</div><div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</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;    priv = g_new0(<a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a>, 1);</div><div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a> = priv;</div><div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;</div><div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;    priv-&gt;view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>;</div><div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a> &amp;&amp; <a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a> == TRUE)</div><div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;        priv-&gt;view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;</div><div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;    priv-&gt;floating_toolbar_opacity = 1.0;</div><div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;    priv-&gt;kbcaptured = FALSE;</div><div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160;    priv-&gt;pointer_captured = FALSE;</div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;    priv-&gt;pointer_entered = FALSE;</div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;    priv-&gt;fss_view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;    priv-&gt;ss_width = 640;</div><div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160;    priv-&gt;ss_height = 480;</div><div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;    priv-&gt;ss_maximized = FALSE;</div><div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;</div><div class="line"><a name="l02817"></a><span class="lineno"> 2817</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="l02818"></a><span class="lineno"> 2818</span>&#160;}</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"><a class="line" href="rcw_8c.html#aa9d246740106aae9643ab7edc32923f3"> 2820</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#aa9d246740106aae9643ab7edc32923f3">rcw_state_event</a>(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data)</div><div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160;{</div><div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160;</div><div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160;    <span class="keywordflow">if</span> (!REMMINA_IS_CONNECTION_WINDOW(widget))</div><div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160;</div><div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;    <span class="keywordflow">if</span> (event-&gt;changed_mask &amp; GDK_WINDOW_STATE_FOCUSED) {</div><div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;        <span class="keywordflow">if</span> (event-&gt;new_window_state &amp; GDK_WINDOW_STATE_FOCUSED)</div><div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;            <a class="code" href="rcw_8c.html#a8a789be4e849f79bf8064bc47ba85ea3">rcw_focus_in</a>((<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)widget);</div><div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;            <a class="code" href="rcw_8c.html#a010af24147287ef89f605e71ef315475">rcw_focus_out</a>((<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)widget);</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;</div><div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;}</div><div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;</div><div class="line"><a name="l02837"></a><span class="lineno"><a class="line" href="rcw_8c.html#a5f5a9e8173b3ce9831f1771089fe778a"> 2837</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a5f5a9e8173b3ce9831f1771089fe778a">rcw_map_event_fullscreen</a>(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;{</div><div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;    gint target_monitor;</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;    TRACE_CALL(__func__);</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"> 2843</span>&#160;    <span class="keywordflow">if</span> (!REMMINA_IS_CONNECTION_WINDOW(widget))</div><div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;</div><div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160;    target_monitor = GPOINTER_TO_INT(data);</div><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160;</div><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 18, 0)</span></div><div class="line"><a name="l02849"></a><span class="lineno"> 2849</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="l02850"></a><span class="lineno"> 2850</span>&#160;        <span class="keywordflow">if</span> (target_monitor == FULL_SCREEN_TARGET_MONITOR_UNDEFINED)</div><div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160;            gtk_window_fullscreen(GTK_WINDOW(widget));</div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160;            gtk_window_fullscreen_on_monitor(GTK_WINDOW(widget), gtk_window_get_screen(GTK_WINDOW(widget)),</div><div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;                             target_monitor);</div><div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;        <a class="code" href="remmina__log_8c.html#aa90e751e7bd5d477179188273c095d9a">remmina_debug</a>(<span class="stringliteral">&quot;Fullscreen managed by WM or by the user, as per settings&quot;</span>);</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160;        gtk_window_fullscreen(GTK_WINDOW(widget));</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160;    }</div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;    <a class="code" href="remmina__log_8c.html#aa90e751e7bd5d477179188273c095d9a">remmina_debug</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="l02861"></a><span class="lineno"> 2861</span>&#160;    gtk_window_fullscreen(GTK_WINDOW(widget));</div><div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;</div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;    <span class="keywordflow">return</span> FALSE;</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"> 2867</span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *</div><div class="line"><a name="l02868"></a><span class="lineno"><a class="line" href="rcw_8c.html#a3f9d79b58064438a513d47b4ff690b73"> 2868</a></span>&#160;<a class="code" href="rcw_8c.html#a3f9d79b58064438a513d47b4ff690b73">rcw_new</a>(gboolean fullscreen, <span class="keywordtype">int</span> full_screen_target_monitor)</div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;{</div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</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;    cnnwin = RCW(g_object_new(REMMINA_TYPE_CONNECTION_WINDOW, NULL));</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</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="rcw_8h.html#a2450dfe27d3ded59370ea879419f307fae2b5eff3ff03f3633e217a3c31b3b43b">RCW_ONDELETE_CONFIRM_IF_2_OR_MORE</a>;</div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160;</div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160;    <span class="keywordflow">if</span> (fullscreen)</div><div class="line"><a name="l02877"></a><span class="lineno"> 2877</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="l02878"></a><span class="lineno"> 2878</span>&#160;        g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;map-event&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a5f5a9e8173b3ce9831f1771089fe778a">rcw_map_event_fullscreen</a>), GINT_TO_POINTER(full_screen_target_monitor));</div><div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160;</div><div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(cnnwin), 0);</div><div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;toolbar-place&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a366b8717c9906fdb1938659dc2ab1b03">rcw_toolbar_place_signal</a>), NULL);</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;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;delete-event&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a07802fc420dc07560fe937d29172573c">rcw_delete_event</a>), NULL);</div><div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#aa7de86386944c333dc9f4bf87f819f9c">rcw_destroy</a>), NULL);</div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160;    <span class="comment">/* focus-in-event and focus-out-event don’t work when keyboard is grabbed</span></div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</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="l02888"></a><span class="lineno"> 2888</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;window-state-event&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#aa9d246740106aae9643ab7edc32923f3">rcw_state_event</a>), NULL);</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;</div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;leave-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a27f545a9630a481f4df747478cd227fb">rcw_on_leave_notify_event</a>), NULL);</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;</div><div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;    g_signal_connect(G_OBJECT(cnnwin), <span class="stringliteral">&quot;configure_event&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a1aa257faac7a8b75c12a286ad20ce823">rcw_on_configure</a>), NULL);</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">return</span> cnnwin;</div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;}</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;<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="l02899"></a><span class="lineno"> 2899</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="l02900"></a><span class="lineno"> 2900</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02901"></a><span class="lineno"><a class="line" href="rcw_8c.html#af8d1a8843f974fb8170d76f945a72080"> 2901</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#af8d1a8843f974fb8170d76f945a72080">rcw_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="l02902"></a><span class="lineno"> 2902</span>&#160;{</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160;    gchar *tag;</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;    <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="l02907"></a><span class="lineno"> 2907</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a18b9b9f60fb377c589ff11b5388fee33">REMMINA_TAB_BY_GROUP</a>:</div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</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="l02909"></a><span class="lineno"> 2909</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5aedb9eb53656e5315bf173ec9d0f5b558">REMMINA_TAB_BY_PROTOCOL</a>:</div><div class="line"><a name="l02911"></a><span class="lineno"> 2911</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="l02912"></a><span class="lineno"> 2912</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;        tag = NULL;</div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;    }</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</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="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"><a class="line" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3"> 2920</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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="keywordflow">if</span> (!(cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin))) <span class="keywordflow">return</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;    <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="l02928"></a><span class="lineno"> 2928</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="l02929"></a><span class="lineno"> 2929</span>&#160;}</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;</div><div class="line"><a name="l02931"></a><span class="lineno"><a class="line" href="rcw_8c.html#a756830638372adda00be33468c8d3ed2"> 2931</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#a756830638372adda00be33468c8d3ed2">nb_find_page_by_cnnobj</a>(GtkNotebook *notebook, <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;{</div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;    gint i, np;</div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;    GtkWidget *found_page, *pg;</div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;</div><div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;    <span class="keywordflow">if</span> (cnnobj == NULL || cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> == NULL || cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a> == NULL)</div><div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160;    found_page = NULL;</div><div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160;    np = gtk_notebook_get_n_pages(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook);</div><div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; np; i++) {</div><div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160;        pg = gtk_notebook_get_nth_page(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, i);</div><div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160;        <span class="keywordflow">if</span> (g_object_get_data(G_OBJECT(pg), <span class="stringliteral">&quot;cnnobj&quot;</span>) == cnnobj) {</div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;            found_page = pg;</div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160;        }</div><div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160;    }</div><div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;</div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160;    <span class="keywordflow">return</span> found_page;</div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;}</div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160;</div><div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160;</div><div class="line"><a name="l02952"></a><span class="lineno"><a class="line" href="rcw_8c.html#aaef82069514845b2987ac0659993cecd"> 2952</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aaef82069514845b2987ac0659993cecd">rco_closewin</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160;{</div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj = gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>;</div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160;    GtkWidget *page_to_remove;</div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;</div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;    <span class="keywordflow">if</span> (cnnobj &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>) {</div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;        page_to_remove = <a class="code" href="rcw_8c.html#a756830638372adda00be33468c8d3ed2">nb_find_page_by_cnnobj</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, cnnobj);</div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;        <span class="keywordflow">if</span> (page_to_remove) {</div><div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;            gtk_notebook_remove_page(</div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;                cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook,</div><div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160;                gtk_notebook_page_num(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, page_to_remove));</div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;        }</div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;    }</div><div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;    <span class="keywordflow">if</span> (cnnobj) {</div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a> = NULL;</div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;        g_free(cnnobj);</div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;    }</div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;</div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</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="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"><a class="line" href="rcw_8c.html#af4bcd597461ffa30d2975cbc6b071ce4"> 2974</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#af4bcd597461ffa30d2975cbc6b071ce4">rco_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="l02975"></a><span class="lineno"> 2975</span>&#160;{</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</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="l02978"></a><span class="lineno"> 2978</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>))</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;            <a class="code" href="remmina__protocol__widget_8c.html#aa41324b7175c46bb42b978332db95d22">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="l02980"></a><span class="lineno"> 2980</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;            <a class="code" href="rcw_8c.html#aaef82069514845b2987ac0659993cecd">rco_closewin</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</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;}</div><div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;</div><div class="line"><a name="l02985"></a><span class="lineno"><a class="line" href="rcw_8c.html#a3928a83b083a55e3af1ed81da49b25eb"> 2985</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#a3928a83b083a55e3af1ed81da49b25eb">rco_create_tab_label</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj)</div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160;{</div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;    GtkWidget *hbox;</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;    GtkWidget *widget;</div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;    GtkWidget *button;</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;</div><div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);</div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;    gtk_widget_show(hbox);</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</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="l02996"></a><span class="lineno"> 2996</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;</div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</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="l03000"></a><span class="lineno"> 3000</span>&#160;    gtk_widget_set_valign(widget, GTK_ALIGN_CENTER);</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160;    gtk_widget_set_halign(widget, GTK_ALIGN_CENTER);</div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160;    gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;</div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;    button = gtk_button_new();      <span class="comment">// The &quot;x&quot; to close the tab</span></div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);</div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;    gtk_widget_set_focus_on_click(GTK_WIDGET(widget), FALSE);</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;    gtk_button_set_focus_on_click(GTK_BUTTON(button), FALSE);</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;    gtk_widget_set_name(button, <span class="stringliteral">&quot;remmina-small-button&quot;</span>);</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;    gtk_widget_show(button);</div><div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160;</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</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="l03017"></a><span class="lineno"> 3017</span>&#160;    gtk_widget_show(widget);</div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160;    gtk_container_add(GTK_CONTAINER(button), widget);</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;    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;</div><div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;    g_signal_connect(G_OBJECT(button), <span class="stringliteral">&quot;clicked&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#af4bcd597461ffa30d2975cbc6b071ce4">rco_on_close_button_clicked</a>), cnnobj);</div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;</div><div class="line"><a name="l03024"></a><span class="lineno"> 3024</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="rcw_8c.html#a0650f31e99dd15c719328345411deba0">rco_enter_protocol_widget</a>), cnnobj);</div><div class="line"><a name="l03025"></a><span class="lineno"> 3025</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;leave-notify-event&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ad45e51f5a72b7ffe9bca86d336563757">rco_leave_protocol_widget</a>), cnnobj);</div><div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160;</div><div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160;    <span class="keywordflow">return</span> hbox;</div><div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160;}</div><div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160;</div><div class="line"><a name="l03030"></a><span class="lineno"><a class="line" href="rcw_8c.html#a1c40706e7ac542d396d2db99ba944dc6"> 3030</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#a1c40706e7ac542d396d2db99ba944dc6">rco_create_tab_page</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *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;    GtkWidget *page;</div><div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;</div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;    page = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160;    gtk_widget_set_name(page, <span class="stringliteral">&quot;remmina-tab-page&quot;</span>);</div><div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160;</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;    <span class="keywordflow">return</span> page;</div><div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;}</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"><a class="line" href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc"> 3041</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</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="l03042"></a><span class="lineno"> 3042</span>&#160;{</div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;    GtkWidget *page, *label;</div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160;    GtkNotebook *notebook;</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;    notebook = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook;</div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160;</div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160;    page = <a class="code" href="rcw_8c.html#a1c40706e7ac542d396d2db99ba944dc6">rco_create_tab_page</a>(cnnobj);</div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160;    g_object_set_data(G_OBJECT(page), <span class="stringliteral">&quot;cnnobj&quot;</span>, cnnobj);</div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;    label = <a class="code" href="rcw_8c.html#a3928a83b083a55e3af1ed81da49b25eb">rco_create_tab_label</a>(cnnobj);</div><div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;</div><div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> = cnnwin;</div><div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;</div><div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;    gtk_notebook_append_page(notebook, page, label);</div><div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160;    gtk_notebook_set_tab_reorderable(notebook, page, TRUE);</div><div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160;    gtk_notebook_set_tab_detachable(notebook, page, TRUE);</div><div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160;    <span class="comment">/* This trick prevents the tab label from being focused */</span></div><div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160;    gtk_widget_set_can_focus(gtk_widget_get_parent(label), FALSE);</div><div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;</div><div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;    <span class="keywordflow">if</span> (gtk_widget_get_parent(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>) != NULL)</div><div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;        printf(<span class="stringliteral">&quot;REMMINA WARNING in %s: scrolled_container already has a parent\n&quot;</span>, __func__);</div><div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;    gtk_box_pack_start(GTK_BOX(page), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>, TRUE, TRUE, 0);</div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;</div><div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160;    gtk_widget_show(page);</div><div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160;</div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160;    <span class="keywordflow">return</span> page;</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;</div><div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160;</div><div class="line"><a name="l03071"></a><span class="lineno"><a class="line" href="rcw_8c.html#a327f62be43b7f312982f9e22b86a2867"> 3071</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a327f62be43b7f312982f9e22b86a2867">rcw_update_notebook</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160;{</div><div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160;    GtkNotebook *notebook;</div><div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160;    gint n;</div><div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160;</div><div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160;    notebook = GTK_NOTEBOOK(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook);</div><div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160;</div><div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160;    <span class="keywordflow">switch</span> (cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode) {</div><div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160;        n = gtk_notebook_get_n_pages(notebook);</div><div class="line"><a name="l03082"></a><span class="lineno"> 3082</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="l03083"></a><span class="lineno"> 3083</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="l03084"></a><span class="lineno"> 3084</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160;        gtk_notebook_set_show_tabs(notebook, FALSE);</div><div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;        gtk_notebook_set_show_border(notebook, FALSE);</div><div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;    }</div><div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;}</div><div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160;</div><div class="line"><a name="l03092"></a><span class="lineno"><a class="line" href="rcw_8c.html#af99dc9a4135deff0a11c2d56877bad93"> 3092</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#af99dc9a4135deff0a11c2d56877bad93">rcw_on_switch_page_finalsel</a>(gpointer user_data)</div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160;{</div><div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</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> (!user_data)</div><div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;</div><div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160;    cnnobj = (<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *)user_data;</div><div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160;    <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)</div><div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160;        <span class="keywordflow">return</span> FALSE;</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;    priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160;</div><div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160;    <span class="keywordflow">if</span> (GTK_IS_WIDGET(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)) {</div><div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;        <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, TRUE);</div><div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;        <span class="keywordflow">if</span> (!priv-&gt;hidetb_eventsource)</div><div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;            priv-&gt;hidetb_eventsource = g_timeout_add(TB_HIDE_TIME_TIME, (GSourceFunc)</div><div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160;                               <a class="code" href="rcw_8c.html#a423aaf9a4d3eed6dac67de5a8cc24a18">rcw_floating_toolbar_hide</a>, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160;        <a class="code" href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726">rco_update_toolbar</a>(cnnobj);</div><div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160;        <a class="code" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>)</div><div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160;            <a class="code" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a>(cnnobj);</div><div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160;    }</div><div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160;    priv-&gt;spf_eventsourceid = 0;</div><div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160;}</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"><a class="line" href="rcw_8c.html#a8f8175377bfbda4794674e619ca0fa8b"> 3121</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a8f8175377bfbda4794674e619ca0fa8b">rcw_on_switch_page</a>(GtkNotebook *notebook, GtkWidget *newpage, guint page_num,</div><div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;                   <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;{</div><div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160;    <a class="code" href="rcw_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="l03126"></a><span class="lineno"> 3126</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj_newpage;</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;    cnnobj_newpage = g_object_get_data(G_OBJECT(newpage), <span class="stringliteral">&quot;cnnobj&quot;</span>);</div><div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160;    <span class="keywordflow">if</span> (priv-&gt;spf_eventsourceid)</div><div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160;        g_source_remove(priv-&gt;spf_eventsourceid);</div><div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160;    priv-&gt;spf_eventsourceid = g_idle_add(<a class="code" href="rcw_8c.html#af99dc9a4135deff0a11c2d56877bad93">rcw_on_switch_page_finalsel</a>, cnnobj_newpage);</div><div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160;}</div><div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160;</div><div class="line"><a name="l03134"></a><span class="lineno"><a class="line" href="rcw_8c.html#ad4d4fa75260167fe894750ecd01ee4e9"> 3134</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ad4d4fa75260167fe894750ecd01ee4e9">rcw_on_page_added</a>(GtkNotebook *notebook, GtkWidget *child, guint page_num,</div><div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>&#160;                  <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160;{</div><div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;    <span class="keywordflow">if</span> (gtk_notebook_get_n_pages(GTK_NOTEBOOK(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook)) &gt; 0)</div><div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160;        <a class="code" href="rcw_8c.html#a327f62be43b7f312982f9e22b86a2867">rcw_update_notebook</a>(cnnwin);</div><div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;}</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="rcw_8c.html#a0aef50fe641f959f5715ab7e01bfd23d"> 3141</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0aef50fe641f959f5715ab7e01bfd23d">rcw_on_page_removed</a>(GtkNotebook *notebook, GtkWidget *child, guint page_num,</div><div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>&#160;                <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l03143"></a><span class="lineno"> 3143</span>&#160;{</div><div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;</div><div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160;    <span class="keywordflow">if</span> (gtk_notebook_get_n_pages(GTK_NOTEBOOK(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook)) &lt;= 0)</div><div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;        gtk_widget_destroy(GTK_WIDGET(cnnwin));</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;</div><div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160;<span class="keyword">static</span> GtkNotebook *</div><div class="line"><a name="l03151"></a><span class="lineno"><a class="line" href="rcw_8c.html#a6d710132769d5f21989af6844c04b43f"> 3151</a></span>&#160;<a class="code" href="rcw_8c.html#a6d710132769d5f21989af6844c04b43f">rcw_on_notebook_create_window</a>(GtkNotebook *notebook, GtkWidget *page, gint x, gint y, gpointer data)</div><div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160;{</div><div class="line"><a name="l03153"></a><span class="lineno"> 3153</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="l03154"></a><span class="lineno"> 3154</span>&#160;<span class="comment">     * or in an existing window */</span></div><div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;</div><div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *srccnnwin;</div><div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *dstcnnwin;</div><div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;    GdkWindow *window;</div><div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;    gchar *srctag;</div><div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160;    gint width, height;</div><div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160;</div><div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;    GdkSeat *seat;</div><div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160;    GdkDeviceManager *manager;</div><div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;    GdkDevice *device = NULL;</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="preprocessor">#if GTK_CHECK_VERSION(3, 20, 0)</span></div><div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160;    seat = gdk_display_get_default_seat(gdk_display_get_default());</div><div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160;    device = gdk_seat_get_pointer(seat);</div><div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160;    manager = gdk_display_get_device_manager(gdk_display_get_default());</div><div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160;    device = gdk_device_manager_get_client_pointer(manager);</div><div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160;</div><div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160;    window = gdk_device_get_window_at_position(device, &amp;x, &amp;y);</div><div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160;    srccnnwin = RCW(gtk_widget_get_toplevel(GTK_WIDGET(notebook)));</div><div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160;    dstcnnwin = RCW(<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="l03182"></a><span class="lineno"> 3182</span>&#160;</div><div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160;    <span class="keywordflow">if</span> (srccnnwin == dstcnnwin)</div><div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160;</div><div class="line"><a name="l03186"></a><span class="lineno"> 3186</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="l03187"></a><span class="lineno"> 3187</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160;</div><div class="line"><a name="l03189"></a><span class="lineno"> 3189</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="l03190"></a><span class="lineno"> 3190</span>&#160;</div><div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160;    <span class="keywordflow">if</span> (!dstcnnwin) {</div><div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160;        <span class="comment">/* Drop is directed to a new rcw: create a new scrolled window to accommodate</span></div><div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160;<span class="comment">         * the dropped connectionand move our cnnobj there. Width and</span></div><div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160;<span class="comment">         * height of the new window are cloned from the current window */</span></div><div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160;        srctag = (gchar *)g_object_get_data(G_OBJECT(srccnnwin), <span class="stringliteral">&quot;tag&quot;</span>);</div><div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160;        gtk_window_get_size(GTK_WINDOW(srccnnwin), &amp;width, &amp;height);</div><div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;        dstcnnwin = <a class="code" href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0">rcw_create_scrolled</a>(width, height, FALSE);  <span class="comment">// New dropped window is never maximized</span></div><div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160;        g_object_set_data_full(G_OBJECT(dstcnnwin), <span class="stringliteral">&quot;tag&quot;</span>, g_strdup(srctag), (GDestroyNotify)g_free);</div><div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160;        <span class="comment">/* when returning, GTK will move the whole tab to the new notebook.</span></div><div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160;<span class="comment">         * Prepare cnnobj to be hosted in the new cnnwin */</span></div><div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> = dstcnnwin;</div><div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> = dstcnnwin;</div><div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;    }</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;    <a class="code" href="remmina__protocol__widget_8c.html#a5aaadd752a3275a0a8e0018a3dd669f8">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="l03207"></a><span class="lineno"> 3207</span>&#160;                         (<a class="code" href="remmina__protocol__widget_8h.html#ab89fba118812616a3e47504cfe4f3390">RemminaHostkeyFunc</a>)rcw_hostkey_func);</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;    <span class="keywordflow">return</span> GTK_NOTEBOOK(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook);</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;</div><div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160;<span class="keyword">static</span> GtkNotebook *</div><div class="line"><a name="l03213"></a><span class="lineno"><a class="line" href="rcw_8c.html#a1fce938658aee966b1ccffb4a0ab4cff"> 3213</a></span>&#160;<a class="code" href="rcw_8c.html#a1fce938658aee966b1ccffb4a0ab4cff">rcw_create_notebook</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160;    GtkNotebook *notebook;</div><div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160;</div><div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160;    notebook = GTK_NOTEBOOK(gtk_notebook_new());</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;    gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), TRUE);</div><div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160;    gtk_widget_show(GTK_WIDGET(notebook));</div><div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160;</div><div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;create-window&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a6d710132769d5f21989af6844c04b43f">rcw_on_notebook_create_window</a>), NULL);</div><div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;switch-page&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a8f8175377bfbda4794674e619ca0fa8b">rcw_on_switch_page</a>), cnnwin);</div><div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;page-added&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ad4d4fa75260167fe894750ecd01ee4e9">rcw_on_page_added</a>), cnnwin);</div><div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160;    g_signal_connect(G_OBJECT(notebook), <span class="stringliteral">&quot;page-removed&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a0aef50fe641f959f5715ab7e01bfd23d">rcw_on_page_removed</a>), cnnwin);</div><div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160;    gtk_widget_set_can_focus(GTK_WIDGET(notebook), FALSE);</div><div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160;</div><div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160;    <span class="keywordflow">return</span> notebook;</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;</div><div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160;<span class="comment">/* Create a scrolled toplevel window */</span></div><div class="line"><a name="l03233"></a><span class="lineno"><a class="line" href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0"> 3233</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *<a class="code" href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0">rcw_create_scrolled</a>(gint width, gint height, gboolean maximize)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</div><div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160;    GtkWidget *grid;</div><div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160;    GtkWidget *toolbar;</div><div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160;    GtkNotebook *notebook;</div><div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160;</div><div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160;    cnnwin = <a class="code" href="rcw_8c.html#a3f9d79b58064438a513d47b4ff690b73">rcw_new</a>(FALSE, 0);</div><div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160;    gtk_widget_realize(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160;</div><div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160;    gtk_window_set_default_size(GTK_WINDOW(cnnwin), width, height);</div><div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160;</div><div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160;    <span class="comment">/* Create the toolbar */</span></div><div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;    toolbar = <a class="code" href="rcw_8c.html#a2caca4bce3a8ec22a99ede169746af86">rcw_create_toolbar</a>(cnnwin, <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;</div><div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160;    <span class="comment">/* Create the notebook */</span></div><div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160;    notebook = <a class="code" href="rcw_8c.html#a1fce938658aee966b1ccffb4a0ab4cff">rcw_create_notebook</a>(cnnwin);</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="comment">/* Create the grid container for toolbars+notebook and populate it */</span></div><div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160;    grid = gtk_grid_new();</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"> 3256</span>&#160;    gtk_grid_attach(GTK_GRID(grid), GTK_WIDGET(notebook), 0, 0, 1, 1);</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;    gtk_widget_set_hexpand(GTK_WIDGET(notebook), TRUE);</div><div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160;    gtk_widget_set_vexpand(GTK_WIDGET(notebook), TRUE);</div><div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160;</div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;    <a class="code" href="rcw_8c.html#afc62938ff8bcaad6b743f50ecf36d292">rcw_place_toolbar</a>(GTK_TOOLBAR(toolbar), GTK_GRID(grid), GTK_WIDGET(notebook), remmina_pref.<a class="code" href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">toolbar_placement</a>);</div><div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160;</div><div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160;    gtk_container_add(GTK_CONTAINER(cnnwin), grid);</div><div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160;</div><div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160;    <span class="comment">/* Add drag capabilities to the toolbar */</span></div><div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;    gtk_drag_source_set(GTK_WIDGET(toolbar), GDK_BUTTON1_MASK,</div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</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="l03268"></a><span class="lineno"> 3268</span>&#160;    g_signal_connect_after(GTK_WIDGET(toolbar), <span class="stringliteral">&quot;drag-begin&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a0ca9e87bf2fc3855699f80315d72314b">rcw_tb_drag_begin</a>), NULL);</div><div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160;    g_signal_connect(GTK_WIDGET(toolbar), <span class="stringliteral">&quot;drag-failed&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a14a8e53afac8e750b7839d74dc50c758">rcw_tb_drag_failed</a>), cnnwin);</div><div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160;</div><div class="line"><a name="l03271"></a><span class="lineno"> 3271</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="l03272"></a><span class="lineno"> 3272</span>&#160;    gtk_drag_dest_set(GTK_WIDGET(notebook), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT,</div><div class="line"><a name="l03273"></a><span class="lineno"> 3273</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="l03274"></a><span class="lineno"> 3274</span>&#160;    gtk_drag_dest_set_track_motion(GTK_WIDGET(notebook), TRUE);</div><div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160;    g_signal_connect(GTK_WIDGET(notebook), <span class="stringliteral">&quot;drag-drop&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a70d89903e3279a1650dc0684f26ed9c2">rcw_tb_drag_drop</a>), cnnwin);</div><div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160;</div><div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>;</div><div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;toolbar = toolbar;</div><div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;grid = grid;</div><div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook = notebook;</div><div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_width = width;</div><div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_height = height;</div><div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;ss_maximized = maximize;</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;    <span class="comment">/* The notebook and all its child must be realized now, or a reparent will</span></div><div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160;<span class="comment">     * call unrealize() and will destroy a GtkSocket */</span></div><div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160;    gtk_widget_show(grid);</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160;    gtk_widget_show(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160;    GtkWindowGroup * wingrp = gtk_window_group_new ();</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;    gtk_window_group_add_window (wingrp, GTK_WINDOW(cnnwin));</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160;    gtk_window_set_transient_for(GTK_WINDOW(cnnwin), NULL);</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160;</div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160;    <span class="keywordflow">if</span> (maximize)</div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;        gtk_window_maximize(GTK_WINDOW(cnnwin));</div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160;</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;    <a class="code" href="rcw_8c.html#a23d848e45205a65618c84bb70b882b3f">rcw_set_toolbar_visibility</a>(cnnwin);</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;    <span class="keywordflow">return</span> cnnwin;</div><div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160;}</div><div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;</div><div class="line"><a name="l03302"></a><span class="lineno"><a class="line" href="rcw_8c.html#a0cb504e984baf9ad7ba06b03da6ab746"> 3302</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a0cb504e984baf9ad7ba06b03da6ab746">rcw_create_overlay_ftb_overlay</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;</div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160;    GtkWidget *revealer;</div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv;</div><div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160;    priv = cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</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;    <span class="keywordflow">if</span> (priv-&gt;overlay_ftb_overlay != NULL) {</div><div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;        gtk_widget_destroy(priv-&gt;overlay_ftb_overlay);</div><div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160;        priv-&gt;overlay_ftb_overlay = NULL;</div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160;        priv-&gt;revealer = NULL;</div><div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160;    }</div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160;</div><div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160;    <a class="code" href="rcw_8c.html#ad3c92ea50f889b1252614586d9f7a23e">rcw_create_floating_toolbar</a>(cnnwin, priv-&gt;fss_view_mode);</div><div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160;</div><div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;    priv-&gt;overlay_ftb_overlay = gtk_event_box_new();</div><div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;</div><div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160;    GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);</div><div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;    gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);</div><div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160;</div><div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;    GtkWidget *handle = gtk_drawing_area_new();</div><div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160;    gtk_widget_set_size_request(handle, 4, 4);</div><div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160;    gtk_widget_set_name(handle, <span class="stringliteral">&quot;ftb-handle&quot;</span>);</div><div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160;</div><div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;    revealer = gtk_revealer_new();</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;    gtk_widget_set_halign(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GTK_ALIGN_CENTER);</div><div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160;</div><div class="line"><a name="l03331"></a><span class="lineno"> 3331</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#a0ed680fdb405e7195d9f14032851eebba7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>) {</div><div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), handle, FALSE, FALSE, 0);</div><div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), revealer, FALSE, FALSE, 0);</div><div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160;        gtk_revealer_set_transition_type(GTK_REVEALER(revealer), GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);</div><div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160;        gtk_widget_set_valign(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GTK_ALIGN_END);</div><div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), revealer, FALSE, FALSE, 0);</div><div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160;        gtk_box_pack_start(GTK_BOX(vbox), handle, FALSE, FALSE, 0);</div><div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160;        gtk_revealer_set_transition_type(GTK_REVEALER(revealer), GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);</div><div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160;        gtk_widget_set_valign(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GTK_ALIGN_START);</div><div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160;    }</div><div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160;</div><div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160;</div><div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160;    gtk_container_add(GTK_CONTAINER(revealer), priv-&gt;floating_toolbar_widget);</div><div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;    gtk_widget_set_halign(GTK_WIDGET(revealer), GTK_ALIGN_CENTER);</div><div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;    gtk_widget_set_valign(GTK_WIDGET(revealer), GTK_ALIGN_START);</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;    priv-&gt;revealer = revealer;</div><div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;</div><div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;    GtkWidget *fr;</div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;    fr = gtk_frame_new(NULL);</div><div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160;    gtk_container_add(GTK_CONTAINER(priv-&gt;overlay_ftb_overlay), fr);</div><div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;    gtk_container_add(GTK_CONTAINER(fr), vbox);</div><div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160;</div><div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160;    gtk_widget_show(vbox);</div><div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160;    gtk_widget_show(revealer);</div><div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;    gtk_widget_show(handle);</div><div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;    gtk_widget_show(priv-&gt;overlay_ftb_overlay);</div><div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160;    gtk_widget_show(fr);</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;    <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#a0ed680fdb405e7195d9f14032851eebba7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>)</div><div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160;        gtk_widget_set_name(fr, <span class="stringliteral">&quot;ftbbox-lower&quot;</span>);</div><div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160;        gtk_widget_set_name(fr, <span class="stringliteral">&quot;ftbbox-upper&quot;</span>);</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;    gtk_overlay_add_overlay(GTK_OVERLAY(priv-&gt;overlay), priv-&gt;overlay_ftb_overlay);</div><div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160;</div><div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160;    <a class="code" href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a>(cnnwin, TRUE);</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;    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="rcw_8c.html#a961e539a6f6ccbe73a301869c6960ab6">rcw_floating_toolbar_on_enter</a>), cnnwin);</div><div class="line"><a name="l03371"></a><span class="lineno"> 3371</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="rcw_8c.html#a2f4b8ba7f51a4bf6e12a585177d55758">rcw_floating_toolbar_on_scroll</a>), cnnwin);</div><div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160;    gtk_widget_add_events(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GDK_SCROLL_MASK);</div><div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160;</div><div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160;    <span class="comment">/* Add drag and drop capabilities to the source */</span></div><div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;    gtk_drag_source_set(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), GDK_BUTTON1_MASK,</div><div class="line"><a name="l03376"></a><span class="lineno"> 3376</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="l03377"></a><span class="lineno"> 3377</span>&#160;    g_signal_connect_after(GTK_WIDGET(priv-&gt;overlay_ftb_overlay), <span class="stringliteral">&quot;drag-begin&quot;</span>, G_CALLBACK(rcw_ftb_drag_begin), cnnwin);</div><div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160;</div><div class="line"><a name="l03379"></a><span class="lineno"> 3379</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#a4caf8d8f829279fba122163d961608a4ad947c85d5ea917958d90298dab033b2c">FLOATING_TOOLBAR_VISIBILITY_DISABLE</a>) {</div><div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;        <span class="comment">/* toolbar in fullscreenmode disbled, hide everityhg */</span></div><div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;        gtk_widget_hide(fr);</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;</div><div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160;</div><div class="line"><a name="l03386"></a><span class="lineno"><a class="line" href="rcw_8c.html#a4ab5e41b9227097a9eec6f73dcb453ea"> 3386</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a4ab5e41b9227097a9eec6f73dcb453ea">rcw_ftb_drag_drop</a>(GtkWidget *widget, GdkDragContext *context,</div><div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160;                  gint x, gint y, guint time, <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin)</div><div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160;{</div><div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160;    gint new_floating_toolbar_placement;</div><div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160;</div><div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</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">if</span> (y &gt;= wa.height / 2)</div><div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160;        new_floating_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a0ed680fdb405e7195d9f14032851eebba7ed1345b9857b7029a8e0c61918dd95d">FLOATING_TOOLBAR_PLACEMENT_BOTTOM</a>;</div><div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160;        new_floating_toolbar_placement = <a class="code" href="remmina__pref_8h.html#a0ed680fdb405e7195d9f14032851eebba9cdc370e02904c1f50681b7fe8bd1796">FLOATING_TOOLBAR_PLACEMENT_TOP</a>;</div><div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160;</div><div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160;    gtk_drag_finish(context, TRUE, TRUE, time);</div><div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160;</div><div class="line"><a name="l03403"></a><span class="lineno"> 3403</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="l03404"></a><span class="lineno"> 3404</span>&#160;        <span class="comment">/* Destroy and recreate the FTB */</span></div><div class="line"><a name="l03405"></a><span class="lineno"> 3405</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="l03406"></a><span class="lineno"> 3406</span>&#160;        <a class="code" href="remmina__pref_8c.html#ae17aaf37449083a4322b6748c8f3a39f">remmina_pref_save</a>();</div><div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160;        <a class="code" href="rcw_8c.html#a0cb504e984baf9ad7ba06b03da6ab746">rcw_create_overlay_ftb_overlay</a>(cnnwin);</div><div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;        cnnobj = <a class="code" href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a>(cnnwin);</div><div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;        <span class="keywordflow">if</span> (cnnobj) <a class="code" href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726">rco_update_toolbar</a>(cnnobj);</div><div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160;    }</div><div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160;</div><div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160;    <span class="keywordflow">return</span> TRUE;</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;</div><div class="line"><a name="l03415"></a><span class="lineno"><a class="line" href="rcw_8c.html#a73532ae8f8fa05711035bc3d4c82ac2a"> 3415</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a73532ae8f8fa05711035bc3d4c82ac2a">rcw_ftb_drag_begin</a>(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160;{</div><div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;</div><div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;    cairo_surface_t *surface;</div><div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160;    cairo_t *cr;</div><div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160;    GtkAllocation wa;</div><div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160;    <span class="keywordtype">double</span> dashes[] = { 10 };</div><div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160;</div><div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160;    gtk_widget_get_allocation(widget, &amp;wa);</div><div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160;</div><div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160;    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, wa.width, wa.height);</div><div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160;    cr = cairo_create(surface);</div><div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160;    cairo_set_source_rgb(cr, 0.6, 0.6, 0.6);</div><div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160;    cairo_set_line_width(cr, 2);</div><div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160;    cairo_set_dash(cr, dashes, 1, 0);</div><div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160;    cairo_rectangle(cr, 0, 0, wa.width, wa.height);</div><div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;    cairo_stroke(cr);</div><div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160;    cairo_destroy(cr);</div><div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160;</div><div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160;    gtk_drag_set_icon_surface(context, surface);</div><div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160;}</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"><a class="line" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8"> 3438</a></span>&#160;<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *<a class="code" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a>(GtkWindow *old, gint view_mode)</div><div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160;{</div><div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin;</div><div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160;    GtkNotebook *notebook;</div><div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160;    gint n_monitors;</div><div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160;    gint i;</div><div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160;    GdkMonitor *old_monitor;</div><div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160;    GdkDisplay *old_display;</div><div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;    GdkWindow *old_window;</div><div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160;    gint full_screen_target_monitor;</div><div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160;</div><div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160;    full_screen_target_monitor = FULL_SCREEN_TARGET_MONITOR_UNDEFINED;</div><div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;    <span class="keywordflow">if</span> (old) {</div><div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;<span class="preprocessor">#if GTK_CHECK_VERSION(3, 22, 0)</span></div><div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160;        old_window = gtk_widget_get_window(GTK_WIDGET(old));</div><div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160;        old_display = gdk_window_get_display(old_window);</div><div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;        old_monitor = gdk_display_get_monitor_at_window(old_display, old_window);</div><div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160;        n_monitors = gdk_display_get_n_monitors(old_display);</div><div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; n_monitors; ++i) {</div><div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160;            <span class="keywordflow">if</span> (gdk_display_get_monitor(old_display, i) == old_monitor) {</div><div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;                full_screen_target_monitor = i;</div><div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;                <span class="keywordflow">break</span>;</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;        }</div><div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;        full_screen_target_monitor = gdk_screen_get_monitor_at_window(</div><div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;            gdk_screen_get_default(),</div><div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160;            gtk_widget_get_window(GTK_WIDGET(old)));</div><div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;    }</div><div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;</div><div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;    cnnwin = <a class="code" href="rcw_8c.html#a3f9d79b58064438a513d47b4ff690b73">rcw_new</a>(TRUE, full_screen_target_monitor);</div><div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;    gtk_widget_set_name(GTK_WIDGET(cnnwin), <span class="stringliteral">&quot;remmina-connection-window-fullscreen&quot;</span>);</div><div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160;    gtk_widget_realize(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160;</div><div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;    <span class="keywordflow">if</span> (!view_mode)</div><div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;        view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;</div><div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;    notebook = <a class="code" href="rcw_8c.html#a1fce938658aee966b1ccffb4a0ab4cff">rcw_create_notebook</a>(cnnwin);</div><div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160;</div><div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;overlay = gtk_overlay_new();</div><div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160;    gtk_container_add(GTK_CONTAINER(cnnwin), cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;overlay);</div><div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160;    gtk_container_add(GTK_CONTAINER(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;overlay), GTK_WIDGET(notebook));</div><div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160;    gtk_widget_show(GTK_WIDGET(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;overlay));</div><div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160;</div><div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook = notebook;</div><div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode = view_mode;</div><div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;fss_view_mode = view_mode;</div><div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160;</div><div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160;    <span class="comment">/* Create the floating toolbar */</span></div><div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160;    <a class="code" href="rcw_8c.html#a0cb504e984baf9ad7ba06b03da6ab746">rcw_create_overlay_ftb_overlay</a>(cnnwin);</div><div class="line"><a name="l03492"></a><span class="lineno"> 3492</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="l03493"></a><span class="lineno"> 3493</span>&#160;    gtk_drag_dest_set(GTK_WIDGET(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;overlay), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT,</div><div class="line"><a name="l03494"></a><span class="lineno"> 3494</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="l03495"></a><span class="lineno"> 3495</span>&#160;    gtk_drag_dest_set_track_motion(GTK_WIDGET(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook), TRUE);</div><div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160;    g_signal_connect(GTK_WIDGET(cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;overlay), <span class="stringliteral">&quot;drag-drop&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#a4ab5e41b9227097a9eec6f73dcb453ea">rcw_ftb_drag_drop</a>), cnnwin);</div><div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160;</div><div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;    gtk_widget_show(GTK_WIDGET(cnnwin));</div><div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160;    GtkWindowGroup * wingrp = gtk_window_group_new ();</div><div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160;    gtk_window_group_add_window (wingrp, GTK_WINDOW(cnnwin));</div><div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;    gtk_window_set_transient_for(GTK_WINDOW(cnnwin), NULL);</div><div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;</div><div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;    <span class="keywordflow">return</span> cnnwin;</div><div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160;}</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"><a class="line" href="rcw_8c.html#acb1b2ab629603837e08f8d8de542316d"> 3506</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#acb1b2ab629603837e08f8d8de542316d">rcw_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="l03507"></a><span class="lineno"> 3507</span>&#160;{</div><div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj = gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>;</div><div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l03511"></a><span class="lineno"> 3511</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="l03512"></a><span class="lineno"> 3512</span>&#160;    gint i;</div><div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160;</div><div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160;    <span class="keywordflow">if</span> (release) {</div><div class="line"><a name="l03515"></a><span class="lineno"> 3515</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="l03516"></a><span class="lineno"> 3516</span>&#160;            priv-&gt;hostkey_activated = FALSE;</div><div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;            <span class="keywordflow">if</span> (priv-&gt;hostkey_used)</div><div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;                <span class="comment">/* hostkey pressed + something else */</span></div><div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;                <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;        }</div><div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160;        <span class="comment">/* If hostkey is released without pressing other keys, we should execute the</span></div><div class="line"><a name="l03522"></a><span class="lineno"> 3522</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="l03523"></a><span class="lineno"> 3523</span>&#160;<span class="comment">         * keyboard */</span></div><div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (priv-&gt;hostkey_activated) {</div><div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;            <span class="comment">/* Trap all key releases when hostkey is pressed */</span></div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;            <span class="comment">/* hostkey pressed + something else */</span></div><div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;            <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;            <span class="comment">/* Any key pressed, no hostkey */</span></div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;            <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;        }</div><div class="line"><a name="l03532"></a><span class="lineno"> 3532</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="l03534"></a><span class="lineno"> 3534</span>&#160;        priv-&gt;hostkey_activated = TRUE;</div><div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;        priv-&gt;hostkey_used = FALSE;</div><div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!priv-&gt;hostkey_activated) {</div><div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160;        <span class="comment">/* Any key pressed, no hostkey */</span></div><div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;    }</div><div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160;</div><div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;    priv-&gt;hostkey_used = TRUE;</div><div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160;    keyval = gdk_keyval_to_lower(keyval);</div><div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;    <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down</div><div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;        || keyval == GDK_KEY_Left || keyval == GDK_KEY_Right) {</div><div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160;        GtkAdjustment *adjust;</div><div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160;        <span class="keywordtype">int</span> pos;</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;        <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="l03550"></a><span class="lineno"> 3550</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down)</div><div class="line"><a name="l03551"></a><span class="lineno"> 3551</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="l03552"></a><span class="lineno"> 3552</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03553"></a><span class="lineno"> 3553</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="l03554"></a><span class="lineno"> 3554</span>&#160;</div><div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Left)</div><div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;                pos = 0;</div><div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160;                pos = gtk_adjustment_get_upper(adjust);</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;            gtk_adjustment_set_value(adjust, pos);</div><div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down)</div><div class="line"><a name="l03562"></a><span class="lineno"> 3562</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="l03563"></a><span class="lineno"> 3563</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03564"></a><span class="lineno"> 3564</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="l03565"></a><span class="lineno"> 3565</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="l03566"></a><span class="lineno"> 3566</span>&#160;            <a class="code" href="struct___remmina_scrolled_viewport.html">RemminaScrolledViewport</a> *gsv;</div><div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160;            GtkWidget *child;</div><div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;            GdkWindow *gsvwin;</div><div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;            gint sz;</div><div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;            GtkAdjustment *adj;</div><div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;            gdouble value;</div><div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;</div><div class="line"><a name="l03573"></a><span class="lineno"> 3573</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="l03574"></a><span class="lineno"> 3574</span>&#160;                <span class="keywordflow">return</span> FALSE;</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;            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="l03577"></a><span class="lineno"> 3577</span>&#160;            child = gtk_bin_get_child(GTK_BIN(gsv));</div><div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160;            <span class="keywordflow">if</span> (!GTK_IS_VIEWPORT(child))</div><div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;                <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160;</div><div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160;            gsvwin = gtk_widget_get_window(GTK_WIDGET(gsv));</div><div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160;            <span class="keywordflow">if</span> (!gsv)</div><div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160;                <span class="keywordflow">return</span> FALSE;</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="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Down) {</div><div class="line"><a name="l03586"></a><span class="lineno"> 3586</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="l03587"></a><span class="lineno"> 3587</span>&#160;                adj = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(child));</div><div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;            } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03589"></a><span class="lineno"> 3589</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="l03590"></a><span class="lineno"> 3590</span>&#160;                adj = gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(child));</div><div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160;            }</div><div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160;</div><div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160;            <span class="keywordflow">if</span> (keyval == GDK_KEY_Up || keyval == GDK_KEY_Left)</div><div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160;                value = 0;</div><div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160;                value = gtk_adjustment_get_upper(GTK_ADJUSTMENT(adj)) - (gdouble)sz + 2.0;</div><div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160;</div><div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160;            gtk_adjustment_set_value(GTK_ADJUSTMENT(adj), value);</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;    }</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;    <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="l03603"></a><span class="lineno"> 3603</span>&#160;        <span class="keywordflow">switch</span> (priv-&gt;view_mode) {</div><div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;            <a class="code" href="rcw_8c.html#afec9666876babf3ae115fade7470915e">rcw_switch_viewmode</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, priv-&gt;fss_view_mode);</div><div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;            <a class="code" href="rcw_8c.html#afec9666876babf3ae115fade7470915e">rcw_switch_viewmode</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>);</div><div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;            <span class="keywordflow">break</span>;</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">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="l03615"></a><span class="lineno"> 3615</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="l03616"></a><span class="lineno"> 3616</span>&#160;            <a class="code" href="rcw_8c.html#ab4b9810ed2b9ae62933b969c1d9acf3c">rcw_toolbar_autofit</a>(GTK_WIDGET(gp), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03617"></a><span class="lineno"> 3617</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="l03618"></a><span class="lineno"> 3618</span>&#160;        i = gtk_notebook_get_current_page(GTK_NOTEBOOK(priv-&gt;notebook)) + 1;</div><div class="line"><a name="l03619"></a><span class="lineno"> 3619</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="l03620"></a><span class="lineno"> 3620</span>&#160;            i = 0;</div><div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160;        gtk_notebook_set_current_page(GTK_NOTEBOOK(priv-&gt;notebook), i);</div><div class="line"><a name="l03622"></a><span class="lineno"> 3622</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="l03623"></a><span class="lineno"> 3623</span>&#160;        i = gtk_notebook_get_current_page(GTK_NOTEBOOK(priv-&gt;notebook)) - 1;</div><div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160;        <span class="keywordflow">if</span> (i &lt; 0)</div><div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>&#160;            i = gtk_notebook_get_n_pages(GTK_NOTEBOOK(priv-&gt;notebook)) - 1;</div><div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160;        gtk_notebook_set_current_page(GTK_NOTEBOOK(priv-&gt;notebook), i);</div><div class="line"><a name="l03627"></a><span class="lineno"> 3627</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="l03628"></a><span class="lineno"> 3628</span>&#160;        <span class="keywordflow">if</span> (gtk_widget_is_sensitive(GTK_WIDGET(priv-&gt;toolitem_scale))) {</div><div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160;            gtk_toggle_tool_button_set_active(</div><div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160;                GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_scale),</div><div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160;                !gtk_toggle_tool_button_get_active(</div><div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;                    GTK_TOGGLE_TOOL_BUTTON(</div><div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160;                        priv-&gt;toolitem_scale)));</div><div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160;        }</div><div class="line"><a name="l03635"></a><span class="lineno"> 3635</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="l03636"></a><span class="lineno"> 3636</span>&#160;        gtk_toggle_tool_button_set_active(</div><div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;            GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_grab),</div><div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160;            !gtk_toggle_tool_button_get_active(</div><div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;                GTK_TOGGLE_TOOL_BUTTON(</div><div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160;                    priv-&gt;toolitem_grab)));</div><div class="line"><a name="l03641"></a><span class="lineno"> 3641</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="l03642"></a><span class="lineno"> 3642</span>&#160;        <a class="code" href="rcw_8c.html#a51bb9efba28252cbf96da6797710c919">rcw_toolbar_minimize</a>(GTK_WIDGET(gp),</div><div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;                     cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03644"></a><span class="lineno"> 3644</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="l03645"></a><span class="lineno"> 3645</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="l03646"></a><span class="lineno"> 3646</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="l03647"></a><span class="lineno"> 3647</span>&#160;                      == 0) ? 1 : 0);</div><div class="line"><a name="l03648"></a><span class="lineno"> 3648</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="l03649"></a><span class="lineno"> 3649</span>&#160;        <a class="code" href="rcw_8c.html#a604971831f6ef8dd750ad6d29abb73a9">rcw_toolbar_screenshot</a>(GTK_WIDGET(gp),</div><div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>&#160;                       cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03651"></a><span class="lineno"> 3651</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="l03652"></a><span class="lineno"> 3652</span>&#160;        <a class="code" href="rcw_8c.html#a2690c97a972e458dea9f5c0566ea50b9">rco_disconnect_current_page</a>(cnnobj);</div><div class="line"><a name="l03653"></a><span class="lineno"> 3653</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="l03654"></a><span class="lineno"> 3654</span>&#160;        <span class="keywordflow">if</span> (priv-&gt;view_mode == <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>) {</div><div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160;            remmina_pref.<a class="code" href="struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e">hide_connection_toolbar</a> =</div><div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160;                !remmina_pref.<a class="code" href="struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e">hide_connection_toolbar</a>;</div><div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160;            <a class="code" href="rcw_8c.html#a23d848e45205a65618c84bb70b882b3f">rcw_set_toolbar_visibility</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;        }</div><div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160;        <span class="keywordflow">for</span> (feature =</div><div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160;                 <a class="code" href="remmina__protocol__widget_8c.html#af9b6a2c2665010ab09a6d9943f9850bd">remmina_protocol_widget_get_features</a>(</div><div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;                     REMMINA_PROTOCOL_WIDGET(</div><div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;                         cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l03664"></a><span class="lineno"> 3664</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="l03665"></a><span class="lineno"> 3665</span>&#160;             feature++) {</div><div class="line"><a name="l03666"></a><span class="lineno"> 3666</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="l03667"></a><span class="lineno"> 3667</span>&#160;                == <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a645d9a32b55325b3672e265a64d0a507">REMMINA_PROTOCOL_FEATURE_TYPE_TOOL</a></div><div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;                &amp;&amp; GPOINTER_TO_UINT(</div><div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160;                    feature-&gt;<a class="code" href="struct___remmina_protocol_feature.html#ab3c15094a16418c5951c5382c8a44190">opt3</a>)</div><div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;                == keyval) {</div><div class="line"><a name="l03671"></a><span class="lineno"> 3671</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="l03672"></a><span class="lineno"> 3672</span>&#160;                    REMMINA_PROTOCOL_WIDGET(</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#aea86c673d5c1600844e0d1642c856995">proto</a>),</div><div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160;                    feature);</div><div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160;            }</div><div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160;        }</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;    <span class="comment">/* If a keypress makes the current cnnobj to move to another window,</span></div><div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;<span class="comment">     * priv is now invalid. So we can no longer use priv here */</span></div><div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;hostkey_activated = FALSE;</div><div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;</div><div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;    <span class="comment">/* Trap all key presses when hostkey is pressed */</span></div><div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;    <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;}</div><div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;</div><div class="line"><a name="l03687"></a><span class="lineno"><a class="line" href="rcw_8c.html#a6a61db497c95cf18aea60b2a3a5a31c0"> 3687</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *<a class="code" href="rcw_8c.html#a6a61db497c95cf18aea60b2a3a5a31c0">rcw_find</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</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;    TRACE_CALL(__func__);</div><div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;    <span class="keyword">const</span> gchar *tag;</div><div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;</div><div class="line"><a name="l03692"></a><span class="lineno"> 3692</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="l03693"></a><span class="lineno"> 3693</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a18b9b9f60fb377c589ff11b5388fee33">REMMINA_TAB_BY_GROUP</a>:</div><div class="line"><a name="l03694"></a><span class="lineno"> 3694</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="l03695"></a><span class="lineno"> 3695</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5aedb9eb53656e5315bf173ec9d0f5b558">REMMINA_TAB_BY_PROTOCOL</a>:</div><div class="line"><a name="l03697"></a><span class="lineno"> 3697</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="l03698"></a><span class="lineno"> 3698</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5afb68a1eeda5303774bbc922ef8d364e9">REMMINA_TAB_ALL</a>:</div><div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;        tag = NULL;</div><div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5adc41dc23d32d8955a469953bee975631">REMMINA_TAB_NONE</a>:</div><div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;    }</div><div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;    <span class="keywordflow">return</span> RCW(<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="l03707"></a><span class="lineno"> 3707</span>&#160;}</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"><a class="line" href="rcw_8c.html#add97977d493b64a6ea1c54ee7412f2c9"> 3709</a></span>&#160;gboolean <a class="code" href="rcw_8c.html#add97977d493b64a6ea1c54ee7412f2c9">rcw_delayed_window_present</a>(gpointer user_data)</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"> 3711</span>&#160;    <a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin = (<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *)user_data;</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;    <span class="keywordflow">if</span> (cnnwin) {</div><div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;        gtk_window_present_with_time(GTK_WINDOW(cnnwin), (guint32)(g_get_monotonic_time() / 1000));</div><div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;        <a class="code" href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a>(cnnwin);</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"> 3717</span>&#160;    cnnwin-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;dwp_eventsourceid = 0;</div><div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;    <span class="keywordflow">return</span> G_SOURCE_REMOVE;</div><div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;}</div><div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;</div><div class="line"><a name="l03721"></a><span class="lineno"><a class="line" href="rcw_8c.html#a3237ef26caa19b9926b485f94132cea7"> 3721</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a3237ef26caa19b9926b485f94132cea7">rco_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="l03722"></a><span class="lineno"> 3722</span>&#160;{</div><div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;</div><div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;    gchar *last_success;</div><div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;</div><div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;    g_debug(<span class="stringliteral">&quot;Connect signal emitted&quot;</span>);</div><div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;    GDateTime *date = g_date_time_new_now_utc();</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;    <span class="comment">/* This signal handler is called by a plugin when it’s correctly connected</span></div><div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;<span class="comment">     * (and authenticated) */</span></div><div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;</div><div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> = TRUE;</div><div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;</div><div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a5aaadd752a3275a0a8e0018a3dd669f8">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="l03736"></a><span class="lineno"> 3736</span>&#160;                         (<a class="code" href="remmina__protocol__widget_8h.html#ab89fba118812616a3e47504cfe4f3390">RemminaHostkeyFunc</a>)rcw_hostkey_func);</div><div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;</div><div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;    last_success = g_strdup_printf(<span class="stringliteral">&quot;%d%02d%02d&quot;</span>,</div><div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;                       g_date_time_get_year(date),</div><div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;                       g_date_time_get_month(date),</div><div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;                       g_date_time_get_day_of_month(date));</div><div class="line"><a name="l03745"></a><span class="lineno"> 3745</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="l03746"></a><span class="lineno"> 3746</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="l03747"></a><span class="lineno"> 3747</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="l03748"></a><span class="lineno"> 3748</span>&#160;    <span class="keywordflow">if</span> (remmina_pref.<a class="code" href="struct___remmina_pref.html#a5127551ff44a7a2d7b660fbdbd00afe3">periodic_usage_stats_permitted</a>) {</div><div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160;        g_debug(<span class="stringliteral">&quot;Stats are allowed, we save the last successful connection date&quot;</span>);</div><div class="line"><a name="l03750"></a><span class="lineno"> 3750</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="stringliteral">&quot;last_success&quot;</span>, last_success);</div><div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;        g_debug(<span class="stringliteral">&quot;Last connection was made on %s.&quot;</span>, last_success);</div><div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;    }</div><div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;</div><div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;    g_debug(<span class="stringliteral">&quot;Saving credentials&quot;</span>);</div><div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;    <span class="comment">/* Save credentials */</span></div><div class="line"><a name="l03756"></a><span class="lineno"> 3756</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="l03757"></a><span class="lineno"> 3757</span>&#160;</div><div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;floating_toolbar_widget)</div><div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;        gtk_widget_show(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;floating_toolbar_widget);</div><div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160;</div><div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160;    <a class="code" href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726">rco_update_toolbar</a>(cnnobj);</div><div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;</div><div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;    g_debug(<span class="stringliteral">&quot;Trying to present the window&quot;</span>);</div><div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;    <span class="comment">/* Try to present window */</span></div><div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;dwp_eventsourceid = g_timeout_add(200, <a class="code" href="rcw_8c.html#add97977d493b64a6ea1c54ee7412f2c9">rcw_delayed_window_present</a>, (gpointer)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;}</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"><a class="line" href="rcw_8c.html#a56e026ede7a3e50374579ad538e33db7"> 3768</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a56e026ede7a3e50374579ad538e33db7">cb_lasterror_confirmed</a>(<span class="keywordtype">void</span> *cbdata, <span class="keywordtype">int</span> btn)</div><div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;{</div><div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;    <a class="code" href="rcw_8c.html#aaef82069514845b2987ac0659993cecd">rco_closewin</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cbdata);</div><div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;}</div><div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;</div><div class="line"><a name="l03774"></a><span class="lineno"><a class="line" href="rcw_8c.html#a029feea88b7ef32425595efe7d270947"> 3774</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a029feea88b7ef32425595efe7d270947">rco_on_disconnect</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, gpointer data)</div><div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;{</div><div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj = gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>;</div><div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;    <a class="code" href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a> *priv = cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>;</div><div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;    GtkWidget *pparent;</div><div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;</div><div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;    g_debug(<span class="stringliteral">&quot;Disconnect signal received on RemminaProtocolWidget&quot;</span>);</div><div class="line"><a name="l03782"></a><span class="lineno"> 3782</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="l03783"></a><span class="lineno"> 3783</span>&#160;<span class="comment">     * window delete will destroy cnnobj-&gt;proto before we complete disconnection.</span></div><div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l03785"></a><span class="lineno"> 3785</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="l03786"></a><span class="lineno"> 3786</span>&#160;    <span class="keywordflow">if</span> (pparent != NULL) {</div><div class="line"><a name="l03787"></a><span class="lineno"> 3787</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="l03788"></a><span class="lineno"> 3788</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="l03789"></a><span class="lineno"> 3789</span>&#160;    }</div><div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160;</div><div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aed1d667ed3085ee229c0dfdcf715084d">connected</a> = FALSE;</div><div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160;</div><div class="line"><a name="l03793"></a><span class="lineno"> 3793</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="l03794"></a><span class="lineno"> 3794</span>&#160;        <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>)</div><div class="line"><a name="l03795"></a><span class="lineno"> 3795</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>, cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode);</div><div class="line"><a name="l03796"></a><span class="lineno"> 3796</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="l03797"></a><span class="lineno"> 3797</span>&#160;    }</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;    <a class="code" href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>);</div><div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;    gtk_toggle_tool_button_set_active(</div><div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;        GTK_TOGGLE_TOOL_BUTTON(priv-&gt;toolitem_grab),</div><div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;        FALSE);</div><div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;</div><div class="line"><a name="l03804"></a><span class="lineno"> 3804</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="l03805"></a><span class="lineno"> 3805</span>&#160;        <span class="comment">/* We cannot close window immediately, but we must show a message panel */</span></div><div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;        RemminaMessagePanel *mp;</div><div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;        <span class="comment">/* Destroy scrolled_container (and viewport) and all its children the plugin created</span></div><div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;<span class="comment">         * on it, so they will not receive GUI signals */</span></div><div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;        <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>) {</div><div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160;            gtk_widget_destroy(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>);</div><div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;            cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a> = NULL;</div><div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;        }</div><div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;        cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a> = NULL;</div><div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;        mp = <a class="code" href="remmina__message__panel_8c.html#a7015155d2b1db3e74de4d4d5ef7cca55">remmina_message_panel_new</a>();</div><div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;        <a class="code" href="remmina__message__panel_8c.html#ae01d27ae9f678dc5a4fa32f0b401f434">remmina_message_panel_setup_message</a>(mp, <a class="code" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget_get_error_message</a>(gp), <a class="code" href="rcw_8c.html#a56e026ede7a3e50374579ad538e33db7">cb_lasterror_confirmed</a>, gp);</div><div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;        <a class="code" href="rcw_8c.html#ac5eda3a29c88ac88d80b5775e39ffcb4">rco_show_message_panel</a>(gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>, mp);</div><div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;        g_debug(<span class="stringliteral">&quot;Could not disconnect&quot;</span>);</div><div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;        <a class="code" href="rcw_8c.html#aaef82069514845b2987ac0659993cecd">rco_closewin</a>(gp);</div><div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;        g_debug(<span class="stringliteral">&quot;Disconnected&quot;</span>);</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;}</div><div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;</div><div class="line"><a name="l03824"></a><span class="lineno"><a class="line" href="rcw_8c.html#a61b9eae2dd47962c5966d5d32eec9964"> 3824</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a61b9eae2dd47962c5966d5d32eec9964">rco_on_desktop_resize</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, gpointer data)</div><div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;{</div><div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj = gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>;</div><div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160;    <span class="keywordflow">if</span> (cnnobj &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> &amp;&amp; cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;view_mode != <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>)</div><div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;        <a class="code" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a>(cnnobj);</div><div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;}</div><div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160;</div><div class="line"><a name="l03832"></a><span class="lineno"><a class="line" href="rcw_8c.html#adca4317296daf9b6c51c4258a70faf5a"> 3832</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#adca4317296daf9b6c51c4258a70faf5a">rco_on_update_align</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, gpointer data)</div><div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;{</div><div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj = gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>;</div><div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160;    <a class="code" href="rcw_8c.html#ab7dc553cbd2005feb77163cf79f48f6d">remmina_protocol_widget_update_alignment</a>(cnnobj);</div><div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;}</div><div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;</div><div class="line"><a name="l03839"></a><span class="lineno"><a class="line" href="rcw_8c.html#aa79b4c65a2a416a94c27363324c1cede"> 3839</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#aa79b4c65a2a416a94c27363324c1cede">rco_on_unlock_dynres</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp, gpointer data)</div><div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;{</div><div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj = gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>;</div><div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a71136a01b1cc4d14e0047b32ec4d8a4a">dynres_unlocked</a> = TRUE;</div><div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;    <a class="code" href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726">rco_update_toolbar</a>(cnnobj);</div><div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160;}</div><div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160;</div><div class="line"><a name="l03847"></a><span class="lineno"><a class="line" href="rcw_8h.html#aa37f2a9c56df0ce1a0dbc32f8989e4b5"> 3847</a></span>&#160;gboolean <a class="code" href="rcw_8c.html#aa37f2a9c56df0ce1a0dbc32f8989e4b5">rcw_open_from_filename</a>(<span class="keyword">const</span> gchar *filename)</div><div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160;{</div><div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160;    <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile;</div><div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160;    GtkWidget *dialog;</div><div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160;</div><div class="line"><a name="l03853"></a><span class="lineno"> 3853</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="l03854"></a><span class="lineno"> 3854</span>&#160;    <span class="keywordflow">if</span> (remminafile) {</div><div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;        <a class="code" href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a>(remminafile);</div><div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160;        <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160;        dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,</div><div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;                        _(<span class="stringliteral">&quot;The file \&quot;%s\&quot; is corrupted, unreadable, or could not be found.&quot;</span>), filename);</div><div class="line"><a name="l03860"></a><span class="lineno"> 3860</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="l03861"></a><span class="lineno"> 3861</span>&#160;        gtk_widget_show(dialog);</div><div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;        <a class="code" href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a>(dialog);</div><div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;        <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;    }</div><div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;}</div><div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;</div><div class="line"><a name="l03867"></a><span class="lineno"><a class="line" href="rcw_8c.html#a80f465cb910660ded402fb0e7bb3a7fd"> 3867</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="rcw_8c.html#a80f465cb910660ded402fb0e7bb3a7fd">open_connection_last_stage</a>(gpointer user_data)</div><div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;{</div><div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160;    <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp = (<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)user_data;</div><div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160;</div><div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160;    <span class="comment">/* Now we have an allocated size for our RemminaProtocolWidget. We can proceed with the connection */</span></div><div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a14684e3222e6afb1b43d77634a174767">remmina_protocol_widget_update_remote_resolution</a>(gp);</div><div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#a6399c3828908e36ed6202b5599bd206b">remmina_protocol_widget_open_connection</a>(gp);</div><div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;    <a class="code" href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a>(gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>);</div><div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160;</div><div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160;    <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160;}</div><div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160;</div><div class="line"><a name="l03879"></a><span class="lineno"><a class="line" href="rcw_8c.html#ad5ac9d52e0afc18834da73ef2bf18edd"> 3879</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ad5ac9d52e0afc18834da73ef2bf18edd">rpw_size_allocated_on_connection</a>(GtkWidget *w, GdkRectangle *allocation, gpointer user_data)</div><div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;{</div><div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;    <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp = (<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)w;</div><div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;</div><div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;    <span class="comment">/* Disconnect signal handler to avoid to be called again after a normal resize */</span></div><div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;    g_signal_handler_disconnect(w, gp-&gt;<a class="code" href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">cnnobj</a>-&gt;<a class="code" href="struct___remmina_connection_object.html#a09f89d6c0e4e52905aba1dd093e5c7f2">deferred_open_size_allocate_handler</a>);</div><div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160;</div><div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160;    <span class="comment">/* Allow extra 100ms for size allocation (do we really need it?) */</span></div><div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160;    g_timeout_add(100, <a class="code" href="rcw_8c.html#a80f465cb910660ded402fb0e7bb3a7fd">open_connection_last_stage</a>, gp);</div><div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160;</div><div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160;    <span class="keywordflow">return</span>;</div><div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160;}</div><div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160;</div><div class="line"><a name="l03892"></a><span class="lineno"><a class="line" href="rcw_8h.html#a1b7a771392e15e527005305e71cc2546"> 3892</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160;{</div><div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;    <a class="code" href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a>(remminafile, NULL, NULL, NULL);</div><div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;}</div><div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;</div><div class="line"><a name="l03898"></a><span class="lineno"><a class="line" href="rcw_8h.html#ad3c2fe67b137c757bd21b79ad5dcc5ff"> 3898</a></span>&#160;GtkWidget *<a class="code" href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_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="l03899"></a><span class="lineno"> 3899</span>&#160;{</div><div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;    <a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj;</div><div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;</div><div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;    gint ret;</div><div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;    GtkWidget *dialog;</div><div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;    GtkWidget *newpage;</div><div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;    gint width, height;</div><div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;    gboolean maximize;</div><div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;    gint view_mode;</div><div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;    <span class="keyword">const</span> gchar *msg;</div><div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160;</div><div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;    <span class="keywordflow">if</span> (disconnect_cb) {</div><div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;        g_print(<span class="stringliteral">&quot;disconnect_cb is deprecated inside rcw_open_from_file_full() and should be null&quot;</span>);</div><div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;    }</div><div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;</div><div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;</div><div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;    <span class="comment">/* Create the RemminaConnectionObject */</span></div><div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;    cnnobj = g_new0(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a>, 1);</div><div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a431b19fa993d0810e88cc973a307303c">remmina_file</a> = remminafile;</div><div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;</div><div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;    <span class="comment">/* Create the RemminaProtocolWidget */</span></div><div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;    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="l03923"></a><span class="lineno"> 3923</span>&#160;    <a class="code" href="remmina__protocol__widget_8c.html#ac705ffa194e3c3457e9a0a1bd6c79be8">remmina_protocol_widget_setup</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>, remminafile, cnnobj);</div><div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>)) {</div><div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;        GtkWindow *wparent;</div><div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;        wparent = <a class="code" href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a>();</div><div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;        msg = <a class="code" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget_get_error_message</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>);</div><div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160;        dialog = gtk_message_dialog_new(wparent, GTK_DIALOG_DESTROY_WITH_PARENT,</div><div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;                        GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, <span class="stringliteral">&quot;%s&quot;</span>, msg);</div><div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;        gtk_dialog_run(GTK_DIALOG(dialog));</div><div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;        gtk_widget_destroy(dialog);</div><div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;        <span class="comment">/* We should destroy cnnobj-&gt;proto and cnnobj now… ToDo: fix this leak */</span></div><div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160;    }</div><div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160;</div><div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160;</div><div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160;</div><div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160;    <span class="comment">/* Set a name for the widget, for CSS selector */</span></div><div class="line"><a name="l03939"></a><span class="lineno"> 3939</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="l03940"></a><span class="lineno"> 3940</span>&#160;</div><div class="line"><a name="l03941"></a><span class="lineno"> 3941</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="l03942"></a><span class="lineno"> 3942</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="l03943"></a><span class="lineno"> 3943</span>&#160;</div><div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160;    <span class="keywordflow">if</span> (data)</div><div class="line"><a name="l03945"></a><span class="lineno"> 3945</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="l03946"></a><span class="lineno"> 3946</span>&#160;</div><div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160;    view_mode = <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="l03948"></a><span class="lineno"> 3948</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a>)</div><div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160;        view_mode = <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>;</div><div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160;</div><div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160;    <span class="comment">/* Create the viewport to make the RemminaProtocolWidget scrollable */</span></div><div class="line"><a name="l03952"></a><span class="lineno"> 3952</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="l03953"></a><span class="lineno"> 3953</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="l03954"></a><span class="lineno"> 3954</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="l03955"></a><span class="lineno"> 3955</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="l03956"></a><span class="lineno"> 3956</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="l03957"></a><span class="lineno"> 3957</span>&#160;</div><div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160;    <span class="comment">/* Create the scrolled container */</span></div><div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a> = <a class="code" href="rcw_8c.html#afcbac7a8924d543a58039037837710ba">rco_create_scrolled_container</a>(cnnobj, view_mode);</div><div class="line"><a name="l03960"></a><span class="lineno"> 3960</span>&#160;</div><div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>&#160;    gtk_container_add(GTK_CONTAINER(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aef266e6ae11db020512b3dec8f689d30">scrolled_container</a>), cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a016a7b65f9db00458f3fc000c7e3a89d">viewport</a>);</div><div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160;</div><div class="line"><a name="l03963"></a><span class="lineno"> 3963</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="l03964"></a><span class="lineno"> 3964</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="l03965"></a><span class="lineno"> 3965</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="l03966"></a><span class="lineno"> 3966</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="l03967"></a><span class="lineno"> 3967</span>&#160;                                        <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5affe302f5d3151bfe99607edf308c3c9f">REMMINA_PROTOCOL_FEATURE_TYPE_SCALE</a>);</div><div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>&#160;</div><div class="line"><a name="l03969"></a><span class="lineno"> 3969</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a45652d9f81875c51991ddf6942d7b2ae">aspectframe</a> = NULL;</div><div class="line"><a name="l03970"></a><span class="lineno"> 3970</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="l03971"></a><span class="lineno"> 3971</span>&#160;</div><div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;    <span class="comment">/* Determine whether this connection will be put on a new window</span></div><div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;<span class="comment">     * or in an existing one */</span></div><div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> = <a class="code" href="rcw_8c.html#a6a61db497c95cf18aea60b2a3a5a31c0">rcw_find</a>(remminafile);</div><div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160;    <span class="keywordflow">if</span> (!cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>) {</div><div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160;        <span class="comment">/* Connection goes on a new toplevel window */</span></div><div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160;        <span class="keywordflow">switch</span> (view_mode) {</div><div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">SCROLLED_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a>:</div><div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160;            cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> = <a class="code" href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a>(NULL, view_mode);</div><div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">SCROLLED_WINDOW_MODE</a>:</div><div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160;            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="l03985"></a><span class="lineno"> 3985</span>&#160;            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="l03986"></a><span class="lineno"> 3986</span>&#160;            maximize = <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) ? TRUE : FALSE;</div><div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;            cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a> = <a class="code" href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0">rcw_create_scrolled</a>(width, height, maximize);</div><div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;        }</div><div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;        <a class="code" href="rcw_8c.html#af8d1a8843f974fb8170d76f945a72080">rcw_update_tag</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, cnnobj);</div><div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;        <a class="code" href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, cnnobj);</div><div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160;        newpage = <a class="code" href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>, cnnobj);</div><div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;        gtk_window_present(GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>));</div><div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;        <a class="code" href="rcw_8c.html#a5e70819cad41022a0070c8102dd6dd6f">nb_set_current_page</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, newpage);</div><div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;    }</div><div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160;</div><div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160;    <span class="comment">// Do not call remmina_protocol_widget_update_alignment(cnnobj); here or cnnobj-&gt;proto will not fill its parent size</span></div><div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160;    <span class="comment">// and remmina_protocol_widget_update_remote_resolution() cannot autodetect available space</span></div><div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160;</div><div class="line"><a name="l04001"></a><span class="lineno"> 4001</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="l04002"></a><span class="lineno"> 4002</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="rcw_8c.html#a3237ef26caa19b9926b485f94132cea7">rco_on_connect</a>), cnnobj);</div><div class="line"><a name="l04003"></a><span class="lineno"> 4003</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="rcw_8c.html#a029feea88b7ef32425595efe7d270947">rco_on_disconnect</a>), NULL);</div><div class="line"><a name="l04004"></a><span class="lineno"> 4004</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="rcw_8c.html#a61b9eae2dd47962c5966d5d32eec9964">rco_on_desktop_resize</a>), NULL);</div><div class="line"><a name="l04005"></a><span class="lineno"> 4005</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="rcw_8c.html#adca4317296daf9b6c51c4258a70faf5a">rco_on_update_align</a>), NULL);</div><div class="line"><a name="l04006"></a><span class="lineno"> 4006</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="rcw_8c.html#aa79b4c65a2a416a94c27363324c1cede">rco_on_unlock_dynres</a>), NULL);</div><div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160;</div><div class="line"><a name="l04008"></a><span class="lineno"> 4008</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="l04009"></a><span class="lineno"> 4009</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="l04010"></a><span class="lineno"> 4010</span>&#160;</div><div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;</div><div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160;    <span class="comment">/* If it is a GtkSocket plugin and X11 is not available, we inform the</span></div><div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160;<span class="comment">     * user and close the connection */</span></div><div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;    ret = <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="l04015"></a><span class="lineno"> 4015</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="l04016"></a><span class="lineno"> 4016</span>&#160;                               <a class="code" href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a>);</div><div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160;    <span class="keywordflow">if</span> (ret &amp;&amp; !<a class="code" href="remmina__plugin__manager_8c.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a>()) {</div><div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;        dialog = gtk_message_dialog_new(</div><div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160;            GTK_WINDOW(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>),</div><div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;            GTK_DIALOG_MODAL,</div><div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160;            GTK_MESSAGE_WARNING,</div><div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160;            GTK_BUTTONS_OK,</div><div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160;            _(<span class="stringliteral">&quot;Warning: This plugin requires GtkSocket, but it’s not available.&quot;</span>));</div><div class="line"><a name="l04024"></a><span class="lineno"> 4024</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="l04025"></a><span class="lineno"> 4025</span>&#160;        gtk_widget_show(dialog);</div><div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;        <span class="keywordflow">return</span> NULL;    <span class="comment">/* Should we destroy something before returning? */</span></div><div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160;    }</div><div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160;</div><div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160;    <span class="keywordflow">if</span> (cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;floating_toolbar_widget)</div><div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160;        gtk_widget_show(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;floating_toolbar_widget);</div><div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160;</div><div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="remmina__protocol__widget_8c.html#aab2f304822ccfd4979854ef1afd81771">remmina_protocol_widget_has_error</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>)) {</div><div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160;        printf(<span class="stringliteral">&quot;OK, an error occurred in initializing the protocol plugin before connecting. The error is %s.\n&quot;</span></div><div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;               <span class="stringliteral">&quot;ToDo: Put this string as error to show&quot;</span>, <a class="code" href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget_get_error_message</a>((<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *)cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>));</div><div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160;        <span class="keywordflow">return</span> cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>;</div><div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160;    }</div><div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;</div><div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160;</div><div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160;    <span class="comment">/* GTK window setup is done here, and we are almost ready to call remmina_protocol_widget_open_connection().</span></div><div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160;<span class="comment">     * But size has not yet been allocated by GTK</span></div><div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160;<span class="comment">     * to the widgets. If we are in RES_USE_INITIAL_WINDOW_SIZE resolution mode or scale is REMMINA_PROTOCOL_WIDGET_SCALE_MODE_DYNRES,</span></div><div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160;<span class="comment">     * we should wait for a size allocation from GTK for cnnobj-&gt;proto</span></div><div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160;<span class="comment">     * before connecting */</span></div><div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160;</div><div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160;    cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a09f89d6c0e4e52905aba1dd093e5c7f2">deferred_open_size_allocate_handler</a> = g_signal_connect(G_OBJECT(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>), <span class="stringliteral">&quot;size-allocate&quot;</span>, G_CALLBACK(<a class="code" href="rcw_8c.html#ad5ac9d52e0afc18834da73ef2bf18edd">rpw_size_allocated_on_connection</a>), NULL);</div><div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160;</div><div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;    <span class="keywordflow">return</span> cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#aea86c673d5c1600844e0d1642c856995">proto</a>;</div><div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160;}</div><div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;</div><div class="line"><a name="l04050"></a><span class="lineno"><a class="line" href="rcw_8h.html#a4204fcd726a60493b290dd5590ec693d"> 4050</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a4204fcd726a60493b290dd5590ec693d">rcw_set_delete_confirm_mode</a>(<a class="code" href="struct___remmina_connection_window.html">RemminaConnectionWindow</a> *cnnwin, <a class="code" href="rcw_8h.html#a2450dfe27d3ded59370ea879419f307f">RemminaConnectionWindowOnDeleteConfirmMode</a> mode)</div><div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;{</div><div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l04053"></a><span class="lineno"> 4053</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="l04054"></a><span class="lineno"> 4054</span>&#160;}</div><div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160;</div><div class="line"><a name="l04060"></a><span class="lineno"><a class="line" href="rcw_8h.html#a96e821dc68caa7f3380a513eb47aead7"> 4060</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#a96e821dc68caa7f3380a513eb47aead7">rco_destroy_message_panel</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, RemminaMessagePanel *mp)</div><div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160;{</div><div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160;    GList *childs, *cc;</div><div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160;    RemminaMessagePanel *lastPanel;</div><div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160;    gboolean was_visible;</div><div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160;    GtkWidget *page;</div><div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160;</div><div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160;    page = <a class="code" href="rcw_8c.html#a756830638372adda00be33468c8d3ed2">nb_find_page_by_cnnobj</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, cnnobj);</div><div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160;    childs = gtk_container_get_children(GTK_CONTAINER(page));</div><div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>&#160;    cc = g_list_first(childs);</div><div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160;    <span class="keywordflow">while</span> (cc != NULL) {</div><div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160;        <span class="keywordflow">if</span> ((RemminaMessagePanel *)cc-&gt;data == mp)</div><div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160;        cc = g_list_next(cc);</div><div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160;    }</div><div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>&#160;    g_list_free(childs);</div><div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;</div><div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;    <span class="keywordflow">if</span> (cc == NULL) {</div><div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160;        printf(<span class="stringliteral">&quot;Remmina: Warning, request to destroy a RemminaMessagePanel, which is not on the page\n&quot;</span>);</div><div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;    }</div><div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;    was_visible = gtk_widget_is_visible(GTK_WIDGET(mp));</div><div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160;    gtk_widget_destroy(GTK_WIDGET(mp));</div><div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;</div><div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;    <span class="comment">/* And now, show the last remaining message panel, if needed */</span></div><div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160;    <span class="keywordflow">if</span> (was_visible) {</div><div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;        childs = gtk_container_get_children(GTK_CONTAINER(page));</div><div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;        cc = g_list_first(childs);</div><div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;        lastPanel = NULL;</div><div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;        <span class="keywordflow">while</span> (cc != NULL) {</div><div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;            <span class="keywordflow">if</span> (G_TYPE_CHECK_INSTANCE_TYPE(cc-&gt;data, REMMINA_TYPE_MESSAGE_PANEL))</div><div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;                lastPanel = (RemminaMessagePanel *)cc-&gt;data;</div><div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160;            cc = g_list_next(cc);</div><div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160;        }</div><div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160;        g_list_free(childs);</div><div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160;        <span class="keywordflow">if</span> (lastPanel)</div><div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160;            gtk_widget_show(GTK_WIDGET(lastPanel));</div><div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160;    }</div><div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160;}</div><div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160;</div><div class="line"><a name="l04107"></a><span class="lineno"><a class="line" href="rcw_8h.html#ac5eda3a29c88ac88d80b5775e39ffcb4"> 4107</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="rcw_8c.html#ac5eda3a29c88ac88d80b5775e39ffcb4">rco_show_message_panel</a>(<a class="code" href="struct___remmina_connection_object.html">RemminaConnectionObject</a> *cnnobj, RemminaMessagePanel *mp)</div><div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160;{</div><div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160;    TRACE_CALL(__func__);</div><div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160;    GList *childs, *cc;</div><div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160;    GtkWidget *page;</div><div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160;</div><div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160;    <span class="comment">/* Hides all RemminaMessagePanels childs of cnnobj-&gt;page */</span></div><div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160;    page = <a class="code" href="rcw_8c.html#a756830638372adda00be33468c8d3ed2">nb_find_page_by_cnnobj</a>(cnnobj-&gt;<a class="code" href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">cnnwin</a>-&gt;<a class="code" href="struct___remmina_connection_window.html#a05faadfc5f0372cca2f4552b1882813c">priv</a>-&gt;notebook, cnnobj);</div><div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160;    childs = gtk_container_get_children(GTK_CONTAINER(page));</div><div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160;    cc = g_list_first(childs);</div><div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160;    <span class="keywordflow">while</span> (cc != NULL) {</div><div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160;        <span class="keywordflow">if</span> (G_TYPE_CHECK_INSTANCE_TYPE(cc-&gt;data, REMMINA_TYPE_MESSAGE_PANEL))</div><div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;            gtk_widget_hide(GTK_WIDGET(cc-&gt;data));</div><div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160;        cc = g_list_next(cc);</div><div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160;    }</div><div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160;    g_list_free(childs);</div><div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160;</div><div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160;    <span class="comment">/* Add the new message panel at the top of cnnobj-&gt;page */</span></div><div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;    gtk_box_pack_start(GTK_BOX(page), GTK_WIDGET(mp), FALSE, FALSE, 0);</div><div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160;    gtk_box_reorder_child(GTK_BOX(page), GTK_WIDGET(mp), 0);</div><div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160;</div><div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;    <span class="comment">/* Show the message panel */</span></div><div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160;    gtk_widget_show_all(GTK_WIDGET(mp));</div><div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160;</div><div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160;    <span class="comment">/* Focus the correct field of the RemminaMessagePanel */</span></div><div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160;    <a class="code" href="remmina__message__panel_8c.html#aacb1f47e5ad88086c1bda1b0a156c34d">remmina_message_panel_focus_auth_entry</a>(mp);</div><div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160;}</div><div class="ttc" id="rcw_8c_html_a6a61db497c95cf18aea60b2a3a5a31c0"><div class="ttname"><a href="rcw_8c.html#a6a61db497c95cf18aea60b2a3a5a31c0">rcw_find</a></div><div class="ttdeci">static RemminaConnectionWindow * rcw_find(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03687">rcw.c:3687</a></div></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#l01153">remmina_protocol_widget.c:1153</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#l00152">remmina_pref.h:152</a></div></div>
<div class="ttc" id="rcw_8c_html_a319e8c05fa25a57aa34875d48e182726"><div class="ttname"><a href="rcw_8c.html#a319e8c05fa25a57aa34875d48e182726">rco_update_toolbar</a></div><div class="ttdeci">static void rco_update_toolbar(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02352">rcw.c:2352</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a508044024b303c286a0e643e44d85a29"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a508044024b303c286a0e643e44d85a29">remmina_protocol_widget_get_error_message</a></div><div class="ttdeci">const gchar * remmina_protocol_widget_get_error_message(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01172">remmina_protocol_widget.c:1172</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a09f89d6c0e4e52905aba1dd093e5c7f2"><div class="ttname"><a href="struct___remmina_connection_object.html#a09f89d6c0e4e52905aba1dd093e5c7f2">_RemminaConnectionObject::deferred_open_size_allocate_handler</a></div><div class="ttdeci">gulong deferred_open_size_allocate_handler</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00167">rcw.c:167</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#l00111">remmina_pref.h:111</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#l00186">remmina_pref.h:186</a></div></div>
<div class="ttc" id="rcw_8c_html_a29df78f116c127e22a561beb4d8bae51"><div class="ttname"><a href="rcw_8c.html#a29df78f116c127e22a561beb4d8bae51">rcw_after_configure_scrolled</a></div><div class="ttdeci">static gboolean rcw_after_configure_scrolled(gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02630">rcw.c:2630</a></div></div>
<div class="ttc" id="rcw_8c_html_a8a789be4e849f79bf8064bc47ba85ea3"><div class="ttname"><a href="rcw_8c.html#a8a789be4e849f79bf8064bc47ba85ea3">rcw_focus_in</a></div><div class="ttdeci">static void rcw_focus_in(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02533">rcw.c:2533</a></div></div>
<div class="ttc" id="rcw_8c_html_a10c64d29db5f199eb4c86b0ae5a5a0bd"><div class="ttname"><a href="rcw_8c.html#a10c64d29db5f199eb4c86b0ae5a5a0bd">rcw_init</a></div><div class="ttdeci">static void rcw_init(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02796">rcw.c:2796</a></div></div>
<div class="ttc" id="rcw_8c_html_a604971831f6ef8dd750ad6d29abb73a9"><div class="ttname"><a href="rcw_8c.html#a604971831f6ef8dd750ad6d29abb73a9">rcw_toolbar_screenshot</a></div><div class="ttdeci">static void rcw_toolbar_screenshot(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01928">rcw.c:1928</a></div></div>
<div class="ttc" id="rcw_8c_html_abbc84b2c450f62c288ff827c5d2c5cd2"><div class="ttname"><a href="rcw_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="rcw_8c_source.html#l00381">rcw.c:381</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#l00592">remmina_protocol_widget.c:592</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#l00586">remmina_protocol_widget.c:586</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#l00161">remmina_pref.h:161</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="rcw_8c_html_a51bb9efba28252cbf96da6797710c919"><div class="ttname"><a href="rcw_8c.html#a51bb9efba28252cbf96da6797710c919">rcw_toolbar_minimize</a></div><div class="ttdeci">static void rcw_toolbar_minimize(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02066">rcw.c:2066</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#l00449">remmina_file.c:449</a></div></div>
<div class="ttc" id="rcw_8c_html_af8d1a8843f974fb8170d76f945a72080"><div class="ttname"><a href="rcw_8c.html#af8d1a8843f974fb8170d76f945a72080">rcw_update_tag</a></div><div class="ttdeci">static void rcw_update_tag(RemminaConnectionWindow *cnnwin, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02901">rcw.c:2901</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#l00086">remmina_widget_pool.c:86</a></div></div>
<div class="ttc" id="rcw_8c_html_a0ca9e87bf2fc3855699f80315d72314b"><div class="ttname"><a href="rcw_8c.html#a0ca9e87bf2fc3855699f80315d72314b">rcw_tb_drag_begin</a></div><div class="ttdeci">static void rcw_tb_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00781">rcw.c:781</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#l00609">remmina_protocol_widget.c:609</a></div></div>
<div class="ttc" id="rcw_8c_html_a0fbf6bfa4022b5f7b3286a68b0a3c446"><div class="ttname"><a href="rcw_8c.html#a0fbf6bfa4022b5f7b3286a68b0a3c446">rcw_toolbar_disconnect</a></div><div class="ttdeci">static void rcw_toolbar_disconnect(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02077">rcw.c:2077</a></div></div>
<div class="ttc" id="rcw_8c_html_ae09c2a83e973c3041254fb57bd58666f"><div class="ttname"><a href="rcw_8c.html#ae09c2a83e973c3041254fb57bd58666f">rco_call_protocol_feature_check</a></div><div class="ttdeci">static void rco_call_protocol_feature_check(GtkMenuItem *menuitem, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01680">rcw.c:1680</a></div></div>
<div class="ttc" id="rcw_8c_html_ab4b422fe9972866b74db8b763f8cb42e"><div class="ttname"><a href="rcw_8c.html#ab4b422fe9972866b74db8b763f8cb42e">rcw_toolbar_preferences_popdown</a></div><div class="ttdeci">static void rcw_toolbar_preferences_popdown(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01636">rcw.c:1636</a></div></div>
<div class="ttc" id="rcw_8c_html_af657fd4825d16d8d003a8b42fbd0c715"><div class="ttname"><a href="rcw_8c.html#af657fd4825d16d8d003a8b42fbd0c715">remmina_pref_file</a></div><div class="ttdeci">gchar * remmina_pref_file</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00072">rcw.c:72</a></div></div>
<div class="ttc" id="rcw_8c_html_a8f8175377bfbda4794674e619ca0fa8b"><div class="ttname"><a href="rcw_8c.html#a8f8175377bfbda4794674e619ca0fa8b">rcw_on_switch_page</a></div><div class="ttdeci">static void rcw_on_switch_page(GtkNotebook *notebook, GtkWidget *newpage, guint page_num, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03121">rcw.c:3121</a></div></div>
<div class="ttc" id="remmina__main_8c_html_a7740488de65c0e642895cc9dfba07b6e"><div class="ttname"><a href="remmina__main_8c.html#a7740488de65c0e642895cc9dfba07b6e">remmina_main_get_window</a></div><div class="ttdeci">GtkWindow * remmina_main_get_window()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01361">remmina_main.c:1361</a></div></div>
<div class="ttc" id="rcw_8c_html_ae0f54fdd4d7526ba4e110d04d7fb2844"><div class="ttname"><a href="rcw_8c.html#ae0f54fdd4d7526ba4e110d04d7fb2844">rco_set_scrolled_policy</a></div><div class="ttdeci">void rco_set_scrolled_policy(RemminaConnectionObject *cnnobj, GtkScrolledWindow *scrolled_window)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00874">rcw.c:874</a></div></div>
<div class="ttc" id="rcw_8c_html_ae0243af9dbe4b388a39ea432c3e580e5"><div class="ttname"><a href="rcw_8c.html#ae0243af9dbe4b388a39ea432c3e580e5">rcw_toolbar_tools_popdown</a></div><div class="ttdeci">void rcw_toolbar_tools_popdown(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01651">rcw.c:1651</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#l01117">remmina_protocol_widget.c:1117</a></div></div>
<div class="ttc" id="rcw_8c_html_acb1b2ab629603837e08f8d8de542316d"><div class="ttname"><a href="rcw_8c.html#acb1b2ab629603837e08f8d8de542316d">rcw_hostkey_func</a></div><div class="ttdeci">static gboolean rcw_hostkey_func(RemminaProtocolWidget *gp, guint keyval, gboolean release)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03506">rcw.c:3506</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="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__protocol__widget_8c_html_ab4c6435ef92e34a94270069ce1861907"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ab4c6435ef92e34a94270069ce1861907">remmina_protocol_widget_get_profile_remote_width</a></div><div class="ttdeci">gint remmina_protocol_widget_get_profile_remote_width(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01102">remmina_protocol_widget.c:1102</a></div></div>
<div class="ttc" id="rcw_8c_html_a06fc87d81c62e9abb8790b6e5713c55ba0c34d85df8279641afad9e3c9b3a54ce"><div class="ttname"><a href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55ba0c34d85df8279641afad9e3c9b3a54ce">LAST_SIGNAL</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00173">rcw.c:173</a></div></div>
<div class="ttc" id="rcw_8c_html_ab4b9810ed2b9ae62933b969c1d9acf3c"><div class="ttname"><a href="rcw_8c.html#ab4b9810ed2b9ae62933b969c1d9acf3c">rcw_toolbar_autofit</a></div><div class="ttdeci">static void rcw_toolbar_autofit(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00939">rcw.c:939</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#l00151">remmina_pref.h:151</a></div></div>
<div class="ttc" id="rcw_8c_html_a5e70819cad41022a0070c8102dd6dd6f"><div class="ttname"><a href="rcw_8c.html#a5e70819cad41022a0070c8102dd6dd6f">nb_set_current_page</a></div><div class="ttdeci">static void nb_set_current_page(GtkNotebook *notebook, GtkWidget *page)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01172">rcw.c:1172</a></div></div>
<div class="ttc" id="rcw_8h_html_a2450dfe27d3ded59370ea879419f307fae2b5eff3ff03f3633e217a3c31b3b43b"><div class="ttname"><a href="rcw_8h.html#a2450dfe27d3ded59370ea879419f307fae2b5eff3ff03f3633e217a3c31b3b43b">RCW_ONDELETE_CONFIRM_IF_2_OR_MORE</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8h_source.html#l00066">rcw.h:66</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#l00128">remmina_pref.h:128</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="rcw_8c_html_ad45e51f5a72b7ffe9bca86d336563757"><div class="ttname"><a href="rcw_8c.html#ad45e51f5a72b7ffe9bca86d336563757">rco_leave_protocol_widget</a></div><div class="ttdeci">static gboolean rco_leave_protocol_widget(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02460">rcw.c:2460</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#l00184">remmina_file.c:184</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#l00156">remmina_pref.h:156</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#l00644">remmina_public.c:644</a></div></div>
<div class="ttc" id="rcw_8c_html_a029feea88b7ef32425595efe7d270947"><div class="ttname"><a href="rcw_8c.html#a029feea88b7ef32425595efe7d270947">rco_on_disconnect</a></div><div class="ttdeci">void rco_on_disconnect(RemminaProtocolWidget *gp, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03774">rcw.c:3774</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#l00160">remmina_pref.h:160</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#l00154">remmina_pref.h:154</a></div></div>
<div class="ttc" id="rcw_8c_html_a95c64795004c7778c56068abeb1a6bd0"><div class="ttname"><a href="rcw_8c.html#a95c64795004c7778c56068abeb1a6bd0">rcw_create_scrolled</a></div><div class="ttdeci">static RemminaConnectionWindow * rcw_create_scrolled(gint width, gint height, gboolean maximize)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03233">rcw.c:3233</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#l01166">remmina_protocol_widget.c:1166</a></div></div>
<div class="ttc" id="rcw_8c_html_ac5eda3a29c88ac88d80b5775e39ffcb4"><div class="ttname"><a href="rcw_8c.html#ac5eda3a29c88ac88d80b5775e39ffcb4">rco_show_message_panel</a></div><div class="ttdeci">void rco_show_message_panel(RemminaConnectionObject *cnnobj, RemminaMessagePanel *mp)</div><div class="ttdoc">Each cnnobj-&gt;page can have more than one RemminaMessagePanel, but 0 or 1 are visible. </div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04107">rcw.c:4107</a></div></div>
<div class="ttc" id="remmina_8h_html"><div class="ttname"><a href="remmina_8h.html">remmina.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a7c15fa81642c52ef382e1dbe34ffb6ac"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_domain(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01544">remmina_protocol_widget.c:1544</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291dadb8aecbb1eda207dd5e18e665053ac27"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291dadb8aecbb1eda207dd5e18e665053ac27">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="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="rcw_8c_source.html#l00162">rcw.c:162</a></div></div>
<div class="ttc" id="rcw_8c_html_ad3c2fe67b137c757bd21b79ad5dcc5ff"><div class="ttname"><a href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a></div><div class="ttdeci">GtkWidget * rcw_open_from_file_full(RemminaFile *remminafile, GCallback disconnect_cb, gpointer data, guint *handler)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03898">rcw.c:3898</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#l00057">remmina_widget_pool.c:57</a></div></div>
<div class="ttc" id="rcw_8c_html_a4ab5e41b9227097a9eec6f73dcb453ea"><div class="ttname"><a href="rcw_8c.html#a4ab5e41b9227097a9eec6f73dcb453ea">rcw_ftb_drag_drop</a></div><div class="ttdeci">static gboolean rcw_ftb_drag_drop(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03386">rcw.c:3386</a></div></div>
<div class="ttc" id="rcw_8c_html_a010af24147287ef89f605e71ef315475"><div class="ttname"><a href="rcw_8c.html#a010af24147287ef89f605e71ef315475">rcw_focus_out</a></div><div class="ttdeci">static void rcw_focus_out(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02554">rcw.c:2554</a></div></div>
<div class="ttc" id="rcw_8c_html_aba6a0bf71cc04aa6ac20920d4dd219d2"><div class="ttname"><a href="rcw_8c.html#aba6a0bf71cc04aa6ac20920d4dd219d2">rcw_toolbar_pin</a></div><div class="ttdeci">static void rcw_toolbar_pin(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02709">rcw.c:2709</a></div></div>
<div class="ttc" id="rcw_8c_html_aa7de86386944c333dc9f4bf87f819f9c"><div class="ttname"><a href="rcw_8c.html#aa7de86386944c333dc9f4bf87f819f9c">rcw_destroy</a></div><div class="ttdeci">static void rcw_destroy(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00659">rcw.c:659</a></div></div>
<div class="ttc" id="rcw_8c_html_a1647e25501f5ee2852dfd27a10e0d8c8"><div class="ttname"><a href="rcw_8c.html#a1647e25501f5ee2852dfd27a10e0d8c8">rcw_toolbar_scaled_mode</a></div><div class="ttdeci">static void rcw_toolbar_scaled_mode(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01615">rcw.c:1615</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da4f58be8cee9e890445909866d5b11eaf"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da4f58be8cee9e890445909866d5b11eaf">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="rcw_8c_html_ad3c92ea50f889b1252614586d9f7a23e"><div class="ttname"><a href="rcw_8c.html#ad3c92ea50f889b1252614586d9f7a23e">rcw_create_floating_toolbar</a></div><div class="ttdeci">static void rcw_create_floating_toolbar(RemminaConnectionWindow *cnnwin, gint mode)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02717">rcw.c:2717</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da069738542d6980f9594299ab57221a7f"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da069738542d6980f9594299ab57221a7f">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__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="rcw_8c_html_ad13167e478305c3fae8a4cea1d0e2f76"><div class="ttname"><a href="rcw_8c.html#ad13167e478305c3fae8a4cea1d0e2f76">rcw_toolbar_preferences_radio</a></div><div class="ttdeci">void rcw_toolbar_preferences_radio(RemminaConnectionObject *cnnobj, RemminaFile *remminafile, GtkWidget *menu, const RemminaProtocolFeature *feature, const gchar *domain, gboolean enabled)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01701">rcw.c:1701</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#l00056">remmina_exec.h:56</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ac705ffa194e3c3457e9a0a1bd6c79be8"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ac705ffa194e3c3457e9a0a1bd6c79be8">remmina_protocol_widget_setup</a></div><div class="ttdeci">void remmina_protocol_widget_setup(RemminaProtocolWidget *gp, RemminaFile *remminafile, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01758">remmina_protocol_widget.c:1758</a></div></div>
<div class="ttc" id="rcw_8c_html_a0cb504e984baf9ad7ba06b03da6ab746"><div class="ttname"><a href="rcw_8c.html#a0cb504e984baf9ad7ba06b03da6ab746">rcw_create_overlay_ftb_overlay</a></div><div class="ttdeci">static void rcw_create_overlay_ftb_overlay(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03302">rcw.c:3302</a></div></div>
<div class="ttc" id="rcw_8c_html_adae469553aa0647d0df5d88b180e7cd7"><div class="ttname"><a href="rcw_8c.html#adae469553aa0647d0df5d88b180e7cd7">rcw_delete</a></div><div class="ttdeci">gboolean rcw_delete(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00624">rcw.c:624</a></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="rcw_8c_html_a7abfab8a6281126baaf5f443ff4adda1"><div class="ttname"><a href="rcw_8c.html#a7abfab8a6281126baaf5f443ff4adda1">rcw_toolbar_tools</a></div><div class="ttdeci">static void rcw_toolbar_tools(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01822">rcw.c:1822</a></div></div>
<div class="ttc" id="rcw_8c_html_a1af82a0b7f5fd27477d6f4c55ed0898b"><div class="ttname"><a href="rcw_8c.html#a1af82a0b7f5fd27477d6f4c55ed0898b">rcw_toolbar_dynres</a></div><div class="ttdeci">static void rcw_toolbar_dynres(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01591">rcw.c:1591</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#l00134">remmina_pref.h:134</a></div></div>
<div class="ttc" id="rcw_8c_html_ac973ca10137b1f285f45785f93966fd5"><div class="ttname"><a href="rcw_8c.html#ac973ca10137b1f285f45785f93966fd5">rcw_toolbar_duplicate</a></div><div class="ttdeci">static void rcw_toolbar_duplicate(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01912">rcw.c:1912</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__message__panel_8c_html_aacb1f47e5ad88086c1bda1b0a156c34d"><div class="ttname"><a href="remmina__message__panel_8c.html#aacb1f47e5ad88086c1bda1b0a156c34d">remmina_message_panel_focus_auth_entry</a></div><div class="ttdeci">void remmina_message_panel_focus_auth_entry(RemminaMessagePanel *mp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00653">remmina_message_panel.c:653</a></div></div>
<div class="ttc" id="rcw_8c_html_abd0a6de10dd92a8a84f24b8e66da5767"><div class="ttname"><a href="rcw_8c.html#abd0a6de10dd92a8a84f24b8e66da5767">rcw_scaler_keep_aspect</a></div><div class="ttdeci">static void rcw_scaler_keep_aspect(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01408">rcw.c:1408</a></div></div>
<div class="ttc" id="rcw_8c_html_a70d89903e3279a1650dc0684f26ed9c2"><div class="ttname"><a href="rcw_8c.html#a70d89903e3279a1650dc0684f26ed9c2">rcw_tb_drag_drop</a></div><div class="ttdeci">static gboolean rcw_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="rcw_8c_source.html#l00739">rcw.c:739</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="rcw_8c_html_ae747a0b62a922df1de61c62092757b19"><div class="ttname"><a href="rcw_8c.html#ae747a0b62a922df1de61c62092757b19">rcw_scaler_expand</a></div><div class="ttdeci">static void rcw_scaler_expand(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01394">rcw.c:1394</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="rcw_8c_html_a3a531286fa321e0931475b5afc86ec49"><div class="ttname"><a href="rcw_8c.html#a3a531286fa321e0931475b5afc86ec49">rco_call_protocol_feature_radio</a></div><div class="ttdeci">static void rco_call_protocol_feature_radio(GtkMenuItem *menuitem, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01665">rcw.c:1665</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="rcw_8c_source.html#l00158">rcw.c:158</a></div></div>
<div class="ttc" id="rcw_8c_html_afc62938ff8bcaad6b743f50ecf36d292"><div class="ttname"><a href="rcw_8c.html#afc62938ff8bcaad6b743f50ecf36d292">rcw_place_toolbar</a></div><div class="ttdeci">static void rcw_place_toolbar(GtkToolbar *toolbar, GtkGrid *grid, GtkWidget *sibling, int toolbar_placement)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02318">rcw.c:2318</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#l00153">remmina_pref.h:153</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#l00615">remmina_protocol_widget.c:615</a></div></div>
<div class="ttc" id="rcw_8c_html_a3928a83b083a55e3af1ed81da49b25eb"><div class="ttname"><a href="rcw_8c.html#a3928a83b083a55e3af1ed81da49b25eb">rco_create_tab_label</a></div><div class="ttdeci">static GtkWidget * rco_create_tab_label(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02985">rcw.c:2985</a></div></div>
<div class="ttc" id="rcw_8c_html_a96e821dc68caa7f3380a513eb47aead7"><div class="ttname"><a href="rcw_8c.html#a96e821dc68caa7f3380a513eb47aead7">rco_destroy_message_panel</a></div><div class="ttdeci">void rco_destroy_message_panel(RemminaConnectionObject *cnnobj, RemminaMessagePanel *mp)</div><div class="ttdoc">Deletes a RemminaMessagePanel from the current cnnobj and if it was visible, make visible the last re...</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04060">rcw.c:4060</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5a4a9b04df122e3a20c3ae51d90280fea7">REMMINA_PROTOCOL_FEATURE_TYPE_GTKSOCKET</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00050">types.h:50</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a5aaadd752a3275a0a8e0018a3dd669f8"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a5aaadd752a3275a0a8e0018a3dd669f8">remmina_protocol_widget_set_hostkey_func</a></div><div class="ttdeci">void remmina_protocol_widget_set_hostkey_func(RemminaProtocolWidget *gp, RemminaHostkeyFunc func)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00681">remmina_protocol_widget.c:681</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="rcw_8c_source.html#l00152">rcw.c:152</a></div></div>
<div class="ttc" id="rcw_8c_html_a3463779f231df73defb8ff86f27ec9ef"><div class="ttname"><a href="rcw_8c.html#a3463779f231df73defb8ff86f27ec9ef">rco_viewport_fullscreen_mode</a></div><div class="ttdeci">static void rco_viewport_fullscreen_mode(GtkWidget *widget, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01304">rcw.c:1304</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#l01129">remmina_protocol_widget.c:1129</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#l01141">remmina_protocol_widget.c:1141</a></div></div>
<div class="ttc" id="rcw_8c_html_a0e69db7ebd2d2998d34fbf6853ce2f27"><div class="ttname"><a href="rcw_8c.html#a0e69db7ebd2d2998d34fbf6853ce2f27">rcw_update_pin</a></div><div class="ttdeci">static void rcw_update_pin(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02698">rcw.c:2698</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#l01147">remmina_protocol_widget.c:1147</a></div></div>
<div class="ttc" id="rcw_8c_html_a3237ef26caa19b9926b485f94132cea7"><div class="ttname"><a href="rcw_8c.html#a3237ef26caa19b9926b485f94132cea7">rco_on_connect</a></div><div class="ttdeci">void rco_on_connect(RemminaProtocolWidget *gp, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03721">rcw.c:3721</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da95463ce23d03eb31b2bb61c29dab0076"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da95463ce23d03eb31b2bb61c29dab0076">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="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="rcw_8c_source.html#l00156">rcw.c:156</a></div></div>
<div class="ttc" id="rcw_8c_html_a06fc87d81c62e9abb8790b6e5713c55baa9941863b5633ddecb019f793f2f7668"><div class="ttname"><a href="rcw_8c.html#a06fc87d81c62e9abb8790b6e5713c55baa9941863b5633ddecb019f793f2f7668">TOOLBARPLACE_SIGNAL</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00172">rcw.c:172</a></div></div>
<div class="ttc" id="rcw_8c_html_a756830638372adda00be33468c8d3ed2"><div class="ttname"><a href="rcw_8c.html#a756830638372adda00be33468c8d3ed2">nb_find_page_by_cnnobj</a></div><div class="ttdeci">static GtkWidget * nb_find_page_by_cnnobj(GtkNotebook *notebook, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02931">rcw.c:2931</a></div></div>
<div class="ttc" id="rcw_8c_html_a71284e0ce3acb9fce6d4ecf6fea1a3f5"><div class="ttname"><a href="rcw_8c.html#a71284e0ce3acb9fce6d4ecf6fea1a3f5">rcw_keyboard_grab_retry</a></div><div class="ttdeci">static gboolean rcw_keyboard_grab_retry(gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00470">rcw.c:470</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#l00842">remmina_pref.c:842</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_aac34dfe6c6b73b43a4656c9dce041034a86e471283504c1e470e4d0e7b8b5842f"><div class="ttname"><a href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e471283504c1e470e4d0e7b8b5842f">UNDEFINED_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="rcw_8c_html_a423aaf9a4d3eed6dac67de5a8cc24a18"><div class="ttname"><a href="rcw_8c.html#a423aaf9a4d3eed6dac67de5a8cc24a18">rcw_floating_toolbar_hide</a></div><div class="ttdeci">static gboolean rcw_floating_toolbar_hide(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02573">rcw.c:2573</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955"><div class="ttname"><a href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a61339886524adf33eaf7b5df6dd57955">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="rcw_8c_html_a961e539a6f6ccbe73a301869c6960ab6"><div class="ttname"><a href="rcw_8c.html#a961e539a6f6ccbe73a301869c6960ab6">rcw_floating_toolbar_on_enter</a></div><div class="ttdeci">static gboolean rcw_floating_toolbar_on_enter(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02441">rcw.c:2441</a></div></div>
<div class="ttc" id="rcw_8c_html_a7e71031254421ccb10e0c29699cc9523"><div class="ttname"><a href="rcw_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="rcw_8c_source.html#l00203">rcw.c:203</a></div></div>
<div class="ttc" id="rcw_8c_html_a56e026ede7a3e50374579ad538e33db7"><div class="ttname"><a href="rcw_8c.html#a56e026ede7a3e50374579ad538e33db7">cb_lasterror_confirmed</a></div><div class="ttdeci">static void cb_lasterror_confirmed(void *cbdata, int btn)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03768">rcw.c:3768</a></div></div>
<div class="ttc" id="remmina__main_8h_html"><div class="ttname"><a href="remmina__main_8h.html">remmina_main.h</a></div></div>
<div class="ttc" id="rcw_8c_html_a23d848e45205a65618c84bb70b882b3f"><div class="ttname"><a href="rcw_8c.html#a23d848e45205a65618c84bb70b882b3f">rcw_set_toolbar_visibility</a></div><div class="ttdeci">static void rcw_set_toolbar_visibility(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02428">rcw.c:2428</a></div></div>
<div class="ttc" id="rcw_8c_html_acfe9306fecab6d93b5ab51571b69fc6a"><div class="ttname"><a href="rcw_8c.html#acfe9306fecab6d93b5ab51571b69fc6a">rco_switch_page_activate</a></div><div class="ttdeci">void rco_switch_page_activate(GtkMenuItem *menuitem, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01475">rcw.c:1475</a></div></div>
<div class="ttc" id="rcw_8c_html_a0d4ebd91bc6568257031111f56689a76"><div class="ttname"><a href="rcw_8c.html#a0d4ebd91bc6568257031111f56689a76">rcw_migrate</a></div><div class="ttdeci">static void rcw_migrate(RemminaConnectionWindow *from, RemminaConnectionWindow *to)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01212">rcw.c:1212</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0ed680fdb405e7195d9f14032851eebba7ed1345b9857b7029a8e0c61918dd95d"><div class="ttname"><a href="remmina__pref_8h.html#a0ed680fdb405e7195d9f14032851eebba7ed1345b9857b7029a8e0c61918dd95d">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="rcw_8c_html_a8cb8bd7679116f409b29399a5d14c527"><div class="ttname"><a href="rcw_8c.html#a8cb8bd7679116f409b29399a5d14c527">rco_get_desktop_size</a></div><div class="ttdeci">static void rco_get_desktop_size(RemminaConnectionObject *cnnobj, gint *width, gint *height)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00858">rcw.c:858</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#l00069">types.h:69</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a6bcbf4cc3a58ed4ee9f087b4270d8fd6"><div class="ttname"><a href="remmina__pref_8c.html#a6bcbf4cc3a58ed4ee9f087b4270d8fd6">remmina_pref_get_value</a></div><div class="ttdeci">gchar * remmina_pref_get_value(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01043">remmina_pref.c:1043</a></div></div>
<div class="ttc" id="rcw_8c_html_affd8155adb04dc7ffbb7f4fff379dc47"><div class="ttname"><a href="rcw_8c.html#affd8155adb04dc7ffbb7f4fff379dc47">rcw_get_visible_cnnobj</a></div><div class="ttdeci">static RemminaConnectionObject * rcw_get_visible_cnnobj(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00367">rcw.c:367</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a6399c3828908e36ed6202b5599bd206b"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a6399c3828908e36ed6202b5599bd206b">remmina_protocol_widget_open_connection</a></div><div class="ttdeci">void remmina_protocol_widget_open_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00300">remmina_protocol_widget.c:300</a></div></div>
<div class="ttc" id="remmina__log_8c_html_aa90e751e7bd5d477179188273c095d9a"><div class="ttname"><a href="remmina__log_8c.html#aa90e751e7bd5d477179188273c095d9a">remmina_debug</a></div><div class="ttdeci">void remmina_debug(const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00194">remmina_log.c:194</a></div></div>
<div class="ttc" id="rcw_8h_html_a2450dfe27d3ded59370ea879419f307f"><div class="ttname"><a href="rcw_8h.html#a2450dfe27d3ded59370ea879419f307f">RemminaConnectionWindowOnDeleteConfirmMode</a></div><div class="ttdeci">RemminaConnectionWindowOnDeleteConfirmMode</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8h_source.html#l00065">rcw.h:65</a></div></div>
<div class="ttc" id="rcw_8c_html_ae1c994940909e60d4f565be0e0478b34"><div class="ttname"><a href="rcw_8c.html#ae1c994940909e60d4f565be0e0478b34">rco_check_resize</a></div><div class="ttdeci">static void rco_check_resize(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01011">rcw.c:1011</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="rcw_8h_html_a4bfcfdfd9d43712dd05d90ed3fd47dec"><div class="ttname"><a href="rcw_8h.html#a4bfcfdfd9d43712dd05d90ed3fd47dec">RemminaConnectionWindowPriv</a></div><div class="ttdeci">struct _RemminaConnectionWindowPriv RemminaConnectionWindowPriv</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8h_source.html#l00051">rcw.h:51</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="rcw_8c_html_a21e0a6e416667f30c2b1599b8b24faec"><div class="ttname"><a href="rcw_8c.html#a21e0a6e416667f30c2b1599b8b24faec">G_DEFINE_TYPE</a></div><div class="ttdeci">G_DEFINE_TYPE(RemminaConnectionWindow, rcw, GTK_TYPE_WINDOW)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00075">rcw.c:75</a></div></div>
<div class="ttc" id="rcw_8c_html_a5f5a9e8173b3ce9831f1771089fe778a"><div class="ttname"><a href="rcw_8c.html#a5f5a9e8173b3ce9831f1771089fe778a">rcw_map_event_fullscreen</a></div><div class="ttdeci">static gboolean rcw_map_event_fullscreen(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02837">rcw.c:2837</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="ttdoc">Send to the plugin some keystrokes. </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="rcw_8c_html_ab7dc553cbd2005feb77163cf79f48f6d"><div class="ttname"><a href="rcw_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="rcw_8c_source.html#l01099">rcw.c:1099</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="rcw_8c_html_af99dc9a4135deff0a11c2d56877bad93"><div class="ttname"><a href="rcw_8c.html#af99dc9a4135deff0a11c2d56877bad93">rcw_on_switch_page_finalsel</a></div><div class="ttdeci">static gboolean rcw_on_switch_page_finalsel(gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03092">rcw.c:3092</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4af179642fefe2ae4787e2d593519010dc"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4af179642fefe2ae4787e2d593519010dc">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__utils_8h_html"><div class="ttname"><a href="remmina__utils_8h.html">remmina_utils.h</a></div><div class="ttdoc">General utility functions, non-GTK related. </div></div>
<div class="ttc" id="rcw_8c_html_a73532ae8f8fa05711035bc3d4c82ac2a"><div class="ttname"><a href="rcw_8c.html#a73532ae8f8fa05711035bc3d4c82ac2a">rcw_ftb_drag_begin</a></div><div class="ttdeci">static void rcw_ftb_drag_begin(GtkWidget *widget, GdkDragContext *context, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03415">rcw.c:3415</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="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#l00115">remmina_pref.h:115</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#l00067">types.h:67</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__message__panel_8h_html"><div class="ttname"><a href="remmina__message__panel_8h.html">remmina_message_panel.h</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4790f45dcc812c1b00184a2edccdddf5a18b9b9f60fb377c589ff11b5388fee33"><div class="ttname"><a href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5a18b9b9f60fb377c589ff11b5388fee33">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__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#l01781">remmina_protocol_widget.c:1781</a></div></div>
<div class="ttc" id="rcw_8c_html_a6515e726b5d3e4c0a9aefc3cf20f3d90"><div class="ttname"><a href="rcw_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="rcw_8c_source.html#l00194">rcw.c:194</a></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="rcw_8c_html_ad5ac9d52e0afc18834da73ef2bf18edd"><div class="ttname"><a href="rcw_8c.html#ad5ac9d52e0afc18834da73ef2bf18edd">rpw_size_allocated_on_connection</a></div><div class="ttdeci">static void rpw_size_allocated_on_connection(GtkWidget *w, GdkRectangle *allocation, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03879">rcw.c:3879</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#l00068">types.h:68</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#l00187">remmina_pref.h:187</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#l00057">types.h:57</a></div></div>
<div class="ttc" id="rcw_8c_html_aa1044979d82ce73db51117de1262832f"><div class="ttname"><a href="rcw_8c.html#aa1044979d82ce73db51117de1262832f">rcw_toolbar_autofit_restore</a></div><div class="ttdeci">gboolean rcw_toolbar_autofit_restore(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00903">rcw.c:903</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="rcw_8c_source.html#l00157">rcw.c:157</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#l00061">types.h:61</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#l00533">remmina_plugin_manager.c:533</a></div></div>
<div class="ttc" id="rcw_8c_html_a0aef50fe641f959f5715ab7e01bfd23d"><div class="ttname"><a href="rcw_8c.html#a0aef50fe641f959f5715ab7e01bfd23d">rcw_on_page_removed</a></div><div class="ttdeci">static void rcw_on_page_removed(GtkNotebook *notebook, GtkWidget *child, guint page_num, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03141">rcw.c:3141</a></div></div>
<div class="ttc" id="rcw_8c_html_a3f9d79b58064438a513d47b4ff690b73"><div class="ttname"><a href="rcw_8c.html#a3f9d79b58064438a513d47b4ff690b73">rcw_new</a></div><div class="ttdeci">static RemminaConnectionWindow * rcw_new(gboolean fullscreen, int full_screen_target_monitor)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02868">rcw.c:2868</a></div></div>
<div class="ttc" id="rcw_8c_html_a27f545a9630a481f4df747478cd227fb"><div class="ttname"><a href="rcw_8c.html#a27f545a9630a481f4df747478cd227fb">rcw_on_leave_notify_event</a></div><div class="ttdeci">static gboolean rcw_on_leave_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02449">rcw.c:2449</a></div></div>
<div class="ttc" id="rcw_8c_html_a4204fcd726a60493b290dd5590ec693d"><div class="ttname"><a href="rcw_8c.html#a4204fcd726a60493b290dd5590ec693d">rcw_set_delete_confirm_mode</a></div><div class="ttdeci">void rcw_set_delete_confirm_mode(RemminaConnectionWindow *cnnwin, RemminaConnectionWindowOnDeleteConfirmMode mode)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04050">rcw.c:4050</a></div></div>
<div class="ttc" id="rcw_8c_html_adca4317296daf9b6c51c4258a70faf5a"><div class="ttname"><a href="rcw_8c.html#adca4317296daf9b6c51c4258a70faf5a">rco_on_update_align</a></div><div class="ttdeci">void rco_on_update_align(RemminaProtocolWidget *gp, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03832">rcw.c:3832</a></div></div>
<div class="ttc" id="rcw_8c_html_a60f9f738cfd988cfc7cc39997538e4e0"><div class="ttname"><a href="rcw_8c.html#a60f9f738cfd988cfc7cc39997538e4e0">rcw_notify_widget_toolbar_placement</a></div><div class="ttdeci">gboolean rcw_notify_widget_toolbar_placement(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00710">rcw.c:710</a></div></div>
<div class="ttc" id="rcw_8c_html_a7b60c2cb02c4a893d8d2054f0bb53790"><div class="ttname"><a href="rcw_8c.html#a7b60c2cb02c4a893d8d2054f0bb53790">rco_scrolled_fullscreen_mode</a></div><div class="ttdeci">static void rco_scrolled_fullscreen_mode(GtkWidget *widget, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01315">rcw.c:1315</a></div></div>
<div class="ttc" id="rcw_8c_html_a2690c97a972e458dea9f5c0566ea50b9"><div class="ttname"><a href="rcw_8c.html#a2690c97a972e458dea9f5c0566ea50b9">rco_disconnect_current_page</a></div><div class="ttdeci">static void rco_disconnect_current_page(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00411">rcw.c:411</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#l00518">remmina_file.c:518</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#l00162">remmina_pref.h:162</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_a424cabdcff647797061e7482049d62a7"><div class="ttname"><a href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a></div><div class="ttdeci">void remmina_exec_command(RemminaCommandType command, const gchar *data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00214">remmina_exec.c:214</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#l00056">types.h:56</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a1ef27b953decb0c707ec9a18da47a38f"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a1ef27b953decb0c707ec9a18da47a38f">remmina_gtksocket_available</a></div><div class="ttdeci">gboolean remmina_gtksocket_available()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00151">remmina_plugin_manager.c:151</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#l00174">remmina_pref.h:174</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#l00158">remmina_pref.h:158</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html_ab89fba118812616a3e47504cfe4f3390"><div class="ttname"><a href="remmina__protocol__widget_8h.html#ab89fba118812616a3e47504cfe4f3390">RemminaHostkeyFunc</a></div><div class="ttdeci">gboolean(* RemminaHostkeyFunc)(RemminaProtocolWidget *gp, guint keyval, gboolean release)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00113">remmina_protocol_widget.h:113</a></div></div>
<div class="ttc" id="rcw_8c_html_a7d26c5dd2d9e941486a7a9bfe0f81304"><div class="ttname"><a href="rcw_8c.html#a7d26c5dd2d9e941486a7a9bfe0f81304">rcw_toolbar_switch_page</a></div><div class="ttdeci">static void rcw_toolbar_switch_page(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01496">rcw.c:1496</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#l00131">remmina_pref.h:131</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="rcw_8c_source.html#l00165">rcw.c:165</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#l00185">remmina_pref.h:185</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#l00157">remmina_pref.h:157</a></div></div>
<div class="ttc" id="rcw_8c_html_a366b8717c9906fdb1938659dc2ab1b03"><div class="ttname"><a href="rcw_8c.html#a366b8717c9906fdb1938659dc2ab1b03">rcw_toolbar_place_signal</a></div><div class="ttdeci">static void rcw_toolbar_place_signal(RemminaConnectionWindow *cnnwin, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02780">rcw.c:2780</a></div></div>
<div class="ttc" id="rcw_8c_html_a6d710132769d5f21989af6844c04b43f"><div class="ttname"><a href="rcw_8c.html#a6d710132769d5f21989af6844c04b43f">rcw_on_notebook_create_window</a></div><div class="ttdeci">static GtkNotebook * rcw_on_notebook_create_window(GtkNotebook *notebook, GtkWidget *page, gint x, gint y, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03151">rcw.c:3151</a></div></div>
<div class="ttc" id="rcw_8c_html_a1cc1f656edfbe0d9c5483ac858b76517"><div class="ttname"><a href="rcw_8c.html#a1cc1f656edfbe0d9c5483ac858b76517">RemminaConnectionObject</a></div><div class="ttdeci">struct _RemminaConnectionObject RemminaConnectionObject</div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html_aae1dfb6ff52460c80a3adf80d4934f67"><div class="ttname"><a href="struct___remmina_protocol_widget.html#aae1dfb6ff52460c80a3adf80d4934f67">_RemminaProtocolWidget::cnnobj</a></div><div class="ttdeci">RemminaConnectionObject * cnnobj</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00059">remmina_protocol_widget.h:59</a></div></div>
<div class="ttc" id="rcw_8c_html_ac3e012d5e499aebb8fcbef55f505f2f3"><div class="ttname"><a href="rcw_8c.html#ac3e012d5e499aebb8fcbef55f505f2f3">rcw_pointer_grab</a></div><div class="ttdeci">static void rcw_pointer_grab(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00494">rcw.c:494</a></div></div>
<div class="ttc" id="rcw_8c_html_a3cc04a8362110361d062a840b8ae5f64"><div class="ttname"><a href="rcw_8c.html#a3cc04a8362110361d062a840b8ae5f64">rco_call_protocol_feature_activate</a></div><div class="ttdeci">static void rco_call_protocol_feature_activate(GtkMenuItem *menuitem, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01692">rcw.c:1692</a></div></div>
<div class="ttc" id="rcw_8c_html_a2ea4e41deacf11e9b9b71e7eac06869e"><div class="ttname"><a href="rcw_8c.html#a2ea4e41deacf11e9b9b71e7eac06869e">rcw_signals</a></div><div class="ttdeci">static guint rcw_signals[LAST_SIGNAL]</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00176">rcw.c:176</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a14684e3222e6afb1b43d77634a174767"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a14684e3222e6afb1b43d77634a174767">remmina_protocol_widget_update_remote_resolution</a></div><div class="ttdeci">void remmina_protocol_widget_update_remote_resolution(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01829">remmina_protocol_widget.c:1829</a></div></div>
<div class="ttc" id="rcw_8c_html_afcbac7a8924d543a58039037837710ba"><div class="ttname"><a href="rcw_8c.html#afcbac7a8924d543a58039037837710ba">rco_create_scrolled_container</a></div><div class="ttdeci">static GtkWidget * rco_create_scrolled_container(RemminaConnectionObject *cnnobj, int view_mode)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00884">rcw.c:884</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a5127551ff44a7a2d7b660fbdbd00afe3"><div class="ttname"><a href="struct___remmina_pref.html#a5127551ff44a7a2d7b660fbdbd00afe3">_RemminaPref::periodic_usage_stats_permitted</a></div><div class="ttdeci">gboolean periodic_usage_stats_permitted</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00200">remmina_pref.h:200</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aa41324b7175c46bb42b978332db95d22"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aa41324b7175c46bb42b978332db95d22">remmina_protocol_widget_close_connection</a></div><div class="ttdeci">void remmina_protocol_widget_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00432">remmina_protocol_widget.c:432</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4790f45dcc812c1b00184a2edccdddf5aedb9eb53656e5315bf173ec9d0f5b558"><div class="ttname"><a href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5aedb9eb53656e5315bf173ec9d0f5b558">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__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#l00066">types.h:66</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#l00555">remmina_protocol_widget.c:555</a></div></div>
<div class="ttc" id="rcw_8c_html_a82c93bbb1ab73807b366b86928c37946"><div class="ttname"><a href="rcw_8c.html#a82c93bbb1ab73807b366b86928c37946">rcw_kp_ungrab</a></div><div class="ttdeci">static void rcw_kp_ungrab(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00419">rcw.c:419</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#l00212">remmina_protocol_widget.c:212</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4caf8d8f829279fba122163d961608a4ad947c85d5ea917958d90298dab033b2c"><div class="ttname"><a href="remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4ad947c85d5ea917958d90298dab033b2c">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="rcw_8c_html_aaef82069514845b2987ac0659993cecd"><div class="ttname"><a href="rcw_8c.html#aaef82069514845b2987ac0659993cecd">rco_closewin</a></div><div class="ttdeci">void rco_closewin(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02952">rcw.c:2952</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a4790f45dcc812c1b00184a2edccdddf5afb68a1eeda5303774bbc922ef8d364e9"><div class="ttname"><a href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5afb68a1eeda5303774bbc922ef8d364e9">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="rcw_8c_html_a1aa257faac7a8b75c12a286ad20ce823"><div class="ttname"><a href="rcw_8c.html#a1aa257faac7a8b75c12a286ad20ce823">rcw_on_configure</a></div><div class="ttdeci">static gboolean rcw_on_configure(GtkWidget *widget, GdkEventConfigure *event, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02666">rcw.c:2666</a></div></div>
<div class="ttc" id="rcw_8c_html_a9ffed90419a36560bf0c4d213a853c28"><div class="ttname"><a href="rcw_8c.html#a9ffed90419a36560bf0c4d213a853c28">rcw_fullscreen_option_popdown</a></div><div class="ttdeci">static void rcw_fullscreen_option_popdown(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01326">rcw.c:1326</a></div></div>
<div class="ttc" id="rcw_8c_html_a366d1ea1fc39ddc72c384d07d47a25d9"><div class="ttname"><a href="rcw_8c.html#a366d1ea1fc39ddc72c384d07d47a25d9">rcw_toolbar_preferences_check</a></div><div class="ttdeci">void rcw_toolbar_preferences_check(RemminaConnectionObject *cnnobj, GtkWidget *menu, const RemminaProtocolFeature *feature, const gchar *domain, gboolean enabled)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01735">rcw.c:1735</a></div></div>
<div class="ttc" id="rcw_8c_html_a11bb04a25b6c8a79af3cb34f22e28dd8"><div class="ttname"><a href="rcw_8c.html#a11bb04a25b6c8a79af3cb34f22e28dd8">rcw_create_fullscreen</a></div><div class="ttdeci">static RemminaConnectionWindow * rcw_create_fullscreen(GtkWindow *old, gint view_mode)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03438">rcw.c:3438</a></div></div>
<div class="ttc" id="rcw_8c_html_a0cc69ded61b733b2d01a489f1c3c72d3"><div class="ttname"><a href="rcw_8c.html#a0cc69ded61b733b2d01a489f1c3c72d3">rcw_toolbar_fullscreen</a></div><div class="ttdeci">static void rcw_toolbar_fullscreen(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01287">rcw.c:1287</a></div></div>
<div class="ttc" id="rcw_8c_html_a2caca4bce3a8ec22a99ede169746af86"><div class="ttname"><a href="rcw_8c.html#a2caca4bce3a8ec22a99ede169746af86">rcw_create_toolbar</a></div><div class="ttdeci">static GtkWidget * rcw_create_toolbar(RemminaConnectionWindow *cnnwin, gint mode)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02113">rcw.c:2113</a></div></div>
<div class="ttc" id="rcw_8c_html_a80f465cb910660ded402fb0e7bb3a7fd"><div class="ttname"><a href="rcw_8c.html#a80f465cb910660ded402fb0e7bb3a7fd">open_connection_last_stage</a></div><div class="ttdeci">static gboolean open_connection_last_stage(gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03867">rcw.c:3867</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#l00155">remmina_pref.h:155</a></div></div>
<div class="ttc" id="rcw_8c_html_aaad3184fedef1eccd1f92d8ef43cca44"><div class="ttname"><a href="rcw_8c.html#aaad3184fedef1eccd1f92d8ef43cca44">rcw_get_cnnobj_at_page</a></div><div class="ttdeci">static RemminaConnectionObject * rcw_get_cnnobj_at_page(RemminaConnectionWindow *cnnwin, gint npage)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00357">rcw.c:357</a></div></div>
<div class="ttc" id="rcw_8c_html_a14a8e53afac8e750b7839d74dc50c758"><div class="ttname"><a href="rcw_8c.html#a14a8e53afac8e750b7839d74dc50c758">rcw_tb_drag_failed</a></div><div class="ttdeci">static gboolean rcw_tb_drag_failed(GtkWidget *widget, GdkDragContext *context, GtkDragResult result, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00722">rcw.c:722</a></div></div>
<div class="ttc" id="rcw_8c_html_aa9d246740106aae9643ab7edc32923f3"><div class="ttname"><a href="rcw_8c.html#aa9d246740106aae9643ab7edc32923f3">rcw_state_event</a></div><div class="ttdeci">static gboolean rcw_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02820">rcw.c:2820</a></div></div>
<div class="ttc" id="rcw_8c_html_a36b924d7fb7ccb1418912ea4c47620a4"><div class="ttname"><a href="rcw_8c.html#a36b924d7fb7ccb1418912ea4c47620a4">rcw_class_init</a></div><div class="ttdeci">static void rcw_class_init(RemminaConnectionWindowClass *klass)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00212">rcw.c:212</a></div></div>
<div class="ttc" id="rcw_8c_html_aa79b4c65a2a416a94c27363324c1cede"><div class="ttname"><a href="rcw_8c.html#aa79b4c65a2a416a94c27363324c1cede">rco_on_unlock_dynres</a></div><div class="ttdeci">void rco_on_unlock_dynres(RemminaProtocolWidget *gp, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03839">rcw.c:3839</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#l00135">remmina_pref.h:135</a></div></div>
<div class="ttc" id="rcw_8c_html_a1fce938658aee966b1ccffb4a0ab4cff"><div class="ttname"><a href="rcw_8c.html#a1fce938658aee966b1ccffb4a0ab4cff">rcw_create_notebook</a></div><div class="ttdeci">static GtkNotebook * rcw_create_notebook(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03213">rcw.c:3213</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="rcw_8h_source.html#l00055">rcw.h:55</a></div></div>
<div class="ttc" id="rcw_8h_html"><div class="ttname"><a href="rcw_8h.html">rcw.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a2830f756dfc3d735b57b0c5753c429e3"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a2830f756dfc3d735b57b0c5753c429e3">remmina_protocol_widget_is_closed</a></div><div class="ttdeci">gboolean remmina_protocol_widget_is_closed(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01198">remmina_protocol_widget.c:1198</a></div></div>
<div class="ttc" id="rcw_8c_html_a1b7a771392e15e527005305e71cc2546"><div class="ttname"><a href="rcw_8c.html#a1b7a771392e15e527005305e71cc2546">rcw_open_from_file</a></div><div class="ttdeci">void rcw_open_from_file(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03892">rcw.c:3892</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#l00059">types.h:59</a></div></div>
<div class="ttc" id="rcw_8c_html_a29701ae152ba15f6d8921f395174d2df"><div class="ttname"><a href="rcw_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a></div><div class="ttdeci">RemminaPref remmina_pref</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00073">rcw.c:73</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="rcw_8c_html_a4482a8c41ac6707436e8eb847867dc1a"><div class="ttname"><a href="rcw_8c.html#a4482a8c41ac6707436e8eb847867dc1a">rcw_toolbar_preferences</a></div><div class="ttdeci">static void rcw_toolbar_preferences(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01759">rcw.c:1759</a></div></div>
<div class="ttc" id="rcw_8c_html_a10b9b689406b4b3071ace2b7c8562aa7"><div class="ttname"><a href="rcw_8c.html#a10b9b689406b4b3071ace2b7c8562aa7">rcw_floating_toolbar_show</a></div><div class="ttdeci">static void rcw_floating_toolbar_show(RemminaConnectionWindow *cnnwin, gboolean show)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00831">rcw.c:831</a></div></div>
<div class="ttc" id="rcw_8h_html_a2e3ebdd3e3450d651445ab54a7113f8b"><div class="ttname"><a href="rcw_8h.html#a2e3ebdd3e3450d651445ab54a7113f8b">rcw_get_type</a></div><div class="ttdeci">GType rcw_get_type(void) G_GNUC_CONST</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#l00524">remmina_file.c:524</a></div></div>
<div class="ttc" id="rcw_8c_html_a61b9eae2dd47962c5966d5d32eec9964"><div class="ttname"><a href="rcw_8c.html#a61b9eae2dd47962c5966d5d32eec9964">rco_on_desktop_resize</a></div><div class="ttdeci">void rco_on_desktop_resize(RemminaProtocolWidget *gp, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03824">rcw.c:3824</a></div></div>
<div class="ttc" id="rcw_8c_html_ac21387fbd4b689472e4796467bd50a55"><div class="ttname"><a href="rcw_8c.html#ac21387fbd4b689472e4796467bd50a55">nb_migrate_page_content</a></div><div class="ttdeci">static void nb_migrate_page_content(GtkWidget *frompage, GtkWidget *topage)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01185">rcw.c:1185</a></div></div>
<div class="ttc" id="remmina__utils_8c_html_ac804e6111e538ee2fa425b8b6fd1fb66"><div class="ttname"><a href="remmina__utils_8c.html#ac804e6111e538ee2fa425b8b6fd1fb66">remmina_utils_string_replace_all</a></div><div class="ttdeci">guint remmina_utils_string_replace_all(GString *haystack, const gchar *needle, const gchar *replace)</div><div class="ttdoc">Replaces all occurrences of needle in haystack with replace. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__utils_8c_source.html#l00193">remmina_utils.c:193</a></div></div>
<div class="ttc" id="rcw_8c_html_a177a2ece80374b29bc26595fff8bed42"><div class="ttname"><a href="rcw_8c.html#a177a2ece80374b29bc26595fff8bed42">rcw_pointer_ungrab</a></div><div class="ttdeci">static void rcw_pointer_ungrab(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00480">rcw.c:480</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e"><div class="ttname"><a href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034a86e41f162b3b7d5bf1df78241ca1073e">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_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#l00163">remmina_pref.h:163</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="rcw_8c_source.html#l00160">rcw.c:160</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#l00628">remmina_protocol_widget.c:628</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="rcw_8c_source.html#l00154">rcw.c:154</a></div></div>
<div class="ttc" id="rcw_8c_html_a042a37c7e92f49443ddbdc6dc948b8b5"><div class="ttname"><a href="rcw_8c.html#a042a37c7e92f49443ddbdc6dc948b8b5">rco_change_scalemode</a></div><div class="ttdeci">static void rco_change_scalemode(RemminaConnectionObject *cnnobj, gboolean bdyn, gboolean bscale)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01565">rcw.c:1565</a></div></div>
<div class="ttc" id="rcw_8c_html_aa6e4f2ac3249f0e5e537b65d0a7163d6"><div class="ttname"><a href="rcw_8c.html#aa6e4f2ac3249f0e5e537b65d0a7163d6">rcw_toolbar_grab</a></div><div class="ttdeci">static void rcw_toolbar_grab(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02087">rcw.c:2087</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="rcw_8h_source.html#l00058">rcw.h:58</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#l00060">types.h:60</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ad8df6a87e19b7751b26820ef4a668de9"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ad8df6a87e19b7751b26820ef4a668de9">remmina_protocol_widget_get_profile_remote_height</a></div><div class="ttdeci">gint remmina_protocol_widget_get_profile_remote_height(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01109">remmina_protocol_widget.c:1109</a></div></div>
<div class="ttc" id="rcw_8c_html_a327f62be43b7f312982f9e22b86a2867"><div class="ttname"><a href="rcw_8c.html#a327f62be43b7f312982f9e22b86a2867">rcw_update_notebook</a></div><div class="ttdeci">static void rcw_update_notebook(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03071">rcw.c:3071</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__pref_8c_html_ae17aaf37449083a4322b6748c8f3a39f"><div class="ttname"><a href="remmina__pref_8c.html#ae17aaf37449083a4322b6748c8f3a39f">remmina_pref_save</a></div><div class="ttdeci">gboolean remmina_pref_save(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00707">remmina_pref.c:707</a></div></div>
<div class="ttc" id="rcw_8c_html_a03311f33ff921f943f6edbbc1867d1ec"><div class="ttname"><a href="rcw_8c.html#a03311f33ff921f943f6edbbc1867d1ec">rcw_toolbar_switch_page_popdown</a></div><div class="ttdeci">void rcw_toolbar_switch_page_popdown(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01485">rcw.c:1485</a></div></div>
<div class="ttc" id="rcw_8c_html_a544a61088b93ffc31a79554c70d97dff"><div class="ttname"><a href="rcw_8c.html#a544a61088b93ffc31a79554c70d97dff">rcw_floating_toolbar_make_invisible</a></div><div class="ttdeci">static gboolean rcw_floating_toolbar_make_invisible(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00822">rcw.c:822</a></div></div>
<div class="ttc" id="rcw_8c_html_aaedf05f5ff4fadcb28346d1cfc4accab"><div class="ttname"><a href="rcw_8c.html#aaedf05f5ff4fadcb28346d1cfc4accab">rcw_toolbar_fullscreen_option</a></div><div class="ttdeci">void rcw_toolbar_fullscreen_option(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01336">rcw.c:1336</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_ae2267a1de362addcee0c5801612dc5d6"><div class="ttname"><a href="struct___remmina_pref.html#ae2267a1de362addcee0c5801612dc5d6">_RemminaPref::screenshot_name</a></div><div class="ttdeci">const gchar * screenshot_name</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="remmina__pref_8h_html_a0ed680fdb405e7195d9f14032851eebba9cdc370e02904c1f50681b7fe8bd1796"><div class="ttname"><a href="remmina__pref_8h.html#a0ed680fdb405e7195d9f14032851eebba9cdc370e02904c1f50681b7fe8bd1796">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="rcw_8c_html_a2f4b8ba7f51a4bf6e12a585177d55758"><div class="ttname"><a href="rcw_8c.html#a2f4b8ba7f51a4bf6e12a585177d55758">rcw_floating_toolbar_on_scroll</a></div><div class="ttdeci">static gboolean rcw_floating_toolbar_on_scroll(GtkWidget *widget, GdkEventScroll *event, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02582">rcw.c:2582</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#l00132">remmina_pref.h:132</a></div></div>
<div class="ttc" id="rcw_8c_html_a5929f8c1c1513c0fd75a88cd4721b8a4"><div class="ttname"><a href="rcw_8c.html#a5929f8c1c1513c0fd75a88cd4721b8a4">rcw_update_toolbar_opacity</a></div><div class="ttdeci">void rcw_update_toolbar_opacity(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00806">rcw.c:806</a></div></div>
<div class="ttc" id="rcw_8h_html_a2450dfe27d3ded59370ea879419f307fadd57127d30bc4755bf3a8323045922bc"><div class="ttname"><a href="rcw_8h.html#a2450dfe27d3ded59370ea879419f307fadd57127d30bc4755bf3a8323045922bc">RCW_ONDELETE_NOCONFIRM</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8h_source.html#l00067">rcw.h:67</a></div></div>
<div class="ttc" id="rcw_8c_html_aa37f2a9c56df0ce1a0dbc32f8989e4b5"><div class="ttname"><a href="rcw_8c.html#aa37f2a9c56df0ce1a0dbc32f8989e4b5">rcw_open_from_filename</a></div><div class="ttdeci">gboolean rcw_open_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03847">rcw.c:3847</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a"><div class="ttname"><a href="remmina__pref_8h.html#aac34dfe6c6b73b43a4656c9dce041034af963e665cf74d483ccc74e28531a480a">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__pref_8h_html_a4790f45dcc812c1b00184a2edccdddf5adc41dc23d32d8955a469953bee975631"><div class="ttname"><a href="remmina__pref_8h.html#a4790f45dcc812c1b00184a2edccdddf5adc41dc23d32d8955a469953bee975631">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="rcw_8c_html_a6bd6b600564be75e95870a0375c0a4d3"><div class="ttname"><a href="rcw_8c.html#a6bd6b600564be75e95870a0375c0a4d3">rcw_close_all_connections</a></div><div class="ttdeci">static void rcw_close_all_connections(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00605">rcw.c:605</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a871e61a40fb0acd54b10191a3942d328"><div class="ttname"><a href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">_RemminaConnectionObject::cnnwin</a></div><div class="ttdeci">RemminaConnectionWindow * cnnwin</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00153">rcw.c:153</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ae01d27ae9f678dc5a4fa32f0b401f434"><div class="ttname"><a href="remmina__message__panel_8c.html#ae01d27ae9f678dc5a4fa32f0b401f434">remmina_message_panel_setup_message</a></div><div class="ttdeci">void remmina_message_panel_setup_message(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00175">remmina_message_panel.c:175</a></div></div>
<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00079">remmina.c:79</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#l00117">remmina_exec.c:117</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#l01159">remmina_protocol_widget.c:1159</a></div></div>
<div class="ttc" id="rcw_8c_html_a23692809213a6dfe683afe3d0dece3aa"><div class="ttname"><a href="rcw_8c.html#a23692809213a6dfe683afe3d0dece3aa">rco_update_toolbar_autofit_button</a></div><div class="ttdeci">void rco_update_toolbar_autofit_button(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01547">rcw.c:1547</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#l00423">remmina_file.c:423</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#l00561">remmina_file.c:561</a></div></div>
<div class="ttc" id="rcw_8c_html_ad5a67ac52028302d5681cceaf9ac46bc"><div class="ttname"><a href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</a></div><div class="ttdeci">static GtkWidget * rcw_append_new_page(RemminaConnectionWindow *cnnwin, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03041">rcw.c:3041</a></div></div>
<div class="ttc" id="rcw_8c_html_aee06df544a91184cba1fe77c6991065a"><div class="ttname"><a href="rcw_8c.html#aee06df544a91184cba1fe77c6991065a">rco_get_monitor_geometry</a></div><div class="ttdeci">void rco_get_monitor_geometry(RemminaConnectionObject *cnnobj, GdkRectangle *sz)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00960">rcw.c:960</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="ttdoc">Check if the plugin accepts keystrokes. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00466">remmina_protocol_widget.c:466</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="rcw_8h_source.html#l00053">rcw.h:53</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#l00327">remmina_file_manager.c:327</a></div></div>
<div class="ttc" id="rcw_8c_html_a0650f31e99dd15c719328345411deba0"><div class="ttname"><a href="rcw_8c.html#a0650f31e99dd15c719328345411deba0">rco_enter_protocol_widget</a></div><div class="ttdeci">gboolean rco_enter_protocol_widget(GtkWidget *widget, GdkEventCrossing *event, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02506">rcw.c:2506</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="rcw_8c_html_a1c40706e7ac542d396d2db99ba944dc6"><div class="ttname"><a href="rcw_8c.html#a1c40706e7ac542d396d2db99ba944dc6">rco_create_tab_page</a></div><div class="ttdeci">static GtkWidget * rco_create_tab_page(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03030">rcw.c:3030</a></div></div>
<div class="ttc" id="rcw_8c_html_a07802fc420dc07560fe937d29172573c"><div class="ttname"><a href="rcw_8c.html#a07802fc420dc07560fe937d29172573c">rcw_delete_event</a></div><div class="ttdeci">static gboolean rcw_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00652">rcw.c:652</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#l00697">remmina_file.c:697</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#l00064">types.h:64</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#l00109">remmina_widget_pool.c:109</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="rcw_8c_source.html#l00164">rcw.c:164</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#l00159">remmina_pref.h:159</a></div></div>
<div class="ttc" id="rcw_8c_html_af4bcd597461ffa30d2975cbc6b071ce4"><div class="ttname"><a href="rcw_8c.html#af4bcd597461ffa30d2975cbc6b071ce4">rco_on_close_button_clicked</a></div><div class="ttdeci">void rco_on_close_button_clicked(GtkButton *button, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02974">rcw.c:2974</a></div></div>
<div class="ttc" id="rcw_8c_html_afec9666876babf3ae115fade7470915e"><div class="ttname"><a href="rcw_8c.html#afec9666876babf3ae115fade7470915e">rcw_switch_viewmode</a></div><div class="ttdeci">static void rcw_switch_viewmode(RemminaConnectionWindow *cnnwin, int newmode)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01247">rcw.c:1247</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00045">remmina_exec.h:45</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="rcw_8c_html_a4cfb767a626e63e3003ddbe0a8fea8a1"><div class="ttname"><a href="rcw_8c.html#a4cfb767a626e63e3003ddbe0a8fea8a1">rcw_toolbar_scaler_option</a></div><div class="ttdeci">static void rcw_toolbar_scaler_option(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01424">rcw.c:1424</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#l00065">types.h:65</a></div></div>
<div class="ttc" id="rcw_8c_html_ad4d4fa75260167fe894750ecd01ee4e9"><div class="ttname"><a href="rcw_8c.html#ad4d4fa75260167fe894750ecd01ee4e9">rcw_on_page_added</a></div><div class="ttdeci">static void rcw_on_page_added(GtkNotebook *notebook, GtkWidget *child, guint page_num, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03134">rcw.c:3134</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#l00130">remmina_pref.h:130</a></div></div>
<div class="ttc" id="rcw_8c_html_a7189a0f1289a24fc5cc9fdfaf37244f3"><div class="ttname"><a href="rcw_8c.html#a7189a0f1289a24fc5cc9fdfaf37244f3">rcw_grab_focus</a></div><div class="ttdeci">void rcw_grab_focus(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02920">rcw.c:2920</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_a7015155d2b1db3e74de4d4d5ef7cca55"><div class="ttname"><a href="remmina__message__panel_8c.html#a7015155d2b1db3e74de4d4d5ef7cca55">remmina_message_panel_new</a></div><div class="ttdeci">RemminaMessagePanel * remmina_message_panel_new()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00088">remmina_message_panel.c:88</a></div></div>
<div class="ttc" id="rcw_8c_html_a45ecb24606954e4268f2f3c5d7e2e1e0"><div class="ttname"><a href="rcw_8c.html#a45ecb24606954e4268f2f3c5d7e2e1e0">rcw_scaler_option_popdown</a></div><div class="ttdeci">static void rcw_scaler_option_popdown(GtkWidget *widget, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01383">rcw.c:1383</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#l00118">remmina_pref.h:118</a></div></div>
<div class="ttc" id="rcw_8c_html_acfa15d238ac64558487dee3c320c3701"><div class="ttname"><a href="rcw_8c.html#acfa15d238ac64558487dee3c320c3701">rcw_set_tooltip</a></div><div class="ttdeci">static void rcw_set_tooltip(GtkWidget *item, const gchar *tip, guint key1, guint key2)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01075">rcw.c:1075</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#l00136">remmina_pref.h:136</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#l00065">remmina_widget_pool.c:65</a></div></div>
<div class="ttc" id="rcw_8c_html_add97977d493b64a6ea1c54ee7412f2c9"><div class="ttname"><a href="rcw_8c.html#add97977d493b64a6ea1c54ee7412f2c9">rcw_delayed_window_present</a></div><div class="ttdeci">gboolean rcw_delayed_window_present(gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03709">rcw.c:3709</a></div></div>
<div class="ttc" id="rcw_8c_html_a362cc1f55ba8365460c2ebfc0528e01c"><div class="ttname"><a href="rcw_8c.html#a362cc1f55ba8365460c2ebfc0528e01c">rcw_keyboard_grab</a></div><div class="ttdeci">static void rcw_keyboard_grab(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00524">rcw.c:524</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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="rcw_8c.html">rcw.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>