Changeset 753


Ignore:
Timestamp:
Jun 15, 2010, 10:55:52 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

gui: OS/2: Attempted to fix a small repaint problem that appeared after r751.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gui/painting/qwindowsurface_pm.cpp

    r752 r753  
    395395        // receive visible region change messages (note that we don't do this
    396396        // for sub-widgets as it causes some strange PM freezes if these widgets
    397         // are embedded windows manipulated by other processes)
     397        // are embedded windows manipulated by other processes). We also want
     398        // to handle other PM messages
    398399        widget->addPmEventFilter(this);
    399400        WinSetVisibleRegionNotify(widget->winId(), TRUE);
    400401    } else {
     402        // receive various PM messages
     403        widget->addPmEventFilter(this);
    401404        // receive reparent/destruction messages from children
    402405        // to cleanup the map
     
    412415    } else {
    413416        widget->removeEventFilter(this);
     417        widget->removePmEventFilter(this);
    414418    }
    415419
     
    476480            *result = 0;
    477481            return true;
     482        }
     483        case WM_SIZE: {
     484            if (msg->hwnd != that->window()->winId()) {
     485                // sometimes PM doesn't send WM_VRNENABLED to the main widget
     486                // when the sub-widget (its descendant) gets resized within it;
     487                // fix it here by invalidating all visible regions
     488                data.vrnDirty = true;
     489                if (subWidgets) {
     490                    foreach(HWND hwnd, subWidgets->keys())
     491                        (*subWidgets)[hwnd].vrnDirty = true;
     492                }
     493            }
     494            break;
    478495        }
    479496        default:
Note: See TracChangeset for help on using the changeset viewer.