mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Implemented SetCursor
This commit is contained in:
parent
edf6d75b76
commit
5d1b18389a
@ -37,6 +37,7 @@
|
||||
#include "Xm/DrawingA.h"
|
||||
|
||||
#include "X11/Intrinsic.h"
|
||||
#include "X11/cursorfont.h"
|
||||
|
||||
#include "stdio.h"
|
||||
|
||||
@ -195,6 +196,7 @@ nsWindow::nsWindow(nsISupports *aOuter):
|
||||
mVisible = PR_FALSE;
|
||||
mDisplayed = PR_FALSE;
|
||||
mLowerLeft = PR_FALSE;
|
||||
mCursor = eCursor_standard;
|
||||
|
||||
}
|
||||
|
||||
@ -290,7 +292,7 @@ void nsWindow::CreateGC()
|
||||
|
||||
XGCValues values;
|
||||
Window w;
|
||||
Display * d = XtDisplay(mWidget);
|
||||
Display * d = ::XtDisplay(mWidget);
|
||||
|
||||
w = ::XCreateSimpleWindow(d,
|
||||
RootWindow(d,DefaultScreen(d)),
|
||||
@ -367,10 +369,6 @@ void nsWindow::CreateMainWindow(nsNativeWidget aNativeParent,
|
||||
aWidgetParent->AddChild(this);
|
||||
}
|
||||
|
||||
// Force cursor to default setting
|
||||
mCursor = eCursor_select;
|
||||
SetCursor(eCursor_standard);
|
||||
|
||||
InitCallbacks();
|
||||
|
||||
XtAddCallback(mWidget,
|
||||
@ -878,6 +876,42 @@ nsCursor nsWindow::GetCursor()
|
||||
|
||||
void nsWindow::SetCursor(nsCursor aCursor)
|
||||
{
|
||||
if (PR_FALSE == mDisplayed)
|
||||
return;
|
||||
// Only change cursor if it's changing
|
||||
if (aCursor != mCursor) {
|
||||
Cursor newCursor = 0;
|
||||
Display *display = ::XtDisplay(mWidget);
|
||||
Window window = ::XtWindow(mWidget);
|
||||
|
||||
switch(aCursor) {
|
||||
case eCursor_select:
|
||||
newCursor = XCreateFontCursor(display, XC_xterm);
|
||||
break;
|
||||
|
||||
case eCursor_wait:
|
||||
newCursor = XCreateFontCursor(display, XC_watch);
|
||||
break;
|
||||
|
||||
case eCursor_hyperlink:
|
||||
newCursor = XCreateFontCursor(display, XC_hand2);
|
||||
break;
|
||||
|
||||
case eCursor_standard:
|
||||
// newCursor = XCreateFontCursor(display, XC_left_ptr);
|
||||
newCursor = XCreateFontCursor(display, XC_left_ptr);
|
||||
break;
|
||||
|
||||
default:
|
||||
NS_ASSERTION(0, "Invalid cursor type");
|
||||
break;
|
||||
}
|
||||
|
||||
if (0 != newCursor) {
|
||||
mCursor = aCursor;
|
||||
::XDefineCursor(display, window, newCursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user