+float chat_maximized_scroll_ofs;
+float chat_maximized_reset_scroll_time;
+float HUD_Panel_Chat_InputEvent(float bInputType, float nPrimary, float nSecondary)
+{
+ if(bInputType == 3)
+ {
+ mousepos.x = nPrimary;
+ mousepos.y = nSecondary;
+ return true;
+ }
+
+ if(bInputType == 2)
+ return false;
+
+ // at this point bInputType can only be 0 or 1 (key pressed or released)
+ bool key_pressed = (bInputType == 0);
+
+ if(!autocvar__con_chat_maximized)
+ return false;
+
+ if(nPrimary == K_MWHEELUP)
+ {
+ if (!key_pressed)
+ return true;
+ chat_maximized_scroll_ofs += 5 * cvar("con_chatsize");
+ return true;
+ }
+ else if(nPrimary == K_MWHEELDOWN)
+ {
+ if (!key_pressed)
+ return true;
+ chat_maximized_scroll_ofs -= 5 * cvar("con_chatsize");
+ if (chat_maximized_scroll_ofs < 0)
+ chat_maximized_scroll_ofs = 0;
+ return true;
+ }
+ else if(nPrimary == K_PGUP)
+ {
+ if (!key_pressed)
+ return true;
+ chat_maximized_scroll_ofs += vid_conheight / 2;
+ return true;
+ }
+ else if(nPrimary == K_PGDN)
+ {
+ if (!key_pressed)
+ return true;
+ chat_maximized_scroll_ofs -= vid_conheight / 2;
+ if (chat_maximized_scroll_ofs < 0)
+ chat_maximized_scroll_ofs = 0;
+ return true;
+ }
+
+ return false;
+}
+