Skip to content

Commit

Permalink
atari:gem: Do not align work area when window is iconified
Browse files Browse the repository at this point in the history
  • Loading branch information
pmandin committed Sep 30, 2017
1 parent bf09b06 commit ea37d78
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
16 changes: 8 additions & 8 deletions src/video/gem/SDL_gemevents.c
Expand Up @@ -187,9 +187,9 @@ void GEM_PumpEvents(_THIS)

static int do_messages(_THIS, short *message, short latest_msg_id)
{
int quit, update_work_area, align_work_area, sdl_resize;
int quit, update_work_area, iconified, sdl_resize;

quit = update_work_area = align_work_area = sdl_resize = 0;
quit = update_work_area = iconified = sdl_resize = 0;
switch (message[0]) {
case MSG_SDL_ID:
quit=(message[1] == latest_msg_id);
Expand All @@ -201,7 +201,7 @@ static int do_messages(_THIS, short *message, short latest_msg_id)
break;
case WM_MOVED:
wind_set(message[3],WF_CURRXYWH,message[4],message[5],message[6],message[7]);
update_work_area = align_work_area = 1;
update_work_area = 1;
break;
case WM_TOPPED:
wind_set(message[3],WF_TOP,message[4],0,0,0);
Expand Down Expand Up @@ -233,7 +233,7 @@ static int do_messages(_THIS, short *message, short latest_msg_id)
0,0);
GEM_refresh_name = SDL_FALSE;
}
update_work_area = 1;
update_work_area = iconified = 1;
break;
case WM_UNICONIFY:
wind_set (message[3],WF_UNICONIFY,message[4],message[5],message[6],message[7]);
Expand All @@ -249,11 +249,11 @@ static int do_messages(_THIS, short *message, short latest_msg_id)
0,0);
GEM_refresh_name = SDL_FALSE;
}
update_work_area = align_work_area = 1;
update_work_area = 1;
break;
case WM_SIZED:
wind_set (message[3], WF_CURRXYWH, message[4], message[5], message[6], message[7]);
update_work_area = align_work_area = sdl_resize = 1;
update_work_area = sdl_resize = 1;
GEM_win_fulled = SDL_FALSE; /* Cancel maximized flag */
GEM_lock_redraw = SDL_TRUE; /* Prevent redraw till buffers resized */
break;
Expand All @@ -272,7 +272,7 @@ static int do_messages(_THIS, short *message, short latest_msg_id)
GEM_win_fulled = SDL_TRUE;
}
wind_set (message[3], WF_CURRXYWH, x, y, w, h);
update_work_area = align_work_area = sdl_resize = 1;
update_work_area = sdl_resize = 1;
GEM_lock_redraw = SDL_TRUE; /* Prevent redraw till buffers resized */
}
break;
Expand All @@ -288,7 +288,7 @@ static int do_messages(_THIS, short *message, short latest_msg_id)
}

if (update_work_area) {
GEM_align_work_area(this, message[3], 1);
GEM_align_work_area(this, message[3], 1, iconified);

if (sdl_resize) {
SDL_PrivateResize(GEM_work_w, GEM_work_h);
Expand Down
7 changes: 5 additions & 2 deletions src/video/gem/SDL_gemvideo.c
Expand Up @@ -800,7 +800,7 @@ SDL_Surface *GEM_SetVideoMode(_THIS, SDL_Surface *current,
}
}

GEM_align_work_area(this, GEM_handle, 0);
GEM_align_work_area(this, GEM_handle, 0, 0);
GEM_fullscreen = SDL_FALSE;
}

Expand Down Expand Up @@ -840,11 +840,14 @@ SDL_Surface *GEM_SetVideoMode(_THIS, SDL_Surface *current,
return(current);
}

void GEM_align_work_area(_THIS, short windowid, int clear_pads)
void GEM_align_work_area(_THIS, short windowid, int clear_pads, int iconified)
{
int new_x, new_w;

wind_get(windowid, WF_WORKXYWH, &GEM_work_x,&GEM_work_y,&GEM_work_w,&GEM_work_h);
if (iconified) {
return;
}

/* Align work area on 16 pixels boundary (faster for bitplanes modes) */
new_x = GEM_work_x;
Expand Down
2 changes: 1 addition & 1 deletion src/video/gem/SDL_gemvideo.h
Expand Up @@ -37,7 +37,7 @@ struct WMcursor {

/* Functions prototypes */
void GEM_wind_redraw(_THIS, int winhandle, short *inside);
void GEM_align_work_area(_THIS, short windowid, int clear_pads);
void GEM_align_work_area(_THIS, short windowid, int clear_pads, int iconified);

/* Private display data */

Expand Down

0 comments on commit ea37d78

Please sign in to comment.