From d25f7cc27eff355f97913393c1c27b42a7ad01ae Mon Sep 17 00:00:00 2001 From: Ole Loots Date: Tue, 29 Nov 2011 21:19:26 +0000 Subject: make use of non-blocking request for screen lock. svn path=/trunk/netsurf/; revision=13202 --- atari/plot/plotter_vdi.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'atari/plot/plotter_vdi.c') diff --git a/atari/plot/plotter_vdi.c b/atari/plot/plotter_vdi.c index 06b8f8f91..e79647408 100755 --- a/atari/plot/plotter_vdi.c +++ b/atari/plot/plotter_vdi.c @@ -49,7 +49,7 @@ static int dtor( GEM_PLOTTER self ); static int resize( GEM_PLOTTER self, int w, int h ); static int move( GEM_PLOTTER self, short x, short y ); -static void * lock( GEM_PLOTTER self ); +static int lock( GEM_PLOTTER self ); static int unlock( GEM_PLOTTER self ); static int update_region( GEM_PLOTTER self, GRECT region ); static int update_screen_region( GEM_PLOTTER self, GRECT region ); @@ -307,19 +307,25 @@ static int move( GEM_PLOTTER self,short x, short y ) } -static void * lock( GEM_PLOTTER self ) +static int lock( GEM_PLOTTER self ) { - LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); + LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); + if( (self->flags & PLOT_FLAG_LOCKED) != 0 ) + return(1); self->flags |= PLOT_FLAG_LOCKED; - wind_update(BEG_UPDATE); - wind_update(BEG_MCTRL); + if( !wind_update(BEG_UPDATE|0x100) ) + return(0); + if( !wind_update(BEG_MCTRL|0x100) ) + return(0); graf_mouse(M_OFF, NULL); - return( NULL ); + return( 1 ); } static int unlock( GEM_PLOTTER self ) { - LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); + LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); + if( (self->flags & PLOT_FLAG_LOCKED) == 0 ) + return(1); self->flags &= ~PLOT_FLAG_LOCKED; wind_update(END_MCTRL); wind_update(END_UPDATE); -- cgit v1.2.3