[bug #17822] consecutive resize events not handled correctly



URL:
  <http://savannah.gnu.org/bugs/?17822>

                 Summary: consecutive resize events not handled correctly
                 Project: GNU Midnight Commander
            Submitted by: egmont
            Submitted on: Friday 09/22/2006 at 13:04
                Category: Screen output
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
                 Release: 4.6.1
        Operating System: GNU/Linux

    _______________________________________________________

Details:

Modern desktop environments and window managers usually resize the windows in
an opaque way: plenty of resize events are sent to the application while the
edge of the window is being dragged. This gives users a much better feedback
than the ancient method (only showing where the edges of the window will be,
and resizing when the mouse button is released), though it definitely
requires much more cpu resources.

Unfortunately mc is unable to properly handle when the terminal is resized
opaquely. It receives tons of resize events (sigwinch), most likely ignores
the new ones while processing an older one. Quite often when I finish
resizing my window, mc draws its panels with a different size. Hence if I
enlarge my terminal, I might get black columns/rows on its right/bottom part.
If I shrink the window, the whole screen can be garbled.

Then when I press one key, or click somewhere in the terminal with the mouse,
suddenly mc's screen is repainted with the right size, and everything goes on
perfectly.

It would be nice to eliminate these race conditions and make mc resize
correctly to the final terminal size, no matter how many resize events were
sent in a very short time.







    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?17822>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]