winemac: Send WM_ENTER/EXITSIZEMOVE messages at start/end of a resizing operation.
This commit is contained in:
parent
d55d2ec85a
commit
4ad9d5f04a
@ -1476,6 +1476,13 @@ static inline void fix_generic_modifiers_by_device(NSUInteger* modifiers)
|
|||||||
|
|
||||||
- (void) windowDidEndLiveResize:(NSNotification *)notification
|
- (void) windowDidEndLiveResize:(NSNotification *)notification
|
||||||
{
|
{
|
||||||
|
macdrv_query* query = macdrv_create_query();
|
||||||
|
query->type = QUERY_RESIZE_END;
|
||||||
|
query->window = (macdrv_window)[self retain];
|
||||||
|
|
||||||
|
[self.queue query:query timeout:0.3];
|
||||||
|
macdrv_release_query(query);
|
||||||
|
|
||||||
self.liveResizeDisplayTimer = nil;
|
self.liveResizeDisplayTimer = nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,6 +146,10 @@ static void macdrv_query_event(HWND hwnd, const macdrv_event *event)
|
|||||||
TRACE("QUERY_PASTEBOARD_DATA\n");
|
TRACE("QUERY_PASTEBOARD_DATA\n");
|
||||||
success = query_pasteboard_data(hwnd, query->pasteboard_data.type);
|
success = query_pasteboard_data(hwnd, query->pasteboard_data.type);
|
||||||
break;
|
break;
|
||||||
|
case QUERY_RESIZE_END:
|
||||||
|
TRACE("QUERY_RESIZE_END\n");
|
||||||
|
success = query_resize_end(hwnd);
|
||||||
|
break;
|
||||||
case QUERY_RESIZE_START:
|
case QUERY_RESIZE_START:
|
||||||
TRACE("QUERY_RESIZE_START\n");
|
TRACE("QUERY_RESIZE_START\n");
|
||||||
success = query_resize_start(hwnd);
|
success = query_resize_start(hwnd);
|
||||||
|
@ -161,6 +161,7 @@ extern void macdrv_app_deactivated(void) DECLSPEC_HIDDEN;
|
|||||||
extern void macdrv_app_quit_requested(const macdrv_event *event) DECLSPEC_HIDDEN;
|
extern void macdrv_app_quit_requested(const macdrv_event *event) DECLSPEC_HIDDEN;
|
||||||
extern void macdrv_window_did_minimize(HWND hwnd) DECLSPEC_HIDDEN;
|
extern void macdrv_window_did_minimize(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
extern void macdrv_window_did_unminimize(HWND hwnd) DECLSPEC_HIDDEN;
|
extern void macdrv_window_did_unminimize(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL query_resize_end(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
extern BOOL query_resize_start(HWND hwnd) DECLSPEC_HIDDEN;
|
extern BOOL query_resize_start(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
extern void macdrv_mouse_button(HWND hwnd, const macdrv_event *event) DECLSPEC_HIDDEN;
|
extern void macdrv_mouse_button(HWND hwnd, const macdrv_event *event) DECLSPEC_HIDDEN;
|
||||||
|
@ -272,6 +272,7 @@ enum {
|
|||||||
QUERY_DRAG_OPERATION,
|
QUERY_DRAG_OPERATION,
|
||||||
QUERY_IME_CHAR_RECT,
|
QUERY_IME_CHAR_RECT,
|
||||||
QUERY_PASTEBOARD_DATA,
|
QUERY_PASTEBOARD_DATA,
|
||||||
|
QUERY_RESIZE_END,
|
||||||
QUERY_RESIZE_START,
|
QUERY_RESIZE_START,
|
||||||
NUM_QUERY_TYPES
|
NUM_QUERY_TYPES
|
||||||
};
|
};
|
||||||
|
@ -1991,6 +1991,22 @@ fail:
|
|||||||
BOOL query_resize_start(HWND hwnd)
|
BOOL query_resize_start(HWND hwnd)
|
||||||
{
|
{
|
||||||
TRACE("hwnd %p\n", hwnd);
|
TRACE("hwnd %p\n", hwnd);
|
||||||
|
|
||||||
sync_window_min_max_info(hwnd);
|
sync_window_min_max_info(hwnd);
|
||||||
|
SendMessageW(hwnd, WM_ENTERSIZEMOVE, 0, 0);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* query_resize_end
|
||||||
|
*
|
||||||
|
* Handler for QUERY_RESIZE_END query.
|
||||||
|
*/
|
||||||
|
BOOL query_resize_end(HWND hwnd)
|
||||||
|
{
|
||||||
|
TRACE("hwnd %p\n", hwnd);
|
||||||
|
SendMessageW(hwnd, WM_EXITSIZEMOVE, 0, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user