DEADSOFTWARE

Fix warnings
[d2df-sdl.git] / src / game / g_gui.pas
index 494839e01324c73d6281594ff0db2a9c60d54d49..a76a1801f560969bd0ab491f9dca790cc7565c3f 100644 (file)
@@ -814,10 +814,19 @@ procedure TGUIWindow.Draw;
 var
   i: Integer;
   ID: DWORD;
+  tw, th: Word;
 begin
-  if FBackTexture <> '' then
+  if FBackTexture <> '' then  // Here goes code duplication from g_game.pas:DrawMenuBackground()
     if g_Texture_Get(FBackTexture, ID) then
-      e_DrawSize(ID, 0, 0, 0, False, False, gScreenWidth, gScreenHeight)
+    begin
+      e_Clear(GL_COLOR_BUFFER_BIT, 0, 0, 0);
+      e_GetTextureSize(ID, @tw, @th);
+      if tw = th then
+        tw := round(tw * 1.333 * (gScreenHeight / th))
+      else
+        tw := trunc(tw * (gScreenHeight / th));
+      e_DrawSize(ID, (gScreenWidth - tw) div 2, 0, 0, False, False, tw, gScreenHeight);
+    end
     else
       e_Clear(GL_COLOR_BUFFER_BIT, 0.5, 0.5, 0.5);
 
@@ -2336,7 +2345,7 @@ begin
         end;
     end;
 
-  g_GUIGrabInput := FWindow.FActiveControl = Self;
+  g_GUIGrabInput := (@FOnEnterEvent = nil) and (FWindow.FActiveControl = Self);
   g_Touch_ShowKeyboard(g_GUIGrabInput)
 end;