Menu

#195 PLplot wingcc window freezes after minimise/restore window

None
open
None
5
2020-03-10
2017-06-12
No

I am running programs that use PLplot (plplot-5.12.0) under Cygwin 64 (CYGWIN_NT-10.0) on Winows 10 (64-bit) using the gcc and gfortran compilers and the wingcc driver for interactive display. A program performs
plspause( 0 );
and it is then found that if the PLplot graphics window is minimised and restored when the program is paused, for example awaiting terminal input, then the graphics window freezes.

Attached C program demonstrates this behaviour. Equivalent Fortran program (which is where I discovered the problem) behaves the same.

I appologise if this has been raised and/or addressed in the past but searches for "freeze" mostly brought up items concerning code version freezing.

Graham Foster, Bedford, UK

1 Attachments

Discussion

  • James Dishaw

    James Dishaw - 2017-06-15

    I will try to take a look this weekend and come up with a fix. Out of curiousity, are you able to test the wingdi driver?

     
    • James Dishaw

      James Dishaw - 2017-06-21

      This bug is a bit more involved than I initially thought-- the bug manifests
      itself even without the plspause(0) call and in both the wingdi and wingcc
      drivers. I think I know where the problem is (the windows message handler)
      but I need to commune with the Windows API documentation to figure out the
      correct solution.

      I want to make sure I understand the use case you have in mind and the
      behavior that you observed:

      1. You want to have a program that disables the PLplot provided pause
        between pages (hence the plspause(0)) because you want to control the pause
        between pages.
      2. Between pages you either process user input or perform some activity
        that is sufficiently lengthy that the user could minimize the window.
      3. The bug you observe is that when you minimize the plot window and
        then later restore the window the plot window does not update.

      From: James Dishaw [mailto:jamesd47@users.sf.net]
      Sent: Wednesday, June 14, 2017 11:29 PM
      To: [plplot:support-requests] 44@support-requests.plplot.p.re.sf.net
      Subject: [plplot:support-requests] #44 PLplot wingcc window freezes after
      minimise/restore window

      I will try to take a look this weekend and come up with a fix. Out of
      curiousity, are you able to test the wingdi driver?


      [support-requests:#44]
      https://sourceforge.net/p/plplot/support-requests/44/ PLplot wingcc
      window freezes after minimise/restore window

      Status: open
      Group:
      Created: Mon Jun 12, 2017 11:24 PM UTC by Graham Foster
      Last Updated: Mon Jun 12, 2017 11:24 PM UTC
      Owner: nobody
      Attachments:

      I am running programs that use PLplot (plplot-5.12.0) under Cygwin 64
      (CYGWIN_NT-10.0) on Winows 10 (64-bit) using the gcc and gfortran compilers
      and the wingcc driver for interactive display. A program performs
      plspause( 0 );
      and it is then found that if the PLplot graphics window is minimised and
      restored when the program is paused, for example awaiting terminal input,
      then the graphics window freezes.

      Attached C program demonstrates this behaviour. Equivalent Fortran program
      (which is where I discovered the problem) behaves the same.

      I appologise if this has been raised and/or addressed in the past but
      searches for "freeze" mostly brought up items concerning code version
      freezing.

      Graham Foster, Bedford, UK


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/plplot/support-requests/44/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
  • Graham Foster

    Graham Foster - 2017-06-15

    I've just downloaded wingdi.c and I will attempt to get it working with my test program.

    Thanks for your help

     
    • James Dishaw

      James Dishaw - 2017-06-20

      I have not forgotten about tracking down this bug. I am working on finding
      a fix. Sorry for the delay.

      From: Graham Foster [mailto:zach-foster@users.sf.net]
      Sent: Thursday, June 15, 2017 5:23 PM
      To: [plplot:support-requests] 44@support-requests.plplot.p.re.sf.net
      Subject: [plplot:support-requests] #44 PLplot wingcc window freezes after
      minimise/restore window

      I've just downloaded wingdi.c and I will attempt to get it working with my
      test program.

      Thanks for your help


      [support-requests:#44]
      https://sourceforge.net/p/plplot/support-requests/44/ PLplot wingcc
      window freezes after minimise/restore window

      Status: open
      Group:
      Created: Mon Jun 12, 2017 11:24 PM UTC by Graham Foster
      Last Updated: Thu Jun 15, 2017 03:28 AM UTC
      Owner: nobody
      Attachments:

      I am running programs that use PLplot (plplot-5.12.0) under Cygwin 64
      (CYGWIN_NT-10.0) on Winows 10 (64-bit) using the gcc and gfortran compilers
      and the wingcc driver for interactive display. A program performs
      plspause( 0 );
      and it is then found that if the PLplot graphics window is minimised and
      restored when the program is paused, for example awaiting terminal input,
      then the graphics window freezes.

      Attached C program demonstrates this behaviour. Equivalent Fortran program
      (which is where I discovered the problem) behaves the same.

      I appologise if this has been raised and/or addressed in the past but
      searches for "freeze" mostly brought up items concerning code version
      freezing.

      Graham Foster, Bedford, UK


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/plplot/support-requests/44/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
  • Graham Foster

    Graham Foster - 2017-06-20

    I haven't yet managed to 'jump through all the hoops' to build the wingdi driver on my cygwin system.

    However, I have noticed that the problem of freezing with the wingcc driver is not limited to just minimising & restoring the plot window. Any interaction with the plot window freezes it, such clicking to bring it to the front, or even just moving an overlying window from over it.

    This now seems to have some resemblance to a query raised by John Duffy in 2014 https://sourceforge.net/p/plplot/mailman/message/32102568/ . There was no further correspondence for this query.

    Thanks for your time.

    Graham Foster, Bedford, UK

     
  • Graham Foster

    Graham Foster - 2017-06-25

    Your points 1., 2. and 3.summarise the bug as I originally observed it. However, as I noted in a follow-up message, the freeze occurs if any interation with the plot window takes place, not just minimise & restore . The attached two screen shots show x02c+.exe being run twice from a terminal window. In the first case <RTN> was hit 3 times, while in the second the terminal window (which overlapped the plot window slightly) was resized after the 2nd <RTN>. The plot window does not then update at the 3rd <RTN>.

    Graham Foster, Bedford, UK

     
  • Graham Foster

    Graham Foster - 2017-07-14

    James,

    Is this problem likely to be fixed?

    At present a program using PLplot has to be started from a window that is small enough not to overlap the graphics window once it opens, and then no other programs can be used if there is any chance their window(s) might overlap the graphics window. Essentially only the one program can be run at a time - a bit like going back to the 1970s!

    If the problem is not going to be fixed, then I will have to resume looking at other graphics packages.

    Thanks

    Graham Foster, Bedford, UK

     
    • James Dishaw

      James Dishaw - 2017-07-16

      Graham,

      Attached is a new version of wingdi.c (which needs to go into the drivers
      directory) and pldebug.h (which needs to go into the include directory).
      Let me know if they work and I will push to the repository.

      I was able to find a simpler fix than I thought (at least for wingdi).
      Depending on your feedback, I will try to patch wingcc.

      From: Graham Foster [mailto:zach-foster@users.sf.net]
      Sent: Friday, July 14, 2017 8:12 AM
      To: [plplot:support-requests] 44@support-requests.plplot.p.re.sf.net
      Subject: [plplot:support-requests] #44 PLplot wingcc window freezes after
      minimise/restore window

      James,

      Is this problem likely to be fixed?

      At present a program using PLplot has to be started from a window that is
      small enough not to overlap the graphics window once it opens, and then no
      other programs can be used if there is any chance their window(s) might
      overlap the graphics window. Essentially only the one program can be run at
      a time - a bit like going back to the 1970s!

      If the problem is not going to be fixed, then I will have to resume looking
      at other graphics packages.

      Thanks

      Graham Foster, Bedford, UK


      [support-requests:#44]
      https://sourceforge.net/p/plplot/support-requests/44/ PLplot wingcc
      window freezes after minimise/restore window

      Status: open
      Group:
      Created: Mon Jun 12, 2017 11:24 PM UTC by Graham Foster
      Last Updated: Sun Jun 25, 2017 12:40 AM UTC
      Owner: nobody
      Attachments:

      I am running programs that use PLplot (plplot-5.12.0) under Cygwin 64
      (CYGWIN_NT-10.0) on Winows 10 (64-bit) using the gcc and gfortran compilers
      and the wingcc driver for interactive display. A program performs
      plspause( 0 );
      and it is then found that if the PLplot graphics window is minimised and
      restored when the program is paused, for example awaiting terminal input,
      then the graphics window freezes.

      Attached C program demonstrates this behaviour. Equivalent Fortran program
      (which is where I discovered the problem) behaves the same.

      I appologise if this has been raised and/or addressed in the past but
      searches for "freeze" mostly brought up items concerning code version
      freezing.

      Graham Foster, Bedford, UK


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/plplot/support-requests/44/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
  • Graham Foster

    Graham Foster - 2017-07-17

    When I try to cmake plplot under cygwin after including your wingdi driver, I get

    :
    [ 25%] Linking C shared library ../dll/cygplplot-14.dll
    CMakeFiles/plplot.dir//drivers/wingdi.c.o:wingdi.c:(.text+0x1fe0): undefined reference to __imp_InitCommonControlsEx' CMakeFiles/plplot.dir/__/drivers/wingdi.c.o:wingdi.c:(.text+0x1fe0): relocation truncated to fit: R_X86_64_PC32 against undefined symbolimp_InitCommonControlsEx'
    collect2: error: ld returned 1 exit status
    :

    which probably arises from line 1161 in wingdi.c
    if ( !InitCommonControlsEx( &init_controls ) )

    Graham Foster, Bedford, UK

     
    • James Dishaw

      James Dishaw - 2017-07-18

      On Jul 17, 2017, at 6:58 PM, Graham Foster zach-foster@users.sf.net wrote:

      When I try to cmake plplot under cygwin after including your wingdi driver, I get

      :
      [ 25%] Linking C shared library ../dll/cygplplot-14.dll
      CMakeFiles/plplot.dir//drivers/wingdi.c.o:wingdi.c:(.text+0x1fe0): undefined reference to imp_InitCommonControlsEx' CMakeFiles/plplot.dir//drivers/wingdi.c.o:wingdi.c:(.text+0x1fe0): relocation truncated to fit: R_X86_64_PC32 against undefined symbolimp_InitCommonControlsEx'
      collect2: error: ld returned 1 exit status
      :

      This is on Windows 10 using Cygwin with GNU toolchain? I will update the source code to use the older (and deprecated) Windows API calls. I’m not building using cygwin, so it is not a configuration that I have tested.

      which probably arises from line 1161 in wingdi.c
      if ( !InitCommonControlsEx( &init_controls ) )

      Graham Foster, Bedford, UK

      [support-requests:#44] https://sourceforge.net/p/plplot/support-requests/44/ PLplot wingcc window freezes after minimise/restore window

      Status: open
      Group:
      Created: Mon Jun 12, 2017 11:24 PM UTC by Graham Foster
      Last Updated: Fri Jul 14, 2017 12:11 PM UTC
      Owner: nobody
      Attachments:

      x02c_augmented.c https://sourceforge.net/p/plplot/support-requests/44/attachment/x02c_augmented.c (4.2 kB; application/octet-stream)
      I am running programs that use PLplot (plplot-5.12.0) under Cygwin 64 (CYGWIN_NT-10.0) on Winows 10 (64-bit) using the gcc and gfortran compilers and the wingcc driver for interactive display. A program performs
      plspause( 0 );
      and it is then found that if the PLplot graphics window is minimised and restored when the program is paused, for example awaiting terminal input, then the graphics window freezes.

      Attached C program demonstrates this behaviour. Equivalent Fortran program (which is where I discovered the problem) behaves the same.

      I appologise if this has been raised and/or addressed in the past but searches for "freeze" mostly brought up items concerning code version freezing.

      Graham Foster, Bedford, UK

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/plplot/support-requests/44/ https://sourceforge.net/p/plplot/support-requests/44/
      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/ https://sourceforge.net/auth/subscriptions/

       
  • Graham Foster

    Graham Foster - 2017-07-20

    I'm afraid that I just downloaded the source code for plplot-5.12.0, then built and accessed the library by following the instructions that I found amongst the PLplot documentation. It all seemed to work OK; somewhat to my surprise, I must admit!

     
  • Graham Foster

    Graham Foster - 2017-07-28

    Having received no update to your wingdi driver that avoids the use of
    InitCommonControlsEx
    I reviewed our correspondence on the matter. I realised that my message dated 2017-07-20 could be misinterpreted. I was only trying to explain that I had downloaded, compiled & utilised plplot-5.12.0 by following the supplied instructions without looking at the methods & libraries utilised by the build process, and this worked. I have not managed to compile and implement youir wingdi driver that uses InitCommonControlsEx, so I can not judge whether it overcomes the graphic window freezing problem.

    Graham Foster, Bedford, UK

     
  • Alan W. Irwin

    Alan W. Irwin - 2019-06-03

    Ticket moved from /p/plplot/support-requests/44/

     
  • Alan W. Irwin

    Alan W. Irwin - 2019-06-03
    • assigned_to: James Dishaw
    • Group: -->
     
  • Alan W. Irwin

    Alan W. Irwin - 2019-06-03

    Moving to bug reports since this is a bug report rather than a support request. Also changed owner to James.

     
  • Alan W. Irwin

    Alan W. Irwin - 2019-06-03

    Jim, can you please finish off dealing with this bug report?

    Graham, can you try again with the PLplot version (5.15.0) that was just released? I am pretty sure you will find exactly the same problem, but it would be good to get that verified.

     
  • M. Hedlund

    M. Hedlund - 2020-03-07

    I encountered the same issue. It occurs any time there is any interaction with the plot widow. only occurs on MSW. the same code works perfectly in linux.

    I can confirm that the issue persists 5.15.0.

     
    • James Dishaw

      James Dishaw - 2020-03-09

      I was not able to replicate this bug with 5.15.0 or the current master. Would you provide details on your build environment? Thanks

       
      • M. Hedlund

        M. Hedlund - 2020-03-10

        I'm using MSYS2 mingw64 compiler on windows 10.

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.