From 9e7111394a63c1fe3c031d563324967d0cdc02ed Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Thu, 20 Mar 2014 00:54:59 +0100
Subject: [PATCH] fixed mouse drag

---
 game/engines/default/engine/Mouse.lua      | 1 +
 game/engines/default/engine/ui/Dialog.lua  | 1 +
 game/engines/default/engine/ui/WebView.lua | 8 +++++---
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/game/engines/default/engine/Mouse.lua b/game/engines/default/engine/Mouse.lua
index 4664377705..94491ada49 100644
--- a/game/engines/default/engine/Mouse.lua
+++ b/game/engines/default/engine/Mouse.lua
@@ -92,6 +92,7 @@ function _M:delegate(button, mx, my, xrel, yrel, bx, by, event, name, extra)
 	my = my - oy
 
 	if event == "button" then self:receiveMouse(button, mx, my, true, name, extra)
+	elseif event == "button-down" then self:receiveMouse(button, mx, my, false, name, extra)
 	elseif event == "motion" then self:receiveMouseMotion(button, mx, my, xrel, yrel, name, extra)
 	end
 end
diff --git a/game/engines/default/engine/ui/Dialog.lua b/game/engines/default/engine/ui/Dialog.lua
index f346127c66..19a6f4b04c 100644
--- a/game/engines/default/engine/ui/Dialog.lua
+++ b/game/engines/default/engine/ui/Dialog.lua
@@ -317,6 +317,7 @@ function _M:generate()
 
 	self:updateTitle(self.title)
 
+	self.mouse:allowDownEvent(true)
 	if self.absolute then
 		self.mouse:registerZone(0, 0, gamew, gameh, function(button, x, y, xrel, yrel, bx, by, event) self:mouseEvent(button, x, y, xrel, yrel, bx - self.display_x, by - self.display_y, event) end)
 	else
diff --git a/game/engines/default/engine/ui/WebView.lua b/game/engines/default/engine/ui/WebView.lua
index 557f17b4ca..01c0934164 100644
--- a/game/engines/default/engine/ui/WebView.lua
+++ b/game/engines/default/engine/ui/WebView.lua
@@ -34,6 +34,7 @@ function _M:init(t)
 	self.never_clean = t.never_clean
 	self.allow_popup = t.allow_popup
 	self.allow_login = t.allow_login
+	if self.allow_login == nil then self.allow_login = true end
 
 	if self.allow_login and self.url:find("^http://te4%.org/") and profile.auth then
 		local param = "_te4ah="..profile.auth.hash.."&_te4ad="..profile.auth.drupid
@@ -80,14 +81,15 @@ function _M:generate()
 	end
 	self.loading_icon = self:getUITexture("ui/waiter/loading.png")
 
+	self.mouse:allowDownEvent(true)
 	self.mouse:registerZone(0, 0, self.w, self.h, function(button, x, y, xrel, yrel, bx, by, event)
 		if not self.view then return end
 		if event == "button" then
 			if button == "wheelup" then self.scroll_inertia = math.min(self.scroll_inertia, 0) - 5
 			elseif button == "wheeldown" then self.scroll_inertia = math.max(self.scroll_inertia, 0) + 5
-			elseif button == "left" then self.view:injectMouseButton(false, 1) self.view:injectMouseButton(true, 1)
-			elseif button == "middle" then self.view:injectMouseButton(false, 2) self.view:injectMouseButton(true, 2)
-			elseif button == "right" then self.view:injectMouseButton(false, 3) self.view:injectMouseButton(true, 3)
+			elseif button == "left" then self.view:injectMouseButton(true, 1)
+			elseif button == "middle" then self.view:injectMouseButton(true, 2)
+			elseif button == "right" then self.view:injectMouseButton(true, 3)
 			end				
 		elseif event == "button-down" then
 			if button == "wheelup" then self.scroll_inertia = math.min(self.scroll_inertia, 0) - 5
-- 
GitLab