# HG changeset patch
# User Mads Kiilerich <m...@kiilerich.com>
# Date 1300226301 -3600
# Node ID 838054c342230c59aba51518ec6a6b46872d0341
# Parent  2760f5e8d4b601f360ac76ac2e74be058be27873
wfreerdp: fullscreen toggling with Ctrl+Alt+Enter/Break

diff --git a/win/wfreerdp/wf_event.cpp b/win/wfreerdp/wf_event.cpp
--- a/win/wfreerdp/wf_event.cpp
+++ b/win/wfreerdp/wf_event.cpp
@@ -21,6 +21,7 @@
 #include <freerdp/freerdp.h>
 #include "wf_types.h"
 #include "wf_event.h"
+#include "wf_win.h"
 
 extern HCURSOR g_default_cursor;
 extern HWND g_hWnd;
@@ -50,6 +51,18 @@
                        DEBUG_KBD("wParam %04X scanCode %04X flags %02X vkCode 
%02X\n",
                                        wParam, scanCode, flags, p->vkCode);
 
+                       if (wfi->fs_toggle &&
+                                       ((p->vkCode == VK_RETURN) || (p->vkCode 
== VK_CANCEL)) &&
+                                       (GetAsyncKeyState(VK_CONTROL) & 0x8000) 
&&
+                                       (GetAsyncKeyState(VK_MENU) & 0x8000))
+                       {
+                               if (wParam == WM_KEYDOWN)
+                               {
+                                       wf_toggle_fullscreen(wfi);
+                               }
+                               return 1;
+                       }
+
                        if ((scanCode == 0x36) && (flags & 1))
                        {
                                DEBUG_KBD("hack: sending extended right shift 
(x36) as plain left shift (0x2a)\n");
diff --git a/win/wfreerdp/wf_win.cpp b/win/wfreerdp/wf_win.cpp
--- a/win/wfreerdp/wf_win.cpp
+++ b/win/wfreerdp/wf_win.cpp
@@ -1197,6 +1197,15 @@
        return 0;
 }
 
+void
+wf_toggle_fullscreen(wfInfo * wfi)
+{
+       ShowWindow(wfi->hwnd, SW_HIDE);
+       wfi->fullscreen = !wfi->fullscreen;
+       wf_post_connect(wfi);
+       SetForegroundWindow(wfi->hwnd);
+}
+
 int
 wf_update_window(wfInfo * wfi)
 {
diff --git a/win/wfreerdp/wf_win.h b/win/wfreerdp/wf_win.h
--- a/win/wfreerdp/wf_win.h
+++ b/win/wfreerdp/wf_win.h
@@ -29,6 +29,8 @@
 int
 wf_update_window(wfInfo * wfi);
 void
+wf_toggle_fullscreen(wfInfo * wfi);
+void
 wf_uninit(wfInfo * wfi);
 
 #endif

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to