Восстановление разрешения экрана при выходе из программы (Исправлено)

Автор judelaw, 21 марта 2018, 13:51:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

judelaw

Сейчас имеем баг. При старте запоминаем один монитор, а при выходе берем уже возможно другой, так как его мы можем в процессе поменять в настройках.

Примерный патч:
Index: src/apps/mplayerc/AppSettings.h
===================================================================
--- src/apps/mplayerc/AppSettings.h    (revision 3479)
+++ src/apps/mplayerc/AppSettings.h    (working copy)
@@ -636,6 +636,7 @@
     AccelTbl        AccelTblColWidth;
     bool            fRestoreResAfterExit;
     dispmode        dm_def;
+    CString         strMon_def;
     int                iDMChangeDelay;
 
     // Sync Renderer Settings
Index: src/apps/mplayerc/MainFrm.cpp
===================================================================
--- src/apps/mplayerc/MainFrm.cpp    (revision 3479)
+++ src/apps/mplayerc/MainFrm.cpp    (working copy)
@@ -829,8 +829,8 @@
 
     WTSRegisterSessionNotification();
 
-    CStringW strFS = s.strFullScreenMonitor;
-    GetCurDispMode(s.dm_def, strFS);
+    s.strMon_def = s.strFullScreenMonitor;
+    GetCurDispMode(s.dm_def, s.strMon_def);
 
     if (SysVersion::IsWin7orLater()) {
         m_hDWMAPI = LoadLibraryW(L"dwmapi.dll");
@@ -952,7 +952,7 @@
     SendAPICommand(CMD_DISCONNECT, L"\\0"); // according to CMD_NOTIFYENDOFSTREAM (ctrl+f it here), you\'re not supposed to send NULL here
 
     if (s.AutoChangeFullscrRes.bEnabled && s.fRestoreResAfterExit) {
-        SetDispMode(s.dm_def, s.strFullScreenMonitor, TRUE);
+        SetDispMode(s.dm_def, s.strMon_def, TRUE);
     }
 
     if (m_hDWMAPI) {
[merge_posts_bbcode]Добавлено: 2018-03-21 13:51:13[/merge_posts_bbcode]

залил изменения