Some window configuration optimisations, simple mouse click and fix for m_filter
This commit is contained in:
parent
6a718a4a4f
commit
3a43293f4c
1 changed files with 59 additions and 36 deletions
|
@ -70,6 +70,7 @@ static long X11_buffersize;
|
|||
|
||||
int vid_surfcachesize;
|
||||
void *vid_surfcache;
|
||||
static int vid_center_x, vid_center_y;
|
||||
|
||||
void (*vid_menudrawfn) (void);
|
||||
void (*vid_menukeyfn) (int key);
|
||||
|
@ -192,7 +193,7 @@ void VID_Init(unsigned char *palette)
|
|||
gtk_widget_set_size_request(x_win, 320, 200);
|
||||
gtk_window_set_position(x_win,GTK_WIN_POS_CENTER_ALWAYS);
|
||||
g_signal_connect (x_win, "destroy", G_CALLBACK (exit), NULL);
|
||||
gtk_widget_set_events(x_win, GDK_BUTTON_PRESS_MASK);
|
||||
gtk_widget_set_events(x_win, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
|
||||
|
||||
|
||||
// FOR LATER!
|
||||
|
@ -239,7 +240,12 @@ void VID_Init(unsigned char *palette)
|
|||
vid.aspect =
|
||||
((float) vid.height / (float) vid.width) * (320.0 / 240.0);
|
||||
mouse_enabled = true;
|
||||
gtk_main_iteration ();
|
||||
gdk_window_get_geometry (gtk_widget_get_window(x_win), &vid_frame[0], &vid_frame[1], &vid_frame[2], &vid_frame[3], NULL);
|
||||
gdk_window_get_position(gtk_widget_get_window(x_win), &vid_frame[0], &vid_frame[1]);
|
||||
vid_center_x = (int)(((float)vid_frame[2] / 2) + vid_frame[0]);
|
||||
vid_center_y = (int)(((float)vid_frame[2] / 2) + vid_frame[1]);
|
||||
vid_frame[2] += vid_frame[0];
|
||||
vid_frame[3] += vid_frame[1];
|
||||
}
|
||||
|
||||
void VID_ShiftPalette(unsigned char *p)
|
||||
|
@ -397,14 +403,14 @@ struct {
|
|||
|
||||
int keyq_head = 0;
|
||||
int keyq_tail = 0;
|
||||
|
||||
int mouse_buttons=3;
|
||||
int mouse_oldbuttonstate;
|
||||
int mouse_buttonstate;
|
||||
void GetEvent(void)
|
||||
{
|
||||
int w, h;
|
||||
|
||||
GdkEvent *event;
|
||||
event = gdk_event_get();
|
||||
gtk_window_get_size(GTK_WINDOW(x_win), &w, &h);
|
||||
|
||||
if (event)
|
||||
switch (event->type) {
|
||||
|
@ -419,34 +425,38 @@ void GetEvent(void)
|
|||
keyq_head = (keyq_head + 1) & 63;
|
||||
break;
|
||||
case GDK_ENTER_NOTIFY:
|
||||
//XSetInputFocus(GDK_WINDOW_XDISPLAY(gtk_widget_get_window(x_win)),
|
||||
// GDK_WINDOW_XWINDOW(gtk_widget_get_window(x_win)), RevertToNone,
|
||||
// CurrentTime);
|
||||
IN_ActivateMouse();
|
||||
break;
|
||||
case GDK_LEAVE_NOTIFY:
|
||||
//XSetInputFocus(GDK_WINDOW_XDISPLAY(gtk_widget_get_window(x_win)),
|
||||
// None, RevertToNone, CurrentTime);
|
||||
IN_DeactivateMouse();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(config_notify_width != w || config_notify_height != h){
|
||||
config_notify_width = w;
|
||||
case GDK_CONFIGURE:
|
||||
gtk_window_get_size(GTK_WINDOW(x_win), &w, &h);
|
||||
gdk_window_get_geometry (gtk_widget_get_window(x_win), &vid_frame[0], &vid_frame[1], &vid_frame[2], &vid_frame[3], NULL);
|
||||
gdk_window_get_position(gtk_widget_get_window(x_win), &vid_frame[0], &vid_frame[1]);
|
||||
vid_center_x = (int)(((float)vid_frame[2] / 2) + vid_frame[0]);
|
||||
vid_center_y = (int)(((float)vid_frame[2] / 2) + vid_frame[1]);
|
||||
vid_frame[2] += vid_frame[0];
|
||||
vid_frame[3] += vid_frame[1];
|
||||
config_notify_width = w;
|
||||
config_notify_height = h;
|
||||
config_notify = 1;
|
||||
break;
|
||||
case GDK_BUTTON_PRESS:
|
||||
Key_Event (K_MOUSE1, true);
|
||||
printf("MOUSE 1 DOWN\n");
|
||||
break;
|
||||
case GDK_BUTTON_RELEASE:
|
||||
Key_Event (K_MOUSE1, false);
|
||||
printf("MOUSE 1 UP\n");
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
static int vid_center_x, vid_center_y;
|
||||
|
||||
// flushes the given rectangles from the view buffer to the screen
|
||||
void VID_Update(vrect_t * rects)
|
||||
{
|
||||
gdk_window_get_geometry (gtk_widget_get_window(x_win), &vid_frame[0], &vid_frame[1], &vid_frame[2], &vid_frame[3], NULL);
|
||||
gdk_window_get_position(gtk_widget_get_window(x_win), &vid_frame[0], &vid_frame[1]);
|
||||
vid_center_x = (int)(((float)vid_frame[2] / 2) + vid_frame[0]);
|
||||
vid_center_y = (int)(((float)vid_frame[2] / 2) + vid_frame[1]);
|
||||
vid_frame[2] += vid_frame[0];
|
||||
vid_frame[3] += vid_frame[1];
|
||||
|
||||
if (config_notify)
|
||||
{
|
||||
|
@ -515,15 +525,19 @@ void Sys_DisplayWindow(int window)
|
|||
|
||||
void Sys_SendKeyEvents(void)
|
||||
{
|
||||
if (gdk_initialized) {
|
||||
while (gdk_events_pending()) {
|
||||
GetEvent();
|
||||
while (keyq_head != keyq_tail) {
|
||||
Key_Event(keyq[keyq_tail].key, keyq[keyq_tail].down);
|
||||
keyq_tail = (keyq_tail + 1) & 63;
|
||||
}
|
||||
if (!gdk_initialized)
|
||||
return;
|
||||
|
||||
while (gdk_events_pending())
|
||||
{
|
||||
GetEvent();
|
||||
while (keyq_head != keyq_tail)
|
||||
{
|
||||
Key_Event(keyq[keyq_tail].key, keyq[keyq_tail].down);
|
||||
keyq_tail = (keyq_tail + 1) & 63;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void D_BeginDirectRect(int x, int y, byte * pbitmap, int width, int height)
|
||||
|
@ -561,12 +575,12 @@ extern vec3_t deathcam_angles; //eukara - deathcam
|
|||
void IN_Move (usercmd_t *cmd)
|
||||
{
|
||||
vec3_t tangles; // eukara - deathcam
|
||||
/*
|
||||
|
||||
if (m_filter->value) {
|
||||
mouse_x = (mouse_x + old_mouse_x) * 0.5;
|
||||
mouse_y = (mouse_y + old_mouse_y) * 0.5;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
if (mouse_enabled == true)
|
||||
{
|
||||
|
@ -638,7 +652,10 @@ void IN_Move (usercmd_t *cmd)
|
|||
if((mouse_x || mouse_y) && mouse_enabled)
|
||||
gdk_display_warp_pointer (display, screen, vid_center_x, vid_center_y);
|
||||
}
|
||||
void IN_Commands(){}
|
||||
void IN_Commands()
|
||||
{
|
||||
|
||||
}
|
||||
void IN_Init(){}
|
||||
void IN_Shutdown(){}
|
||||
|
||||
|
@ -676,8 +693,14 @@ void VID_CreateSplash()
|
|||
gtk_main ();
|
||||
}
|
||||
|
||||
void VID_Init_Cvars(){}
|
||||
void IN_Init_Cvars(){}
|
||||
void VID_Init_Cvars()
|
||||
{
|
||||
|
||||
}
|
||||
void IN_Init_Cvars()
|
||||
{
|
||||
m_filter = Cvar_Get ("m_filter", "0", CVAR_ARCHIVE|CVAR_ORIGINAL);
|
||||
}
|
||||
|
||||
/*
|
||||
===========
|
||||
|
|
Loading…
Reference in a new issue