@@ -4255,6 +4255,19 @@ void DisplayServerWindows::window_start_drag(WindowID p_window) {
42554255 ScreenToClient (wd.hWnd , &coords);
42564256
42574257 SendMessage (wd.hWnd , WM_SYSCOMMAND, SC_MOVE | HTCAPTION, MAKELPARAM (coords.x , coords.y ));
4258+
4259+ for (int btn = (int )MouseButton::LEFT; btn <= (int )MouseButton::MB_XBUTTON2; btn++) {
4260+ if (Input::get_singleton ()->is_mouse_button_pressed (MouseButton (btn))) {
4261+ Ref<InputEventMouseButton> mb;
4262+ mb.instantiate ();
4263+ mb->set_window_id (p_window);
4264+ mb->set_pressed (false );
4265+ mb->set_button_index (MouseButton::LEFT);
4266+ mb->set_position (Vector2 (coords.x , coords.y ));
4267+ mb->set_global_position (mb->get_position ());
4268+ Input::get_singleton ()->parse_input_event (mb);
4269+ }
4270+ }
42584271}
42594272
42604273void DisplayServerWindows::window_start_resize (WindowResizeEdge p_edge, WindowID p_window) {
@@ -4305,6 +4318,19 @@ void DisplayServerWindows::window_start_resize(WindowResizeEdge p_edge, WindowID
43054318 }
43064319
43074320 SendMessage (wd.hWnd , WM_SYSCOMMAND, SC_SIZE | op, MAKELPARAM (coords.x , coords.y ));
4321+
4322+ for (int btn = (int )MouseButton::LEFT; btn <= (int )MouseButton::MB_XBUTTON2; btn++) {
4323+ if (Input::get_singleton ()->is_mouse_button_pressed (MouseButton (btn))) {
4324+ Ref<InputEventMouseButton> mb;
4325+ mb.instantiate ();
4326+ mb->set_window_id (p_window);
4327+ mb->set_pressed (false );
4328+ mb->set_button_index (MouseButton::LEFT);
4329+ mb->set_position (Vector2 (coords.x , coords.y ));
4330+ mb->set_global_position (mb->get_position ());
4331+ Input::get_singleton ()->parse_input_event (mb);
4332+ }
4333+ }
43084334}
43094335
43104336void DisplayServerWindows::set_context (Context p_context) {
0 commit comments