feat: support mouse-move
event of Tray API on Windows (#19265)
* add Tray.mouse-move on win * change docs
This commit is contained in:
parent
9711fc895e
commit
2467350180
4 changed files with 15 additions and 1 deletions
|
@ -161,7 +161,7 @@ Returns:
|
||||||
|
|
||||||
Emitted when the mouse exits the tray icon.
|
Emitted when the mouse exits the tray icon.
|
||||||
|
|
||||||
#### Event: 'mouse-move' _macOS_
|
#### Event: 'mouse-move' _macOS_ _Windows_
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,13 @@ void NotifyIcon::HandleClickEvent(int modifiers,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NotifyIcon::HandleMouseMoveEvent(int modifiers) {
|
||||||
|
gfx::Point cursorPos = display::Screen::GetScreen()->GetCursorScreenPoint();
|
||||||
|
// Omit event fired when tray icon is created but cursor is outside of it.
|
||||||
|
if (GetBounds().Contains(cursorPos))
|
||||||
|
NotifyMouseMoved(cursorPos, modifiers);
|
||||||
|
}
|
||||||
|
|
||||||
void NotifyIcon::ResetIcon() {
|
void NotifyIcon::ResetIcon() {
|
||||||
NOTIFYICONDATA icon_data;
|
NOTIFYICONDATA icon_data;
|
||||||
InitIconData(&icon_data);
|
InitIconData(&icon_data);
|
||||||
|
|
|
@ -44,6 +44,9 @@ class NotifyIcon : public TrayIcon {
|
||||||
bool left_button_click,
|
bool left_button_click,
|
||||||
bool double_button_click);
|
bool double_button_click);
|
||||||
|
|
||||||
|
// Handles a mouse move event from the user.
|
||||||
|
void HandleMouseMoveEvent(int modifiers);
|
||||||
|
|
||||||
// Re-creates the status tray icon now after the taskbar has been created.
|
// Re-creates the status tray icon now after the taskbar has been created.
|
||||||
void ResetIcon();
|
void ResetIcon();
|
||||||
|
|
||||||
|
|
|
@ -170,6 +170,10 @@ LRESULT CALLBACK NotifyIconHost::WndProc(HWND hwnd,
|
||||||
(lparam == WM_LBUTTONDOWN || lparam == WM_LBUTTONDBLCLK),
|
(lparam == WM_LBUTTONDOWN || lparam == WM_LBUTTONDBLCLK),
|
||||||
(lparam == WM_LBUTTONDBLCLK || lparam == WM_RBUTTONDBLCLK));
|
(lparam == WM_LBUTTONDBLCLK || lparam == WM_RBUTTONDBLCLK));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
case WM_MOUSEMOVE:
|
||||||
|
win_icon->HandleMouseMoveEvent(GetKeyboardModifers());
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ::DefWindowProc(hwnd, message, wparam, lparam);
|
return ::DefWindowProc(hwnd, message, wparam, lparam);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue