1
我目前正在使用C在X11中實現一個程序。我得到了處理右鍵和左鍵點擊事件的程序,但是中點擊會帶來問題。看起來我的窗口管理器(Ubuntu 9.10上的Gnome)認爲,如果不是單擊中間點擊,而是應該有一系列其他點擊,這會更好。我認爲這與用於複製粘貼的中間點擊有關。不過,我真的不想要這個,因爲我正在用OpenGL製作全屏應用程序,而這樣的事情並不合適。有什麼辦法讓鼠標中鍵可以像任何其他按鈕一樣工作嗎?如何禁用X(Xlib)中的自動中鍵單擊鼠標事件?
我當前的代碼是這樣的:
switch(currentXEvent.type) {
case ButtonPress:
switch(currentXEvent.xbutton.button) {
case 1:
leftMouseButton(currentXEvent.xbutton.x, currentXEvent.xbutton.y);
break;
case 2:
middleMouseButton(currentXEvent.xbutton.x, currentXEvent.xbutton.y);
break;
}
}
我的困難是,它像leftMouseButton()已被按下。有任何想法嗎?
感謝您的回覆。考慮到大多數使用X的代碼已經寫好了,我不想添加另一個庫。我想知道如何抓住控制。我以前打過電話,如: XGrabKeyboard(display,window,true,GrabModeAsync,GrabModeAsync,CurrentTime); XGrabPointer(display,window,true,masks,GrabModeAsync,GrabModeAsync,window,None,CurrentTime); 還有什麼我需要補充嗎? – Warpspace 2010-02-26 04:42:33
看起來不錯。我沒有看到其他需要的東西,只要確保你的event_mask設置正確。有疑問的是,您可以通過查看libSDL代碼來找到更多提示。我沒有抓住自己,所以這是我能提供的所有幫助。 p.s .:如果你喜歡我的回答,你應該給它一個upvote。你是新來的stackoverflow,這就是爲什麼我告訴你 - 投票是一個重要的事情,使計算器工作。 – ypnos 2010-02-26 09:56:10
它不會讓我upvote(我太新了),但謝謝你的答覆。你是對的,它幾乎按我的方式工作,如果我需要它,libSDL代碼將會有剩下的部分。謝謝。 – Warpspace 2010-02-26 16:18:19