mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-29 19:48:53 +02:00
Fix scrolling using arrow keys and page up/down.
This commit is contained in:
@@ -633,7 +633,7 @@ index ae78391..bd13230 100644
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/beos/window.cpp b/beos/window.cpp
|
diff --git a/beos/window.cpp b/beos/window.cpp
|
||||||
index 253b5d1..b9e6491 100644
|
index 253b5d1..729d7b1 100644
|
||||||
--- a/beos/window.cpp
|
--- a/beos/window.cpp
|
||||||
+++ b/beos/window.cpp
|
+++ b/beos/window.cpp
|
||||||
@@ -131,7 +131,7 @@ static GdkCursor *nsbeos_create_menu_cursor(void);
|
@@ -131,7 +131,7 @@ static GdkCursor *nsbeos_create_menu_cursor(void);
|
||||||
@@ -675,7 +675,56 @@ index 253b5d1..b9e6491 100644
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -1674,7 +1681,7 @@ bool gui_add_to_clipboard(const char *text, size_t length, bool space,
|
@@ -926,11 +933,44 @@ void nsbeos_window_keypress_event(BView *view, gui_window *g, BMessage *event)
|
||||||
|
nskey = utf8_to_ucs4(bytes, numbytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
- bool done = browser_window_key_press(g->bw, nskey);
|
||||||
|
- LOG(("nskey %d %d", nskey, done));
|
||||||
|
- //if (browser_window_key_press(g->bw, nskey))
|
||||||
|
+ if(browser_window_key_press(g->bw, nskey))
|
||||||
|
return;
|
||||||
|
-
|
||||||
|
+
|
||||||
|
+ // Remaining events are for scrolling the page around
|
||||||
|
+ float hdelta = 0.0f, vdelta = 0.0f;
|
||||||
|
+ g->view->LockLooper();
|
||||||
|
+ BRect size = g->view->Bounds();
|
||||||
|
+ switch (byte) {
|
||||||
|
+ case B_HOME:
|
||||||
|
+ g->view->ScrollTo(0.0f, 0.0f);
|
||||||
|
+ break;
|
||||||
|
+ case B_END:
|
||||||
|
+ {
|
||||||
|
+ // TODO
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ case B_PAGE_UP:
|
||||||
|
+ vdelta = -size.Height();
|
||||||
|
+ break;
|
||||||
|
+ case B_PAGE_DOWN:
|
||||||
|
+ vdelta = size.Height();
|
||||||
|
+ break;
|
||||||
|
+ case B_LEFT_ARROW:
|
||||||
|
+ hdelta = -10;
|
||||||
|
+ break;
|
||||||
|
+ case B_RIGHT_ARROW:
|
||||||
|
+ hdelta = 10;
|
||||||
|
+ break;
|
||||||
|
+ case B_UP_ARROW:
|
||||||
|
+ vdelta = -10;
|
||||||
|
+ break;
|
||||||
|
+ case B_DOWN_ARROW:
|
||||||
|
+ vdelta = 10;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g->view->ScrollBy(hdelta, vdelta);
|
||||||
|
+ g->view->UnlockLooper();
|
||||||
|
}
|
||||||
|
|
||||||
|
#warning WRITEME
|
||||||
|
@@ -1674,7 +1714,7 @@ bool gui_add_to_clipboard(const char *text, size_t length, bool space,
|
||||||
BFont font;
|
BFont font;
|
||||||
text_run *run = new text_run;
|
text_run *run = new text_run;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user