mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-05-17 09:17:02 +02:00
fix(stackbar): show regular cursor on hover
This commit ensures that the WM_SETCURSOR message is handled by stackbar windows by setting the cursor to the default IDC_ARROW, which prevents the spinning "Loading" icon from showing on hover. re #1456
This commit is contained in:
@@ -58,15 +58,19 @@ use windows::Win32::UI::WindowsAndMessaging::CreateWindowExW;
|
|||||||
use windows::Win32::UI::WindowsAndMessaging::DefWindowProcW;
|
use windows::Win32::UI::WindowsAndMessaging::DefWindowProcW;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::DispatchMessageW;
|
use windows::Win32::UI::WindowsAndMessaging::DispatchMessageW;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::GetMessageW;
|
use windows::Win32::UI::WindowsAndMessaging::GetMessageW;
|
||||||
|
use windows::Win32::UI::WindowsAndMessaging::LoadCursorW;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::PostQuitMessage;
|
use windows::Win32::UI::WindowsAndMessaging::PostQuitMessage;
|
||||||
|
use windows::Win32::UI::WindowsAndMessaging::SetCursor;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::SetLayeredWindowAttributes;
|
use windows::Win32::UI::WindowsAndMessaging::SetLayeredWindowAttributes;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::TranslateMessage;
|
use windows::Win32::UI::WindowsAndMessaging::TranslateMessage;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::CS_HREDRAW;
|
use windows::Win32::UI::WindowsAndMessaging::CS_HREDRAW;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::CS_VREDRAW;
|
use windows::Win32::UI::WindowsAndMessaging::CS_VREDRAW;
|
||||||
|
use windows::Win32::UI::WindowsAndMessaging::IDC_ARROW;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::LWA_COLORKEY;
|
use windows::Win32::UI::WindowsAndMessaging::LWA_COLORKEY;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::MSG;
|
use windows::Win32::UI::WindowsAndMessaging::MSG;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::WM_DESTROY;
|
use windows::Win32::UI::WindowsAndMessaging::WM_DESTROY;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::WM_LBUTTONDOWN;
|
use windows::Win32::UI::WindowsAndMessaging::WM_LBUTTONDOWN;
|
||||||
|
use windows::Win32::UI::WindowsAndMessaging::WM_SETCURSOR;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::WNDCLASSW;
|
use windows::Win32::UI::WindowsAndMessaging::WNDCLASSW;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::WS_EX_LAYERED;
|
use windows::Win32::UI::WindowsAndMessaging::WS_EX_LAYERED;
|
||||||
use windows::Win32::UI::WindowsAndMessaging::WS_EX_TOOLWINDOW;
|
use windows::Win32::UI::WindowsAndMessaging::WS_EX_TOOLWINDOW;
|
||||||
@@ -312,6 +316,16 @@ impl Stackbar {
|
|||||||
) -> LRESULT {
|
) -> LRESULT {
|
||||||
unsafe {
|
unsafe {
|
||||||
match msg {
|
match msg {
|
||||||
|
WM_SETCURSOR => match LoadCursorW(None, IDC_ARROW) {
|
||||||
|
Ok(cursor) => {
|
||||||
|
SetCursor(Some(cursor));
|
||||||
|
LRESULT(0)
|
||||||
|
}
|
||||||
|
Err(error) => {
|
||||||
|
tracing::error!("{error}");
|
||||||
|
LRESULT(1)
|
||||||
|
}
|
||||||
|
},
|
||||||
WM_LBUTTONDOWN => {
|
WM_LBUTTONDOWN => {
|
||||||
let stackbars_containers = STACKBARS_CONTAINERS.lock();
|
let stackbars_containers = STACKBARS_CONTAINERS.lock();
|
||||||
if let Some(container) = stackbars_containers.get(&(hwnd.0 as isize)) {
|
if let Some(container) = stackbars_containers.get(&(hwnd.0 as isize)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user