Advertisement
Guest User

ToggleFullscreenPatch

a guest
Apr 27th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.74 KB | None | 0 0
  1. Index: source/ref_gl/r_local.h
  2. ===================================================================
  3. --- source/ref_gl/r_local.h (revision 5263)
  4. +++ source/ref_gl/r_local.h (working copy)
  5. @@ -146,6 +146,7 @@
  6.  extern cvar_t  *gl_vlights;
  7.  
  8.  extern cvar_t  *vid_fullscreen;
  9. +extern cvar_t  *vid_preferred_fullscreen;
  10.  extern cvar_t  *vid_gamma;
  11.  extern  cvar_t *vid_contrast;
  12.  
  13. Index: source/ref_gl/r_main.c
  14. ===================================================================
  15. --- source/ref_gl/r_main.c  (revision 5263)
  16. +++ source/ref_gl/r_main.c  (working copy)
  17. @@ -134,6 +134,7 @@
  18.  cvar_t *gl_lockpvs;
  19.  
  20.  cvar_t *vid_fullscreen;
  21. +cvar_t *vid_preferred_fullscreen;
  22.  cvar_t *vid_gamma;
  23.  cvar_t  *vid_contrast;
  24.  cvar_t *vid_ref;
  25. @@ -1348,10 +1349,14 @@
  26.  
  27.     // see windowmode_t:
  28.     // 0 = windowed
  29. -   // 1 = full screen
  30. -   // 2 = borderless fullscreen
  31. +   // 1 = borderless windowed
  32. +   // 2 = exclusive fullscreen
  33.     vid_fullscreen = Cvar_Get( "vid_fullscreen", "1", CVAR_ARCHIVE|CVARDOC_INT);
  34.  
  35. +   // Last used fullscreen mode: borderless windowed (1) or exclusive fullscreen (2).
  36. +   // Used for toggling between fullscreen and windowed with alt-enter.
  37. +   vid_preferred_fullscreen = Cvar_Get( "vid_preferred_fullscreen", "1", CVAR_ARCHIVE|CVARDOC_INT);
  38. +
  39.     vid_gamma = Cvar_Get( "vid_gamma", "1.0", CVAR_ARCHIVE );
  40.     vid_contrast = Cvar_Get( "vid_contrast", "1.0", CVAR_ARCHIVE);
  41.     //TODO: remove, unless we decide to add GL ES support or something.
  42. Index: source/unix/gl_glx.c
  43. ===================================================================
  44. --- source/unix/gl_glx.c    (revision 5263)
  45. +++ source/unix/gl_glx.c    (working copy)
  46. @@ -318,22 +318,31 @@
  47.  
  48.     case XK_KP_Enter:
  49.         key = K_KP_ENTER;
  50. -       break;
  51. -
  52. -   case XK_Return:
  53. -       if (ev->state & Mod1Mask)
  54. -       {   // ALT-ENTER           
  55. -           if ( vid_fullscreen )
  56. -           {
  57. -               Cvar_SetValue( "vid_fullscreen", !vid_fullscreen->value ); // TODO: update for the fact that this isn't boolean anymore!
  58. -           }      
  59. -       } else
  60. -       {
  61. -           key = K_ENTER;
  62. -       }
  63. -       break;
  64. -
  65. -   case XK_Tab:
  66. +       break;
  67. +
  68. +   case XK_Return:
  69. +       if ( ev->state & Mod1Mask )
  70. +       {   // ALT-ENTER           
  71. +           if ( vid_fullscreen )
  72. +           {
  73. +               switch ( vid_fullscreen->integer ) {
  74. +                   case windowmode_windowed:
  75. +                       Cvar_SetValue( "vid_fullscreen", vid_preferred_fullscreen->value );
  76. +                       break;
  77. +                   case windowmode_borderless_windowed:
  78. +                   case windowmode_exclusive_fullscreen:
  79. +                       Cvar_SetValue( "vid_preferred_fullscreen", vid_fullscreen->value );
  80. +                       Cvar_SetValue( "vid_fullscreen", windowmode_windowed );
  81. +                       break;
  82. +               }
  83. +           }      
  84. +       } else
  85. +       {
  86. +           key = K_ENTER;
  87. +       }
  88. +       break;
  89. +
  90. +   case XK_Tab:
  91.         key = K_TAB;
  92.         break;
  93.  
  94. Index: source/unix/vid_so.c
  95. ===================================================================
  96. --- source/unix/vid_so.c    (revision 5263)
  97. +++ source/unix/vid_so.c    (working copy)
  98. @@ -40,6 +40,7 @@
  99.  cvar_t     *vid_xpos;          // X coordinate of window position
  100.  cvar_t     *vid_ypos;          // Y coordinate of window position
  101.  cvar_t     *vid_fullscreen;
  102. +cvar_t     *vid_preferred_fullscreen;
  103.  cvar_t     *vid_width;
  104.  cvar_t     *vid_height;
  105.  extern cvar_t  *vid_ref;
  106. @@ -206,7 +207,8 @@
  107.     vid_ref = Cvar_Get ("vid_ref", "glx", CVAR_ARCHIVE);
  108.     vid_xpos = Cvar_Get ("vid_xpos", "0", CVAR_ARCHIVE);
  109.     vid_ypos = Cvar_Get ("vid_ypos", "0", CVAR_ARCHIVE);
  110. -   vid_fullscreen = Cvar_Get ("vid_fullscreen", "0", CVAR_ARCHIVE);
  111. +   vid_fullscreen = Cvar_Get ("vid_fullscreen", "1", CVAR_ARCHIVE);
  112. +   vid_preferred_fullscreen = Cvar_Get ("vid_preferred_fullscreen", "1", CVAR_ARCHIVE);
  113.     vid_gamma = Cvar_Get( "vid_gamma", "1", CVAR_ARCHIVE );
  114.     vid_width = Cvar_Get ( "vid_width", "1024", CVAR_ARCHIVE );
  115.     vid_height = Cvar_Get ( "vid_height", "768", CVAR_ARCHIVE );
  116. Index: source/win32/vid_dll.c
  117. ===================================================================
  118. --- source/win32/vid_dll.c  (revision 5263)
  119. +++ source/win32/vid_dll.c  (working copy)
  120. @@ -46,6 +46,7 @@
  121.  cvar_t     *vid_xpos;          // X coordinate of window position
  122.  cvar_t     *vid_ypos;          // Y coordinate of window position
  123.  cvar_t     *vid_fullscreen;
  124. +cvar_t     *vid_preferred_fullscreen;
  125.  cvar_t     *vid_width;
  126.  cvar_t     *vid_height;
  127.  cvar_t     *vid_displayfrequency;
  128. @@ -408,7 +409,16 @@
  129.         {
  130.             if ( vid_fullscreen )
  131.             {
  132. -               Cvar_SetValue( "vid_fullscreen", !vid_fullscreen->value ); // TODO: update for the fact that this isn't boolean anymore!
  133. +               switch ( vid_fullscreen->integer ) {
  134. +                   case windowmode_windowed:
  135. +                       Cvar_SetValue( "vid_fullscreen", vid_preferred_fullscreen->value );
  136. +                       break;
  137. +                   case windowmode_borderless_windowed:
  138. +                   case windowmode_exclusive_fullscreen:
  139. +                       Cvar_SetValue( "vid_preferred_fullscreen", vid_fullscreen->value );
  140. +                       Cvar_SetValue( "vid_fullscreen", windowmode_windowed );
  141. +                       break;
  142. +               }
  143.             }
  144.             return 0;
  145.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement