diff options
-rw-r--r-- | desktop/browser.c | 16 | ||||
-rw-r--r-- | desktop/gui.h | 4 | ||||
-rw-r--r-- | gtk/gtk_window.c | 4 | ||||
-rw-r--r-- | riscos/gui.c | 2 | ||||
-rw-r--r-- | riscos/textselection.c | 7 | ||||
-rw-r--r-- | riscos/window.c | 4 |
6 files changed, 19 insertions, 18 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index f71ded55b..3ac90c1c2 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -59,7 +59,7 @@ static void browser_window_start_throbber(struct browser_window *bw); static void browser_window_stop_throbber(struct browser_window *bw); static void browser_window_set_status(struct browser_window *bw, const char *text); -static void browser_window_set_pointer(gui_pointer_shape shape); +static void browser_window_set_pointer(struct gui_window *g, gui_pointer_shape shape); static void download_window_callback(fetch_msg msg, void *p, const void *data, unsigned long size); static void browser_window_mouse_action_html(struct browser_window *bw, @@ -667,9 +667,9 @@ void browser_window_set_status(struct browser_window *bw, const char *text) * \param shape shape to use */ -void browser_window_set_pointer(gui_pointer_shape shape) +void browser_window_set_pointer(struct gui_window *g, gui_pointer_shape shape) { - gui_window_set_pointer(shape); + gui_window_set_pointer(g, shape); } @@ -784,7 +784,7 @@ void browser_window_mouse_click(struct browser_window *bw, else if (mouse & (BROWSER_MOUSE_DRAG_1 | BROWSER_MOUSE_DRAG_2)) { browser_window_page_drag_start(bw, x, y); - browser_window_set_pointer(GUI_POINTER_MOVE); + browser_window_set_pointer(bw->window, GUI_POINTER_MOVE); } break; } @@ -1147,7 +1147,7 @@ void browser_window_mouse_action_html(struct browser_window *bw, assert(status); browser_window_set_status(bw, status); - browser_window_set_pointer(pointer); + browser_window_set_pointer(bw->window, pointer); } @@ -1204,7 +1204,7 @@ void browser_window_mouse_action_text(struct browser_window *bw, assert(status); browser_window_set_status(bw, status); - browser_window_set_pointer(pointer); + browser_window_set_pointer(bw->window, pointer); } @@ -1439,7 +1439,7 @@ void browser_window_mouse_drag_end(struct browser_window *bw, case DRAGGING_2DSCROLL: case DRAGGING_PAGE_SCROLL: - browser_window_set_pointer(GUI_POINTER_DEFAULT); + browser_window_set_pointer(bw->window, GUI_POINTER_DEFAULT); break; default: @@ -1555,7 +1555,7 @@ const char *browser_window_scrollbar_click(struct browser_window *bw, } gui_window_box_scroll_start(bw->window, x0, y0, x1, y1); if (bw->drag_type == DRAGGING_2DSCROLL) - gui_window_hide_pointer(); + gui_window_hide_pointer(bw->window); } } else if (z < w + well_size) { status = messages_get(vert ? "ScrollPDown" : "ScrollPRight"); diff --git a/desktop/gui.h b/desktop/gui.h index 8016fefd7..578e95c0a 100644 --- a/desktop/gui.h +++ b/desktop/gui.h @@ -66,8 +66,8 @@ int gui_window_get_width(struct gui_window *g); int gui_window_get_height(struct gui_window *g); void gui_window_set_extent(struct gui_window *g, int width, int height); void gui_window_set_status(struct gui_window *g, const char *text); -void gui_window_set_pointer(gui_pointer_shape shape); -void gui_window_hide_pointer(void); +void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape); +void gui_window_hide_pointer(struct gui_window *g); void gui_window_set_url(struct gui_window *g, const char *url); void gui_window_start_throbber(struct gui_window *g); void gui_window_stop_throbber(struct gui_window *g); diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c index 50c13d815..6f5ada59a 100644 --- a/gtk/gtk_window.c +++ b/gtk/gtk_window.c @@ -360,13 +360,13 @@ void gui_window_set_status(struct gui_window *g, const char *text) } -void gui_window_set_pointer(gui_pointer_shape shape) +void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape) { } -void gui_window_hide_pointer(void) +void gui_window_hide_pointer(struct gui_window *g) { } diff --git a/riscos/gui.c b/riscos/gui.c index c09b00375..b5ef080bf 100644 --- a/riscos/gui.c +++ b/riscos/gui.c @@ -1138,7 +1138,7 @@ void ro_gui_pointer_leaving_window(wimp_leaving *leaving) default: gui_track = false; - gui_window_set_pointer(GUI_POINTER_DEFAULT); + gui_window_set_pointer(gui_track_gui_window, GUI_POINTER_DEFAULT); break; } } diff --git a/riscos/textselection.c b/riscos/textselection.c index 603f645ea..a6745ff6d 100644 --- a/riscos/textselection.c +++ b/riscos/textselection.c @@ -37,7 +37,7 @@ static bool dragging_claimed = false; static wimp_t dragging_claimant; static os_box dragging_box = { -34, -34, 34, 34 }; /* \todo - size properly */ static wimp_drag_claim_flags last_claim_flags = 0; - +static struct gui_window *last_start_window; static bool drag_claimed = false; @@ -123,6 +123,7 @@ void gui_start_selection(struct gui_window *g) error->errnum, error->errmess)); warn_user("WimpError", error->errmess); } + last_start_window = g; } @@ -588,7 +589,7 @@ void ro_gui_selection_dragging(wimp_message *message) if (drag_claimed) caret_remove(&ghost_caret); else - gui_window_set_pointer(GUI_POINTER_CARET); + gui_window_set_pointer(g, GUI_POINTER_CARET); text_box = textarea_get_position(textarea, x - gadget_box_x, y - gadget_box_y, &char_offset, &pixel_offset); @@ -661,7 +662,7 @@ void ro_gui_selection_drag_claim(wimp_message *message) /* do we need to restore the default pointer shape? */ if ((last_claim_flags & wimp_DRAG_CLAIM_POINTER_CHANGED) && !(claim->flags & wimp_DRAG_CLAIM_POINTER_CHANGED)) { - gui_window_set_pointer(GUI_POINTER_DEFAULT); + gui_window_set_pointer(last_start_window, GUI_POINTER_DEFAULT); } last_claim_flags = claim->flags; diff --git a/riscos/window.c b/riscos/window.c index c5af2fbb1..840d6277b 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -2516,7 +2516,7 @@ struct ro_gui_pointer_entry ro_gui_pointer_table[] = { * Change mouse pointer shape */ -void gui_window_set_pointer(gui_pointer_shape shape) +void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape) { static gui_pointer_shape curr_pointer = GUI_POINTER_DEFAULT; struct ro_gui_pointer_entry *entry; @@ -2560,7 +2560,7 @@ void gui_window_set_pointer(gui_pointer_shape shape) * Remove the mouse pointer from the screen */ -void gui_window_hide_pointer(void) +void gui_window_hide_pointer(gui_window *g) { os_error *error; |